diff --git a/generated/examples/ui/arrays_and_dicts.py.ipynb b/generated/examples/ui/arrays_and_dicts.py.ipynb index 997ba12..7bc2d16 100644 --- a/generated/examples/ui/arrays_and_dicts.py.ipynb +++ b/generated/examples/ui/arrays_and_dicts.py.ipynb @@ -1,8 +1,19 @@ { "cells": [ { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "id": "Hbol", + "metadata": {}, + "outputs": [], + "source": [ + "import marimo as mo\n", + "import random" + ] + }, + { + "cell_type": "markdown", + "id": "MJUe", "metadata": { "marimo": { "config": { @@ -16,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "MJUe", + "id": "vblA", "metadata": { "marimo": { "config": { @@ -36,7 +47,7 @@ { "cell_type": "code", "execution_count": null, - "id": "vblA", + "id": "bkHC", "metadata": {}, "outputs": [], "source": [ @@ -46,13 +57,13 @@ { "cell_type": "code", "execution_count": null, - "id": "bkHC", + "id": "lEQa", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
" + "
" ] }, "metadata": {}, @@ -65,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "lEQa", + "id": "PKri", "metadata": {}, "source": [ "UI Elements ..." @@ -74,13 +85,13 @@ { "cell_type": "code", "execution_count": null, - "id": "PKri", + "id": "Xref", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
" + "
" ] }, "metadata": {}, @@ -103,7 +114,7 @@ }, { "cell_type": "markdown", - "id": "Xref", + "id": "SFPL", "metadata": {}, "source": [ "... and their values" @@ -112,7 +123,7 @@ { "cell_type": "code", "execution_count": null, - "id": "SFPL", + "id": "BYtC", "metadata": {}, "outputs": [ { @@ -131,7 +142,7 @@ }, { "cell_type": "markdown", - "id": "BYtC", + "id": "RGSE", "metadata": { "marimo": { "config": { @@ -148,7 +159,7 @@ { "cell_type": "code", "execution_count": null, - "id": "RGSE", + "id": "Kclp", "metadata": { "marimo": { "config": { @@ -160,7 +171,7 @@ { "data": { "text/html": [ - "
marimo dict
original elements
python dict
" + "
marimo dict
original elements
python dict
" ] }, "metadata": {}, @@ -201,7 +212,7 @@ { "cell_type": "code", "execution_count": null, - "id": "Kclp", + "id": "emfo", "metadata": { "marimo": { "config": { @@ -213,7 +224,7 @@ { "data": { "text/html": [ - "
reference of marimo dict
reference of python dict
" + "
reference of marimo dict
reference of python dict
" ] }, "metadata": {}, @@ -234,7 +245,7 @@ }, { "cell_type": "markdown", - "id": "emfo", + "id": "Hstk", "metadata": { "marimo": { "config": { @@ -245,17 +256,6 @@ "source": [ "Notice that when you interact with the UI elements in the marimo dict, the reference of marimo dict updates automatically. However, when you interact with the elements in the python dict, you need to manually re-run the cell to see the updated values." ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "Hstk", - "metadata": {}, - "outputs": [], - "source": [ - "import marimo as mo\n", - "import random" - ] } ], "metadata": {}, diff --git a/generated/examples/ui/arrays_and_dicts.py.md b/generated/examples/ui/arrays_and_dicts.py.md index f1c9c8f..92e5a6a 100644 --- a/generated/examples/ui/arrays_and_dicts.py.md +++ b/generated/examples/ui/arrays_and_dicts.py.md @@ -1,8 +1,13 @@ --- title: Arrays And Dicts -marimo-version: 0.9.34 +marimo-version: 0.11.0 --- +```python {.marimo} +import marimo as mo +import random +``` + # Arrays and Dictionaries Use `mo.ui.array` and `mo.ui.dictionary` to create UI elements that wrap @@ -12,17 +17,17 @@ Because UI elements must be assigned to global variables, these functions are required when the set of elements to create is not known until runtime. -```{.python.marimo} +```python {.marimo} create = mo.ui.button(label="Create new collections") ``` -```{.python.marimo} +```python {.marimo} create.center() ``` UI Elements ... -```{.python.marimo} +```python {.marimo} create array = mo.ui.array( @@ -38,7 +43,7 @@ mo.hstack([array, dictionary], justify="space-around") ... and their values -```{.python.marimo} +```python {.marimo} mo.hstack([array.value, dictionary.value], justify="space-around") ``` @@ -46,7 +51,7 @@ Key difference between marimo dict and standard python dict: The main reason to use `mo.ui.dictionary` is for reactive execution — when you interact with an element in a `mo.ui.dictionary`, all cells that reference the `mo.ui.dictionary` run automatically, just like all other ui elements. When you use a regular dictionary, you don't get this reactivity. -```{.python.marimo hide_code="true"} +```python {.marimo hide_code="true"} create slider = mo.ui.slider(1, 10, show_value=True) @@ -77,7 +82,7 @@ mo.hstack( ) ``` -```{.python.marimo hide_code="true"} +```python {.marimo hide_code="true"} mo_d_ref = {k: mo_d[k].value for k in mo_d.value.keys()} py_d_ref = {k: py_d[k].value for k in py_d.keys()} mo.hstack( @@ -89,9 +94,4 @@ mo.hstack( ) ``` -Notice that when you interact with the UI elements in the marimo dict, the reference of marimo dict updates automatically. However, when you interact with the elements in the python dict, you need to manually re-run the cell to see the updated values. - -```{.python.marimo} -import marimo as mo -import random -``` \ No newline at end of file +Notice that when you interact with the UI elements in the marimo dict, the reference of marimo dict updates automatically. However, when you interact with the elements in the python dict, you need to manually re-run the cell to see the updated values. \ No newline at end of file diff --git a/generated/examples/ui/arrays_and_dicts.script.py b/generated/examples/ui/arrays_and_dicts.script.py index f0e2d9a..b74bc00 100644 --- a/generated/examples/ui/arrays_and_dicts.script.py +++ b/generated/examples/ui/arrays_and_dicts.script.py @@ -1,5 +1,5 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo diff --git a/generated/examples/ui/batch_and_form.py.ipynb b/generated/examples/ui/batch_and_form.py.ipynb index d5da7f1..46b222c 100644 --- a/generated/examples/ui/batch_and_form.py.ipynb +++ b/generated/examples/ui/batch_and_form.py.ipynb @@ -1,17 +1,27 @@ { "cells": [ { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "id": "Hbol", "metadata": {}, + "outputs": [], "source": [ - "# Batch and Form" + "import marimo as mo" ] }, { "cell_type": "markdown", "id": "MJUe", "metadata": {}, + "source": [ + "# Batch and Form" + ] + }, + { + "cell_type": "markdown", + "id": "vblA", + "metadata": {}, "source": [ "Make custom UI elements using `batch()`, and turn any UI element\n", "into a form with `form()`." @@ -20,15 +30,15 @@ { "cell_type": "code", "execution_count": null, - "id": "vblA", + "id": "bkHC", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "<marimo-form data-initial-value='null' data-label='null' data-element-id='&quot;vblA-7&quot;' data-loading='false' data-bordered='false' data-submit-button-label='&quot;Submit&quot;' data-submit-button-disabled='false' data-clear-on-submit='false' data-show-clear-button='true' data-clear-button-label='&quot;Clear&quot;' data-should-validate='false'><marimo-ui-element object-id='vblA-7' random-id='47378190-96da-1dac-72ff-5d2a386ecbe0'><marimo-dict data-initial-value='{&quot;x&quot;: 1, &quot;y&quot;: 1}' data-label='null' data-element-ids='{&quot;vblA-5&quot;: &quot;x&quot;, &quot;vblA-6&quot;: &quot;y&quot;}'><span class="markdown prose dark:prose-invert"><span class="paragraph">Choose your variable values</span>\n", - "<span class="paragraph"><marimo-ui-element object-id='vblA-5' random-id='b74d0fb1-32e7-0629-8fad-c1a606cb0fb3'><marimo-slider data-initial-value='1' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&lt;marimo-tex class=&#92;&quot;arithmatex&#92;&quot;&gt;||(x =||)&lt;/marimo-tex&gt;&lt;/span&gt;&lt;/span&gt;&quot;' data-start='1' data-stop='10' data-step='1' data-steps='[]' data-debounce='false' data-orientation='&quot;horizontal&quot;' data-show-value='false' data-full-width='false'></marimo-slider></marimo-ui-element></span>\n", - "<span class="paragraph"><marimo-ui-element object-id='vblA-6' random-id='6b65a6a4-8b81-48f6-b38a-088ca65ed389'><marimo-slider data-initial-value='1' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&lt;marimo-tex class=&#92;&quot;arithmatex&#92;&quot;&gt;||(y =||)&lt;/marimo-tex&gt;&lt;/span&gt;&lt;/span&gt;&quot;' data-start='1' data-stop='10' data-step='1' data-steps='[]' data-debounce='false' data-orientation='&quot;horizontal&quot;' data-show-value='false' data-full-width='false'></marimo-slider></marimo-ui-element></span></span></marimo-dict></marimo-ui-element></marimo-form>" + "<marimo-form data-initial-value='null' data-label='null' data-element-id='&quot;bkHC-7&quot;' data-loading='false' data-bordered='false' data-submit-button-label='&quot;Submit&quot;' data-submit-button-disabled='false' data-clear-on-submit='false' data-show-clear-button='true' data-clear-button-label='&quot;Clear&quot;' data-should-validate='false'><marimo-ui-element object-id='bkHC-7' random-id='47378190-96da-1dac-72ff-5d2a386ecbe0'><marimo-dict data-initial-value='{&quot;x&quot;: 1, &quot;y&quot;: 1}' data-label='null' data-element-ids='{&quot;bkHC-5&quot;: &quot;x&quot;, &quot;bkHC-6&quot;: &quot;y&quot;}'><span class="markdown prose dark:prose-invert"><span class="paragraph">Choose your variable values</span>\n", + "<span class="paragraph"><marimo-ui-element object-id='bkHC-5' random-id='b74d0fb1-32e7-0629-8fad-c1a606cb0fb3'><marimo-slider data-initial-value='1' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&lt;marimo-tex class=&#92;&quot;arithmatex&#92;&quot;&gt;||(x =||)&lt;/marimo-tex&gt;&lt;/span&gt;&lt;/span&gt;&quot;' data-start='1' data-stop='10' data-step='1' data-steps='[]' data-debounce='false' data-orientation='&quot;horizontal&quot;' data-show-value='false' data-full-width='false'></marimo-slider></marimo-ui-element></span>\n", + "<span class="paragraph"><marimo-ui-element object-id='bkHC-6' random-id='6b65a6a4-8b81-48f6-b38a-088ca65ed389'><marimo-slider data-initial-value='1' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&lt;marimo-tex class=&#92;&quot;arithmatex&#92;&quot;&gt;||(y =||)&lt;/marimo-tex&gt;&lt;/span&gt;&lt;/span&gt;&quot;' data-start='1' data-stop='10' data-step='1' data-steps='[]' data-debounce='false' data-orientation='&quot;horizontal&quot;' data-show-value='false' data-full-width='false'></marimo-slider></marimo-ui-element></span></span></marimo-dict></marimo-ui-element></marimo-form>" ] }, "metadata": {}, @@ -61,13 +71,13 @@ { "cell_type": "code", "execution_count": null, - "id": "bkHC", + "id": "lEQa", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "" ] }, "metadata": {}, @@ -98,7 +108,7 @@ { "cell_type": "code", "execution_count": null, - "id": "lEQa", + "id": "PKri", "metadata": {}, "outputs": [], "source": [ @@ -107,16 +117,6 @@ "submitted_values = {\"x\": set(), \"y\": set()}" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "PKri", - "metadata": {}, - "outputs": [], - "source": [ - "reset = mo.ui.button(label=\"reset history\")" - ] - }, { "cell_type": "code", "execution_count": null, @@ -124,7 +124,7 @@ "metadata": {}, "outputs": [], "source": [ - "import marimo as mo" + "reset = mo.ui.button(label=\"reset history\")" ] } ], diff --git a/generated/examples/ui/batch_and_form.py.md b/generated/examples/ui/batch_and_form.py.md index 333f90c..94c9465 100644 --- a/generated/examples/ui/batch_and_form.py.md +++ b/generated/examples/ui/batch_and_form.py.md @@ -1,14 +1,18 @@ --- title: Batch And Form -marimo-version: 0.9.34 +marimo-version: 0.11.0 --- +```python {.marimo} +import marimo as mo +``` + # Batch and Form Make custom UI elements using `batch()`, and turn any UI element into a form with `form()`. -```{.python.marimo} +```python {.marimo} reset variables = ( @@ -31,7 +35,7 @@ variables = ( variables ``` -```{.python.marimo} +```python {.marimo} if variables.value is not None: submitted_values["x"].add(variables.value["x"]) submitted_values["y"].add(variables.value["y"]) @@ -52,16 +56,12 @@ mo.md( ).callout() ``` -```{.python.marimo} +```python {.marimo} reset submitted_values = {"x": set(), "y": set()} ``` -```{.python.marimo} +```python {.marimo} reset = mo.ui.button(label="reset history") -``` - -```{.python.marimo} -import marimo as mo ``` \ No newline at end of file diff --git a/generated/examples/ui/batch_and_form.script.py b/generated/examples/ui/batch_and_form.script.py index d54dde3..487d6d8 100644 --- a/generated/examples/ui/batch_and_form.script.py +++ b/generated/examples/ui/batch_and_form.script.py @@ -1,5 +1,5 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo diff --git a/generated/examples/ui/data_explorer.py.ipynb b/generated/examples/ui/data_explorer.py.ipynb index 1075fb2..ae5c914 100644 --- a/generated/examples/ui/data_explorer.py.ipynb +++ b/generated/examples/ui/data_explorer.py.ipynb @@ -1,73 +1,35 @@ { "cells": [ { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "id": "Hbol", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, + "metadata": {}, + "outputs": [], "source": [ - "# Data Explorer" + "import marimo as mo" ] }, { "cell_type": "code", "execution_count": null, "id": "MJUe", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, - "outputs": [ - { - "data": { - "text/markdown": [ - "This notebook lets you upload a CSV and plot its columns.\n", - "\n", - "You can download a sample CSV if you'd like." - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ - "sample = \"https://github.com/vega/vega/blob/main/docs/data/stocks.csv\"\n", - "\n", - "mo.md(\n", - " f\"\"\"\n", - " This notebook lets you upload a CSV and plot its columns.\n", - "\n", - " You can download a sample CSV if you'd like.\n", - " \"\"\"\n", - ")" + "from vega_datasets import data" ] }, { "cell_type": "code", "execution_count": null, "id": "vblA", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, + "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "
Upload a CSV.
\n", - "\n", - "" + "<marimo-data-explorer data-initial-value='{}' data-label='null' data-data='&quot;data:text/csv;base64,c2VwYWxMZW5ndGgsc2VwYWxXaWR0aCxwZXRhbExlbmd0aCxwZXRhbFdpZHRoLHNwZWNpZXMKNS4xLDMuNSwxLjQsMC4yLHNldG9zYQo0LjksMy4wLDEuNCwwLjIsc2V0b3NhCjQuNywzLjIsMS4zLDAuMixzZXRvc2EKNC42LDMuMSwxLjUsMC4yLHNldG9zYQo1LjAsMy42LDEuNCwwLjIsc2V0b3NhCjUuNCwzLjksMS43MDAwMDAwMDAwMDAwMDAyLDAuNCxzZXRvc2EKNC42LDMuNCwxLjQsMC4zMDAwMDAwMDAwMDAwMDAwNCxzZXRvc2EKNS4wLDMuNCwxLjUsMC4yLHNldG9zYQo0LjQsMi45LDEuNCwwLjIsc2V0b3NhCjQuOSwzLjEsMS41LDAuMSxzZXRvc2EKNS40LDMuNywxLjUsMC4yLHNldG9zYQo0LjgsMy40LDEuNiwwLjIsc2V0b3NhCjQuOCwzLjAsMS40LDAuMSxzZXRvc2EKNC4zLDMuMCwxLjEsMC4xLHNldG9zYQo1LjgsNC4wLDEuMiwwLjIsc2V0b3NhCjUuNyw0LjQsMS41LDAuNCxzZXRvc2EKNS40LDMuOSwxLjMsMC40LHNldG9zYQo1LjEsMy41LDEuNCwwLjMwMDAwMDAwMDAwMDAwMDA0LHNldG9zYQo1LjcsMy44LDEuNzAwMDAwMDAwMDAwMDAwMiwwLjMwMDAwMDAwMDAwMDAwMDA0LHNldG9zYQo1LjEsMy44LDEuNSwwLjMwMDAwMDAwMDAwMDAwMDA0LHNldG9zYQo1LjQsMy40LDEuNzAwMDAwMDAwMDAwMDAwMiwwLjIsc2V0b3NhCjUuMSwzLjcsMS41LDAuNCxzZXRvc2EKNC42LDMuNiwxLjAsMC4yLHNldG9zYQo1LjEsMy4zLDEuNzAwMDAwMDAwMDAwMDAwMiwwLjUsc2V0b3NhCjQuOCwzLjQsMS45LDAuMixzZXRvc2EKNS4wLDMuMCwxLjYsMC4yLHNldG9zYQo1LjAsMy40LDEuNiwwLjQsc2V0b3NhCjUuMiwzLjUsMS41LDAuMixzZXRvc2EKNS4yLDMuNCwxLjQsMC4yLHNldG9zYQo0LjcsMy4yLDEuNiwwLjIsc2V0b3NhCjQuOCwzLjEsMS42LDAuMixzZXRvc2EKNS40LDMuNCwxLjUsMC40LHNldG9zYQo1LjIsNC4xLDEuNSwwLjEsc2V0b3NhCjUuNSw0LjIsMS40LDAuMixzZXRvc2EKNC45LDMuMSwxLjUsMC4yLHNldG9zYQo1LjAsMy4yLDEuMiwwLjIsc2V0b3NhCjUuNSwzLjUsMS4zLDAuMixzZXRvc2EKNC45LDMuNiwxLjQsMC4xLHNldG9zYQo0LjQsMy4wLDEuMywwLjIsc2V0b3NhCjUuMSwzLjQsMS41LDAuMixzZXRvc2EKNS4wLDMuNSwxLjMsMC4zMDAwMDAwMDAwMDAwMDAwNCxzZXRvc2EKNC41LDIuMywxLjMsMC4zMDAwMDAwMDAwMDAwMDAwNCxzZXRvc2EKNC40LDMuMiwxLjMsMC4yLHNldG9zYQo1LjAsMy41LDEuNiwwLjYwMDAwMDAwMDAwMDAwMDEsc2V0b3NhCjUuMSwzLjgsMS45LDAuNCxzZXRvc2EKNC44LDMuMCwxLjQsMC4zMDAwMDAwMDAwMDAwMDAwNCxzZXRvc2EKNS4xLDMuOCwxLjYsMC4yLHNldG9zYQo0LjYsMy4yLDEuNCwwLjIsc2V0b3NhCjUuMywzLjcsMS41LDAuMixzZXRvc2EKNS4wLDMuMywxLjQsMC4yLHNldG9zYQo3LjAsMy4yLDQuNywxLjQsdmVyc2ljb2xvcgo2LjQsMy4yLDQuNSwxLjUsdmVyc2ljb2xvcgo2LjksMy4xLDQuOSwxLjUsdmVyc2ljb2xvcgo1LjUsMi4zLDQuMCwxLjMsdmVyc2ljb2xvcgo2LjUsMi44LDQuNiwxLjUsdmVyc2ljb2xvcgo1LjcsMi44LDQuNSwxLjMsdmVyc2ljb2xvcgo2LjMsMy4zLDQuNywxLjYsdmVyc2ljb2xvcgo0LjksMi40LDMuMywxLjAsdmVyc2ljb2xvcgo2LjYsMi45LDQuNiwxLjMsdmVyc2ljb2xvcgo1LjIsMi43LDMuOSwxLjQsdmVyc2ljb2xvcgo1LjAsMi4wLDMuNSwxLjAsdmVyc2ljb2xvcgo1LjksMy4wLDQuMiwxLjUsdmVyc2ljb2xvcgo2LjAsMi4yLDQuMCwxLjAsdmVyc2ljb2xvcgo2LjEsMi45LDQuNywxLjQsdmVyc2ljb2xvcgo1LjYsMi45LDMuNiwxLjMsdmVyc2ljb2xvcgo2LjcsMy4xLDQuNCwxLjQsdmVyc2ljb2xvcgo1LjYsMy4wLDQuNSwxLjUsdmVyc2ljb2xvcgo1LjgsMi43LDQuMSwxLjAsdmVyc2ljb2xvcgo2LjIsMi4yLDQuNSwxLjUsdmVyc2ljb2xvcgo1LjYsMi41LDMuOSwxLjEsdmVyc2ljb2xvcgo1LjksMy4yLDQuOCwxLjgsdmVyc2ljb2xvcgo2LjEsMi44LDQuMCwxLjMsdmVyc2ljb2xvcgo2LjMsMi41LDQuOSwxLjUsdmVyc2ljb2xvcgo2LjEsMi44LDQuNywxLjIsdmVyc2ljb2xvcgo2LjQsMi45LDQuMywxLjMsdmVyc2ljb2xvcgo2LjYsMy4wLDQuNCwxLjQsdmVyc2ljb2xvcgo2LjgsMi44LDQuOCwxLjQsdmVyc2ljb2xvcgo2LjcsMy4wLDUuMCwxLjcwMDAwMDAwMDAwMDAwMDIsdmVyc2ljb2xvcgo2LjAsMi45LDQuNSwxLjUsdmVyc2ljb2xvcgo1LjcsMi42LDMuNSwxLjAsdmVyc2ljb2xvcgo1LjUsMi40LDMuOCwxLjEsdmVyc2ljb2xvcgo1LjUsMi40LDMuNywxLjAsdmVyc2ljb2xvcgo1LjgsMi43LDMuOSwxLjIsdmVyc2ljb2xvcgo2LjAsMi43LDUuMSwxLjYsdmVyc2ljb2xvcgo1LjQsMy4wLDQuNSwxLjUsdmVyc2ljb2xvcgo2LjAsMy40LDQuNSwxLjYsdmVyc2ljb2xvcgo2LjcsMy4xLDQuNywxLjUsdmVyc2ljb2xvcgo2LjMsMi4zLDQuNCwxLjMsdmVyc2ljb2xvcgo1LjYsMy4wLDQuMSwxLjMsdmVyc2ljb2xvcgo1LjUsMi41LDQuMCwxLjMsdmVyc2ljb2xvcgo1LjUsMi42LDQuNCwxLjIsdmVyc2ljb2xvcgo2LjEsMy4wLDQuNiwxLjQsdmVyc2ljb2xvcgo1LjgsMi42LDQuMCwxLjIsdmVyc2ljb2xvcgo1LjAsMi4zLDMuMywxLjAsdmVyc2ljb2xvcgo1LjYsMi43LDQuMiwxLjMsdmVyc2ljb2xvcgo1LjcsMy4wLDQuMiwxLjIsdmVyc2ljb2xvcgo1LjcsMi45LDQuMiwxLjMsdmVyc2ljb2xvcgo2LjIsMi45LDQuMywxLjMsdmVyc2ljb2xvcgo1LjEsMi41LDMuMCwxLjEsdmVyc2ljb2xvcgo1LjcsMi44LDQuMSwxLjMsdmVyc2ljb2xvcgo2LjMsMy4zLDYuMCwyLjUsdmlyZ2luaWNhCjUuOCwyLjcsNS4xLDEuOSx2aXJnaW5pY2EKNy4xLDMuMCw1LjksMi4xLHZpcmdpbmljYQo2LjMsMi45LDUuNiwxLjgsdmlyZ2luaWNhCjYuNSwzLjAsNS44LDIuMix2aXJnaW5pY2EKNy42LDMuMCw2LjYsMi4xLHZpcmdpbmljYQo0LjksMi41LDQuNSwxLjcwMDAwMDAwMDAwMDAwMDIsdmlyZ2luaWNhCjcuMywyLjksNi4zLDEuOCx2aXJnaW5pY2EKNi43LDIuNSw1LjgsMS44LHZpcmdpbmljYQo3LjIsMy42LDYuMSwyLjUsdmlyZ2luaWNhCjYuNSwzLjIsNS4xLDIuMCx2aXJnaW5pY2EKNi40LDIuNyw1LjMsMS45LHZpcmdpbmljYQo2LjgsMy4wLDUuNSwyLjEsdmlyZ2luaWNhCjUuNywyLjUsNS4wLDIuMCx2aXJnaW5pY2EKNS44LDIuOCw1LjEsMi40LHZpcmdpbmljYQo2LjQsMy4yLDUuMywyLjMsdmlyZ2luaWNhCjYuNSwzLjAsNS41LDEuOCx2aXJnaW5pY2EKNy43LDMuOCw2LjcsMi4yLHZpcmdpbmljYQo3LjcsMi42LDYuOSwyLjMsdmlyZ2luaWNhCjYuMCwyLjIsNS4wLDEuNSx2aXJnaW5pY2EKNi45LDMuMiw1LjcsMi4zLHZpcmdpbmljYQo1LjYsMi44LDQuOSwyLjAsdmlyZ2luaWNhCjcuNywyLjgsNi43LDIuMCx2aXJnaW5pY2EKNi4zLDIuNyw0LjksMS44LHZpcmdpbmljYQo2LjcsMy4zLDUuNywyLjEsdmlyZ2luaWNhCjcuMiwzLjIsNi4wLDEuOCx2aXJnaW5pY2EKNi4yLDIuOCw0LjgsMS44LHZpcmdpbmljYQo2LjEsMy4wLDQuOSwxLjgsdmlyZ2luaWNhCjYuNCwyLjgsNS42LDIuMSx2aXJnaW5pY2EKNy4yLDMuMCw1LjgsMS42LHZpcmdpbmljYQo3LjQsMi44LDYuMSwxLjksdmlyZ2luaWNhCjcuOSwzLjgsNi40LDIuMCx2aXJnaW5pY2EKNi40LDIuOCw1LjYsMi4yLHZpcmdpbmljYQo2LjMsMi44LDUuMSwxLjUsdmlyZ2luaWNhCjYuMSwyLjYsNS42LDEuNCx2aXJnaW5pY2EKNy43LDMuMCw2LjEsMi4zLHZpcmdpbmljYQo2LjMsMy40LDUuNiwyLjQsdmlyZ2luaWNhCjYuNCwzLjEsNS41LDEuOCx2aXJnaW5pY2EKNi4wLDMuMCw0LjgsMS44LHZpcmdpbmljYQo2LjksMy4xLDUuNCwyLjEsdmlyZ2luaWNhCjYuNywzLjEsNS42LDIuNCx2aXJnaW5pY2EKNi45LDMuMSw1LjEsMi4zLHZpcmdpbmljYQo1LjgsMi43LDUuMSwxLjksdmlyZ2luaWNhCjYuOCwzLjIsNS45LDIuMyx2aXJnaW5pY2EKNi43LDMuMyw1LjcsMi41LHZpcmdpbmljYQo2LjcsMy4wLDUuMiwyLjMsdmlyZ2luaWNhCjYuMywyLjUsNS4wLDEuOSx2aXJnaW5pY2EKNi41LDMuMCw1LjIsMi4wLHZpcmdpbmljYQo2LjIsMy40LDUuNCwyLjMsdmlyZ2luaWNhCjUuOSwzLjAsNS4xLDEuOCx2aXJnaW5pY2EK&quot;'></marimo-data-explorer>" ] }, "metadata": {}, @@ -75,13 +37,8 @@ } ], "source": [ - "mo.md(\n", - " f\"\"\"\n", - " {mo.hstack([mo.md(\"**Upload a CSV.**\")], justify=\"center\")}\n", - "\n", - " {uploaded_file}\n", - " \"\"\"\n", - ")" + "explorer = mo.ui.data_explorer(data.iris())\n", + "explorer" ] }, { @@ -89,100 +46,17 @@ "execution_count": null, "id": "bkHC", "metadata": {}, - "outputs": [], - "source": [ - "mo.stop(not uploaded_file.name())\n", - "df = pd.read_csv(io.StringIO(uploaded_file.contents().decode()))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "lEQa", - "metadata": {}, - "outputs": [], - "source": [ - "mo.ui.table(df, page_size=5, selection=None)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "PKri", - "metadata": {}, - "outputs": [], - "source": [ - "plot_type = mo.ui.dropdown(\n", - " [\"line\", \"hist\"], value=\"line\", label=\"Choose a plot type: \"\n", - ")\n", - "\n", - "x_column = mo.ui.dropdown(df.columns, label=\"Choose x-axis: \")\n", - "y_column = mo.ui.dropdown(df.columns, label=\"Choose y-axis: \")\n", - "color_column = mo.ui.dropdown(df.columns, label=\"Choose color-axis: \")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "Xref", - "metadata": {}, - "outputs": [], - "source": [ - "mo.hstack(\n", - " [x_column, y_column, color_column, plot_type], justify=\"space-around\"\n", - ").callout(kind=\"warn\" if not x_column.value else \"neutral\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "SFPL", - "metadata": {}, - "outputs": [], - "source": [ - "mo.stop(not x_column.value)\n", - "\n", - "\n", - "def plot(x_column, y_column, color_column):\n", - " y_column = y_column or \"count()\"\n", - " title = f\"{y_column} by {x_column}\"\n", - " encoding = {\"x\": x_column, \"y\": y_column}\n", - " if color_column:\n", - " encoding[\"color\"] = color_column\n", - " if plot_type.value == \"line\":\n", - " chart = alt.Chart(df).mark_line()\n", - " else:\n", - " chart = alt.Chart(df).mark_bar().encode(x=alt.X(x_column, bin=True))\n", - " return chart.encode(**encoding).properties(title=title, width=\"container\")\n", - "\n", - "\n", - "plot(x_column.value, y_column.value, color_column.value)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "BYtC", - "metadata": {}, - "outputs": [], - "source": [ - "uploaded_file = mo.ui.file(filetypes=[\".csv\"], kind=\"area\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "RGSE", - "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/json": "{}" + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "import marimo as mo\n", - "import altair as alt\n", - "\n", - "\n", - "import io\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd" + "explorer.value" ] } ], diff --git a/generated/examples/ui/data_explorer.py.md b/generated/examples/ui/data_explorer.py.md index fa5a8fb..2be8645 100644 --- a/generated/examples/ui/data_explorer.py.md +++ b/generated/examples/ui/data_explorer.py.md @@ -1,88 +1,22 @@ --- title: Data Explorer -marimo-version: 0.9.34 -width: full +marimo-version: 0.11.0 +width: medium --- -# Data Explorer - -```{.python.marimo hide_code="true"} -sample = "https://github.com/vega/vega/blob/main/docs/data/stocks.csv" - -mo.md( - f""" - This notebook lets you upload a CSV and plot its columns. - - You can download a sample CSV if you'd like. - """ -) -``` - -```{.python.marimo hide_code="true"} -mo.md( - f""" - {mo.hstack([mo.md("**Upload a CSV.**")], justify="center")} - - {uploaded_file} - """ -) -``` - -```{.python.marimo} -mo.stop(not uploaded_file.name()) -df = pd.read_csv(io.StringIO(uploaded_file.contents().decode())) -``` - -```{.python.marimo} -mo.ui.table(df, page_size=5, selection=None) -``` - -```{.python.marimo} -plot_type = mo.ui.dropdown( - ["line", "hist"], value="line", label="Choose a plot type: " -) - -x_column = mo.ui.dropdown(df.columns, label="Choose x-axis: ") -y_column = mo.ui.dropdown(df.columns, label="Choose y-axis: ") -color_column = mo.ui.dropdown(df.columns, label="Choose color-axis: ") +```python {.marimo} +import marimo as mo ``` -```{.python.marimo} -mo.hstack( - [x_column, y_column, color_column, plot_type], justify="space-around" -).callout(kind="warn" if not x_column.value else "neutral") +```python {.marimo} +from vega_datasets import data ``` -```{.python.marimo} -mo.stop(not x_column.value) - - -def plot(x_column, y_column, color_column): - y_column = y_column or "count()" - title = f"{y_column} by {x_column}" - encoding = {"x": x_column, "y": y_column} - if color_column: - encoding["color"] = color_column - if plot_type.value == "line": - chart = alt.Chart(df).mark_line() - else: - chart = alt.Chart(df).mark_bar().encode(x=alt.X(x_column, bin=True)) - return chart.encode(**encoding).properties(title=title, width="container") - - -plot(x_column.value, y_column.value, color_column.value) +```python {.marimo} +explorer = mo.ui.data_explorer(data.iris()) +explorer ``` -```{.python.marimo} -uploaded_file = mo.ui.file(filetypes=[".csv"], kind="area") -``` - -```{.python.marimo} -import marimo as mo -import altair as alt - - -import io -import matplotlib.pyplot as plt -import pandas as pd +```python {.marimo} +explorer.value ``` \ No newline at end of file diff --git a/generated/examples/ui/data_explorer.script.py b/generated/examples/ui/data_explorer.script.py index 3fc1729..eae012b 100644 --- a/generated/examples/ui/data_explorer.script.py +++ b/generated/examples/ui/data_explorer.script.py @@ -1,77 +1,15 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo -import altair as alt - - -import io -import matplotlib.pyplot as plt -import pandas as pd - -# %% -mo.md("""# Data Explorer""") - -# %% -sample = "https://github.com/vega/vega/blob/main/docs/data/stocks.csv" - -mo.md( - f""" - This notebook lets you upload a CSV and plot its columns. - - You can download a sample CSV if you'd like. - """ -) - -# %% -uploaded_file = mo.ui.file(filetypes=[".csv"], kind="area") - -# %% -mo.md( - f""" - {mo.hstack([mo.md("**Upload a CSV.**")], justify="center")} - - {uploaded_file} - """ -) - -# %% -mo.stop(not uploaded_file.name()) -df = pd.read_csv(io.StringIO(uploaded_file.contents().decode())) # %% -mo.ui.table(df, page_size=5, selection=None) +from vega_datasets import data # %% -plot_type = mo.ui.dropdown( - ["line", "hist"], value="line", label="Choose a plot type: " -) - -x_column = mo.ui.dropdown(df.columns, label="Choose x-axis: ") -y_column = mo.ui.dropdown(df.columns, label="Choose y-axis: ") -color_column = mo.ui.dropdown(df.columns, label="Choose color-axis: ") +explorer = mo.ui.data_explorer(data.iris()) +explorer # %% -mo.hstack( - [x_column, y_column, color_column, plot_type], justify="space-around" -).callout(kind="warn" if not x_column.value else "neutral") - -# %% -mo.stop(not x_column.value) - - -def plot(x_column, y_column, color_column): - y_column = y_column or "count()" - title = f"{y_column} by {x_column}" - encoding = {"x": x_column, "y": y_column} - if color_column: - encoding["color"] = color_column - if plot_type.value == "line": - chart = alt.Chart(df).mark_line() - else: - chart = alt.Chart(df).mark_bar().encode(x=alt.X(x_column, bin=True)) - return chart.encode(**encoding).properties(title=title, width="container") - - -plot(x_column.value, y_column.value, color_column.value) \ No newline at end of file +explorer.value \ No newline at end of file diff --git a/generated/examples/ui/layout.py.md b/generated/examples/ui/layout.py.md index da80b79..d2e6033 100644 --- a/generated/examples/ui/layout.py.md +++ b/generated/examples/ui/layout.py.md @@ -1,13 +1,13 @@ --- title: Layout -marimo-version: 0.9.34 +marimo-version: 0.11.0 --- # Stacks Use `mo.hstack` and `mo.vstack` to layout outputs in rows and columns. -```{.python.marimo} +```python {.marimo} align = mo.ui.dropdown( label="Align", options=["start", "end", "center", "stretch"] ) @@ -32,7 +32,7 @@ mo.md( ## Horizontal Stack: `hstack` -```{.python.marimo} +```python {.marimo} mo.hstack( boxes, align=align.value, @@ -44,7 +44,7 @@ mo.hstack( ## Vertical Stack: `vstack` -```{.python.marimo} +```python {.marimo} mo.vstack( boxes, align=align.value, @@ -52,7 +52,7 @@ mo.vstack( ) ``` -```{.python.marimo} +```python {.marimo} def create_box(num): box_size = size.value + num * 10 return mo.Html( @@ -63,6 +63,6 @@ def create_box(num): boxes = [create_box(i) for i in range(1, 5)] ``` -```{.python.marimo} +```python {.marimo} import marimo as mo ``` \ No newline at end of file diff --git a/generated/examples/ui/layout.script.py b/generated/examples/ui/layout.script.py index d800ef4..1b3d39d 100644 --- a/generated/examples/ui/layout.script.py +++ b/generated/examples/ui/layout.script.py @@ -1,5 +1,5 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo diff --git a/generated/examples/ui/refresh.py.ipynb b/generated/examples/ui/refresh.py.ipynb index 96f3bb0..4e1c07a 100644 --- a/generated/examples/ui/refresh.py.ipynb +++ b/generated/examples/ui/refresh.py.ipynb @@ -7,20 +7,7 @@ "metadata": {}, "outputs": [], "source": [ - "mo.hstack([\n", - " mo.vstack([\n", - " mo.md(\"## Settings | [`marimo.ui.slider`](https://docs.marimo.io/api/inputs/slider.html), [`marimo.ui.refresh`](https://docs.marimo.io/recipes.html#run-a-cell-on-a-timer)\\n---\"),\n", - " refresh_interval_slider,\n", - " n_points_slider,\n", - " refresher,\n", - " mo.md(\"## ISS Positions | [`marimo.ui.altair_chart`](https://docs.marimo.io/api/plotting.html#marimo.ui.altair_chart)\\n---\"),\n", - " mo.as_html(chart).style({\"width\": \"700px\"})\n", - " ], align=\"center\"),\n", - " mo.vstack([\n", - " mo.md(\"## Data | [`marimo.as_html`](https://docs.marimo.io/api/html.html)`(pd.DataFrame)`\\n---\"),\n", - " mo.as_html(iss_df)\n", - " ])\n", - "], justify=\"center\", wrap=True, gap=3)" + "import marimo as mo" ] }, { @@ -28,27 +15,20 @@ "execution_count": null, "id": "MJUe", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "<marimo-refresh data-initial-value='0' data-label='null' data-options='[1]' data-default-interval='1'></marimo-refresh>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "hover=alt.selection_point(on=\"mouseover\", clear=\"mouseout\")\n", - "\n", - "# iss positions\n", - "iss_df = get_iss_positions()\n", - "iss = alt.Chart(iss_df[['longitude','latitude','timestamp']]).mark_circle(\n", - " stroke='black', size=100,\n", - ").encode(\n", - " longitude=alt.Longitude('longitude:Q'),\n", - " latitude='latitude:Q',\n", - " fill=alt.Fill('timestamp:Q', scale=alt.Scale(scheme='purples'), legend=None),\n", - " strokeWidth=alt.condition(hover, alt.value(3, empty=False), alt.value(0)),\n", - " tooltip=[\n", - " alt.Tooltip('longitude:Q', title='Longitude', format='.4f'),\n", - " alt.Tooltip('latitude:Q', title='Latitude', format='.4f'),\n", - " alt.Tooltip('timestamp:T', title='Timestamp', format='%Y-%m-%d %H:%M:%S')\n", - " ]\n", - ").add_params(hover)\n", - "\n", - "chart = alt.layer(sphere, world, iss).project(type=\"naturalEarth1\").properties(width=640, title=\"\")" + "refresh = mo.ui.refresh(default_interval=1)\n", + "refresh" ] }, { @@ -56,95 +36,17 @@ "execution_count": null, "id": "vblA", "metadata": {}, - "outputs": [], - "source": [ - "# load geo data from Vega Datasets\n", - "countries = alt.topo_feature(data.world_110m.url, 'countries')\n", - "\n", - "# world base\n", - "sphere = alt.Chart(alt.sphere()).mark_geoshape(\n", - " fill=\"aliceblue\", stroke=\"black\", strokeWidth=1.5\n", - ")\n", - "\n", - "# world map\n", - "world = alt.Chart(countries).mark_geoshape(\n", - " fill=\"mintcream\", stroke=\"black\", strokeWidth=0.35\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bkHC", - "metadata": {}, - "outputs": [], - "source": [ - "def get_iss_positions(refresher=refresher):\n", - " refresher\n", - " timepoints = [int(time())]\n", - " while len(timepoints) <= n_points_slider.value:\n", - " timepoints.append(timepoints[-1] - refresh_interval_slider.value)\n", - " else:\n", - " timepoints.pop(0)\n", - " timepoints_str = str(timepoints)[1:-1].replace(\" \", \"\")\n", - " iss_url = f\"https://api.wheretheiss.at/v1/satellites/25544/positions?timestamps={timepoints_str}\"\n", - " response = requests.get(iss_url)\n", - " df = pd.DataFrame(response.json())\n", - " df['timestamp'] = pd.to_datetime(df.timestamp, unit='s')\n", - " return df[['timestamp','latitude','longitude','altitude','velocity','visibility']]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "lEQa", - "metadata": {}, - "outputs": [], - "source": [ - "refresher = mo.ui.refresh(default_interval=f\"{refresh_interval_slider.value}s\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "PKri", - "metadata": {}, - "outputs": [], - "source": [ - "refresh_interval_slider = mo.ui.slider(start=5, stop=60, step=1, value=10, label=\"refresh interval (default = 10 sec)\")\n", - "n_points_slider = mo.ui.slider(start=5, stop=30, step=1, value=15, label=\"number of points (default = 15)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "Xref", - "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "
Traceback (most recent call last):\n",
-      "  File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/marimo/_runtime/executor.py", line 157, in execute_cell\n",
-      "    exec(cell.body, glbls)\n",
-      "  File "/tmp/marimo_2081/__marimo__cell_Xref_.py", line 4, in <module>\n",
-      "    import requests\n",
-      "ModuleNotFoundError: No module named 'requests'\n",
-      "
\n", - "
" + "0\n" ] } ], "source": [ - "import altair as alt\n", - "import marimo as mo\n", - "import pandas as pd\n", - "import requests\n", - "from time import time\n", - "from vega_datasets import data\n", - "\n", - "pd.options.display.max_rows = 30" + "print(refresh.value)" ] } ], diff --git a/generated/examples/ui/refresh.py.md b/generated/examples/ui/refresh.py.md index 07126cf..f4760bf 100644 --- a/generated/examples/ui/refresh.py.md +++ b/generated/examples/ui/refresh.py.md @@ -1,95 +1,17 @@ --- title: Refresh -marimo-version: 0.9.34 -width: full +marimo-version: 0.11.0 --- -```{.python.marimo} -mo.hstack([ - mo.vstack([ - mo.md("## Settings | [`marimo.ui.slider`](https://docs.marimo.io/api/inputs/slider.html), [`marimo.ui.refresh`](https://docs.marimo.io/recipes.html#run-a-cell-on-a-timer)\n---"), - refresh_interval_slider, - n_points_slider, - refresher, - mo.md("## ISS Positions | [`marimo.ui.altair_chart`](https://docs.marimo.io/api/plotting.html#marimo.ui.altair_chart)\n---"), - mo.as_html(chart).style({"width": "700px"}) - ], align="center"), - mo.vstack([ - mo.md("## Data | [`marimo.as_html`](https://docs.marimo.io/api/html.html)`(pd.DataFrame)`\n---"), - mo.as_html(iss_df) - ]) -], justify="center", wrap=True, gap=3) -``` - -```{.python.marimo} -hover=alt.selection_point(on="mouseover", clear="mouseout") - -# iss positions -iss_df = get_iss_positions() -iss = alt.Chart(iss_df[['longitude','latitude','timestamp']]).mark_circle( - stroke='black', size=100, -).encode( - longitude=alt.Longitude('longitude:Q'), - latitude='latitude:Q', - fill=alt.Fill('timestamp:Q', scale=alt.Scale(scheme='purples'), legend=None), - strokeWidth=alt.condition(hover, alt.value(3, empty=False), alt.value(0)), - tooltip=[ - alt.Tooltip('longitude:Q', title='Longitude', format='.4f'), - alt.Tooltip('latitude:Q', title='Latitude', format='.4f'), - alt.Tooltip('timestamp:T', title='Timestamp', format='%Y-%m-%d %H:%M:%S') - ] -).add_params(hover) - -chart = alt.layer(sphere, world, iss).project(type="naturalEarth1").properties(width=640, title="") -``` - -```{.python.marimo} -# load geo data from Vega Datasets -countries = alt.topo_feature(data.world_110m.url, 'countries') - -# world base -sphere = alt.Chart(alt.sphere()).mark_geoshape( - fill="aliceblue", stroke="black", strokeWidth=1.5 -) - -# world map -world = alt.Chart(countries).mark_geoshape( - fill="mintcream", stroke="black", strokeWidth=0.35 -) -``` - -```{.python.marimo} -def get_iss_positions(refresher=refresher): - refresher - timepoints = [int(time())] - while len(timepoints) <= n_points_slider.value: - timepoints.append(timepoints[-1] - refresh_interval_slider.value) - else: - timepoints.pop(0) - timepoints_str = str(timepoints)[1:-1].replace(" ", "") - iss_url = f"https://api.wheretheiss.at/v1/satellites/25544/positions?timestamps={timepoints_str}" - response = requests.get(iss_url) - df = pd.DataFrame(response.json()) - df['timestamp'] = pd.to_datetime(df.timestamp, unit='s') - return df[['timestamp','latitude','longitude','altitude','velocity','visibility']] -``` - -```{.python.marimo} -refresher = mo.ui.refresh(default_interval=f"{refresh_interval_slider.value}s") +```python {.marimo} +import marimo as mo ``` -```{.python.marimo} -refresh_interval_slider = mo.ui.slider(start=5, stop=60, step=1, value=10, label="refresh interval (default = 10 sec)") -n_points_slider = mo.ui.slider(start=5, stop=30, step=1, value=15, label="number of points (default = 15)") +```python {.marimo} +refresh = mo.ui.refresh(default_interval=1) +refresh ``` -```{.python.marimo} -import altair as alt -import marimo as mo -import pandas as pd -import requests -from time import time -from vega_datasets import data - -pd.options.display.max_rows = 30 +```python {.marimo} +print(refresh.value) ``` \ No newline at end of file diff --git a/generated/examples/ui/refresh.script.py b/generated/examples/ui/refresh.script.py index cb04ecf..86c96bc 100644 --- a/generated/examples/ui/refresh.script.py +++ b/generated/examples/ui/refresh.script.py @@ -1,85 +1,12 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% -import altair as alt import marimo as mo -import pandas as pd -import requests -from time import time -from vega_datasets import data - -pd.options.display.max_rows = 30 - -# %% -# load geo data from Vega Datasets -countries = alt.topo_feature(data.world_110m.url, 'countries') - -# world base -sphere = alt.Chart(alt.sphere()).mark_geoshape( - fill="aliceblue", stroke="black", strokeWidth=1.5 -) - -# world map -world = alt.Chart(countries).mark_geoshape( - fill="mintcream", stroke="black", strokeWidth=0.35 -) - -# %% -refresh_interval_slider = mo.ui.slider(start=5, stop=60, step=1, value=10, label="refresh interval (default = 10 sec)") -n_points_slider = mo.ui.slider(start=5, stop=30, step=1, value=15, label="number of points (default = 15)") # %% -refresher = mo.ui.refresh(default_interval=f"{refresh_interval_slider.value}s") - -# %% -def get_iss_positions(refresher=refresher): - refresher - timepoints = [int(time())] - while len(timepoints) <= n_points_slider.value: - timepoints.append(timepoints[-1] - refresh_interval_slider.value) - else: - timepoints.pop(0) - timepoints_str = str(timepoints)[1:-1].replace(" ", "") - iss_url = f"https://api.wheretheiss.at/v1/satellites/25544/positions?timestamps={timepoints_str}" - response = requests.get(iss_url) - df = pd.DataFrame(response.json()) - df['timestamp'] = pd.to_datetime(df.timestamp, unit='s') - return df[['timestamp','latitude','longitude','altitude','velocity','visibility']] - -# %% -hover=alt.selection_point(on="mouseover", clear="mouseout") - -# iss positions -iss_df = get_iss_positions() -iss = alt.Chart(iss_df[['longitude','latitude','timestamp']]).mark_circle( - stroke='black', size=100, -).encode( - longitude=alt.Longitude('longitude:Q'), - latitude='latitude:Q', - fill=alt.Fill('timestamp:Q', scale=alt.Scale(scheme='purples'), legend=None), - strokeWidth=alt.condition(hover, alt.value(3, empty=False), alt.value(0)), - tooltip=[ - alt.Tooltip('longitude:Q', title='Longitude', format='.4f'), - alt.Tooltip('latitude:Q', title='Latitude', format='.4f'), - alt.Tooltip('timestamp:T', title='Timestamp', format='%Y-%m-%d %H:%M:%S') - ] -).add_params(hover) - -chart = alt.layer(sphere, world, iss).project(type="naturalEarth1").properties(width=640, title="") +refresh = mo.ui.refresh(default_interval=1) +refresh # %% -mo.hstack([ - mo.vstack([ - mo.md("## Settings | [`marimo.ui.slider`](https://docs.marimo.io/api/inputs/slider.html), [`marimo.ui.refresh`](https://docs.marimo.io/recipes.html#run-a-cell-on-a-timer)\n---"), - refresh_interval_slider, - n_points_slider, - refresher, - mo.md("## ISS Positions | [`marimo.ui.altair_chart`](https://docs.marimo.io/api/plotting.html#marimo.ui.altair_chart)\n---"), - mo.as_html(chart).style({"width": "700px"}) - ], align="center"), - mo.vstack([ - mo.md("## Data | [`marimo.as_html`](https://docs.marimo.io/api/html.html)`(pd.DataFrame)`\n---"), - mo.as_html(iss_df) - ]) -], justify="center", wrap=True, gap=3) \ No newline at end of file +print(refresh.value) \ No newline at end of file diff --git a/generated/examples/ui/table.py.ipynb b/generated/examples/ui/table.py.ipynb index 1b5d013..d24dcd7 100644 --- a/generated/examples/ui/table.py.ipynb +++ b/generated/examples/ui/table.py.ipynb @@ -1,110 +1,25 @@ { "cells": [ - { - "cell_type": "markdown", - "id": "Hbol", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, - "source": [ - "# Tables\n", - "\n", - "> “Sometimes I’ll start a sentence and I don’t even know where it’s going. I just hope I find it along the way.”\n", - "— Michael Scott" - ] - }, - { - "cell_type": "markdown", - "id": "MJUe", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, - "source": [ - "_Create rich tables with selectable rows using_ `mo.ui.table`." - ] - }, - { - "cell_type": "markdown", - "id": "vblA", - "metadata": {}, - "source": [ - "**Single selection.**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bkHC", - "metadata": {}, - "outputs": [], - "source": [ - "single_select_table = mo.ui.table(\n", - " office_characters,\n", - " selection=\"single\",\n", - " pagination=True,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "lEQa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "<marimo-tabs data-initial-value='&quot;&quot;' data-label='null' data-tabs='[&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;table&lt;/span&gt;&lt;/span&gt;&quot;, &quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;selection&lt;/span&gt;&lt;/span&gt;&quot;]'><div data-kind='tab'><marimo-ui-element object-id='bkHC-0' random-id='a9488d99-0bbb-2599-11ce-5dd2b45ed1f0'><marimo-table data-initial-value='[]' data-label='null' data-data='[{&quot;first_name&quot;: &quot;Michael&quot;, &quot;last_name&quot;: &quot;Scott&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; style=&#x27;border-radius: 4px&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Jim&quot;, &quot;last_name&quot;: &quot;Halpert&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Pam&quot;, &quot;last_name&quot;: &quot;Beesly&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Dwight&quot;, &quot;last_name&quot;: &quot;Schrute&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Angela&quot;, &quot;last_name&quot;: &quot;Martin&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Kevin&quot;, &quot;last_name&quot;: &quot;Malone&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Oscar&quot;, &quot;last_name&quot;: &quot;Martinez&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Stanley&quot;, &quot;last_name&quot;: &quot;Hudson&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Phyllis&quot;, &quot;last_name&quot;: &quot;Vance&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Meredith&quot;, &quot;last_name&quot;: &quot;Palmer&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}]' data-total-rows='20' data-total-columns='1' data-banner-text='&quot;&quot;' data-pagination='true' data-page-size='10' data-selection='&quot;single&quot;' data-show-filters='false' data-show-download='true' data-show-column-summaries='true' data-row-headers='[]'></marimo-table></marimo-ui-element></div><div data-kind='tab'><marimo-json-output data-json-data='[]'></marimo-json-output></div></marimo-tabs>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "mo.ui.tabs({\"table\": single_select_table, \"selection\": single_select_table.value})" - ] - }, - { - "cell_type": "markdown", - "id": "PKri", - "metadata": {}, - "source": [ - "**Multi-selection.**" - ] - }, { "cell_type": "code", "execution_count": null, - "id": "Xref", + "id": "Hbol", "metadata": {}, "outputs": [], "source": [ - "multi_select_table = mo.ui.table(\n", - " office_characters,\n", - " selection=\"multi\",\n", - " pagination=True,\n", - ")" + "import marimo as mo" ] }, { "cell_type": "code", "execution_count": null, - "id": "SFPL", + "id": "MJUe", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "<marimo-tabs data-initial-value='&quot;&quot;' data-label='null' data-tabs='[&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;table&lt;/span&gt;&lt;/span&gt;&quot;, &quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;selection&lt;/span&gt;&lt;/span&gt;&quot;]'><div data-kind='tab'><marimo-ui-element object-id='Xref-0' random-id='ddd1dfb2-3b98-2ef8-daf6-1a26146d3f31'><marimo-table data-initial-value='[]' data-label='null' data-data='[{&quot;first_name&quot;: &quot;Michael&quot;, &quot;last_name&quot;: &quot;Scott&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; style=&#x27;border-radius: 4px&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Jim&quot;, &quot;last_name&quot;: &quot;Halpert&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Pam&quot;, &quot;last_name&quot;: &quot;Beesly&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Dwight&quot;, &quot;last_name&quot;: &quot;Schrute&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Angela&quot;, &quot;last_name&quot;: &quot;Martin&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Kevin&quot;, &quot;last_name&quot;: &quot;Malone&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Oscar&quot;, &quot;last_name&quot;: &quot;Martinez&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;3&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Stanley&quot;, &quot;last_name&quot;: &quot;Hudson&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Phyllis&quot;, &quot;last_name&quot;: &quot;Vance&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;5&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}, {&quot;first_name&quot;: &quot;Meredith&quot;, &quot;last_name&quot;: &quot;Palmer&quot;, &quot;skill&quot;: {&quot;mimetype&quot;: &quot;text/markdown&quot;, &quot;data&quot;: &quot;&amp;lt;marimo-slider data-initial-value=&amp;#x27;7&amp;#x27; data-label=&amp;#x27;null&amp;#x27; data-start=&amp;#x27;1&amp;#x27; data-stop=&amp;#x27;10&amp;#x27; data-steps=&amp;#x27;[]&amp;#x27; data-debounce=&amp;#x27;false&amp;#x27; data-orientation=&amp;#x27;&amp;amp;quot;horizontal&amp;amp;quot;&amp;#x27; data-show-value=&amp;#x27;false&amp;#x27; data-full-width=&amp;#x27;false&amp;#x27;&amp;gt;&amp;lt;/marimo-slider&amp;gt;&quot;}, &quot;favorite place&quot;: {&quot;mimetype&quot;: &quot;text/html&quot;, &quot;data&quot;: &quot;&lt;img src=&#x27;https://picsum.photos/100&#x27; /&gt;&quot;}}]' data-total-rows='20' data-total-columns='1' data-banner-text='&quot;&quot;' data-pagination='true' data-page-size='10' data-selection='&quot;multi&quot;' data-show-filters='false' data-show-download='true' data-show-column-summaries='true' data-row-headers='[]'></marimo-table></marimo-ui-element></div><div data-kind='tab'><marimo-json-output data-json-data='[]'></marimo-json-output></div></marimo-tabs>" + "[{'first_name': 'Michael', 'last_name': 'Scott'}, {'first_name': 'Jim', 'last_name': 'Halpert'}, {'first_name': 'Pam', 'last_name': 'Beesly'}]" ] }, "metadata": {}, @@ -112,182 +27,34 @@ } ], "source": [ - "mo.ui.tabs({\"table\": multi_select_table, \"selection\": multi_select_table.value})" - ] - }, - { - "cell_type": "markdown", - "id": "BYtC", - "metadata": {}, - "source": [ - "**No selection.**" + "# ui.table accepts a list of rows as dicts, or a dict mapping column names to values,\n", + "# or a dataframe-like object\n", + "table = mo.ui.table(\n", + " [\n", + " {\"first_name\": \"Michael\", \"last_name\": \"Scott\"},\n", + " {\"first_name\": \"Jim\", \"last_name\": \"Halpert\"},\n", + " {\"first_name\": \"Pam\", \"last_name\": \"Beesly\"},\n", + " ]\n", + ")\n", + "table" ] }, { "cell_type": "code", "execution_count": null, - "id": "RGSE", + "id": "vblA", "metadata": {}, "outputs": [ { "data": { - "text/markdown": [ - "[{'first_name': 'Michael', 'last_name': 'Scott', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Jim', 'last_name': 'Halpert', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Pam', 'last_name': 'Beesly', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Dwight', 'last_name': 'Schrute', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Angela', 'last_name': 'Martin', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Kevin', 'last_name': 'Malone', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Oscar', 'last_name': 'Martinez', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Stanley', 'last_name': 'Hudson', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Phyllis', 'last_name': 'Vance', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Meredith', 'last_name': 'Palmer', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Creed', 'last_name': 'Bratton', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Ryan', 'last_name': 'Howard', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Kelly', 'last_name': 'Kapoor', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Toby', 'last_name': 'Flenderson', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Darryl', 'last_name': 'Philbin', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Erin', 'last_name': 'Hannon', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Andy', 'last_name': 'Bernard', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Jan', 'last_name': 'Levinson', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'David', 'last_name': 'Wallace', 'skill': slider(), 'favorite place': Html()}, {'first_name': 'Holly', 'last_name': 'Flax', 'skill': slider(), 'favorite place': Html()}]" - ] + "application/json": "[]" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "table = mo.ui.table(\n", - " office_characters,\n", - " label=\"Employees\",\n", - " selection=None,\n", - ")\n", - "\n", - "table" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "Kclp", - "metadata": {}, - "outputs": [], - "source": [ - "office_characters = [\n", - " {\n", - " \"first_name\": \"Michael\",\n", - " \"last_name\": \"Scott\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\", rounded=True),\n", - " },\n", - " {\n", - " \"first_name\": \"Jim\",\n", - " \"last_name\": \"Halpert\",\n", - " \"skill\": mo.ui.slider(1, 10, value=7),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Pam\",\n", - " \"last_name\": \"Beesly\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Dwight\",\n", - " \"last_name\": \"Schrute\",\n", - " \"skill\": mo.ui.slider(1, 10, value=7),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Angela\",\n", - " \"last_name\": \"Martin\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Kevin\",\n", - " \"last_name\": \"Malone\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Oscar\",\n", - " \"last_name\": \"Martinez\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Stanley\",\n", - " \"last_name\": \"Hudson\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Phyllis\",\n", - " \"last_name\": \"Vance\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Meredith\",\n", - " \"last_name\": \"Palmer\",\n", - " \"skill\": mo.ui.slider(1, 10, value=7),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Creed\",\n", - " \"last_name\": \"Bratton\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Ryan\",\n", - " \"last_name\": \"Howard\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Kelly\",\n", - " \"last_name\": \"Kapoor\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Toby\",\n", - " \"last_name\": \"Flenderson\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Darryl\",\n", - " \"last_name\": \"Philbin\",\n", - " \"skill\": mo.ui.slider(1, 10, value=7),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Erin\",\n", - " \"last_name\": \"Hannon\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Andy\",\n", - " \"last_name\": \"Bernard\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Jan\",\n", - " \"last_name\": \"Levinson\",\n", - " \"skill\": mo.ui.slider(1, 10, value=5),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"David\",\n", - " \"last_name\": \"Wallace\",\n", - " \"skill\": mo.ui.slider(1, 10, value=3),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - " {\n", - " \"first_name\": \"Holly\",\n", - " \"last_name\": \"Flax\",\n", - " \"skill\": mo.ui.slider(1, 10, value=7),\n", - " \"favorite place\": mo.image(src=\"https://picsum.photos/100\"),\n", - " },\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "emfo", - "metadata": {}, - "outputs": [], - "source": [ - "import marimo as mo" + "table.value" ] } ], diff --git a/generated/examples/ui/table.py.md b/generated/examples/ui/table.py.md index ce6c202..16f724a 100644 --- a/generated/examples/ui/table.py.md +++ b/generated/examples/ui/table.py.md @@ -1,180 +1,25 @@ --- title: Table -marimo-version: 0.9.34 +marimo-version: 0.11.0 --- -# Tables - -> “Sometimes I’ll start a sentence and I don’t even know where it’s going. I just hope I find it along the way.” -— Michael Scott - -_Create rich tables with selectable rows using_ `mo.ui.table`. - -**Single selection.** - -```{.python.marimo} -single_select_table = mo.ui.table( - office_characters, - selection="single", - pagination=True, -) -``` - -```{.python.marimo} -mo.ui.tabs({"table": single_select_table, "selection": single_select_table.value}) -``` - -**Multi-selection.** - -```{.python.marimo} -multi_select_table = mo.ui.table( - office_characters, - selection="multi", - pagination=True, -) -``` - -```{.python.marimo} -mo.ui.tabs({"table": multi_select_table, "selection": multi_select_table.value}) +```python {.marimo} +import marimo as mo ``` -**No selection.** - -```{.python.marimo} +```python {.marimo} +# ui.table accepts a list of rows as dicts, or a dict mapping column names to values, +# or a dataframe-like object table = mo.ui.table( - office_characters, - label="Employees", - selection=None, + [ + {"first_name": "Michael", "last_name": "Scott"}, + {"first_name": "Jim", "last_name": "Halpert"}, + {"first_name": "Pam", "last_name": "Beesly"}, + ] ) - table ``` -```{.python.marimo} -office_characters = [ - { - "first_name": "Michael", - "last_name": "Scott", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100", rounded=True), - }, - { - "first_name": "Jim", - "last_name": "Halpert", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Pam", - "last_name": "Beesly", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Dwight", - "last_name": "Schrute", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Angela", - "last_name": "Martin", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Kevin", - "last_name": "Malone", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Oscar", - "last_name": "Martinez", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Stanley", - "last_name": "Hudson", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Phyllis", - "last_name": "Vance", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Meredith", - "last_name": "Palmer", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Creed", - "last_name": "Bratton", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Ryan", - "last_name": "Howard", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Kelly", - "last_name": "Kapoor", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Toby", - "last_name": "Flenderson", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Darryl", - "last_name": "Philbin", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Erin", - "last_name": "Hannon", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Andy", - "last_name": "Bernard", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Jan", - "last_name": "Levinson", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "David", - "last_name": "Wallace", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Holly", - "last_name": "Flax", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, -] -``` - -```{.python.marimo} -import marimo as mo +```python {.marimo} +table.value ``` \ No newline at end of file diff --git a/generated/examples/ui/table.script.py b/generated/examples/ui/table.script.py index b8fed10..baa5905 100644 --- a/generated/examples/ui/table.script.py +++ b/generated/examples/ui/table.script.py @@ -1,180 +1,20 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo # %% -mo.md( - """ - # Tables - - > “Sometimes I’ll start a sentence and I don’t even know where it’s going. I just hope I find it along the way.” - — Michael Scott - """ -) - -# %% -mo.md("""_Create rich tables with selectable rows using_ `mo.ui.table`.""") - -# %% -mo.md("""**Single selection.**""") - -# %% -mo.md("""**Multi-selection.**""") - -# %% -mo.md("""**No selection.**""") - -# %% -office_characters = [ - { - "first_name": "Michael", - "last_name": "Scott", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100", rounded=True), - }, - { - "first_name": "Jim", - "last_name": "Halpert", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Pam", - "last_name": "Beesly", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Dwight", - "last_name": "Schrute", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Angela", - "last_name": "Martin", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Kevin", - "last_name": "Malone", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Oscar", - "last_name": "Martinez", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Stanley", - "last_name": "Hudson", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Phyllis", - "last_name": "Vance", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Meredith", - "last_name": "Palmer", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Creed", - "last_name": "Bratton", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Ryan", - "last_name": "Howard", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Kelly", - "last_name": "Kapoor", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Toby", - "last_name": "Flenderson", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Darryl", - "last_name": "Philbin", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Erin", - "last_name": "Hannon", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Andy", - "last_name": "Bernard", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Jan", - "last_name": "Levinson", - "skill": mo.ui.slider(1, 10, value=5), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "David", - "last_name": "Wallace", - "skill": mo.ui.slider(1, 10, value=3), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, - { - "first_name": "Holly", - "last_name": "Flax", - "skill": mo.ui.slider(1, 10, value=7), - "favorite place": mo.image(src="https://picsum.photos/100"), - }, -] - -# %% -single_select_table = mo.ui.table( - office_characters, - selection="single", - pagination=True, -) - -# %% -mo.ui.tabs({"table": single_select_table, "selection": single_select_table.value}) - -# %% -multi_select_table = mo.ui.table( - office_characters, - selection="multi", - pagination=True, -) - -# %% -mo.ui.tabs({"table": multi_select_table, "selection": multi_select_table.value}) - -# %% +# ui.table accepts a list of rows as dicts, or a dict mapping column names to values, +# or a dataframe-like object table = mo.ui.table( - office_characters, - label="Employees", - selection=None, + [ + {"first_name": "Michael", "last_name": "Scott"}, + {"first_name": "Jim", "last_name": "Halpert"}, + {"first_name": "Pam", "last_name": "Beesly"}, + ] ) +table -table \ No newline at end of file +# %% +table.value \ No newline at end of file diff --git a/generated/examples/ui/tabs.py.ipynb b/generated/examples/ui/tabs.py.ipynb index f8f1308..1cfb8e6 100644 --- a/generated/examples/ui/tabs.py.ipynb +++ b/generated/examples/ui/tabs.py.ipynb @@ -1,43 +1,25 @@ { "cells": [ { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "id": "Hbol", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, - "source": [ - "# Tabs" - ] - }, - { - "cell_type": "markdown", - "id": "MJUe", - "metadata": { - "marimo": { - "config": { - "hide_code": true - } - } - }, + "metadata": {}, + "outputs": [], "source": [ - "Use `mo.ui.tabs` to organize outputs." + "import marimo as mo" ] }, { "cell_type": "code", "execution_count": null, - "id": "vblA", + "id": "MJUe", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "<marimo-tabs data-initial-value='&quot;&quot;' data-label='null' data-tabs='[&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&#92;ud83e&#92;uddd9&#92;u200d&#92;u2640 User&lt;/span&gt;&lt;/span&gt;&quot;, &quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;&#92;ud83c&#92;udfe2 Organization&lt;/span&gt;&lt;/span&gt;&quot;]'><div data-kind='tab'><div style='display: flex;flex: 1;flex-direction: column;justify-content: flex-start;align-items: normal;flex-wrap: nowrap;gap: 0.5rem'><div><span class="markdown prose dark:prose-invert"><span class="paragraph">Edit User</span></span></div><div><marimo-ui-element object-id='vblA-0' random-id='bdd640fb-0667-1ad1-1c80-317fa3b1799d'><marimo-text data-initial-value='&quot;&quot;' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;First Name&lt;/span&gt;&lt;/span&gt;&quot;' data-placeholder='&quot;&quot;' data-kind='&quot;text&quot;' data-full-width='false' data-disabled='false' data-debounce='true'></marimo-text></marimo-ui-element></div><div><marimo-ui-element object-id='vblA-1' random-id='23b8c1e9-3924-56de-3eb1-3b9046685257'><marimo-text data-initial-value='&quot;&quot;' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;Last Name&lt;/span&gt;&lt;/span&gt;&quot;' data-placeholder='&quot;&quot;' data-kind='&quot;text&quot;' data-full-width='false' data-disabled='false' data-debounce='true'></marimo-text></marimo-ui-element></div></div></div><div data-kind='tab'><div style='display: flex;flex: 1;flex-direction: column;justify-content: flex-start;align-items: normal;flex-wrap: nowrap;gap: 0.5rem'><div><span class="markdown prose dark:prose-invert"><span class="paragraph">Edit Organization</span></span></div><div><marimo-ui-element object-id='vblA-2' random-id='bd9c66b3-ad3c-2d6d-1a3d-1fa7bc8960a9'><marimo-text data-initial-value='&quot;...&quot;' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;Organization Name&lt;/span&gt;&lt;/span&gt;&quot;' data-placeholder='&quot;&quot;' data-kind='&quot;text&quot;' data-full-width='false' data-disabled='false' data-debounce='true'></marimo-text></marimo-ui-element></div><div><marimo-ui-element object-id='vblA-3' random-id='972a8469-1641-9f82-8b9d-2434e465e150'><marimo-number data-initial-value='0' data-label='&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;Number of Employees&lt;/span&gt;&lt;/span&gt;&quot;' data-start='0' data-stop='1000' data-debounce='false' data-full-width='false'></marimo-number></marimo-ui-element></div></div></div></marimo-tabs>" + "<marimo-tabs data-initial-value='&quot;&quot;' data-label='null' data-tabs='[&quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;Bob says&lt;/span&gt;&lt;/span&gt;&quot;, &quot;&lt;span class=&#92;&quot;markdown prose dark:prose-invert&#92;&quot;&gt;&lt;span class=&#92;&quot;paragraph&#92;&quot;&gt;Alice says&lt;/span&gt;&lt;/span&gt;&quot;]'><div data-kind='tab'><span class="markdown prose dark:prose-invert"><span class="paragraph">Hello, Alice! 👋</span></span></div><div data-kind='tab'><span class="markdown prose dark:prose-invert"><span class="paragraph">Hello, Bob! 👋</span></span></div></marimo-tabs>" ] }, "metadata": {}, @@ -45,57 +27,31 @@ } ], "source": [ - "settings = mo.vstack(\n", - " [\n", - " mo.md(\"Edit User\"),\n", - " first := mo.ui.text(label=\"First Name\"),\n", - " last := mo.ui.text(label=\"Last Name\"),\n", - " ]\n", - ")\n", - "\n", - "organization = mo.vstack(\n", - " [\n", - " mo.md(\"Edit Organization\"),\n", - " org := mo.ui.text(label=\"Organization Name\", value=\"...\"),\n", - " employees := mo.ui.number(\n", - " label=\"Number of Employees\", start=0, stop=1000\n", - " ),\n", - " ]\n", - ")\n", - "\n", - "mo.ui.tabs(\n", - " {\n", - " \"🧙‍♀ User\": settings,\n", - " \"🏢 Organization\": organization,\n", - " }\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bkHC", - "metadata": {}, - "outputs": [], - "source": [ - "mo.md(\n", - " f\"\"\"\n", - " Welcome **{first.value} {last.value}** to **{org.value}**! You are \n", - " employee no. **{employees.value + 1}**.\n", - "\n", - " #{\"🎉\" * (min(employees.value + 1, 1000))} \n", - " \"\"\"\n", - ") if all([first.value, last.value, org.value]) else None" + "tabs = mo.ui.tabs({\n", + " \"Bob says\": mo.md(\"Hello, Alice! 👋\"),\n", + " \"Alice says\": mo.md(\"Hello, Bob! 👋\")\n", + "})\n", + "tabs" ] }, { "cell_type": "code", "execution_count": null, - "id": "lEQa", + "id": "vblA", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
'Bob says'
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "import marimo as mo" + "tabs.value" ] } ], diff --git a/generated/examples/ui/tabs.py.md b/generated/examples/ui/tabs.py.md index 11ba923..aa1a0ce 100644 --- a/generated/examples/ui/tabs.py.md +++ b/generated/examples/ui/tabs.py.md @@ -1,50 +1,20 @@ --- title: Tabs -marimo-version: 0.9.34 +marimo-version: 0.11.0 --- -# Tabs - -Use `mo.ui.tabs` to organize outputs. - -```{.python.marimo} -settings = mo.vstack( - [ - mo.md("Edit User"), - first := mo.ui.text(label="First Name"), - last := mo.ui.text(label="Last Name"), - ] -) - -organization = mo.vstack( - [ - mo.md("Edit Organization"), - org := mo.ui.text(label="Organization Name", value="..."), - employees := mo.ui.number( - label="Number of Employees", start=0, stop=1000 - ), - ] -) - -mo.ui.tabs( - { - "🧙‍♀ User": settings, - "🏢 Organization": organization, - } -) +```python {.marimo} +import marimo as mo ``` -```{.python.marimo} -mo.md( - f""" - Welcome **{first.value} {last.value}** to **{org.value}**! You are - employee no. **{employees.value + 1}**. - - #{"🎉" * (min(employees.value + 1, 1000))} - """ -) if all([first.value, last.value, org.value]) else None +```python {.marimo} +tabs = mo.ui.tabs({ + "Bob says": mo.md("Hello, Alice! 👋"), + "Alice says": mo.md("Hello, Bob! 👋") +}) +tabs ``` -```{.python.marimo} -import marimo as mo +```python {.marimo} +tabs.value ``` \ No newline at end of file diff --git a/generated/examples/ui/tabs.script.py b/generated/examples/ui/tabs.script.py index 2025fa2..37f5d29 100644 --- a/generated/examples/ui/tabs.script.py +++ b/generated/examples/ui/tabs.script.py @@ -1,47 +1,15 @@ -__generated_with = "0.9.34" +__generated_with = "0.11.0" # %% import marimo as mo # %% -mo.md("""# Tabs""") +tabs = mo.ui.tabs({ + "Bob says": mo.md("Hello, Alice! 👋"), + "Alice says": mo.md("Hello, Bob! 👋") +}) +tabs # %% -mo.md("""Use `mo.ui.tabs` to organize outputs.""") - -# %% -settings = mo.vstack( - [ - mo.md("Edit User"), - first := mo.ui.text(label="First Name"), - last := mo.ui.text(label="Last Name"), - ] -) - -organization = mo.vstack( - [ - mo.md("Edit Organization"), - org := mo.ui.text(label="Organization Name", value="..."), - employees := mo.ui.number( - label="Number of Employees", start=0, stop=1000 - ), - ] -) - -mo.ui.tabs( - { - "🧙‍♀ User": settings, - "🏢 Organization": organization, - } -) - -# %% -mo.md( - f""" - Welcome **{first.value} {last.value}** to **{org.value}**! You are - employee no. **{employees.value + 1}**. - - #{"🎉" * (min(employees.value + 1, 1000))} - """ -) if all([first.value, last.value, org.value]) else None \ No newline at end of file +tabs.value \ No newline at end of file diff --git a/public/examples/ui/.nojekyll b/public/examples/ui/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/public/examples/ui/android-chrome-192x192.png b/public/examples/ui/android-chrome-192x192.png new file mode 100644 index 0000000..b8e595c Binary files /dev/null and b/public/examples/ui/android-chrome-192x192.png differ diff --git a/public/examples/ui/android-chrome-512x512.png b/public/examples/ui/android-chrome-512x512.png new file mode 100644 index 0000000..0667fbd Binary files /dev/null and b/public/examples/ui/android-chrome-512x512.png differ diff --git a/public/examples/ui/apple-touch-icon.png b/public/examples/ui/apple-touch-icon.png new file mode 100644 index 0000000..b2a013b Binary files /dev/null and b/public/examples/ui/apple-touch-icon.png differ diff --git a/public/examples/ui/arrays_and_dicts.py.html b/public/examples/ui/arrays_and_dicts.py.html index 5af041a..623fa4f 100644 --- a/public/examples/ui/arrays_and_dicts.py.html +++ b/public/examples/ui/arrays_and_dicts.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + arrays and dicts - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/arrays_and_dicts.py.wasm.edit.html b/public/examples/ui/arrays_and_dicts.py.wasm.edit.html new file mode 100644 index 0000000..96603ff --- /dev/null +++ b/public/examples/ui/arrays_and_dicts.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/arrays_and_dicts.py.wasm.run.html b/public/examples/ui/arrays_and_dicts.py.wasm.run.html new file mode 100644 index 0000000..5857e19 --- /dev/null +++ b/public/examples/ui/arrays_and_dicts.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/assets/ConnectedDataExplorerComponent-CKyJm9dO.js b/public/examples/ui/assets/ConnectedDataExplorerComponent-CKyJm9dO.js new file mode 100644 index 0000000..d2bea62 --- /dev/null +++ b/public/examples/ui/assets/ConnectedDataExplorerComponent-CKyJm9dO.js @@ -0,0 +1,22 @@ +import{aD as e,g as t,d5 as n,P as r,ex as i,ey as o,ez as a,eA as s,ax as c,dn as l,dG as u,eB as d,G as f,M as p,eC as h,eD as g,eE as m,eF as y,eG as v,eH as b,eI as x,b1 as E,eJ as T,eK as S,d9 as N,J as w,ad as C,$ as A,dh as O,eL as k,ap as M,ac as I,eM as U,az as F,ay as D,R as _,eN as j,ao as P,aw as R}from"./index-BnyyrSDd.js";import{U as $,e as B,V as L}from"./compile-CnzUcuVp.js";import{a as W}from"./VegaLite-eTvwU3EX.js";import"./time-Cr2inJhN.js";import"./step-CaHXtLdi.js";import"./linear-CkCCFfNM.js";import"./init-DLRA0X12.js";import"./range-CtcPcB_L.js";import"./ordinal-BcaZTuz9.js";import"./colors-bszWmPJw.js";import"./arc-BTlVLyGF.js";import"./index-DYujHiTf.js"; +/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const H=e("ChartColumnBig",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),q=e("ListFilter",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M10 18h4",key:"1ulq68"}]]),G=e("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]); +/*! ***************************************************************************** +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 +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +function z(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);it&&l(),a=t=n+1):"]"===r&&(a||X("Access path missing open bracket: "+e),a>0&&l(),a=0,t=n+1):n>t?l():t=n+1}return a&&X("Access path missing closing bracket: "+e),o&&X("Access path missing closing quote: "+e),n>t&&(n++,l()),i}const ee=Array.isArray;function te(e){return e===Object(e)}function ne(e){return"string"==typeof e}function re(e){return ee(e)?"["+e.map(re)+"]":te(e)||ne(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var ie,oe,ae,se=[];function ce(e,t,n){var r=[t].concat([].slice.call(n));console[e](...r)}oe=Z(ie="id"),ae="return _["+oe.map(re).join("][")+"];",J(Function("_",ae),[ie=1===oe.length?oe[0]:ie],ie),J((function(e){return e}),se,"identity"),J((function(){return 0}),se,"zero"),J((function(){return 1}),se,"one"),J((function(){return!0}),se,"true"),J((function(){return!1}),se,"false");function le(e){return"boolean"==typeof e}function ue(e){for(var t={},n=0,r=e.length;nK(e))).join(",")})`};const de=K;function fe(e,t){return e.indexOf(t)>-1}const pe=Object.keys;const he="row",ge="column",me="facet",ye="x",ve="y",be="x2",xe="y2",Ee="latitude",Te="longitude",Se="latitude2",Ne="longitude2",we="color",Ce="fill",Ae="stroke",Oe="shape",ke="size",Me="opacity",Ie="fillOpacity",Ue="strokeOpacity",Fe="strokeWidth",De="text",_e="order",je="detail",Pe="key",Re="tooltip",$e="href",Be=Object.assign({},{x:1,y:1,x2:1,y2:1},{longitude:1,longitude2:1,latitude:1,latitude2:1},{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function Le(e){return"color"===e||"fill"===e||"stroke"===e}const We=Object.assign({},Be,{row:1,column:1,facet:1}),He=pe(We);z(We,["order","detail"]),z(We,["order","detail","row","column","facet"]);const qe=z(Be,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]),Ge=pe(qe),ze=z(qe,["text","tooltip","href","detail","key","order"]),Ye=Object.assign({},{x:1,y:1},ze);function Qe(e,t){return function(e){switch(e){case we:case Ce:case Ae:case je:case Pe:case Re:case $e:case _e:case Me:case Ie:case Ue:case Fe:case me:case he:case ge:return Ve;case ye:case ve:case Ee:case Te:return Ke;case be:case xe:case Se:case Ne:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case ke:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Oe:return{point:"always",geoshape:"always"};case De:return{text:"always"}}}(e)[t]}const Ve={area:"always",bar:"always",circle:"always",geoshape:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},Ke=z(Ve,["geoshape"]);function Je(e){switch(e){case ye:case ve:case ke:case Fe:case Me:case Ie:case Ue:case be:case xe:return;case me:case he:case ge:case Oe:case De:case Re:case $e:return"discrete";case we:case Ce:case Ae:return"flexible";case Ee:case Te:case Se:case Ne:case je:case Pe:case _e:return}throw new Error("rangeType not implemented for "+e)}const Xe={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},Ze=Object.assign({},Xe,{encoding:1});Object.assign({gridScale:1,scale:1},Xe,{encode:1});const et=pe(Ze),tt={clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1};Object.assign({},tt,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1});const nt=pe(tt);const rt=Object.freeze(Object.defineProperty({__proto__:null,BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:"Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.",CANNOT_FIX_RANGE_STEP_WITH_FIT:'Cannot use a fixed value of "rangeStep" when "autosize" is "fit".',CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:"custom domain scale cannot be unioned with default field-based domain",CONCAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",FIT_NON_SINGLE:'Autosize "fit" only works for single views and layered views.',INVALID_CHANNEL_FOR_AXIS:"Invalid channel for axis.",INVALID_SPEC:"Invalid spec",LINE_WITH_VARYING_SIZE:"Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.",MORE_THAN_ONE_SORT:"Domains that should be unioned has conflicting sort properties. Sort will be set to true.",NO_FIELDS_NEEDS_AS:'If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.',NO_INIT_SCALE_BINDINGS:"Selections bound to scales cannot be separately initialized.",REPEAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).",SCALE_BINDINGS_CONTINUOUS:"Scale bindings are currently only supported for scales with unbinned, continuous domains.",UNABLE_TO_MERGE_DOMAINS:"Unable to merge domains",cannotApplySizeToNonOrientedMark:function(e){return`Cannot apply size to non-oriented mark "${e}".`},cannotProjectOnChannelWithoutField:function(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`},cannotStackNonLinearScale:function(e){return`Cannot stack non-linear scale (${e})`},cannotStackRangedMark:function(e){return`Cannot stack "${e}" if there is already "${e}2"`},cannotUseScalePropertyWithNonColor:function(e){return`Cannot use the scale property "${e}" with non-color channel.`},channelRequiredForBinned:function(e){return`Channel ${e} is required for "binned" bin`},columnsNotSupportByRowCol:function(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`},dayReplacedWithDate:function(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`},differentParse:function(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`},discreteChannelCannotEncode:function(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`},domainRequiredForThresholdScale:function(e){return`Domain for ${e} is required for threshold scale`},domainSortDropped:function(e){return`Dropping sort property ${de(e)} as unioned domains only support boolean or op 'count'.`},droppedDay:function(e){return`Dropping day from datetime ${de(e)} as day cannot be combined with other units.`},droppingColor:function(e,t){const{fill:n,stroke:r}=t;return`Dropping color ${e} as the plot also has `+(n&&r?"fill and stroke":n?"fill":"stroke")},emptyFieldDef:function(e,t){return`Dropping ${de(e)} from channel "${t}" since it does not contain data field or value.`},encodingOverridden:function(e){return`Layer's shared ${e.join(",")} channel ${1===e.length?"is":"are"} overriden`},errorBand1DNotSupport:function(e){return`1D error band does not support ${e}`},errorBarCenterAndExtentAreNotNeeded:function(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`},errorBarCenterIsNotNeeded:function(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`},errorBarCenterIsUsedWithWrongExtent:function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`},errorBarContinuousAxisHasCustomizedAggregate:function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`},facetChannelDropped:function(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`},facetChannelShouldBeDiscrete:function(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`},incompatibleChannel:function(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`},independentScaleMeansIndependentGuide:function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`},invalidAggregate:function(e){return`Invalid aggregation operator "${e}"`},invalidEncodingChannel:function(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`},invalidFieldType:function(e){return`Invalid field type "${e}"`},invalidFieldTypeForCountAggregate:function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`},invalidTimeUnit:function(e,t){return`Invalid ${e}: ${de(t)}`},invalidTransformIgnored:function(e){return`Ignoring an invalid transform: ${de(e)}.`},latLongDeprecated:function(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`},lineWithRange:function(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`},mergeConflictingDomainProperty:function(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${de(n)} and ${de(r)}). Using the union of the two domains.`},mergeConflictingProperty:function(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${de(n)} and ${de(r)}). Using ${de(n)}.`},missingFieldType:function(e,t){return`Missing type for channel "${e}", using "${t}" instead.`},nearestNotSupportForContinuous:function(e){return`The "nearest" transform is not supported for ${e} marks.`},noSuchRepeatedValue:function(e){return`Unknown repeated value "${e}".`},nonZeroScaleUsedWithLengthMark:function(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${"x"===t?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`},orientOverridden:function(e,t){return`Specified orient "${e}" overridden with "${t}"`},primitiveChannelDef:function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${de(n)}}.`},projectionOverridden:function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${de(t)} is overridden by a child projection ${de(n)}.`},rangeStepDropped:function(e){return`rangeStep for "${e}" is dropped as top-level ${"x"===e?"width":"height"} is provided.`},scalePropertyNotWorkWithScaleType:function(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`},scaleTypeNotWorkWithChannel:function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`},scaleTypeNotWorkWithFieldDef:function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`},scaleTypeNotWorkWithMark:function(e,t){return`Scale type "${t}" does not work with mark "${e}".`},selectionNotFound:function(e){return`Cannot find a selection named "${e}"`},selectionNotSupported:function(e){return`Selection not supported for ${e} yet`},stackNonSummativeAggregate:function(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`},unaggregateDomainHasNoEffectForRawField:function(e){return`Using unaggregated domain with raw field has no effect (${de(e)}).`},unaggregateDomainWithNonSharedDomainOp:function(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`},unaggregatedDomainWithLogScale:function(e){return`Unaggregated domain is currently unsupported for log scale (${de(e)}).`},unrecognizedParse:function(e){return`Unrecognized parse "${e}".`}},Symbol.toStringTag,{value:"Module"})),it=rt;var ot;let at=(ot=2,{level:function(e){return arguments.length?(ot=+e,this):ot},error:function(){return ot>=1&&ce("error","ERROR",arguments),this},warn:function(){return ot>=2&&ce("warn","WARN",arguments),this},info:function(){return ot>=3&&ce("log","INFO",arguments),this},debug:function(){return ot>=4&&ce("log","DEBUG",arguments),this}});function st(...e){at.warn.apply(at,arguments)}const ct={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},lt="quantitative",ut="ordinal",dt="temporal",ft="nominal";var pt,ht;(ht=pt||(pt={})).LINEAR="linear",ht.LOG="log",ht.POW="pow",ht.SQRT="sqrt",ht.SYMLOG="symlog",ht.TIME="time",ht.UTC="utc",ht.QUANTILE="quantile",ht.QUANTIZE="quantize",ht.THRESHOLD="threshold",ht.BIN_ORDINAL="bin-ordinal",ht.ORDINAL="ordinal",ht.POINT="point",ht.BAND="band";const gt=pe({linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"}),mt=["linear","log","pow","sqrt","symlog","time","utc"],yt=ue(mt),vt=ue(["quantile","quantize","threshold"]),bt=ue(mt.concat(["quantile","quantize","threshold"])),xt=ue(["ordinal","bin-ordinal","point","band"]);function Et(e){return e in xt}function Tt(e){return e in yt}const St={type:1,domain:1,align:1,range:1,rangeStep:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},Nt=pe(St);function wt(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!fe(["point","band","identity"],e);case"bins":return!fe(["point","band","identity","ordinal"],e);case"round":return Tt(e)||"band"===e||"point"===e;case"padding":return Tt(e)||fe(["point","band"],e);case"paddingOuter":case"rangeStep":case"align":return fe(["point","band"],e);case"paddingInner":return"band"===e;case"clamp":return Tt(e);case"nice":return Tt(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return e in bt&&!fe(["log","time","utc","threshold","quantile"],e)}}function Ct(e,t){switch(t){case"interpolate":case"scheme":return Le(e)?void 0:it.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}}function At(e,t){return fe([ut,ft],t)?void 0===e||Et(e):t===dt?fe([pt.TIME,pt.UTC,void 0],e):t!==lt||fe([pt.LOG,pt.POW,pt.SQRT,pt.SYMLOG,pt.QUANTILE,pt.QUANTIZE,pt.THRESHOLD,pt.LINEAR,void 0],e)}function Ot(e,t){switch(e){case ye:case ve:return Tt(t)||fe(["band","point"],t);case ke:case Fe:case Me:case Ie:case Ue:return Tt(t)||t in vt||fe(["band","point"],t);case we:case Ce:case Ae:return"band"!==t;case Oe:return"ordinal"===t}return!1}function kt(e,t){return e+"_"+t}z(St,["type","domain","range","rangeStep","scheme"]),function(){const e={};for(const t of He)for(const n of pe(ct))for(const r of gt){const i=kt(t,n);Ot(t,r)&&At(r,n)&&(e[i]=e[i]||[],e[i].push(r))}}();var Mt={exports:{}};!function(){var e=Mt.exports,t="__name__";e.namedfunc=function(e,n){return n[t]=e,n},e.name=function(e){return null==e?null:e[t]},e.identity=function(e){return e},e.true=e.namedfunc("true",(function(){return!0})),e.false=e.namedfunc("false",(function(){return!1})),e.duplicate=function(e){return JSON.parse(JSON.stringify(e))},e.equal=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},e.extend=function(e){for(var t,n,r=1,i=arguments.length;r1?function(e,t){for(var r=0;rt||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t==t?-1:t!=t&&e==e?1:0)},e.numcmp=function(e,t){return e-t},e.stablesort=function(e,t,n){var r=e.reduce((function(e,t,r){return e[n(t)]=r,e}),{});return e.sort((function(e,i){var o=t(e),a=t(i);return oa?1:r[n(e)]-r[n(i)]})),e},e.permute=function(e){for(var t,n,r=e.length;r;)n=Math.floor(Math.random()*r--),t=e[r],e[r]=e[n],e[n]=t},e.pad=function(e,t,n,r){r=r||" ";var o=t-e.length;if(o<=0)return e;switch(n){case"left":return i(o,r)+e;case"middle":case"center":return i(Math.floor(o/2),r)+e+i(Math.ceil(o/2),r);default:return e+i(o,r)}},e.truncate=function(e,t,n,r,i){var a=e.length;if(a<=t)return e;i=void 0!==i?String(i):"…";var s=Math.max(0,t-i.length);switch(n){case"left":return i+(r?o(e,s,1):e.slice(a-s));case"middle":case"center":var c=Math.ceil(s/2),l=Math.floor(s/2);return(r?o(e,c):e.slice(0,c))+i+(r?o(e,l,1):e.slice(a-l));default:return(r?o(e,s):e.slice(0,s))+i}};var a=/([\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF])/}();var It=Mt.exports;function Ut(e,t){return-1!==e.indexOf(t)}function Ft(e,t){for(let n=0;n({parent:"bin",child:e}))),Ht=["field","op","order"].map((e=>({parent:"sort",child:e}))),qt=Nt.map((e=>({parent:"scale",child:e}))),Gt=et.map((e=>({parent:"axis",child:e}))),zt=nt.map((e=>({parent:"legend",child:e}))),Yt=[].concat(Wt,Ht,qt,Gt,zt),Qt=["width","height","background","padding","title"];function Vt(e){return jt(e)?e.parent+"."+e.child:e}const Kt=Yt.reduce(((e,t)=>(e[t.parent]=e[t.parent]||[],e[t.parent][t.child]=t,e)),{});function Jt(e,t){return(Kt[e]||{})[t]}function Xt(e){return function(e){return e in Pt}(e)||jt(e)}const Zt=[].concat(Rt,Yt),en=["type","field","bin","timeUnit","aggregate","autoCount","channel","mark","stack","scale","sort","axis","legend"].concat(Wt,qt,Gt,zt,Ht);var tn,nn;(nn=tn||(tn={})).MARK="mark",nn.TRANSFORM="transform",nn.STACK="stack",nn.FORMAT="format",nn.CHANNEL="channel",nn.AGGREGATE="aggregate",nn.AUTOCOUNT="autoCount",nn.BIN="bin",nn.HAS_FN="hasFn",nn.TIMEUNIT="timeUnit",nn.FIELD="field",nn.TYPE="type",nn.SORT="sort",nn.SCALE="scale",nn.AXIS="axis",nn.LEGEND="legend",nn.WIDTH="width",nn.HEIGHT="height",nn.BACKGROUND="background",nn.PADDING="padding",nn.TITLE="title";const rn="area",on="bar",an="line",sn="point",cn="rect",ln="rule",un="text",dn="tick",fn="circle",pn="square";function hn(e){return fe(["line","area","trail"],e)}ue(pe({area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1}));["january","february","march","april","may","june","july","august","september","october","november","december"].map((e=>e.substr(0,3)));var gn,mn;["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].map((e=>e.substr(0,3))),(mn=gn||(gn={})).YEAR="year",mn.MONTH="month",mn.DAY="day",mn.DATE="date",mn.HOURS="hours",mn.MINUTES="minutes",mn.SECONDS="seconds",mn.MILLISECONDS="milliseconds",mn.YEARMONTH="yearmonth",mn.YEARMONTHDATE="yearmonthdate",mn.YEARMONTHDATEHOURS="yearmonthdatehours",mn.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",mn.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",mn.MONTHDATE="monthdate",mn.MONTHDATEHOURS="monthdatehours",mn.HOURSMINUTES="hoursminutes",mn.HOURSMINUTESSECONDS="hoursminutesseconds",mn.MINUTESSECONDS="minutesseconds",mn.SECONDSMILLISECONDS="secondsmilliseconds",mn.QUARTER="quarter",mn.YEARQUARTER="yearquarter",mn.QUARTERMONTH="quartermonth",mn.YEARQUARTERMONTH="yearquartermonth",mn.UTCYEAR="utcyear",mn.UTCMONTH="utcmonth",mn.UTCDAY="utcday",mn.UTCDATE="utcdate",mn.UTCHOURS="utchours",mn.UTCMINUTES="utcminutes",mn.UTCSECONDS="utcseconds",mn.UTCMILLISECONDS="utcmilliseconds",mn.UTCYEARMONTH="utcyearmonth",mn.UTCYEARMONTHDATE="utcyearmonthdate",mn.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",mn.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",mn.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",mn.UTCMONTHDATE="utcmonthdate",mn.UTCMONTHDATEHOURS="utcmonthdatehours",mn.UTCHOURSMINUTES="utchoursminutes",mn.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",mn.UTCMINUTESSECONDS="utcminutesseconds",mn.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",mn.UTCQUARTER="utcquarter",mn.UTCYEARQUARTER="utcyearquarter",mn.UTCQUARTERMONTH="utcquartermonth",mn.UTCYEARQUARTERMONTH="utcyearquartermonth";const yn={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},vn=pe(yn);const bn={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};const xn={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},En=Object.assign({},bn,xn);const Tn=Object.assign({},yn,bn,{yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},xn);const Sn={year:"setFullYear",month:"setMonth",date:"setDate",hours:"setHours",minutes:"setMinutes",seconds:"setSeconds",milliseconds:"setMilliseconds",quarter:null,day:null};function Nn(e,t){const n=!!En[e];const r=n?new Date(Date.UTC(1972,0,1,0,0,0,0)):new Date(1972,0,1,0,0,0,0);for(const i of vn)if(Cn(e,i))switch(i){case gn.DAY:throw new Error("Cannot convert to TimeUnits containing 'day'");case gn.QUARTER:{const{getDateMethod:e,setDateMethod:i}=wn("month",n);r[i](3*Math.floor(t[e]()/3));break}default:{const{getDateMethod:e,setDateMethod:o}=wn(i,n);r[o](t[e]())}}return r}function wn(e,t){const n=Sn[e];return{setDateMethod:t?"setUTC"+n.substr(3):n,getDateMethod:"get"+(t?"UTC":"")+n.substr(3)}}function Cn(e,t){const n=e.indexOf(t);return n>-1&&(t!==gn.SECONDS||0===n||"i"!==e.charAt(n-1))}const An="?";function On(e){return kn(e)||function(e){return!(void 0===e||null==e||!e.enum&&!e.name||It.isArray(e))}(e)}function kn(e){return e===An}function Mn(e,t,n){return It.extend({},{name:t,enum:n},e===An?{}:e)}function In(e){let t={},n={};for(const r of e){const e=[0];for(let t=0;tr.charAt(e))).join("").toLowerCase();if(n[i])if(e[e.length-1]===r.length-1||(i=e.concat([r.length-1]).map((e=>r.charAt(e))).join("").toLowerCase(),n[i]))for(let o=1;!t[r];o++){let e=i+"_"+o;if(!n[e]){t[r]=e,n[e]=!0;break}}else t[r]=i,n[i]=!0;else t[r]=i,n[i]=!0}return t}const Un={mark:"m",channel:"c",aggregate:"a",autoCount:"#",hasFn:"h",bin:"b",sort:"so",stack:"st",scale:"s",format:"f",axis:"ax",legend:"l",value:"v",timeUnit:"tu",field:"f",type:"t",binProps:{maxbins:"mb",min:"mi",max:"ma",base:"b",step:"s",steps:"ss",minstep:"ms",divide:"d"},sortProps:{field:"f",op:"o",order:"or"},scaleProps:In(Nt),axisProps:In(et),legendProps:In(nt)};function Fn(e){if(jt(e))return Un[e.parent]+"-"+Un[e.parent+"Props"][e.child];if(Un[e])return Un[e];throw new Error("Default name undefined for "+e)}const Dn=[!1,!0],_n={type:[void 0,pt.LOG],domain:[void 0],base:[void 0],exponent:[1,2],constant:[void 0],bins:[void 0],clamp:Dn,nice:Dn,reverse:Dn,round:Dn,zero:Dn,padding:[void 0],paddingInner:[void 0],paddingOuter:[void 0],interpolate:[void 0],range:[void 0],rangeStep:[17,21],scheme:[void 0]},jn={zindex:[1,0],offset:[void 0],orient:[void 0],values:[void 0],bandPosition:[void 0],encoding:[void 0],domain:Dn,domainColor:[void 0],domainDash:[void 0],domainDashOffset:[void 0],domainOpacity:[void 0],domainWidth:[void 0],formatType:[void 0],grid:Dn,gridColor:[void 0],gridDash:[void 0],gridDashOffset:[void 0],gridOpacity:[void 0],gridWidth:[void 0],format:[void 0],labels:Dn,labelAlign:[void 0],labelAngle:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFlushOffset:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOpacity:[void 0],labelSeparation:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelBound:[void 0],labelFlush:[void 0],maxExtent:[void 0],minExtent:[void 0],position:[void 0],ticks:Dn,tickColor:[void 0],tickCount:[void 0],tickDash:[void 0],tickExtra:[void 0],tickDashOffset:[void 0],tickMinStep:[void 0],tickOffset:[void 0],tickOpacity:[void 0],tickRound:[void 0],tickSize:[void 0],tickWidth:[void 0],title:[void 0],titleAlign:[void 0],titleAnchor:[void 0],titleAngle:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titlePadding:[void 0],titleX:[void 0],titleY:[void 0]},Pn={mark:[sn,on,an,rn,cn,dn,un],channel:[ye,ve,he,ge,ke,we],aggregate:[void 0,"mean"],autoCount:Dn,bin:Dn,hasFn:Dn,timeUnit:[void 0,gn.YEAR,gn.MONTH,gn.MINUTES,gn.SECONDS],field:[void 0],type:[ft,ut,lt,dt],sort:["ascending","descending"],stack:["zero","normalize","center",null],value:[void 0],format:[void 0],title:[void 0],scale:[!0],axis:Dn,legend:Dn,binProps:{maxbins:[5,10,20],extent:[void 0],base:[10],step:[void 0],steps:[void 0],minstep:[void 0],divide:[[5,2]],binned:[!1],anchor:[void 0],nice:[!0]},sortProps:{field:[void 0],op:["min","mean"],order:["ascending","descending"]},scaleProps:_n,axisProps:jn,legendProps:{orient:["left","right"],format:[void 0],type:[void 0],values:[void 0],zindex:[void 0],clipHeight:[void 0],columnPadding:[void 0],columns:[void 0],cornerRadius:[void 0],direction:[void 0],encoding:[void 0],fillColor:[void 0],formatType:[void 0],gridAlign:[void 0],offset:[void 0],padding:[void 0],rowPadding:[void 0],strokeColor:[void 0],labelAlign:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOffset:[void 0],labelOpacity:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelSeparation:[void 0],legendX:[void 0],legendY:[void 0],gradientLength:[void 0],gradientOpacity:[void 0],gradientStrokeColor:[void 0],gradientStrokeWidth:[void 0],gradientThickness:[void 0],symbolDash:[void 0],symbolDashOffset:[void 0],symbolFillColor:[void 0],symbolOffset:[void 0],symbolOpacity:[void 0],symbolSize:[void 0],symbolStrokeColor:[void 0],symbolStrokeWidth:[void 0],symbolType:[void 0],tickCount:[void 0],tickMinStep:[void 0],title:[void 0],titleAnchor:[void 0],titleAlign:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titleOrient:[void 0],titlePadding:[void 0]}};function Rn(e,t,n){if("field"===e||jt(e)&&"sort"===e.parent&&"field"===e.child)return t.fieldNames();let r;if(r=jt(e)?n.enum[e.parent+"Props"][e.child]:n.enum[e],void 0!==r)return r;throw new Error("No default enumValues for "+JSON.stringify(e))}const $n={verbose:!1,defaultSpecConfig:{line:{point:!0},scale:{useUnaggregatedDomain:!0}},propertyPrecedence:en.map(Vt),enum:Pn,numberNominalProportion:.05,numberNominalLimit:40,constraintManuallySpecifiedValue:!1,autoAddCount:!1,hasAppropriateGraphicTypeForMark:!0,omitAggregate:!1,omitAggregatePlotWithDimensionOnlyOnFacet:!0,omitAggregatePlotWithoutDimension:!1,omitBarLineAreaWithOcclusion:!0,omitBarTickWithSize:!0,omitMultipleNonPositionalChannels:!0,omitRaw:!1,omitRawContinuousFieldForAggregatePlot:!0,omitRepeatedField:!0,omitNonPositionalOrFacetOverPositionalChannels:!0,omitTableWithOcclusionIfAutoAddCount:!0,omitVerticalDotPlot:!1,omitInvalidStackSpec:!0,omitNonSumStack:!0,preferredBinAxis:ye,preferredTemporalAxis:ye,preferredOrdinalAxis:ve,preferredNominalAxis:ve,preferredFacet:he,minCardinalityForBin:15,maxCardinalityForCategoricalColor:20,maxCardinalityForFacet:20,maxCardinalityForShape:6,timeUnitShouldHaveVariation:!0,typeMatchesSchemaType:!0,stylize:!0,smallRangeStepForHighCardinalityOrFacet:{maxCardinality:10,rangeStep:12},nominalColorScaleForHighCardinality:{maxCardinality:10,palette:"category20"},xAxisOnTopForHighYCardinalityWithoutColumn:{maxCardinality:30},maxGoodCardinalityForFacet:5,maxGoodCardinalityForColor:7,minPercentUniqueForKey:.8,minCardinalityForKey:50},Bn={argmax:1,argmin:1,average:1,count:1,distinct:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1};const Ln=["count","sum","distinct","valid","missing"];function Wn(e){return le(e)&&(e=function(e,t){return le(e)?{maxbins:qn(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign({},e,{maxbins:qn(t)})}(e,void 0)),"bin"+pe(e).map((t=>function(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}(`_${t}_${e[t]}`))).join("")}function Hn(e){return!0===e||function(e){return te(e)}(e)&&!e.binned}function qn(e){switch(e){case he:case ge:case ke:case we:case Ce:case Ae:case Fe:case Me:case Ie:case Ue:case Oe:return 6;default:return 10}}function Gn(e){return!!e&&!!e.condition&&!ee(e.condition)&&zn(e.condition)}function zn(e){return!(!e||!e.field&&"count"!==e.aggregate)}function Yn(e){return zn(e)&&ne(e.field)}function Qn(e,t={}){let n=e.field;const r=t.prefix;let i=t.suffix,o="";if(function(e){return"count"===e.aggregate}(e))n=function(e){return 0===e.indexOf("__")}(s="count")?s:`__${s}`;else{let r;if(!t.nofn)if(function(e){return!!e.op}(e))r=e.op;else{const{bin:s,aggregate:c,timeUnit:l}=e;Hn(s)?(r=Wn(s),i=(t.binSuffix||"")+(t.suffix||"")):c?(a=c)&&a.argmax?(o=`.${n}`,n=`argmax_${c.argmax}`):!function(e){return!!e&&!!e.argmin}(c)?r=String(c):(o=`.${n}`,n=`argmin_${c.argmin}`):l&&(r=String(l))}r&&(n=n?`${r}_${n}`:r)}var a,s;return i&&(n=`${n}_${i}`),r&&(n=`${r}_${n}`),t.forAs?n:t.expr?function(e,t="datum"){return`${t}[${re(Z(e).join("."))}]`}(n,t.expr)+o:function(e){return`${Z(e).map((e=>e.replace(".","\\."))).join("\\.")}`}(n)+o}function Vn(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw new Error(it.invalidFieldType(e.type))}ue(["mean","average","median","q1","q3","min","max"]);const Kn={compatible:!0};function Jn(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return function(e){return!Vn(e)}(e)?{compatible:!1,warning:it.facetChannelShouldBeDiscrete(t)}:Kn;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return Kn;case"longitude":case"longitude2":case"latitude":case"latitude2":return n!==lt?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:Kn;case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return"nominal"!==n||e.sort?Kn:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case"shape":return fe(["ordinal","nominal","geojson"],e.type)?Kn:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return"nominal"!==e.type||"sort"in e?Kn:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}throw new Error("channelCompatability not implemented for channel "+t)}function Xn(e,t,n,r){const i=function(e,t,n){switch(t.type){case"nominal":case"ordinal":return Le(e)||"discrete"===Je(e)?("shape"===e&&"ordinal"===t.type&&st(it.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):fe(["x","y"],e)&&fe(["rect","bar","rule"],n)?"band":"point";case"temporal":return Le(e)?"time":"discrete"===Je(e)?(st(it.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return Le(e)?Hn(t.bin)?"bin-ordinal":"linear":"discrete"===Je(e)?(st(it.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(it.invalidFieldType(t.type))}(t,n,r),{type:o}=e;return function(e){return!!Ye[e]}(t)?void 0!==o?Ot(t,o)?At(o,n.type)?o:(st(it.scaleTypeNotWorkWithFieldDef(o,i)),i):(st(it.scaleTypeNotWorkWithChannel(t,o,i)),i):i:null}var Zn,er;function tr(e){return e===ut||e===ft||e===Zn.KEY}(er=Zn||(Zn={})).QUANTITATIVE=lt,er.ORDINAL=ut,er.TEMPORAL=dt,er.NOMINAL=ft,er.KEY="key";class nr{constructor(e=null){this.index=e?Object.assign({},e):{}}has(e){return Vt(e)in this.index}get(e){return this.index[Vt(e)]}set(e,t){return this.index[Vt(e)]=t,this}setByKey(e,t){this.index[e]=t}map(e){const t=new nr;for(const n in this.index)t.index[n]=e(this.index[n]);return t}size(){return It.keys(this.index).length}duplicate(){return new nr(this.index)}}function rr(e,t){const n=e&&e[t];return!!n&&(ee(n)?function(e,t){let n=0;for(const[r,i]of e.entries())if(t(i,r,n++))return!0;return!1}(n,(e=>!!e.field)):zn(n)||Gn(n))}const ir={zero:1,center:1,normalize:1};const or=[on,rn,ln,sn,fn,pn,an,un,dn],ar=[on,rn];function sr(e,t,n,r={}){const i=function(e){return e.type}(e)?e.type:e;if(!fe(or,i))return null;const o=function(e){const t=e.x,n=e.y;if(zn(t)&&zn(n))if("quantitative"===t.type&&"quantitative"===n.type){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if("quantitative"===t.type)return"x";if("quantitative"===n.type)return"y"}else{if(zn(t)&&"quantitative"===t.type)return"x";if(zn(n)&&"quantitative"===n.type)return"y"}}(t);if(!o)return null;const a=t[o],s=Yn(a)?Qn(a,{}):void 0,c="x"===o?"y":"x",l=t[c],u=Yn(l)?Qn(l,{}):void 0,d=Ge.reduce(((e,n)=>{if("tooltip"!==n&&rr(t,n)){const r=t[n];(ee(r)?r:[r]).forEach((t=>{const r=function(e){return zn(e)?e:Gn(e)?e.condition:void 0}(t);if(r.aggregate)return;const i=Yn(r)?Qn(r,{}):void 0;(!i||i!==u&&i!==s)&&e.push({channel:n,fieldDef:r})}))}return e}),[]);let f;if(void 0!==a.stack?f=le(a.stack)?a.stack?"zero":null:a.stack:d.length>0&&(f=fe(ar,i)?function(...e){for(const t of e)if(void 0!==t)return t}(n,"zero"):n),!f||!ir[f])return null;if(a.scale&&a.scale.type&&a.scale.type!==pt.LINEAR){if(r.disallowNonLinearStack)return null;st(it.cannotStackNonLinearScale(a.scale.type))}return rr(t,o===ye?be:xe)?(void 0!==a.stack&&st(it.cannotStackRangedMark(o)),null):(a.aggregate&&!fe(Ln,a.aggregate)&&st(it.stackNonSummativeAggregate(a.aggregate)),{groupbyChannel:l?c:void 0,fieldChannel:o,impute:hn(i),stackBy:d,offset:f})}function cr(e){if(!function(e){if(On(e.mark))return!1;const t=[tn.STACK,tn.CHANNEL,tn.MARK,tn.FIELD,tn.AGGREGATE,tn.AUTOCOUNT,tn.SCALE,Jt("scale","type"),tn.TYPE],n=It.toMap((i=Zt,o=t,i.filter((function(e){return!Ut(o,e)})))),r=e.encodings.filter((e=>!Nr(e)));var i,o;for(const a of r)if(lr(a,{exclude:n}))return!1;return!0}(e))return null;const t=Ar(e.encodings,{schema:null,wildcardMode:"null"});return sr(e.mark,t,void 0,{disallowNonLinearStack:!0})}function lr(e,t={}){if(!It.isObject(e))return!1;for(const n in e)if(e.hasOwnProperty(n)){if(On(e[n])&&(!t.exclude||!t.exclude[n])||lr(e[n],t))return!0}return!1}function ur(e){return e.map((e=>{return t=e,e=>void 0!==t[e]?t[e]:e;var t}))}function dr(e,t){return On(e)?!kn(e)&&e.enum?An+JSON.stringify(e.enum):An:t?t(e):e}function fr(e,t){return t?t(e):e}const pr=new nr,hr=[].concat(en,Ht,[tn.TRANSFORM,tn.STACK],Qt).reduce(((e,t)=>e.set(t,!0)),new nr),gr={axis:{x:!0,y:!0,row:!0,column:!0},legend:{color:!0,opacity:!0,size:!0,shape:!0},scale:{x:!0,y:!0,color:!0,opacity:!0,row:!0,column:!0,size:!0,shape:!0},sort:{x:!0,y:!0,path:!0,order:!0},stack:{x:!0,y:!0}};function mr(e,t=hr,n=pr){const r=[];let i;if(t.get(tn.MARK)&&r.push(dr(e.mark,n.get(tn.MARK))),e.transform&&e.transform.length>0&&r.push("transform:"+JSON.stringify(e.transform)),t.get(tn.STACK)&&(i=cr(e)),e.encodings){const o=e.encodings.reduce(((e,r)=>{if(!Nr(r)){let o;o=i&&r.channel===i.fieldChannel?yr(Object.assign({},r,{stack:i.offset}),t,n):yr(r,t,n),o&&e.push(o)}return e}),[]).sort().join("|");o&&r.push(o)}for(let o of Qt){const n=o.toString();if(t.get(o)&&e[n]){const t=e[n];r.push(`${n}=${JSON.stringify(t)}`)}}return r.join("|")}function yr(e,t=hr,n=pr){const r=[];if(t.get(tn.CHANNEL)&&r.push(dr(e.channel,n.get(tn.CHANNEL))),Tr(e)){const i=vr(e,t,n);i&&r.push(i)}else Er(e)?r.push(e.value):Sr(e)&&r.push("autocount()");return r.join(":")}function vr(e,t=hr,n=pr){if(t.get(tn.AGGREGATE)&&Nr(e))return"-";const r=function(e,t,n){if(t.get(tn.AGGREGATE)&&e.aggregate&&!On(e.aggregate))return fr(e.aggregate,n.get(tn.AGGREGATE));if(t.get(tn.AGGREGATE)&&wr(e))return fr("count",n.get(tn.AGGREGATE));if(t.get(tn.TIMEUNIT)&&e.timeUnit&&!On(e.timeUnit))return fr(e.timeUnit,n.get(tn.TIMEUNIT));if(t.get(tn.BIN)&&e.bin&&!On(e.bin))return"bin";{let n=null;for(const r of[tn.AGGREGATE,tn.AUTOCOUNT,tn.TIMEUNIT,tn.BIN]){const i=e[r];t.get(r)&&e[r]&&On(i)&&(n=n||{},n[r]=kn(i)?i:i.enum)}return n&&e.hasFn&&(n.hasFn=!0),n}}(e,t,n),i=function(e,t,n){const r=[];if(!It.isBoolean(e.bin)&&!kn(e.bin)){const i=e.bin;for(const e in i){const o=Jt("bin",e);o&&t.get(o)&&void 0!==i[e]&&r.push({key:e,value:dr(i[e],n.get(o))})}r.sort(((e,t)=>e.key.localeCompare(t.key)))}for(const i of[tn.SCALE,tn.SORT,tn.STACK,tn.AXIS,tn.LEGEND])if((On(e.channel)||gr[i][e.channel])&&t.get(i)&&void 0!==e[i]){const o=e[i];if(It.isBoolean(o)||null===o)r.push({key:i+"",value:o||!1});else if(It.isString(o))r.push({key:i+"",value:fr(JSON.stringify(o),n.get(i))});else{let e=[];for(const r in o){const a=Jt(i,r);a&&t.get(a)&&void 0!==o[r]&&e.push({key:r,value:dr(o[r],n.get(a))})}if(e.length>0){const t=e.sort(((e,t)=>e.key.localeCompare(t.key))).reduce(((e,t)=>(e[t.key]=t.value,e)),{});r.push({key:i+"",value:JSON.stringify(t)})}}}return r}(e,t,n);let o;if(Tr(e)){if(o=t.get("field")?dr(e.field,n.get("field")):"...",t.get(tn.TYPE))if(On(e.type))o+=","+dr(e.type,n.get(tn.TYPE));else{o+=","+dr(((e.type||lt)+"").substr(0,1),n.get(tn.TYPE))}o+=i.map((e=>{let t=e.value instanceof Array?"["+e.value+"]":e.value;return","+e.key+"="+t})).join("")}else Sr(e)&&(o="*,q");if(!o)return null;if(r){return(It.isString(r)?r:An+(It.keys(r).length>0?JSON.stringify(r):""))+"("+o+")"}return o}function br(e,t,n){let r=[],i=0;for(let o=0;o0))return o;for(t(n,1),e(n),n=0;)for(;t(e,1),!n(e););}))},n&&(i.count=function(t,r){return Dr.setTime(+t),_r.setTime(+r),e(Dr),e(_r),Math.floor(n(Dr,_r))},i.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(r?function(t){return r(t)%e==0}:function(t){return i.count(0,t)%e==0}):i:null}),i}var Pr=jr((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));Pr.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?jr((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):Pr:null};const Rr=jr((function(e){e.setMilliseconds(0)}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getSeconds()})),$r=jr((function(e){e.setSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getMinutes()})),Br=jr((function(e){e.setMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getHours()})),Lr=jr((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5}),(function(e){return e.getDate()-1}));function Wr(e){return jr((function(t){t.setHours(0,0,0,0),t.setDate(t.getDate()-(t.getDay()+7-e)%7)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/6048e5}))}var Hr=Wr(0),qr=Wr(1),Gr=Wr(2),zr=Wr(3),Yr=Wr(4),Qr=Wr(5),Vr=Wr(6);const Kr=jr((function(e){e.setHours(0,0,0,0),e.setDate(1)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()})),Jr=jr((function(e){e.setHours(0,0,0,0),e.setMonth(0,1)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()})),Xr=jr((function(e){e.setUTCMilliseconds(0)}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getUTCSeconds()})),Zr=jr((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getUTCMinutes()})),ei=jr((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getUTCHours()})),ti=jr((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/864e5}),(function(e){return e.getUTCDate()-1}));function ni(e){return jr((function(t){t.setUTCHours(0,0,0,0),t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/6048e5}))}var ri=ni(0),ii=ni(1),oi=ni(2),ai=ni(3),si=ni(4),ci=ni(5),li=ni(6);const ui=jr((function(e){e.setUTCHours(0,0,0,0),e.setUTCDate(1)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()})),di=jr((function(e){e.setUTCHours(0,0,0,0),e.setUTCMonth(0,1)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));var fi=Pr.range,pi=Rr.range,hi=$r.range,gi=Br.range,mi=Lr.range,yi=Hr.range,vi=qr.range,bi=Gr.range,xi=zr.range,Ei=Yr.range,Ti=Qr.range,Si=Vr.range,Ni=Hr.range,wi=Kr.range,Ci=Jr.range,Ai=Pr,Oi=fi,ki=Xr.range,Mi=Zr.range,Ii=ei.range,Ui=ti.range,Fi=ri.range,Di=ii.range,_i=oi.range,ji=ai.range,Pi=si.range,Ri=ci.range,$i=li.range,Bi=ri.range,Li=ui.range,Wi=di.range;var Hi=n(Object.freeze(Object.defineProperty({__proto__:null,day:Lr,days:mi,friday:Qr,fridays:Ti,hour:Br,hours:gi,interval:jr,millisecond:Pr,milliseconds:fi,minute:$r,minutes:hi,monday:qr,mondays:vi,month:Kr,months:wi,saturday:Vr,saturdays:Si,second:Rr,seconds:pi,sunday:Hr,sundays:yi,thursday:Yr,thursdays:Ei,tuesday:Gr,tuesdays:bi,utcDay:ti,utcDays:Ui,utcFriday:ci,utcFridays:Ri,utcHour:ei,utcHours:Ii,utcMillisecond:Ai,utcMilliseconds:Oi,utcMinute:Zr,utcMinutes:Mi,utcMonday:ii,utcMondays:Di,utcMonth:ui,utcMonths:Li,utcSaturday:li,utcSaturdays:$i,utcSecond:Xr,utcSeconds:ki,utcSunday:ri,utcSundays:Fi,utcThursday:si,utcThursdays:Pi,utcTuesday:oi,utcTuesdays:_i,utcWednesday:ai,utcWednesdays:ji,utcWeek:ri,utcWeeks:Bi,utcYear:di,utcYears:Wi,wednesday:zr,wednesdays:xi,week:Hr,weeks:Ni,year:Jr,years:Ci},Symbol.toStringTag,{value:"Module"}))),qi=new Date,Gi=new Date(0,0,1).setFullYear(0),zi=new Date(Date.UTC(0,0,1)).setUTCFullYear(0);function Yi(e){return qi.setTime(+e),qi}function Qi(e,t,n,r,i,o){var a={type:e,date:t,unit:n};return r?a.step=r:a.minstep=1,null!=i&&(a.min=i),null!=o&&(a.max=o),a}function Vi(e,t,n,r,i,o){return Qi(e,(function(e){return t.offset(n,e)}),(function(e){return t.count(n,e)}),r,i,o)}var Ki=[Vi("second",Hi.second,Gi),Vi("minute",Hi.minute,Gi),Vi("hour",Hi.hour,Gi),Vi("day",Hi.day,Gi,[1,7]),Vi("month",Hi.month,Gi,[1,3,6]),Vi("year",Hi.year,Gi),Qi("seconds",(function(e){return new Date(1970,0,1,0,0,e)}),(function(e){return Yi(e).getSeconds()}),null,0,59),Qi("minutes",(function(e){return new Date(1970,0,1,0,e)}),(function(e){return Yi(e).getMinutes()}),null,0,59),Qi("hours",(function(e){return new Date(1970,0,1,e)}),(function(e){return Yi(e).getHours()}),null,0,23),Qi("weekdays",(function(e){return new Date(1970,0,4+e)}),(function(e){return Yi(e).getDay()}),[1],0,6),Qi("dates",(function(e){return new Date(1970,0,e)}),(function(e){return Yi(e).getDate()}),[1],1,31),Qi("months",(function(e){return new Date(1970,e%12,1)}),(function(e){return Yi(e).getMonth()}),[1],0,11)],Ji=[Vi("second",Hi.utcSecond,zi),Vi("minute",Hi.utcMinute,zi),Vi("hour",Hi.utcHour,zi),Vi("day",Hi.utcDay,zi,[1,7]),Vi("month",Hi.utcMonth,zi,[1,3,6]),Vi("year",Hi.utcYear,zi),Qi("seconds",(function(e){return new Date(Date.UTC(1970,0,1,0,0,e))}),(function(e){return Yi(e).getUTCSeconds()}),null,0,59),Qi("minutes",(function(e){return new Date(Date.UTC(1970,0,1,0,e))}),(function(e){return Yi(e).getUTCMinutes()}),null,0,59),Qi("hours",(function(e){return new Date(Date.UTC(1970,0,1,e))}),(function(e){return Yi(e).getUTCHours()}),null,0,23),Qi("weekdays",(function(e){return new Date(Date.UTC(1970,0,4+e))}),(function(e){return Yi(e).getUTCDay()}),[1],0,6),Qi("dates",(function(e){return new Date(Date.UTC(1970,0,e))}),(function(e){return Yi(e).getUTCDate()}),[1],1,31),Qi("months",(function(e){return new Date(Date.UTC(1970,e%12,1))}),(function(e){return Yi(e).getUTCMonth()}),[1],0,11)],Xi=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function Zi(e){var t,n,r={};for(t=0,n=e.length;t(s=Xi[i])[0]){if((a=t/s[0])>r)return e[Xi[i-1][1]];if(a>=n)return e[s[1]]}return e[Xi[o-1][1]]}(e,t,n,r)},r}Fr.exports=Zi(Ki),Fr.exports.utc=Zi(Ji);var eo=Fr.exports,to=It,no=eo;function ro(e){if(!e)throw Error("Missing binning options.");var t,n,r,i,o,a,s,c=e.maxbins||15,l=e.base||10,u=Math.log(l),d=e.div||[5,2],f=e.min,p=e.max,h=p-f;if(e.step)t=e.step;else if(e.steps)t=e.steps[Math.min(e.steps.length-1,function(e,t,n,r){for(;n>>1;to.cmp(e[i],t)<0?n=i+1:r=i}return n}(e.steps,h/c,0,e.steps.length))];else{for(n=Math.ceil(Math.log(c)/u),r=e.minstep||0,t=Math.max(r,Math.pow(l,Math.round(Math.log(h)/u)-n));Math.ceil(h/t)>c;)t*=l;for(a=0;a=r&&h/o<=c&&(t=o)}return i=(o=Math.log(t))>=0?0:1+~~(-o/u),s=Math.pow(l,-i-1),{start:f=Math.min(f,Math.floor(f/t+s)*t),stop:p=Math.ceil(p/t)*t,step:t,unit:{precision:i},value:io,index:oo}}function io(e){return this.step*Math.floor(e/this.step+1e-15)}function oo(e){return Math.floor((e-this.start)/this.step+1e-15)}function ao(e){return this.unit.date(io.call(this,e))}function so(e){return oo.call(this,this.unit.unit(e))}ro.date=function(e){if(!e)throw Error("Missing date binning options.");var t=e.utc?no.utc:no,n=e.min,r=e.max,i=e.maxbins||20,o=e.minbins||4,a=+r-+n,s=e.unit?t[e.unit]:t.find(a,o,i),c=ro({min:null!=s.min?s.min:s.unit(n),max:null!=s.max?s.max:s.unit(r),maxbins:i,minstep:s.minstep,steps:s.step});return c.unit=s,c.index=so,e.raw||(c.value=ao),c};const co=t(ro);var lo=It,uo="__types__",fo={boolean:lo.boolean,integer:lo.number,number:lo.number,date:lo.date,string:function(e){return null==e||""===e?null:e+""}},po={boolean:function(e){return"true"===e||"false"===e||lo.isBoolean(e)},integer:function(e){return po.number(e)&&(e=+e)==~~e},number:function(e){return!isNaN(+e)&&!lo.isDate(e)},date:function(e){return!isNaN(Date.parse(e))}};function ho(e){return lo.keys(e)}function go(e){return"["+e+"]"}function mo(e,t){var n,r,i;if(e=lo.array(e),t=lo.$(t),e[uo]&&(n=t(e[uo]),lo.isString(n)))return n;for(r=0,i=e.length;!lo.isValid(n)&&rt;)i.push(r);else for(;(r=e+n*++o)=e&&r<=t?1/n:0},r.cdf=function(r){return rt?1:(r-e)/n},r.icdf=function(t){return t>=0&&t<=1?e+t*n:NaN},r},bo.random.integer=function(e,t){void 0===t&&(t=e,e=0);var n=t-e,r=function(){return e+Math.floor(n*Math.random())};return r.samples=function(e){return bo.zeros(e).map(r)},r.pdf=function(r){return r===Math.floor(r)&&r>=e&&r=t?1:(i-e+1)/n},r.icdf=function(t){return t>=0&&t<=1?e-1+Math.floor(t*n):NaN},r},bo.random.normal=function(e,t){var n;e=e||0,t=t||1;var r=function(){var r,i,o=0,a=0;if(void 0!==n)return o=n,n=void 0,o;do{r=(o=2*Math.random()-1)*o+(a=2*Math.random()-1)*a}while(0===r||r>1);return i=Math.sqrt(-2*Math.log(r)/r),n=e+a*i*t,e+o*i*t};return r.samples=function(e){return bo.zeros(e).map(r)},r.pdf=function(n){var r=Math.exp(Math.pow(n-e,2)/(-2*Math.pow(t,2)));return 1/(t*Math.sqrt(2*Math.PI))*r},r.cdf=function(n){var r,i=(n-e)/t,o=Math.abs(i);if(o>37)r=0;else{var a=Math.exp(-o*o/2);o<7.07106781186547?(r=a*((((((.0352624965998911*o+.700383064443688)*o+6.37396220353165)*o+33.912866078383)*o+112.079291497871)*o+221.213596169931)*o+220.206867912376),r/=((((((.0883883476483184*o+1.75566716318264)*o+16.064177579207)*o+86.7807322029461)*o+296.564248779674)*o+637.333633378831)*o+793.826512519948)*o+440.413735824752):r=a/(o+1/(o+2/(o+3/(o+4/(o+.65)))))/2.506628274631}return i>0?1-r:r},r.icdf=function(n){if(n<=0||n>=1)return NaN;var r=2*n-1,i=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),o=2/(Math.PI*i)+Math.log(1-Math.pow(r,2))/2,a=Math.log(1-r*r)/i,s=(r>0?1:-1)*Math.sqrt(Math.sqrt(o*o-a)-o);return e+t*Math.SQRT2*s},r},bo.random.bootstrap=function(e,t){var n=e.filter(vo.isValid),r=n.length,i=t?bo.random.normal(0,t):null,o=function(){return n[~~(Math.random()*r)]+(i?i():0)};return o.samples=function(e){return bo.zeros(e).map(o)},o};var So=To.exports;!function(){var e=It,t=xo,n=So,r=Eo.exports;function i(e,t,i){var o=e&&e.nullh||0,a=n.random.normal(0,1),s=r.mean(t,i),c=r.stdev(t,i)/Math.sqrt(r.count.valid(t,i));if(0===c)return s-o==0?1:0;var l=(s-o)/c;return 2*a.cdf(-Math.abs(l))}function o(t,n,i,o){var a,s=o?n.map(e.$(i)):n,c=o?n.map(e.$(o)):i,l=r.count(s),u=r.count(c),d=Array();if(l!==u)throw Error("Array lengths must match.");for(a=0;a0?Math.pow(s,1/r):0},r.mean.harmonic=function(t,n){n=e.$(n);var r,i,o,a,s=0;for(a=0,r=0,i=t.length;ai&&(i=o));return[r,i]},r.extent.index=function(t,n){n=e.$(n);var r,i,o,a,s=-1,c=-1,l=t.length;for(a=0;ai&&(i=o,c=a));return[s,c]},r.dot=function(t,n,r){var i,o,a=0;if(r)for(n=e.$(n),r=e.$(r),i=0;i-1&&u!==i){for(o=1+(r-1+l)/2;l-1)for(o=1+(s-1+l)/2;lg)&&(g=l),m+=(o=l-u)*(l-(u+=o/++d)),y.push(l));return m/=d-1,a=Math.sqrt(m),y.sort(e.cmp),{type:t(n,i),unique:v,count:n.length,valid:d,missing:f,distinct:p,min:h,max:g,mean:u,stdev:a,median:c=r.quantile(y,.5),q1:r.quantile(y,.25),q3:r.quantile(y,.75),modeskew:0===a?0:(u-c)/a}},r.summary=function(t,n){var i=(n=n||e.keys(t[0])).map((function(n){var i=r.profile(t,e.$(n));return i.field=n,i}));return i.__summary__=!0,i}}();var No=Eo.exports;const wo=co;const Co={nominal:0,key:1,ordinal:2,temporal:3,quantitative:4};class Ao{constructor(e){this._tableSchema=e,e.fields.sort((function(e,t){return Co[e.vlType]Co[t.vlType]?1:e.name.localeCompare(t.name)})),e.fields.forEach(((e,t)=>e.index=t)),this._fieldSchemaIndex=e.fields.reduce(((e,t)=>(e[t.name]=t,e)),{})}fieldNames(){return this._tableSchema.fields.map((e=>e.name))}get fieldSchemas(){return this._tableSchema.fields}fieldSchema(e){return this._fieldSchemaIndex[e]}tableSchema(){const e=It.duplicate(this._tableSchema);return e.fields.sort(((e,t)=>e.originalIndex-t.originalIndex)),e}primitiveType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].type:null}vlType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].vlType:null}cardinality(e,t=!0,n=!1){const r=this._fieldSchemaIndex[e.field];if(e.aggregate||Sr(e)&&e.autoCount)return 1;if(e.bin){let t;t="boolean"==typeof e.bin?{maxbins:qn(e.channel)}:"?"===e.bin?{enum:[!0,!1]}:e.bin;const n=t.maxbins;return r.binStats[n]||(r.binStats[n]=Oo(n,r.stats)),r.binStats[n].distinct}if(e.timeUnit){if(t)switch(e.timeUnit){case gn.SECONDS:case gn.MINUTES:return 60;case gn.HOURS:return 24;case gn.DAY:return 7;case gn.DATE:return 31;case gn.MONTH:return 12;case gn.QUARTER:return 4;case gn.MILLISECONDS:return 1e3}let i=e.timeUnit,o=r.timeStats;return o&&o[i]||(o=Object.assign({},o,{[i]:ko(e.timeUnit,r.stats)})),n?o[i].distinct-Mo(o[i].unique,["Invalid Date",null]):o[i].distinct}return r?n?r.stats.distinct-Mo(r.stats.unique,[NaN,null]):r.stats.distinct:null}timeUnitHasVariation(e){if(!e.timeUnit)return;if(e.timeUnit===gn.DAY){const t=It.extend({},e,{timeUnit:gn.DATE});if(this.cardinality(t,!1,!0)<=1)return!1}let t=e.timeUnit;for(let n of vn)if(Cn(t,n)){const t=It.extend({},e,{timeUnit:n});if(this.cardinality(t,!1,!0)<=1)return!1}return!0}domain(e){const t=this._fieldSchemaIndex[e.field];let n=It.keys(t.stats.unique);return t.vlType===lt?[+t.stats.min,+t.stats.max]:t.type===Io.DATETIME?[t.stats.min,t.stats.max]:t.type===Io.INTEGER||t.type===Io.NUMBER?(n=n.map((e=>+e)),n.sort(It.cmp)):t.vlType===ut&&t.ordinalDomain?t.ordinalDomain:n.map((e=>"null"===e?null:e)).sort(It.cmp)}stats(e){const t=this._fieldSchemaIndex[e.field];return t?t.stats:null}}function Oo(e,t){const n=wo({min:t.min,max:t.max,maxbins:e}),r=It.extend({},t);return r.unique=function(e,t){const n={};for(let r in t){let i;i=null===r?null:isNaN(Number(r))?NaN:e.value(Number(r)),n[i]=(n[i]||0)+t[r]}return n}(n,t.unique),r.distinct=(n.stop-n.start)/n.step,r.min=n.start,r.max=n.stop,r}function ko(e,t){const n=It.extend({},t);let r={};return It.keys(t.unique).forEach((function(n){let i,o="null"===n?null:new Date(n);i=null===o?null:isNaN(o.getTime())?"Invalid Date":(e===gn.DAY?o.getDay():Nn(e,o)).toString(),r[i]=(r[i]||0)+t.unique[n]})),n.unique=r,n.distinct=It.keys(r).length,n}function Mo(e,t){return t.reduce((function(t,n){return e[n]?t+1:t}),0)}var Io,Uo;(Uo=Io||(Io={}))[Uo.STRING="string"]="STRING",Uo[Uo.NUMBER="number"]="NUMBER",Uo[Uo.INTEGER="integer"]="INTEGER",Uo[Uo.BOOLEAN="boolean"]="BOOLEAN",Uo[Uo.DATETIME="datetime"]="DATETIME";class Fo{constructor(e){this.constraint=e}name(){return this.constraint.name}description(){return this.constraint.description}properties(){return this.constraint.properties}strict(){return this.constraint.strict}}class Do extends Fo{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return Ft(this.constraint.properties,(t=>{if(jt(t)){let n=t.parent,r=t.child;return!e[n]||!On(e[n][r])}return!e[t]||!On(e[t])}))}satisfy(e,t,n,r){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)||this.constraint.satisfy(e,t,n,r)}}const _o=[{name:"aggregateOpSupportedByType",description:"Aggregate function should be supported by data type.",properties:[tn.TYPE,tn.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!e.aggregate||!tr(e.type)},{name:"asteriskFieldWithCountOnly",description:'Field="*" should be disallowed except aggregate="count"',properties:[tn.FIELD,tn.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>"*"===e.field==("count"===e.aggregate)},{name:"minCardinalityForBin",description:"binned quantitative field should not have too low cardinality",properties:[tn.BIN,tn.FIELD,tn.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.bin&&e.type===lt){let n={channel:e.channel,field:e.field,type:e.type};return t.cardinality(n)>=r.minCardinalityForBin}return!0}},{name:"binAppliedForQuantitative",description:"bin should be applied to quantitative field only.",properties:[tn.TYPE,tn.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!e.bin||e.type===lt},{name:"channelFieldCompatible",description:"encoding channel's range type be compatible with channel type.",properties:[tn.CHANNEL,tn.TYPE,tn.BIN,tn.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{const i=Object.assign({field:"f"},kr(e,{schema:t,props:["bin","timeUnit","type"]})),{compatible:o}=Jn(i,e.channel);if(o)return!0;return!("row"!==e.channel&&"column"!==e.channel||(a=i.timeUnit,!yn[a]&&!function(e){return!!bn[e]}(i.timeUnit)));var a}},{name:"hasFn",description:"A field with as hasFn flag should have one of aggregate, timeUnit, or bin.",properties:[tn.AGGREGATE,tn.BIN,tn.TIMEUNIT],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>!e.hasFn||(!!e.aggregate||!!e.bin||!!e.timeUnit)},{name:"omitScaleZeroWithBinnedField",description:"Do not use scale zero with binned field",properties:[tn.SCALE,Jt("scale","zero"),tn.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!e.bin||!e.scale||!0!==e.scale.zero},{name:"onlyOneTypeOfFunction",description:"Only of of aggregate, autoCount, timeUnit, or bin should be applied at the same time.",properties:[tn.AGGREGATE,tn.AUTOCOUNT,tn.TIMEUNIT,tn.BIN],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(Tr(e)){return(!On(e.aggregate)&&e.aggregate?1:0)+(!On(e.bin)&&e.bin?1:0)+(!On(e.timeUnit)&&e.timeUnit?1:0)<=1}return!0}},{name:"timeUnitAppliedForTemporal",description:"Time unit should be applied to temporal field only.",properties:[tn.TYPE,tn.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!e.timeUnit||e.type===dt},{name:"timeUnitShouldHaveVariation",description:"A particular time unit should be applied only if they produce unique values.",properties:[tn.TIMEUNIT,tn.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>!e.timeUnit||e.type!==dt||(!n.has("timeUnit")&&!r.constraintManuallySpecifiedValue||t.timeUnitHasVariation(e))},{name:"scalePropertiesSupportedByScaleType",description:"Scale properties must be supported by correct scale type",properties:[].concat(qt,[tn.SCALE,tn.TYPE]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){const t=e.scale,n=Ur(e);if(null==n)return!0;for(let e in t){if("type"===e||"name"===e||"enum"===e)continue;const t=e;if("point"===n){if(!wt("point",t)&&!wt("band",t))return!1}else if(!wt(n,t))return!1}}return!0}},{name:"scalePropertiesSupportedByChannel",description:"Not all scale properties are supported by all encoding channels",properties:[].concat(qt,[tn.SCALE,tn.CHANNEL]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e){let t=e.channel,n=e.scale;if(t&&!On(t)&&n){if("row"===t||"column"===t)return!1;for(let e in n){if(!n.hasOwnProperty(e))continue;if("type"===e||"name"===e||"enum"===e)continue;if(!(void 0===Ct(t,e)))return!1}}}return!0}},{name:"typeMatchesPrimitiveType",description:"Data type should be supported by field's primitive type.",properties:[tn.FIELD,tn.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if("*"===e.field)return!0;const i=t.primitiveType(e.field),o=e.type;if(!n.has("field")&&!n.has("type")&&!r.constraintManuallySpecifiedValue)return!0;switch(i){case Io.BOOLEAN:case Io.STRING:return o!==lt&&o!==dt;case Io.NUMBER:case Io.INTEGER:return o!==dt;case Io.DATETIME:return o===dt;case null:return!1}throw new Error("Not implemented")}},{name:"typeMatchesSchemaType",description:"Enumerated data type of a field should match the field's type in the schema.",properties:[tn.FIELD,tn.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>!(n.has("field")||n.has("type")||r.constraintManuallySpecifiedValue)||("*"===e.field?e.type===lt:t.vlType(e.field)===e.type)},{name:"maxCardinalityForCategoricalColor",description:"Categorical channel should not have too high cardinality",properties:[tn.CHANNEL,tn.FIELD],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel!==we||e.type!==ft&&e.type!==Zn.KEY||t.cardinality(e)<=r.maxCardinalityForCategoricalColor},{name:"maxCardinalityForFacet",description:"Row/column channel should not have too high cardinality",properties:[tn.CHANNEL,tn.FIELD,tn.BIN,tn.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel!==he&&e.channel!==ge||t.cardinality(e)<=r.maxCardinalityForFacet},{name:"maxCardinalityForShape",description:"Shape channel should not have too high cardinality",properties:[tn.CHANNEL,tn.FIELD,tn.BIN,tn.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel!==Oe||t.cardinality(e)<=r.maxCardinalityForShape},{name:"dataTypeAndFunctionMatchScaleType",description:"Scale type must match data type",properties:[tn.TYPE,tn.SCALE,Jt("scale","type"),tn.TIMEUNIT,tn.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){const t=e.type,n=Ur(e);if(tr(t))return void 0===n||Et(n);if(t===dt)return e.timeUnit?Ut([pt.TIME,pt.UTC,void 0],n)||Et(n):Ut([pt.TIME,pt.UTC,void 0],n);if(t===lt)return e.bin?Ut([pt.LINEAR,void 0],n):Ut([pt.LOG,pt.POW,pt.SQRT,pt.QUANTILE,pt.QUANTIZE,pt.LINEAR,void 0],n)}return!0}},{name:"stackIsOnlyUsedWithXY",description:"stack should only be allowed for x and y channels",properties:[tn.STACK,tn.CHANNEL],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!e.stack||(e.channel===ye||e.channel===ve)}].map((e=>new Do(e)));_o.reduce(((e,t)=>(e[t.name()]=t,e)),{});const jo=_o.reduce(((e,t)=>{for(const n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e}),new nr),Po=[{name:"doesNotSupportConstantValue",description:"row, column, x, y, order, and detail should not work with constant values.",properties:[tn.TYPE,tn.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!Ut(["row","column","x","y","detail","order"],e.channel)}].map((e=>new Do(e)));Po.reduce(((e,t)=>(e[t.name()]=t,e)),{});const Ro=Po.reduce(((e,t)=>{for(const n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e}),new nr);const $o=Ge.reduce(((e,t)=>(e[t]=!0,e)),{});class Bo extends Fo{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return Ft(this.constraint.properties,(t=>{if(t===tn.MARK)return!On(e.getMark());if(jt(t)){let n=t.parent,r=t.child;return Ft(e.getEncodings(),(e=>!e[n]||!On(e[n][r])))}if(!Xt(t))throw new Error("UNIMPLEMENTED");return Ft(e.getEncodings(),(e=>!e[t]||!On(e[t])))}))}satisfy(e,t,n){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)||this.constraint.satisfy(e,t,n)}}const Lo=[{name:"noRepeatedChannel",description:"Each encoding channel should only be used once.",properties:[tn.CHANNEL],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let r={};return Ft(e.getEncodings(),(e=>!!On(e.channel)||!r[e.channel]&&(r[e.channel]=!0,!0)))}},{name:"alwaysIncludeZeroInScaleWithBarMark",description:"Do not recommend bar mark if scale does not start at zero",properties:[tn.MARK,tn.SCALE,Jt("scale","zero"),tn.CHANNEL,tn.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{const r=e.getMark(),i=e.getEncodings();if(r===on)for(let o of i)if(Tr(o)&&(o.channel===ye||o.channel===ve)&&o.type===lt&&o.scale&&!1===o.scale.zero)return!1;return!0}},{name:"autoAddCount",description:"Automatically adding count only for plots with only ordinal, binned quantitative, or temporal with timeunit fields.",properties:[tn.BIN,tn.TIMEUNIT,tn.TYPE,tn.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(_t(e.getEncodings(),(e=>wr(e))))return Ft(e.getEncodings(),(e=>{if(Er(e))return!0;if(Sr(e))return!0;switch(e.type){case lt:return!!e.bin;case dt:return!!e.timeUnit;case ut:case Zn.KEY:case ft:return!0}throw new Error("Unsupported Type")}));if(Ft(e.wildcardIndex.encodingIndicesByProperty.get("autoCount")||[],(t=>{let n=e.getEncodingQueryByIndex(t);return Sr(n)&&!On(n.autoCount)})))return _t(e.getEncodings(),(e=>(Tr(e)||Sr(e))&&e.type===lt?!Nr(e)&&(Tr(e)&&(!e.bin||On(e.bin))):!(!Tr(e)||e.type!==dt)&&(!e.timeUnit||On(e.timeUnit))));return!0}},{name:"channelPermittedByMarkType",description:"Each encoding channel should be supported by the mark type",properties:[tn.CHANNEL,tn.MARK],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{const r=e.getMark();return!!On(r)||Ft(e.getEncodings(),(e=>!!On(e.channel)||!!Qe(e.channel,r)))}},{name:"hasAllRequiredChannelsForMark",description:"All required channels for the specified mark should be specified",properties:[tn.CHANNEL,tn.MARK],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{const r=e.getMark();switch(r){case rn:case an:return e.channelUsed(ye)&&e.channelUsed(ve);case un:return e.channelUsed(De);case on:case fn:case pn:case dn:case ln:case cn:return e.channelUsed(ye)||e.channelUsed(ve);case sn:return!e.wildcardIndex.hasProperty(tn.CHANNEL)||e.channelUsed(ye)||e.channelUsed(ve)}throw new Error("hasAllRequiredChannelsForMark not implemented for mark"+JSON.stringify(r))}},{name:"omitAggregate",description:"Omit aggregate plots.",properties:[tn.AGGREGATE,tn.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()},{name:"omitAggregatePlotWithDimensionOnlyOnFacet",description:"Omit aggregate plots with dimensions only on facets as that leads to inefficient use of space.",properties:[tn.CHANNEL,tn.AGGREGATE,tn.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let t=!1,r=!1,i=!1;if(e.specQuery.encodings.forEach(((n,o)=>{Er(n)||Nr(n)||Tr(n)&&!n.aggregate&&(r=!0,Ut([he,ge],n.channel)?e.wildcardIndex.hasEncodingProperty(o,tn.CHANNEL)&&(i=!0):t=!0)})),r&&!t&&(i||n.constraintManuallySpecifiedValue))return!1}return!0}},{name:"omitAggregatePlotWithoutDimension",description:"Aggregate plots without dimension should be omitted",properties:[tn.AGGREGATE,tn.AUTOCOUNT,tn.BIN,tn.TIMEUNIT,tn.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()||_t(e.getEncodings(),(e=>!!(Ir(e)||Tr(e)&&"temporal"===e.type)))},{name:"omitBarLineAreaWithOcclusion",description:"Don't use bar, line or area to visualize raw plot as they often lead to occlusion.",properties:[tn.MARK,tn.AGGREGATE,tn.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!Ut([on,an,rn],e.getMark())||e.isAggregate()},{name:"omitBarTickWithSize",description:"Do not map field to size channel with bar and tick mark",properties:[tn.CHANNEL,tn.MARK],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{const r=e.getMark();if(Ut([dn,on],r)&&e.channelEncodingField(ke)){if(n.constraintManuallySpecifiedValue)return!1;{const t=e.specQuery.encodings;for(let n=0;n{const r=e.getMark(),i=e.getEncodings();if(r===rn||r===on)for(let o of i)if(Tr(o)&&(o.channel===ye||o.channel===ve)&&o.scale){if(Ur(o)===pt.LOG)return!1}return!0}},{name:"omitMultipleNonPositionalChannels",description:"Unless manually specified, do not use multiple non-positional encoding channel to avoid over-encoding.",properties:[tn.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{const r=e.specQuery.encodings;let i=0,o=!1;for(let a=0;a1&&(o||n.constraintManuallySpecifiedValue)))return!1}return!0}},{name:"omitNonPositionalOrFacetOverPositionalChannels",description:"Do not use non-positional channels unless all positional channels are used",properties:[tn.CHANNEL],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{const r=e.specQuery.encodings;let i=!1,o=!1,a=!1,s=!1;for(let c=0;c!!e.isAggregate()},{name:"omitRawContinuousFieldForAggregatePlot",description:"Aggregate plot should not use raw continuous field as group by values. (Quantitative should be binned. Temporal should have time unit.)",properties:[tn.AGGREGATE,tn.AUTOCOUNT,tn.TIMEUNIT,tn.BIN,tn.TYPE],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){const t=e.specQuery.encodings;for(let r=0;r!!e.isAggregate()||Ft(e.specQuery.encodings,((t,r)=>!(!Er(t)&&!Nr(t))||(t.channel!==je||!e.wildcardIndex.hasEncodingProperty(r,tn.CHANNEL)&&!n.constraintManuallySpecifiedValue)))},{name:"omitRepeatedField",description:"Each field should be mapped to only one channel",properties:[tn.FIELD],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r={},i={};const o=e.specQuery.encodings;for(let a=0;a{const r=e.getEncodings();return 1!==r.length||r[0].channel!==ve}},{name:"hasAppropriateGraphicTypeForMark",description:"Has appropriate graphic type for mark",properties:[tn.CHANNEL,tn.MARK,tn.TYPE,tn.TIMEUNIT,tn.BIN,tn.AGGREGATE,tn.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{const r=e.getMark();switch(r){case rn:case an:if(e.isAggregate()){const t=e.getEncodingQueryByChannel(ye),n=e.getEncodingQueryByChannel(ve),r=Mr(t),i=Mr(n);return t&&n&&r!==i&&!(Tr(t)&&!r&&Ut(["nominal","key"],t.type))&&!(Tr(n)&&!i&&Ut(["nominal","key"],n.type))}return!0;case un:return!0;case on:case dn:if(e.channelEncodingField(ke))return!1;{const t=e.getEncodingQueryByChannel(ye),n=e.getEncodingQueryByChannel(ve);return Mr(t)!==Mr(n)}case cn:const t=e.getEncodingQueryByChannel(ye),n=e.getEncodingQueryByChannel(ve),r=Ir(t),i=Ir(n),o=e.getEncodingQueryByChannel(we),a=Mr(o),s=!!Tr(o)&&o.type===ut;return(r&&i||r&&!e.channelUsed(ve)||i&&!e.channelUsed(ye))&&(!o||o&&(a||s));case fn:case sn:case pn:case ln:return!0}throw new Error("hasAllRequiredChannelsForMark not implemented for mark"+r)}},{name:"omitInvalidStackSpec",description:"If stack is specified, must follow Vega-Lite stack rules",properties:[tn.STACK,tn.FIELD,tn.CHANNEL,tn.MARK,tn.AGGREGATE,tn.AUTOCOUNT,tn.SCALE,Jt("scale","type"),tn.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{if(!e.wildcardIndex.hasProperty(tn.STACK))return!0;const r=e.getVlStack();return(null!==r||null===e.getStackOffset())&&r.fieldChannel===e.getStackChannel()}},{name:"omitNonSumStack",description:"Stack specifications that use non-summative aggregates should be omitted (even implicit ones)",properties:[tn.CHANNEL,tn.MARK,tn.AGGREGATE,tn.AUTOCOUNT,tn.SCALE,Jt("scale","type"),tn.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{const r=e.getVlStack();if(null!=r){const t=e.getEncodingQueryByChannel(r.fieldChannel);if(!Ut(Ln,t.aggregate))return!1}return!0}},{name:"omitTableWithOcclusionIfAutoAddCount",description:"Plots without aggregation or autocount where x and y are both discrete should be omitted if autoAddCount is enabled as they often lead to occlusion",properties:[tn.CHANNEL,tn.TYPE,tn.TIMEUNIT,tn.BIN,tn.AGGREGATE,tn.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(n.autoAddCount){const t=e.getEncodingQueryByChannel("x"),n=e.getEncodingQueryByChannel("y");if((!Tr(t)||Ir(t))&&(!Tr(n)||Ir(n)))return!!e.isAggregate()&&Ft(e.getEncodings(),(e=>{let t=e.channel;return!(t!==ye&&t!==ve&&t!==he&&t!==ge&&Tr(e)&&!e.aggregate)}))}return!0}}].map((e=>new Bo(e)));Lo.reduce(((e,t)=>(e[t.name()]=t,e)),{});const Wo=Lo.reduce(((e,t)=>{for(const n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e}),new nr);function Ho(e,t,n,r,i){const o=Wo.get(e)||[];for(const a of o)if(a.strict()||i[a.name()]){if(!a.satisfy(n,r,i)){let e="(spec) "+a.name();return i.verbose&&console.log(e+" failed with "+n.toShorthand()+" for "+t.name),e}}return null}const qo=new nr;function Go(e){return(t,n,r)=>(i,o)=>{const a=t.encodingIndicesByProperty.get(e);return function s(c){if(c===a.length)return void i.push(o.duplicate());const l=a[c],u=t.encodings[l].get(e),d=o.getEncodingQueryByIndex(l),f=o.getEncodingProperty(l,e);Er(d)||Nr(d)||!f?s(c+1):(u.enum.forEach((t=>{null===t&&(t=void 0),o.setEncodingProperty(l,e,t,u);const i=function(e,t,n,r,i,o){const a=jo.get(e)||[],s=r.getEncodingQueryByIndex(n);for(const l of a)if((l.strict()||o[l.name()])&&!l.satisfy(s,i,r.wildcardIndex.encodings[n],o)){let e="(enc) "+l.name();return o.verbose&&console.log(e+" failed with "+r.toShorthand()+" for "+t.name),e}const c=Ro.get(e)||[];for(const l of c)if((l.strict()||o[l.name()])&&Er(s)&&!l.satisfy(s,i,r.wildcardIndex.encodings[n],o)){let e="(enc) "+l.name();return o.verbose&&console.log(e+" failed with "+r.toShorthand()+" for "+t.name),e}return null}(e,u,l,o,n,r);if(i)return;Ho(e,u,o,n,r)||s(c+1)})),o.resetEncodingProperty(l,e,u))}(0),i}}function zo(e,t,n){return t=t||new nr,n=n||new nr,e.forEach((e=>{var r;r=e,It.isObject(r)&&r.property?(t.setByKey(e.property,!0),n.setByKey(e.property,e.replace)):t.setByKey(e,!0)})),{include:t,replaceIndex:n,replacer:ur(n)}}qo.set("mark",((e,t,n)=>(r,i)=>(i.getMark().enum.forEach((o=>{i.setMark(o);Ho("mark",e.mark,i,t,n)||r.push(i.duplicate())})),i.resetMark(),r))),Rt.forEach((e=>{qo.set(e,Go(e))})),Yt.forEach((e=>{qo.set(e,Go(e))}));const Yo=[tn.FIELD,tn.TYPE,tn.AGGREGATE,tn.BIN,tn.TIMEUNIT,tn.STACK],Qo=Yo.concat([{property:tn.CHANNEL,replace:{x:"xy",y:"xy",color:"style",size:"style",shape:"style",opacity:"style",row:"facet",column:"facet"}}]);let Vo={};function Ko(e,t){Vo[e]=t}const Jo=zo([tn.FIELD]);Ko("field",(e=>mr(e,Jo.include,Jo.replacer)));const Xo=zo(Yo);Ko("fieldTransform",(e=>mr(e,Xo.include,Xo.replacer)));const Zo=zo(Qo);Ko("encoding",(e=>mr(e,Zo.include,Zo.replacer))),Ko("spec",(e=>JSON.stringify(e)));class ea{constructor(){this._mark=void 0,this._encodings={},this._encodingIndicesByProperty=new nr}setEncodingProperty(e,t,n){const r=this._encodings;(r[e]=r[e]||new nr).set(t,n);const i=this._encodingIndicesByProperty;return i.set(t,i.get(t)||[]),i.get(t).push(e),this}hasEncodingProperty(e,t){return!!this._encodings[e]&&this._encodings[e].has(t)}hasProperty(e){if(Xt(e))return this.encodingIndicesByProperty.has(e);if("mark"===e)return!!this.mark;throw new Error("Unimplemented for property "+e)}isEmpty(){return!this.mark&&0===this.encodingIndicesByProperty.size()}setMark(e){return this._mark=e,this}get mark(){return this._mark}get encodings(){return this._encodings}get encodingIndicesByProperty(){return this._encodingIndicesByProperty}}class ta{constructor(e,t,n,r,i){this._rankingScore={},this._spec=e,this._channelFieldCount=e.encodings.reduce(((e,t)=>(On(t.channel)||Sr(t)&&!1===t.autoCount||(e[t.channel+""]=1),e)),{}),this._wildcardIndex=t,this._assignedWildcardIndex=i,this._opt=r,this._schema=n}static build(e,t,n){let r=new ea;if(On(e.mark)){const t=Fn(tn.MARK);e.mark=Mn(e.mark,t,n.enum.mark),r.setMark(e.mark)}if(e.encodings.forEach(((e,i)=>{Sr(e)&&(console.warn("A field with autoCount should not be included as autoCount meant to be an internal object."),e.type=lt),Tr(e)&&void 0===e.type&&(e.type=An),Rt.forEach((o=>{if(On(e[o])){const a=Fn(o)+i,s=Rn(o,t,n),c=e[o]=Mn(e[o],a,s);r.setEncodingProperty(i,o,c)}})),Yt.forEach((o=>{const a=e[o.parent];if(a){const e=o.child;if(On(a[e])){const s=Fn(o)+i,c=Rn(o,t,n),l=a[e]=Mn(a[e],s,c);r.setEncodingProperty(i,o,l)}}}))})),n.autoAddCount){const i={name:Fn(tn.CHANNEL)+e.encodings.length,enum:Rn(tn.CHANNEL,t,n)},o={name:Fn(tn.AUTOCOUNT)+e.encodings.length,enum:[!1,!0]},a={channel:i,autoCount:o,type:lt};e.encodings.push(a);const s=e.encodings.length-1;r.setEncodingProperty(s,tn.CHANNEL,i),r.setEncodingProperty(s,tn.AUTOCOUNT,o)}return new ta(e,r,t,n,{})}get wildcardIndex(){return this._wildcardIndex}get schema(){return this._schema}get specQuery(){return this._spec}duplicate(){return new ta(It.duplicate(this._spec),this._wildcardIndex,this._schema,this._opt,It.duplicate(this._assignedWildcardIndex))}setMark(e){const t=this._wildcardIndex.mark.name;this._assignedWildcardIndex[t]=this._spec.mark=e}resetMark(){const e=this._spec.mark=this._wildcardIndex.mark;delete this._assignedWildcardIndex[e.name]}getMark(){return this._spec.mark}getEncodingProperty(e,t){const n=this._spec.encodings[e];return jt(t)?n[t.parent][t.child]:n[t]}setEncodingProperty(e,t,n,r){const i=this._spec.encodings[e];t===tn.CHANNEL&&i.channel&&!On(i.channel)&&this._channelFieldCount[i.channel]--,jt(t)?i[t.parent][t.child]=n:Lt(t)&&!0===n?i[t]=It.extend({},i[t],{enum:void 0,name:void 0}):i[t]=n,this._assignedWildcardIndex[r.name]=n,t===tn.CHANNEL&&(this._channelFieldCount[n]=(this._channelFieldCount[n]||0)+1)}resetEncodingProperty(e,t,n){const r=this._spec.encodings[e];t===tn.CHANNEL&&this._channelFieldCount[r.channel]--,jt(t)?r[t.parent][t.child]=n:r[t]=n,delete this._assignedWildcardIndex[n.name]}channelUsed(e){return this._channelFieldCount[e]>0}channelEncodingField(e){return Tr(this.getEncodingQueryByChannel(e))}getEncodings(){return this._spec.encodings.filter((e=>!Nr(e)))}getEncodingQueryByChannel(e){for(let t of this._spec.encodings)if(t.channel===e)return t}getEncodingQueryByIndex(e){return this._spec.encodings[e]}isAggregate(){return _t(this._spec.encodings,(e=>Tr(e)&&!On(e.aggregate)&&!!e.aggregate||wr(e)))}getVlStack(){return cr(this._spec)}getStackOffset(){return function(e){for(const t of e.encodings)if(void 0!==t[tn.STACK]&&!On(t[tn.STACK]))return t[tn.STACK]}(this._spec)}getStackChannel(){return function(e){for(const t of e.encodings)if(void 0!==t[tn.STACK]&&!On(t.channel))return t.channel;return null}(this._spec)}toShorthand(e){if(e){if(It.isString(e))return function(e,t){return Vo[t](e)}(this.specQuery,e);const t=zo(e);return mr(this._spec,t.include,t.replacer)}return mr(this._spec)}toSpec(e){if(On(this._spec.mark))return null;let t={};return(e=e||this._spec.data)&&(t.data=e),this._spec.transform&&(t.transform=this._spec.transform),t.mark=this._spec.mark,t.encoding=Ar(this.specQuery.encodings,{schema:this._schema,wildcardMode:"null"}),this._spec.width&&(t.width=this._spec.width),this._spec.height&&(t.height=this._spec.height),this._spec.background&&(t.background=this._spec.background),this._spec.padding&&(t.padding=this._spec.padding),this._spec.title&&(t.title=this._spec.title),null===t.encoding?null:((this._spec.config||this._opt.defaultSpecConfig)&&(t.config=It.extend({},this._opt.defaultSpecConfig,this._spec.config)),t)}getRankingScore(e){return this._rankingScore[e]}setRankingScore(e,t){this._rankingScore[e]=t}}function na(e){return void 0!==e.items}function ra(e){let t=e.items[0];for(;t&&na(t);)t=t.items[0];return t}class ia{constructor(e){this.type=e,this.scoreIndex=this.initScore()}getFeatureScore(e){const t=this.type,n=this.scoreIndex[e];if(void 0!==n)return{type:t,feature:e,score:n}}}var oa,aa;(aa=oa||(oa={}))[aa.Q=lt]="Q",aa[aa.BIN_Q="bin_"+lt]="BIN_Q",aa[aa.T=dt]="T",aa[aa.TIMEUNIT_T="timeUnit_time"]="TIMEUNIT_T",aa[aa.TIMEUNIT_O="timeUnit_"+ut]="TIMEUNIT_O",aa[aa.O=ut]="O",aa[aa.N=ft]="N",aa[aa.K=Zn.KEY]="K",aa[aa.NONE="-"]="NONE";const sa=oa.Q,ca=oa.BIN_Q,la=oa.T,ua=oa.TIMEUNIT_T,da=oa.TIMEUNIT_O,fa=oa.O,pa=oa.N,ha=oa.K,ga=oa.NONE;function ma(e){if(e.bin)return oa.BIN_Q;if(e.timeUnit){return Et(Ur(e))?oa.TIMEUNIT_O:oa.TIMEUNIT_T}return e.type}const ya=-10;function va(e,t,n,r){return e+"_"+t+"_"+n+"_"+r}const ba=[new class extends ia{constructor(){super("Axis")}initScore(e={}){e=Object.assign({},$n,e);let t={};return[{feature:ca,opt:"preferredBinAxis"},{feature:la,opt:"preferredTemporalAxis"},{feature:ua,opt:"preferredTemporalAxis"},{feature:da,opt:"preferredTemporalAxis"},{feature:fa,opt:"preferredOrdinalAxis"},{feature:pa,opt:"preferredNominalAxis"}].forEach((n=>{e[n.opt]===ye?t[n.feature+"_"+ve]=-.01:e[n.opt]===ve&&(t[n.feature+"_"+ye]=-.01)})),t}featurize(e,t){return e+"_"+t}getScore(e,t,n){return e.getEncodings().reduce(((e,t)=>{if(Tr(t)||Sr(t)){const n=ma(t),r=this.featurize(n,t.channel),i=this.getFeatureScore(r);i&&e.push(i)}return e}),[])}},new class extends ia{constructor(){super("Dimension")}initScore(){return{row:-2,column:-2,color:0,opacity:0,size:0,shape:0}}getScore(e,t,n){return e.isAggregate()&&e.getEncodings().reduce(((e,t)=>{if(Sr(t)||Tr(t)&&!t.aggregate){const n=this.getFeatureScore(t.channel+"");if(n&&n.score>e.score)return n}return e}),{type:"Dimension",feature:"No Dimension",score:-5}),[]}},new class extends ia{constructor(){super("Facet")}initScore(e){let t={};return(e=Object.assign({},$n,e)).preferredFacet===he?t[ge]=-.01:e.preferredFacet===ge&&(t[he]=-.01),t}getScore(e,t,n){return e.getEncodings().reduce(((e,t)=>{if(Tr(t)||Sr(t)){const n=this.getFeatureScore(t.channel);n&&e.push(n)}return e}),[])}},new class extends ia{constructor(){super("Mark")}initScore(){return function(){const e=[sa,la],t=[ca,da,fa,pa,ha].concat([ga]);let n={};e.forEach((t=>{e.forEach((e=>{Dt({point:0,text:-.2,tick:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5},((r,i)=>{const o=va(t,e,!0,i);n[o]=r}));Dt({point:0,text:-.2,tick:-.5,bar:-2,line:-2,area:-2,rule:-2.5},((r,i)=>{const o=va(t,e,!1,i);n[o]=r}))}))})),e.forEach((e=>{t.forEach((t=>{Dt({tick:0,point:-.2,text:-.5,bar:-2,line:-2,area:-2,rule:-2.5},((r,i)=>{const o=va(e,t,!0,i);n[o]=r;const a=va(t,e,!0,i);n[a]=r}))})),[ua].forEach((t=>{Dt({point:0,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5},((r,i)=>{const o=va(e,t,!0,i);n[o]=r;const a=va(t,e,!0,i);n[a]=r}))})),[ga,pa,fa,ha].forEach((t=>{Dt({bar:0,point:-.2,tick:-.25,text:-.3,line:-2,area:-2,rule:-2.5},((r,i)=>{const o=va(e,t,!1,i);n[o]=r;const a=va(t,e,!1,i);n[a]=r}))})),[ca].forEach((t=>{Dt({bar:0,point:-.2,tick:-.25,text:-.3,line:-.5,area:-.5,rule:-2.5},((r,i)=>{const o=va(e,t,!1,i);n[o]=r;const a=va(t,e,!1,i);n[a]=r}))})),[ua,da].forEach((t=>{Dt({line:0,area:-.1,bar:-.2,point:-.3,tick:-.35,text:-.4,rule:-2.5},((r,i)=>{const o=va(e,t,!1,i);n[o]=r;const a=va(t,e,!1,i);n[a]=r}))}))})),[ua].forEach((e=>{[ua].forEach((t=>{const r={point:0,rect:-.1,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};Dt(r,((r,i)=>{const o=va(e,t,!0,i);n[o]=r})),Dt(r,((r,i)=>{const o=va(e,t,!1,i);n[o]=r}))})),t.forEach((t=>{const r={tick:0,point:-.2,text:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5};Dt(r,((r,i)=>{const o=va(e,t,!0,i);n[o]=r})),Dt(r,((r,i)=>{const o=va(t,e,!0,i);n[o]=r})),Dt(r,((r,i)=>{const o=va(e,t,!1,i);n[o]=r})),Dt(r,((r,i)=>{const o=va(t,e,!1,i);n[o]=r}))}))}));for(const r of t)for(const e of t){const t={point:0,rect:0,text:-.1,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};Dt(t,((t,i)=>{const o=va(r,e,!0,i);n[o]=t})),Dt(t,((t,i)=>{const o=va(r,e,!1,i);n[o]=t}))}return n}()}getScore(e,t,n){let r=e.getMark();r!==fn&&r!==pn||(r=sn);const i=e.getEncodingQueryByChannel(ye),o=i?ma(i):ga,a=e.getEncodingQueryByChannel(ve),s=o+"_"+(a?ma(a):ga)+"_"+!e.isAggregate()+"_"+r,c=this.getFeatureScore(s);return c?[c]:(console.error("feature score missing for",s),[])}},new class extends ia{constructor(){super("SizeChannel")}initScore(){return{bar_size:-2,tick_size:-2}}getScore(e,t,n){const r=e.getMark();return e.getEncodings().reduce(((e,t)=>{if(Tr(t)||Sr(t)){const n=r+"_"+t.channel,i=this.getFeatureScore(n);i&&e.push(i)}return e}),[])}},new class extends ia{constructor(){super("TypeChannel")}initScore(){let e={};const t={x:0,y:0,size:-.575,color:-.725,text:-2,opacity:-3,shape:ya,row:ya,column:ya,detail:-20};[sa,la,ua].forEach((n=>{It.keys(t).forEach((r=>{e[this.featurize(n,r)]=t[r]}))}));const n=It.extend({},t,{row:-.75,column:-.75,shape:-3.1,text:-3.2,detail:-4});[ca,da,fa].forEach((t=>{It.keys(n).forEach((r=>{e[this.featurize(t,r)]=n[r]}))}));const r={x:0,y:0,color:-.6,shape:-.65,row:-.7,column:-.7,text:-.8,detail:-2,size:-3,opacity:-3.1};return It.keys(r).forEach((t=>{e[this.featurize(pa,t)]=r[t],e[this.featurize(ha,t)]=Ut(["x","y","detail"],t)?-1:r[t]-2})),e}featurize(e,t){return e+"_"+t}getScore(e,t,n){const r=e.getEncodings().reduce(((e,t)=>{if(Tr(t)||Sr(t)){const n=vr(t);(e[n]=e[n]||[]).push(t)}return e}),{}),i=[];return Dt(r,(e=>{const t=e.reduce(((e,t)=>{if(Tr(t)||Sr(t)){const n=ma(t),r=this.featurize(n,t.channel),i=this.getFeatureScore(r);if(null===e||i.score>e.score)return i}return e}),null);i.push(t)})),i}}];const xa="aggregationQuality";let Ea={};function Ta(e,t){Ea[e]=t}function Sa(e,t,n,r){return t.nest&&r!==t.nest.length?(e.items.forEach((e=>{Sa(e,t,n,r+1)})),t.nest[r].orderGroupBy&&e.items.sort(function(e,t,n){return(r,i)=>{const o=ra(r),a=ra(i);return Na(e instanceof Array?e:[e],o,a,t,n)}}(t.nest[r].orderGroupBy,n,t.config))):(t.orderBy||t.chooseBy)&&(e.items.sort(function(e,t,n){return(r,i)=>Na(e instanceof Array?e:[e],r,i,t,n)}(t.orderBy||t.chooseBy,n,t.config)),t.chooseBy&&e.items.length>0&&e.items.splice(1)),e}function Na(e,t,n,r,i){for(let o of e){let e=wa(n,o,r,i).score-wa(t,o,r,i).score;if(0!==e)return e}return 0}function wa(e,t,n,r){if(void 0!==e.getRankingScore(t))return e.getRankingScore(t);const i=(0,Ea[t])(e,n,r);return e.setRankingScore(t,i),i}function Ca(e,t,n){let r={};return e=e.map((function(e){return n.smallRangeStepForHighCardinalityOrFacet&&(e=function(e,t,n,r){[he,ve,ge,ye].forEach((t=>{n[t]=e.getEncodingQueryByChannel(t)}));const i=n[ve];if(void 0!==i&&Tr(i)&&(n[he]||t.cardinality(i)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){void 0===i.scale&&(i.scale={});const e=Ur(i);i.scale&&(void 0===e||Et(e))&&(i.scale.rangeStep||(i.scale.rangeStep=12))}const o=n[ye];if(Tr(o)&&(n[ge]||t.cardinality(o)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){void 0===o.scale&&(o.scale={});const e=Ur(o);o.scale&&(void 0===e||Et(e))&&(o.scale.rangeStep||(o.scale.rangeStep=12))}return e}(e,t,r,n)),n.nominalColorScaleForHighCardinality&&(e=function(e,t,n,r){n[we]=e.getEncodingQueryByChannel(we);const i=n[we];Tr(i)&&void 0!==i&&(i.type===ft||i.type===Zn.KEY)&&t.cardinality(i)>r.nominalColorScaleForHighCardinality.maxCardinality&&(void 0===i.scale&&(i.scale={}),i.scale&&(i.scale.range||(i.scale.scheme=r.nominalColorScaleForHighCardinality.palette)));return e}(e,t,r,n)),n.xAxisOnTopForHighYCardinalityWithoutColumn&&(e=function(e,t,n,r){if([ge,ye,ve].forEach((t=>{n[t]=e.getEncodingQueryByChannel(t)})),void 0===n[ge]){const e=n[ye],i=n[ve];Tr(e)&&Tr(i)&&void 0!==i&&i.field&&Et(Ur(i))&&void 0!==e&&t.cardinality(i)>r.xAxisOnTopForHighYCardinalityWithoutColumn.maxCardinality&&(void 0===e.axis&&(e.axis={}),e.axis&&!e.axis.orient&&(e.axis.orient="top"))}return e}(e,t,r,n)),e})),e}function Aa(e,t,n=$n){const r=ta.build(e,t,n),i=r.wildcardIndex;let o=[r];return n.propertyPrecedence.forEach((e=>{const r=function(e){const t=e.split(".");if(1===t.length)return e;if(2===t.length)return{parent:t[0],child:t[1]};throw"Invalid property key with "+t.length+" dots: "+e}(e);if(i.hasProperty(r)){const e=function(e){return qo.get(e)}(r),a=e(i,t,n);o=o.reduce(a,[])}})),!n.stylize||null===n.nominalColorScaleForHighCardinality&&null===n.smallRangeStepForHighCardinalityOrFacet&&null===n.xAxisOnTopForHighYCardinalityWithoutColumn?o:Ca(o,t,n)}function Oa(e,t,n){const r=function(e,t){if(t){const n={name:"",path:"",items:[]};let r={},i=[],o=[],a=[];for(let e=0;e0?i[e-1].duplicate():new nr),o.push(e>0?o[e-1].duplicate():new nr);const n=t[e].groupBy;if(It.isArray(n)){let t=zo(n,i[e],o[e]);a.push(t.replacer)}}return e.forEach((e=>{let o="",s=n;for(let n=0;n{const o=i.getScore(e,t,n);return r.concat(o)}),[]);return{score:r.reduce(((e,t)=>e+t.score),0),features:r}})),Ta(xa,(function(e,t,n){const r=function(e){const t=e.getEncodings();if(e.isAggregate()){if(_t(t,(e=>Tr(e)&&(e.type===lt&&!e.bin&&!e.aggregate||e.type===dt&&!e.timeUnit))))return{type:xa,score:.1,feature:"Aggregate with raw continuous"};if(_t(t,(e=>Tr(e)&&Ir(e)))){let e=_t(t,(e=>Tr(e)&&"count"===e.aggregate||wr(e))),n=_t(t,(e=>Tr(e)&&!!e.bin));return e?{type:xa,score:.8,feature:"Aggregate with count"}:n?{type:xa,score:.7,feature:"Aggregate with bin but without count"}:{type:xa,score:.9,feature:"Aggregate without count and without bin"}}return{type:xa,score:.3,feature:"Aggregate without dimension"}}return _t(t,(e=>Tr(e)&&!Ir(e)))?{type:xa,score:1,feature:"Raw with measure"}:{type:xa,score:.2,feature:"Raw without measure"}}(e);return{score:r.score,features:[r]}})),Ta("fieldOrder",(function(e,t,n){const r=e.wildcardIndex.encodingIndicesByProperty.get("field");if(!r)return{score:0,features:[]};const i=e.specQuery.encodings,o=t.fieldSchemas.length,a=[];let s=0,c=1;for(let l=r.length-1;l>=0;l--){const n=r[l],u=i[n];let d;if(!Tr(u))continue;d=u.field;const f=e.wildcardIndex.encodings[n].get("field"),p=t.fieldSchema(d).index,h=-p*c;s+=h,a.push({score:h,type:"fieldOrder",feature:`field ${f.name} is ${d} (#${p} in the schema)`}),c*=o}return{score:s,features:a}}));const ka={[Io.BOOLEAN]:r.jsx(i,{className:"h-5 w-5 inline-flex opacity-60"}),[Io.DATETIME]:r.jsx(o,{className:"h-5 w-5 inline-flex opacity-60"}),[Io.NUMBER]:r.jsx(a,{className:"h-5 w-5 inline-flex opacity-60"}),[Io.STRING]:r.jsx(s,{className:"h-5 w-5 inline-flex opacity-60"}),[Io.INTEGER]:r.jsx(G,{className:"h-5 w-5 inline-flex opacity-60"})};function Ma(e){const{type:t,limit:n,additionalFieldQuery:r}=e;return{type:t,limit:n,createQuery:e=>({spec:{...e.spec,encodings:[...e.spec.encodings,r]},groupBy:"field",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!0}})}}const Ia=Ma({type:"addCategoricalField",limit:4,additionalFieldQuery:{channel:An,field:An,type:"nominal"}}),Ua=Ma({type:"addQuantitativeField",limit:4,additionalFieldQuery:{channel:An,bin:An,aggregate:An,field:An,type:"quantitative"}}),Fa=Ma({type:"addTemporalField",limit:2,additionalFieldQuery:{channel:An,hasFn:!0,timeUnit:An,field:An,type:"temporal"}});function Da(e){return e?"bin"===e?{bin:!0}:$(e)?{aggregate:e}:function(e){if(!e)return!1;return ja.includes(e)||Pa.includes(e)}(e)?{timeUnit:e}:{}:{}}const _a=["bin","min","max","mean","median","sum"],ja=["year","month","date","day","hours","minutes","seconds","milliseconds"],Pa=["yearmonth","yearmonthdate","monthdate"];function Ra(e){const t={};for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}function $a(e){const{aggregate:t,bin:n,timeUnit:r,field:i,scale:o,legend:a,axis:s,sort:u,description:d}=e;let{type:f}=e;if(On(f))throw new Error("Wildcard not support");"ordinal"===f&&(c.warn("Ordinal type is not supported. Using nominal type instead."),f="nominal");const p=function(e){const{aggregate:t,bin:n,timeUnit:r}=e;return n?"bin":t?t.toString():r?r.toString():void 0}({aggregate:t,bin:n,timeUnit:r});return l(void 0!==i,"Field is required for fieldQ"),Ra({field:i,fn:p,type:f,sort:u,scale:o,axis:s,legend:a,description:d})}function Ba(e){return 0===e.encodings.length}function La(e){let t=!1,n=!1,r=!1;for(const i of e.encodings)Er(i)||(Sr(i)?On(i.autoCount)&&(n=!0):(On(i.field)&&(t=!0),(On(i.aggregate)||On(i.bin)||On(i.timeUnit))&&(n=!0),On(i.channel)&&(r=!0)));return{hasAnyWildcard:r||t||n,hasWildcardField:t,hasWildcardFn:n,hasWildcardChannel:r}}function Wa(e){return{mark:e.mark,encodings:(t=e.encoding,Object.entries(t).map((([e,t])=>function(e,t){const{fn:n,...r}=e;return{channel:t,...Da(n),...r}}(t,e)))),config:e.config};var t}const Ha={name:"source"};function qa(e,t){const n={},{hasOpenPosition:r,hasStyleChannel:i,hasOpenFacet:o}=function(e){let t=!1,n=!1,r=!1;return e.encodings.forEach((e=>{"x"===e.channel||"y"===e.channel?t=!0:"row"===e.channel||"column"===e.channel?r=!0:"string"==typeof e.channel&&B(L,e.channel)&&(n=!0)})),{hasOpenPosition:t,hasStyleChannel:n,hasOpenFacet:r}}(e.spec);return(r||i)&&(n.addQuantitativeField=za(Ua,e,t)),(r||i||o)&&(n.addCategoricalField=za(Ia,e,t)),r&&(n.addTemporalField=za(Fa,e,t)),n}function Ga(e,t){if(Ba(e.spec))return{plots:[],query:e,limit:1};return{plots:[Ya(Oa(e,t).result,Ha)[0]],query:e,limit:1}}function za(e,t,n){const r=e.createQuery(t);return{plots:Ya(Oa(r,n).result,Ha),query:r,limit:e.limit}}function Ya(e,t){return e.items.map((e=>na(e)?Qa(t,ra(e)):Qa(t,e)))}function Qa(e,t){return{fieldInfos:t.getEncodings().filter(Tr).map((e=>({fieldDef:$a(e),channel:e.channel}))),spec:t.toSpec(e)}}const Va={type:"histograms",limit:12,createQuery:e=>({spec:{data:e.spec.data,mark:An,transform:e.spec.transform,encodings:[{channel:An,bin:An,timeUnit:An,field:An,type:An},{channel:An,aggregate:"count",field:"*",type:"quantitative"}]},groupBy:"fieldTransform",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!1}})};const{valueAtom:Ka,useActions:Ja}=u((function(){return{mark:An,encoding:{},config:{},schema:null}}),{setSchema:(e,t)=>({...e,schema:t}),setMark:(e,t)=>({...e,mark:t}),setEncoding:(e,t)=>{const n=Ra({...e.encoding,...t});return{...e,encoding:n}},set:(e,t)=>{const{schema:n,...r}=t;return{...e,...r}}});function Xa(){return Ja()}const Za=d((e=>{const t=e(Ka);if(!t.schema)return{};const n=function(e){const{spec:t,autoAddCount:n}=e,r=Wa(t),{hasAnyWildcard:i,hasWildcardFn:o,hasWildcardField:a}=La(r),s=function(e){const{hasWildcardFn:t,hasWildcardField:n}=e;return t?"fieldTransform":n?"field":"encoding"}({hasWildcardFn:o,hasWildcardField:a});return{spec:r,groupBy:s,orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:i?{autoAddCount:n}:void 0}}({spec:t,autoAddCount:!0});return Ba(n.spec)?{main:Ga(n,t.schema),histograms:za(Va,n,t.schema)}:function(e){return!La(e).hasAnyWildcard}(n.spec)&&!function(e){const t=new Set(e.encodings.map((e=>e.channel))),n=["x","y","color"].every((e=>t.has(e))),r=["row","column"].some((e=>t.has(e)));return n&&r}(n.spec)?{main:Ga(n,t.schema),...qa(n,t.schema)}:{main:Ga(n,t.schema)}})),es=[An,"area","bar","circle","geoshape","line","point","rect","rule","square","text","tick","trail"],ts=["x","y","row","column"],ns=["color","size","shape"],rs=e=>{const t=f.c(26),{schema:n,mark:i}=e,o=p(Ka),a=Xa(),s=o.encoding.x&&o.encoding.y;let c;t[0]!==a||t[1]!==s||t[2]!==n||t[3]!==o.encoding?(c=e=>{const t=("row"===e||"column"===e)&&!s;return r.jsx(is,{schema:n,label:e,disabled:t,fieldDefinition:o.encoding[e],onChange:t=>a.setEncoding({[e]:t})},e)},t[0]=a,t[1]=s,t[2]=n,t[3]=o.encoding,t[4]=c):c=t[4];const l=c;let u,d,x,E,T;t[5]!==i?(u=i.toString(),t[5]=i,t[6]=u):u=t[6],t[7]!==a?(d=e=>a.setMark(e),t[7]=a,t[8]=d):d=t[8],t[9]===Symbol.for("react.memo_cache_sentinel")?(x=r.jsx(h,{children:r.jsx(g,{placeholder:"Mark"})}),t[9]=x):x=t[9],t[10]===Symbol.for("react.memo_cache_sentinel")?(E=r.jsx(m,{children:r.jsxs(y,{children:[r.jsx(v,{children:"Mark"}),es.map(ss)]})}),t[10]=E):E=t[10],t[11]!==u||t[12]!==d?(T=r.jsxs(b,{"data-testid":"marimo-plugin-data-explorer-mark-select",value:u,onValueChange:d,children:[x,E]}),t[11]=u,t[12]=d,t[13]=T):T=t[13];const S=T;let N,w,C,A,O,k;return t[14]===Symbol.for("react.memo_cache_sentinel")?(N=r.jsx("span",{className:"col-span-2 flex items-center justify-between w-full",children:r.jsx("div",{className:"text-sm font-semibold",children:"Encodings"})}),t[14]=N):N=t[14],t[15]!==l?(w=ts.map(l),t[15]=l,t[16]=w):w=t[16],t[17]===Symbol.for("react.memo_cache_sentinel")?(C=r.jsx("div",{children:"Mark"}),t[17]=C):C=t[17],t[18]!==S?(A=r.jsxs("span",{className:"col-span-2 text-sm font-semibold w-full border-t border-divider flex items-center justify-between pt-2 pr-[30px]",children:[C,S]}),t[18]=S,t[19]=A):A=t[19],t[20]!==l?(O=ns.map(l),t[20]=l,t[21]=O):O=t[21],t[22]!==A||t[23]!==O||t[24]!==w?(k=r.jsxs("div",{className:"grid gap-x-2 gap-y-4 justify-items-start py-3 pl-4 pr-2 bg-[var(--slate-1)] border rounded items-center grid-template-columns-[repeat(2,_minmax(0,_min-content))] self-start",children:[N,w,A,O]}),t[22]=A,t[23]=O,t[24]=w,t[25]=k):k=t[25],k},is=e=>{const t=f.c(43),{label:n,schema:i,fieldDefinition:o,disabled:a,onChange:s}=e;let c;t[0]!==o||t[1]!==i?(c=()=>{if(!o)return"--";if("*"===o.field)return r.jsxs("span",{className:"flex gap-2 flex-1",children:[ka[Io.NUMBER],r.jsx("span",{className:"text-left flex-1",children:"Count"})]});const e=o.field.toString();return r.jsxs("span",{className:"flex gap-2 flex-1",children:[ka[i.primitiveType(e)],r.jsx("span",{className:"text-left flex-1",children:o.fn?`${o.fn}(${o.field})`:e})]})},t[0]=o,t[1]=i,t[2]=c):c=t[2];const l=c;let u;t[3]!==s?(u=()=>{s(void 0)},t[3]=s,t[4]=u):u=t[4];const d=u;let p;t[5]!==(null==o?void 0:o.field)?(p=(null==o?void 0:o.field.toString())??"",t[5]=null==o?void 0:o.field,t[6]=p):p=t[6];const g=p;let v,S;t[7]!==n?(v=r.jsx(E,{className:"text-[var(--slate-11)] font-semibold",children:n}),t[7]=n,t[8]=v):v=t[8],t[9]!==s||t[10]!==i?(S=e=>{s("*"===e?{field:"*",fn:"count",type:"quantitative"}:{field:e,type:i.vlType(e)})},t[9]=s,t[10]=i,t[11]=S):S=t[11];const N=g?d:void 0;let w,C,A,O,k,M,I,U,F,D,_,j;return t[12]!==l?(w=l(),t[12]=l,t[13]=w):w=t[13],t[14]!==N||t[15]!==w?(C=r.jsx(h,{className:"min-w-[140px] lg:min-w-[210px] h-full",onClear:N,children:w}),t[14]=N,t[15]=w,t[16]=C):C=t[16],t[17]!==i?(A=i.fieldNames().map((e=>r.jsx(x,{value:e.toString(),children:r.jsxs("span",{className:"flex items-center gap-2 flex-1",children:[ka[i.primitiveType(e)],r.jsx("span",{className:"flex-1",children:e}),r.jsxs("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",i.vlType(e),")"]})]})},e))),t[17]=i,t[18]=A):A=t[18],t[19]!==i?(O=0===i.fieldNames().length&&r.jsx(x,{disabled:!0,value:"--",children:"No columns"}),t[19]=i,t[20]=O):O=t[20],t[21]===Symbol.for("react.memo_cache_sentinel")?(k=r.jsx(T,{}),t[21]=k):k=t[21],t[22]===Symbol.for("react.memo_cache_sentinel")?(M=r.jsx(x,{value:"*",children:r.jsxs("span",{className:"flex items-center gap-1 flex-1",children:[ka[Io.NUMBER],r.jsx("span",{className:"flex-1",children:"Count"})]})},"*"),t[22]=M):M=t[22],t[23]!==O||t[24]!==A?(I=r.jsx(m,{children:r.jsxs(y,{children:[A,O,k,M]})}),t[23]=O,t[24]=A,t[25]=I):I=t[25],t[26]!==a||t[27]!==g||t[28]!==I||t[29]!==S||t[30]!==C?(U=r.jsxs(b,{value:g,disabled:a,onValueChange:S,children:[C,I]}),t[26]=a,t[27]=g,t[28]=I,t[29]=S,t[30]=C,t[31]=U):U=t[31],t[32]!==o||t[33]!==s?(F=o&&r.jsx(as,{field:o,onChange:s}),t[32]=o,t[33]=s,t[34]=F):F=t[34],t[35]!==F?(D=r.jsx("div",{className:"w-[26px]",children:F}),t[35]=F,t[36]=D):D=t[36],t[37]!==U||t[38]!==D?(_=r.jsxs("div",{className:"flex flex-row gap-1 h-[26px]",children:[U,D]}),t[37]=U,t[38]=D,t[39]=_):_=t[39],t[40]!==_||t[41]!==v?(j=r.jsxs(r.Fragment,{children:[v,_]}),t[40]=_,t[41]=v,t[42]=j):j=t[42],j},os="__",as=e=>{const t=f.c(15),{field:n,onChange:i}=e;if("*"===n.field)return null;let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],t[0]=o):o=t[0];let a=o;if(n.type===Zn.QUANTITATIVE){let e;t[1]===Symbol.for("react.memo_cache_sentinel")?(e=[["",_a]],t[1]=e):e=t[1],a=e}if(n.type===Zn.TEMPORAL){let e;t[2]===Symbol.for("react.memo_cache_sentinel")?(e=[["Single",ja],["Multi",Pa]],t[2]=e):e=t[2],a=e}if(a.length>0){let e,o,s,c,l,u;return t[3]!==n||t[4]!==i?(e=e=>{i({...n,fn:e===os?void 0:e})},t[3]=n,t[4]=i,t[5]=e):e=t[5],t[6]===Symbol.for("react.memo_cache_sentinel")?(o=r.jsx(h,{className:"h-full px-1",hideChevron:!0,variant:"ghost",children:r.jsx(S,{size:14,strokeWidth:1.5})}),t[6]=o):o=t[6],t[7]===Symbol.for("react.memo_cache_sentinel")?(s=r.jsx(y,{children:r.jsx(x,{value:os,children:"None"})}),c=r.jsx(T,{}),t[7]=s,t[8]=c):(s=t[7],c=t[8]),t[9]!==a?(l=r.jsxs(m,{children:[s,c,a.map(ls)]}),t[9]=a,t[10]=l):l=t[10],t[11]!==n.fn||t[12]!==e||t[13]!==l?(u=r.jsxs(b,{"data-testid":"marimo-plugin-data-explorer-field-options",value:n.fn,onValueChange:e,children:[o,l]}),t[11]=n.fn,t[12]=e,t[13]=l,t[14]=u):u=t[14],u}return null};function ss(e){return r.jsx(x,{value:e,children:e===An?"auto":e},e)}function cs(e){return r.jsx(x,{value:e??os,children:N(e)},e)}function ls(e){const[t,n]=e;return r.jsxs(y,{children:[t&&r.jsx(v,{children:t}),n.map(cs)]},t)}const us=e=>{const t=f.c(26),{schema:n}=e,[i,o]=w.useState(),[a,s]=w.useState();let c;if(t[0]!==n||t[1]!==i||t[2]!==a){const e=n.fieldNames(),l=i?n.stats({field:i,channel:"x"}):void 0;let u;t[4]===Symbol.for("react.memo_cache_sentinel")?(u=r.jsx(H,{className:"text-muted-foreground",width:40,height:40,strokeWidth:1.5}),t[4]=u):u=t[4];const d=u,f=a?e:e.slice(0,12),p=e.length>12,v=e.length>0?e.length:"No";let E,T;t[5]!==v?(E=r.jsxs("span",{className:"text-muted-foreground font-semibold",children:[v," fields"]}),t[5]=v,t[6]=E):E=t[6],t[7]!==n||t[8]!==i?(T=e=>{const t=n.cardinality({channel:"x",field:e});return r.jsxs("span",{className:C("hover:bg-muted self-start px-2 py-2 rounded flex flex-row gap-1 items-center cursor-pointer lg:justify-center text-sm truncate flex-shrink-0 overflow-hidden",i===e&&"bg-muted"),onClick:()=>{o(i!==e?e:void 0)},children:[ka[n.primitiveType(e)],e,t>1&&r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",t,")"]})]},e)},t[7]=n,t[8]=i,t[9]=T):T=t[9];const S=f.map(T);let N,w;t[10]!==p||t[11]!==a?(N=p&&r.jsx(A,{"data-testid":"marimo-plugin-data-explorer-show-more-columns",variant:"link",size:"sm",className:"self-center col-span-3 -mt-1",onClick:()=>s(ps),children:a?"Show less":"Show more"}),t[10]=p,t[11]=a,t[12]=N):N=t[12],t[13]!==S||t[14]!==N?(w=r.jsxs("div",{className:"hidden lg:grid grid-cols-2 xl:grid-cols-3 gap-2 p-2 bg-[var(--slate-1)] border rounded lg:items-center items-start w-fit grid-flow-dense max-h-[300px] overflow-auto",children:[S,N]}),t[13]=S,t[14]=N,t[15]=w):w=t[15];const O=i||"",k=0===e.length;let M,I,U,F,D;t[16]===Symbol.for("react.memo_cache_sentinel")?(M=e=>{o(e)},t[16]=M):M=t[16],t[17]===Symbol.for("react.memo_cache_sentinel")?(I=r.jsx(h,{className:"min-w-[210px] h-full",children:r.jsx(g,{placeholder:"Select a column"})}),t[17]=I):I=t[17],t[18]!==n?(U=n.fieldNames().map((e=>r.jsx(x,{value:e.toString(),children:r.jsxs("span",{className:"flex items-center gap-2 flex-1",children:[ka[n.primitiveType(e)],r.jsx("span",{className:"flex-1",children:e}),r.jsxs("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",n.vlType(e),")"]})]})},e))),t[18]=n,t[19]=U):U=t[19],t[20]!==U?(F=r.jsx(m,{children:r.jsx(y,{children:U})}),t[20]=U,t[21]=F):F=t[21],t[22]!==k||t[23]!==F||t[24]!==O?(D=r.jsx("div",{className:"lg:hidden",children:r.jsxs(b,{"data-testid":"marimo-plugin-data-explorer-column-select",value:O,disabled:k,onValueChange:M,children:[I,F]})}),t[22]=k,t[23]=F,t[24]=O,t[25]=D):D=t[25],c=r.jsxs("div",{className:"flex flex-col justify-center items-center h-full flex-1 gap-2",children:[d,E,w,D,i&&r.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2 p-2 text-sm",children:ds.map((e=>r.jsxs("div",{className:"flex flex-row gap-2 min-w-[100px]",children:[r.jsx("span",{className:"font-semibold",children:e}),r.jsx("span",{children:fs(null==l?void 0:l[e])})]},e)))})]}),t[0]=n,t[1]=i,t[2]=a,t[3]=c}else c=t[3];return c},ds=["distinct","min","max","mean","median","q1","q3","stdev"];function fs(e){return"number"==typeof e?new Intl.NumberFormat("en-US",{maximumFractionDigits:2}).format(e):"string"==typeof e?e:"object"==typeof e&&e instanceof Date?new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(e):String(e)}function ps(e){return!e}const hs=e=>{const t=f.c(5);let n,i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=j(),t[0]=i):i=t[0],n=i;const o=n;let a,s;return t[1]!==e?(a=()=>{const t=o.sub(Ka,(()=>{const t=o.get(Ka),{schema:n,...r}=t;e.setValue(r)})),n=e.value;return n&&Object.keys(n).length>0&&o.set(Ka,n),t},t[1]=e,t[2]=a):a=t[2],O(a),t[3]!==e?(s=r.jsx(k,{store:o,children:r.jsx(ys,{...e})}),t[3]=e,t[4]=s):s=t[4],s},gs={export:{svg:!0,png:!0},source:!1,compiled:!1,editor:!1},ms={left:20,right:20,top:20,bottom:20},ys=e=>{var t,n,i,o,a,s,c,l,u,d,h,g,m,y;const v=f.c(43),{data:b}=e,x=Xa();let E,T;v[0]!==x||v[1]!==b?(E=async()=>{if(!b)return{};const e=await P(b,{type:"csv",parse:"auto"},{replacePeriod:!0}),t=function(e,t={},n={fields:[]}){t=It.extend({},$n,t);let r=No.summary(e),i=xo.inferAll(e),o=n.fields.reduce(((e,t)=>(e[t.name]=t,e)),{}),a=r.map((function(n,r){const a=n.field,s="date"===i[a]?Io.DATETIME:i[a];let c,l=n.distinct;if(s===Io.NUMBER)c=lt;else if(s===Io.INTEGER)c=ln.max.getTime()&&(n.max=new Date(e))}}else c=ft;c===ft&&l/n.count>t.minPercentUniqueForKey&&n.count>t.minCardinalityForKey&&(c=Zn.KEY);let u={name:a,originalIndex:r,vlType:c,type:s,stats:n,timeStats:{},binStats:{}};const d=o[u.name];return u=It.extend(u,d),u}));for(let c of a)if(c.vlType===lt)for(let e of t.enum.binProps.maxbins)c.binStats[e]=Oo(e,c.stats);else if(c.vlType===dt)for(let e of t.enum.timeUnit)void 0!==e&&(c.timeStats[e]=ko(e,c.stats));const s=Object.assign({},n,{fields:a});return new Ao(s)}(e);return x.setSchema(t),{chartData:e,schema:t}},v[0]=x,v[1]=b,v[2]=E):E=v[2],v[3]!==b?(T=[b],v[3]=b,v[4]=T):T=v[4];const{data:S,loading:N,error:w}=M(E,T),{mark:C}=p(Ka),O=p(Za),{theme:k}=I();if(w){let e;return v[5]!==w?(e=r.jsx(R,{error:w}),v[5]=w,v[6]=e):e=v[6],e}if(!S){let e;return v[7]===Symbol.for("react.memo_cache_sentinel")?(e=r.jsx("div",{}),v[7]=e):e=v[7],e}const{chartData:_,schema:j}=S;if(N||!j){let e;return v[8]===Symbol.for("react.memo_cache_sentinel")?(e=r.jsx("div",{}),v[8]=e):e=v[8],e}const $=null==(n=null==(t=O.main)?void 0:t.plots)?void 0:n[0];let B,L,H,G,z,Y;if(v[9]!==x||v[10]!==_||v[11]!==(null==(i=O.addCategoricalField)?void 0:i.plots)||v[12]!==(null==(o=O.addQuantitativeField)?void 0:o.plots)||v[13]!==(null==(a=O.addTemporalField)?void 0:a.plots)||v[14]!==(null==(s=O.histograms)?void 0:s.plots)||v[15]!==$||v[16]!==C||v[17]!==j||v[18]!==k){const e=new Set(null==$?void 0:$.fieldInfos.map(Es));let t;v[23]!==_||v[24]!==$||v[25]!==j||v[26]!==k?(t=()=>$?r.jsx("div",{className:"flex overflow-y-auto justify-center items-center flex-1 w-[90%]",children:r.jsx(W,{data:{source:_},padding:ms,actions:gs,spec:xs($.spec),theme:"dark"===k?"dark":void 0})}):r.jsx(us,{schema:j}),v[23]=_,v[24]=$,v[25]=j,v[26]=k,v[27]=t):t=v[27];const n=t;let i,o;H="flex flex-col gap-2",v[28]!==C||v[29]!==j?(i=r.jsx(rs,{mark:C,schema:j}),v[28]=C,v[29]=j,v[30]=i):i=v[30],v[31]!==n?(o=n(),v[31]=n,v[32]=o):o=v[32],v[33]!==i||v[34]!==o?(G=r.jsxs("div",{className:"flex items-center gap-2",children:[i,o]}),v[33]=i,v[34]=o,v[35]=G):G=v[35],B=vs,L=[null==(c=O.histograms)?void 0:c.plots,null==(l=O.addCategoricalField)?void 0:l.plots,null==(u=O.addQuantitativeField)?void 0:u.plots,null==(d=O.addTemporalField)?void 0:d.plots].filter(Boolean).flat().map(((t,n)=>r.jsx(bs,{title:r.jsx("div",{className:"flex flex-row gap-1",children:t.fieldInfos.map((t=>{const n="*"===t.fieldDef.field?"Count":t.fieldDef.fn?`${t.fieldDef.fn}(${t.fieldDef.field})`:t.fieldDef.field.toString();return r.jsx(U,{variant:e.has(t.fieldDef.field)?"secondary":"defaultOutline",children:n},n)}))}),actions:r.jsx(F,{content:"Make main plot",children:r.jsx(A,{"data-testid":"marimo-plugin-data-explorer-make-main-plot",variant:"text",size:"icon",onClick:()=>{const e=D.fromEntries(t.fieldInfos.map(Ts));x.setEncoding(e)},children:r.jsx(q,{className:"w-4 h-4"})})}),children:r.jsx(W,{data:{source:_},actions:!1,spec:t.spec,theme:"dark"===k?"dark":void 0},n)},n))),v[9]=x,v[10]=_,v[11]=null==(h=O.addCategoricalField)?void 0:h.plots,v[12]=null==(g=O.addQuantitativeField)?void 0:g.plots,v[13]=null==(m=O.addTemporalField)?void 0:m.plots,v[14]=null==(y=O.histograms)?void 0:y.plots,v[15]=$,v[16]=C,v[17]=j,v[18]=k,v[19]=B,v[20]=L,v[21]=H,v[22]=G}else B=v[19],L=v[20],H=v[21],G=v[22];return v[36]!==B||v[37]!==L?(z=r.jsx(B,{children:L}),v[36]=B,v[37]=L,v[38]=z):z=v[38],v[39]!==H||v[40]!==G||v[41]!==z?(Y=r.jsxs("div",{className:H,children:[G,z]}),v[39]=H,v[40]=G,v[41]=z,v[42]=Y):Y=v[42],Y},vs=e=>{const t=f.c(2),{children:n}=e;if(0===_.Children.count(n))return null;let i;return t[0]!==n?(i=r.jsx("div",{className:"flex flex-row overflow-x-auto overflow-y-hidden gap-4 snap-x pb-4",children:n}),t[0]=n,t[1]=i):i=t[1],i},bs=e=>{const t=f.c(10),{title:n,children:i,actions:o}=e;let a,s,c,l;return t[0]!==n?(a=r.jsx("div",{className:"text-sm font-medium",children:n}),t[0]=n,t[1]=a):a=t[1],t[2]!==o||t[3]!==a?(s=r.jsxs("div",{className:"flex flex-row justify-between items-center bg-[var(--slate-3)] py-0.5 px-2",children:[a,o]}),t[2]=o,t[3]=a,t[4]=s):s=t[4],t[5]!==i?(c=r.jsx("div",{className:"px-6 pt-2 max-h-[280px] overflow-y-auto",children:i}),t[5]=i,t[6]=c):c=t[6],t[7]!==s||t[8]!==c?(l=r.jsxs("div",{className:"flex-shrink-0 bg-card shadow-md border overflow-hidden rounded snap-start",children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l};function xs(e){var t,n;return Boolean((null==(t=e.encoding)?void 0:t.row)||(null==(n=e.encoding)?void 0:n.column))||(e.width="container"),e}function Es(e){return e.fieldDef.field}function Ts(e){return[e.channel,e.fieldDef]}export{ys as DataExplorerComponent,hs as default}; diff --git a/public/examples/ui/assets/FiraMono-Bold-CLVRCuM9.ttf b/public/examples/ui/assets/FiraMono-Bold-CLVRCuM9.ttf new file mode 100644 index 0000000..23bc30f Binary files /dev/null and b/public/examples/ui/assets/FiraMono-Bold-CLVRCuM9.ttf differ diff --git a/public/examples/ui/assets/FiraMono-Medium-DU3aDxX5.ttf b/public/examples/ui/assets/FiraMono-Medium-DU3aDxX5.ttf new file mode 100644 index 0000000..793c60d Binary files /dev/null and b/public/examples/ui/assets/FiraMono-Medium-DU3aDxX5.ttf differ diff --git a/public/examples/ui/assets/FiraMono-Regular-BTCkDNvf.ttf b/public/examples/ui/assets/FiraMono-Regular-BTCkDNvf.ttf new file mode 100644 index 0000000..67bbd42 Binary files /dev/null and b/public/examples/ui/assets/FiraMono-Regular-BTCkDNvf.ttf differ diff --git a/public/examples/ui/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 b/public/examples/ui/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 new file mode 100644 index 0000000..0acaaff Binary files /dev/null and b/public/examples/ui/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_AMS-Regular-DMm9YOAa.woff b/public/examples/ui/assets/KaTeX_AMS-Regular-DMm9YOAa.woff new file mode 100644 index 0000000..b804d7b Binary files /dev/null and b/public/examples/ui/assets/KaTeX_AMS-Regular-DMm9YOAa.woff differ diff --git a/public/examples/ui/assets/KaTeX_AMS-Regular-DRggAlZN.ttf b/public/examples/ui/assets/KaTeX_AMS-Regular-DRggAlZN.ttf new file mode 100644 index 0000000..c6f9a5e Binary files /dev/null and b/public/examples/ui/assets/KaTeX_AMS-Regular-DRggAlZN.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf new file mode 100644 index 0000000..9ff4a5e Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff new file mode 100644 index 0000000..9759710 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 new file mode 100644 index 0000000..f390922 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff new file mode 100644 index 0000000..9bdd534 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 new file mode 100644 index 0000000..75344a1 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf new file mode 100644 index 0000000..f522294 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf b/public/examples/ui/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf new file mode 100644 index 0000000..4e98259 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff b/public/examples/ui/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff new file mode 100644 index 0000000..e7730f6 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 b/public/examples/ui/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 new file mode 100644 index 0000000..395f28b Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Regular-CB_wures.ttf b/public/examples/ui/assets/KaTeX_Fraktur-Regular-CB_wures.ttf new file mode 100644 index 0000000..b8461b2 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Regular-CB_wures.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 b/public/examples/ui/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 new file mode 100644 index 0000000..735f694 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff b/public/examples/ui/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff new file mode 100644 index 0000000..acab069 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff differ diff --git a/public/examples/ui/assets/KaTeX_Main-Bold-Cx986IdX.woff2 b/public/examples/ui/assets/KaTeX_Main-Bold-Cx986IdX.woff2 new file mode 100644 index 0000000..ab2ad21 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Bold-Cx986IdX.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Main-Bold-Jm3AIy58.woff b/public/examples/ui/assets/KaTeX_Main-Bold-Jm3AIy58.woff new file mode 100644 index 0000000..f38136a Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Bold-Jm3AIy58.woff differ diff --git a/public/examples/ui/assets/KaTeX_Main-Bold-waoOVXN0.ttf b/public/examples/ui/assets/KaTeX_Main-Bold-waoOVXN0.ttf new file mode 100644 index 0000000..4060e62 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Bold-waoOVXN0.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 b/public/examples/ui/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 new file mode 100644 index 0000000..5931794 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf b/public/examples/ui/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf new file mode 100644 index 0000000..dc00797 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff b/public/examples/ui/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff new file mode 100644 index 0000000..67807b0 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff differ diff --git a/public/examples/ui/assets/KaTeX_Main-Italic-3WenGoN9.ttf b/public/examples/ui/assets/KaTeX_Main-Italic-3WenGoN9.ttf new file mode 100644 index 0000000..0e9b0f3 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Italic-3WenGoN9.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Main-Italic-BMLOBm91.woff b/public/examples/ui/assets/KaTeX_Main-Italic-BMLOBm91.woff new file mode 100644 index 0000000..6f43b59 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Italic-BMLOBm91.woff differ diff --git a/public/examples/ui/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 b/public/examples/ui/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 new file mode 100644 index 0000000..b50920e Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Main-Regular-B22Nviop.woff2 b/public/examples/ui/assets/KaTeX_Main-Regular-B22Nviop.woff2 new file mode 100644 index 0000000..eb24a7b Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Regular-B22Nviop.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Main-Regular-Dr94JaBh.woff b/public/examples/ui/assets/KaTeX_Main-Regular-Dr94JaBh.woff new file mode 100644 index 0000000..21f5812 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Regular-Dr94JaBh.woff differ diff --git a/public/examples/ui/assets/KaTeX_Main-Regular-ypZvNtVU.ttf b/public/examples/ui/assets/KaTeX_Main-Regular-ypZvNtVU.ttf new file mode 100644 index 0000000..dd45e1e Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Main-Regular-ypZvNtVU.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf b/public/examples/ui/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf new file mode 100644 index 0000000..728ce7a Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 b/public/examples/ui/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 new file mode 100644 index 0000000..2965702 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff b/public/examples/ui/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff new file mode 100644 index 0000000..0ae390d Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff differ diff --git a/public/examples/ui/assets/KaTeX_Math-Italic-DA0__PXp.woff b/public/examples/ui/assets/KaTeX_Math-Italic-DA0__PXp.woff new file mode 100644 index 0000000..eb5159d Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-Italic-DA0__PXp.woff differ diff --git a/public/examples/ui/assets/KaTeX_Math-Italic-flOr_0UB.ttf b/public/examples/ui/assets/KaTeX_Math-Italic-flOr_0UB.ttf new file mode 100644 index 0000000..70d559b Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-Italic-flOr_0UB.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Math-Italic-t53AETM-.woff2 b/public/examples/ui/assets/KaTeX_Math-Italic-t53AETM-.woff2 new file mode 100644 index 0000000..215c143 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Math-Italic-t53AETM-.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf b/public/examples/ui/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf new file mode 100644 index 0000000..2f65a8a Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 b/public/examples/ui/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 new file mode 100644 index 0000000..cfaa3bd Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff b/public/examples/ui/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff new file mode 100644 index 0000000..8d47c02 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 b/public/examples/ui/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 new file mode 100644 index 0000000..349c06d Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff b/public/examples/ui/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff new file mode 100644 index 0000000..7e02df9 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf b/public/examples/ui/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf new file mode 100644 index 0000000..d5850df Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf b/public/examples/ui/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf new file mode 100644 index 0000000..537279f Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff b/public/examples/ui/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff new file mode 100644 index 0000000..31b8482 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff differ diff --git a/public/examples/ui/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 b/public/examples/ui/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 new file mode 100644 index 0000000..a90eea8 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Script-Regular-C5JkGWo-.ttf b/public/examples/ui/assets/KaTeX_Script-Regular-C5JkGWo-.ttf new file mode 100644 index 0000000..fd679bf Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Script-Regular-C5JkGWo-.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 b/public/examples/ui/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 new file mode 100644 index 0000000..b3048fc Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Script-Regular-D5yQViql.woff b/public/examples/ui/assets/KaTeX_Script-Regular-D5yQViql.woff new file mode 100644 index 0000000..0e7da82 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Script-Regular-D5yQViql.woff differ diff --git a/public/examples/ui/assets/KaTeX_Size1-Regular-C195tn64.woff b/public/examples/ui/assets/KaTeX_Size1-Regular-C195tn64.woff new file mode 100644 index 0000000..7f292d9 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size1-Regular-C195tn64.woff differ diff --git a/public/examples/ui/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf b/public/examples/ui/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf new file mode 100644 index 0000000..871fd7d Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 b/public/examples/ui/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 new file mode 100644 index 0000000..c5a8462 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf b/public/examples/ui/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf new file mode 100644 index 0000000..7a212ca Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 b/public/examples/ui/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 new file mode 100644 index 0000000..e1bccfe Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Size2-Regular-oD1tc_U0.woff b/public/examples/ui/assets/KaTeX_Size2-Regular-oD1tc_U0.woff new file mode 100644 index 0000000..d241d9b Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size2-Regular-oD1tc_U0.woff differ diff --git a/public/examples/ui/assets/KaTeX_Size3-Regular-CTq5MqoE.woff b/public/examples/ui/assets/KaTeX_Size3-Regular-CTq5MqoE.woff new file mode 100644 index 0000000..e6e9b65 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size3-Regular-CTq5MqoE.woff differ diff --git a/public/examples/ui/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf b/public/examples/ui/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf new file mode 100644 index 0000000..00bff34 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Size4-Regular-BF-4gkZK.woff b/public/examples/ui/assets/KaTeX_Size4-Regular-BF-4gkZK.woff new file mode 100644 index 0000000..e1ec545 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size4-Regular-BF-4gkZK.woff differ diff --git a/public/examples/ui/assets/KaTeX_Size4-Regular-DWFBv043.ttf b/public/examples/ui/assets/KaTeX_Size4-Regular-DWFBv043.ttf new file mode 100644 index 0000000..74f0892 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size4-Regular-DWFBv043.ttf differ diff --git a/public/examples/ui/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 b/public/examples/ui/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 new file mode 100644 index 0000000..680c130 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff b/public/examples/ui/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff new file mode 100644 index 0000000..2432419 Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff differ diff --git a/public/examples/ui/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 b/public/examples/ui/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 new file mode 100644 index 0000000..771f1af Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 differ diff --git a/public/examples/ui/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf b/public/examples/ui/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf new file mode 100644 index 0000000..c83252c Binary files /dev/null and b/public/examples/ui/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf differ diff --git a/public/examples/ui/assets/Lora-VariableFont_wght-B2ootaw-.ttf b/public/examples/ui/assets/Lora-VariableFont_wght-B2ootaw-.ttf new file mode 100644 index 0000000..72b97d5 Binary files /dev/null and b/public/examples/ui/assets/Lora-VariableFont_wght-B2ootaw-.ttf differ diff --git a/public/examples/ui/assets/PTSans-Bold-D9fedIX3.ttf b/public/examples/ui/assets/PTSans-Bold-D9fedIX3.ttf new file mode 100644 index 0000000..f82c3bd Binary files /dev/null and b/public/examples/ui/assets/PTSans-Bold-D9fedIX3.ttf differ diff --git a/public/examples/ui/assets/PTSans-Regular-CxL0S8W7.ttf b/public/examples/ui/assets/PTSans-Regular-CxL0S8W7.ttf new file mode 100644 index 0000000..adaf671 Binary files /dev/null and b/public/examples/ui/assets/PTSans-Regular-CxL0S8W7.ttf differ diff --git a/public/examples/ui/assets/VegaLite-eTvwU3EX.js b/public/examples/ui/assets/VegaLite-eTvwU3EX.js new file mode 100644 index 0000000..a5fc9a7 --- /dev/null +++ b/public/examples/ui/assets/VegaLite-eTvwU3EX.js @@ -0,0 +1,11 @@ +var e;import{g as t,co as n,cp as r,cq as i,cr as o,cs as a,ct as s,R as l,cu as c}from"./index-BnyyrSDd.js";import{a as h,b as p,c as f,d,e as u,f as g,g as m,h as v,i as E,j as b,k as y,l as w,m as O,n as A,o as x,p as N,q as I,r as S,s as R,t as L,u as $,v as T,w as D,x as C,y as F,z as k,A as P,B as _,C as j,D as M,E as z,F as U,G as B,H as G,I as V,J as W,K as X,L as H,N as q,O as Y,P as J,Q,R as K,S as Z,T as ee}from"./compile-CnzUcuVp.js";import{e as te}from"./index-DYujHiTf.js";const ne="5.23.0",re=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:h,accessPathWithDatum:p,accessWithDatumToUnescapedPath:f,compile:d,contains:u,deepEqual:g,deleteNestedProperty:m,duplicate:v,entries:E,every:b,fieldIntersection:y,flatAccessWithDatum:w,getFirstDefined:O,hasIntersection:A,hasProperty:x,hash:N,internalField:I,isBoolean:S,isEmpty:R,isEqual:L,isInternalField:$,isNullOrFalse:T,isNumeric:D,keys:C,logicalExpr:F,mergeDeep:k,never:P,normalize:_,normalizeAngle:j,omit:M,pick:z,prefixGenerator:U,removePathFromField:B,replaceAll:G,replacePathInField:V,resetIdCounter:W,setEqual:X,some:H,stringify:q,titleCase:Y,unique:J,uniqueId:Q,vals:K,varName:Z,version:ne},Symbol.toStringTag,{value:"Module"})),ie={};function oe(e,t){void 0===e&&(e=ie),void 0===t&&(t=ie);const n=Object.keys(e),r=Object.keys(t);return e===t||n.length===r.length&&n.every((n=>e[n]===t[n]))} +/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2022 Joachim Wester + * MIT licensed + */var ae=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),se=Object.prototype.hasOwnProperty;function le(e,t){return se.call(e,t)}function ce(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n=48&&t<=57))return!1;n++}return!0}function fe(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function de(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function ue(e){if(void 0===e)return!0;if(e)if(Array.isArray(e)){for(var t=0,n=e.length;t0&&"constructor"==s[c-1]))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(n&&void 0===p&&(void 0===l[f]?p=s.slice(0,c).join("/"):c==h-1&&(p=t.path),void 0!==p&&d(t,0,e,p)),c++,Array.isArray(l)){if("-"===f)f=l.length;else{if(n&&!pe(f))throw new ve("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",o,t,e);pe(f)&&(f=~~f)}if(c>=h){if(n&&"add"===t.op&&f>l.length)throw new ve("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",o,t,e);if(!1===(a=ye[t.op].call(t,l,f,e)).test)throw new ve("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return a}}else if(c>=h){if(!1===(a=be[t.op].call(t,l,f,e)).test)throw new ve("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return a}if(l=l[f],n&&c0)throw new ve('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,n);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new ve("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,n);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new ve("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,n);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&ue(e.value))throw new ve("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,n);if(n)if("add"==e.op){var i=e.path.split("/").length,o=r.split("/").length;if(i!==o+1&&i!==o)throw new ve("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,n)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==r)throw new ve("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,n)}else if("move"===e.op||"copy"===e.op){var a=Ne([{op:"_get",path:e.from,value:void 0}],n);if(a&&"OPERATION_PATH_UNRESOLVABLE"===a.name)throw new ve("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,n)}}function Ne(e,t,n){try{if(!Array.isArray(e))throw new ve("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Ae(he(t),he(e),n||!0);else{n=n||xe;for(var r=0;r0&&(e.patches=[],e.callback&&e.callback(r)),r}function De(e,t,n,r,i){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var o=ce(t),a=ce(e),s=!1,l=a.length-1;l>=0;l--){var c=e[p=a[l]];if(!le(t,p)||void 0===t[p]&&void 0!==c&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(i&&n.push({op:"test",path:r+"/"+fe(p),value:he(c)}),n.push({op:"remove",path:r+"/"+fe(p)}),s=!0):(i&&n.push({op:"test",path:r,value:e}),n.push({op:"replace",path:r,value:t}));else{var h=t[p];"object"==typeof c&&null!=c&&"object"==typeof h&&null!=h&&Array.isArray(c)===Array.isArray(h)?De(c,h,n,r+"/"+fe(p),i):c!==h&&(i&&n.push({op:"test",path:r+"/"+fe(p),value:he(c)}),n.push({op:"replace",path:r+"/"+fe(p),value:he(h)}))}}if(s||o.length!=a.length)for(l=0;l0)return[m,n+c.join(",\n"+u),s].join("\n"+o)}return v}(e,"",0)}));var Pe={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},_e={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>ee<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},je={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const Me=Array.prototype.slice,ze=(e,t,n)=>{const r=n?n(t[0]):t[0];return r[e].apply(r,Me.call(t,1))};var Ue={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:(e,t,n,r,i,o,a)=>new Date(e,t||0,null!=n?n:1,r||0,i||0,o||0,a||0),date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return ze("join",arguments)},indexof:function(){return ze("indexOf",arguments)},lastindexof:function(){return ze("lastIndexOf",arguments)},slice:function(){return ze("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat:parseFloat,parseInt:parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return ze("substring",arguments,String)},split:function(){return ze("split",arguments,String)},replace:function(){return ze("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Be=["view","item","group","xy","x","y"],Ge=new Set([Function,eval,setTimeout,setInterval]);"function"==typeof setImmediate&&Ge.add(setImmediate);const Ve={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:"datum"===n?e.datum:"event"===n?e.event:"item"===n?e.item:Pe[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,r=e(t.object);n&&(e.memberDepth+=1);const i=e(t.property);if(n&&(e.memberDepth-=1),!Ge.has(r[i]))return r[i];console.error(`Prevented interpretation of member "${i}" which could lead to insecure code execution`)},CallExpression:(e,t)=>{const n=t.arguments;let r=t.callee.name;return r.startsWith("_")&&(r=r.slice(1)),"if"===r?e(n[0])?e(n[1]):e(n[2]):(e.fn[r]||Ue[r]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>_e[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>je[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>"&&"===t.operator?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce(((t,n)=>{e.memberDepth+=1;const r=e(n.key);return e.memberDepth-=1,Ge.has(e(n.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):t[r]=e(n.value),t}),{})};function We(e,t,n,r,i,o){const a=e=>Ve[e.type](a,e);return a.memberDepth=0,a.fn=Object.create(t),a.params=n,a.datum=r,a.event=i,a.item=o,Be.forEach((e=>a.fn[e]=function(){return i.vega[e](...arguments)})),a(e)}var Xe={operator(e,t){const n=t.ast,r=e.functions;return e=>We(n,r,e)},parameter(e,t){const n=t.ast,r=e.functions;return(e,t)=>We(n,r,t,e)},event(e,t){const n=t.ast,r=e.functions;return e=>We(n,r,void 0,void 0,e)},handler(e,t){const n=t.ast,r=e.functions;return(e,t)=>{const i=t.item&&t.item.datum;return We(n,r,e,i,t)}},encode(e,t){const{marktype:n,channels:r}=t,i=e.functions,o="group"===n||"image"===n||"rect"===n;return(e,t)=>{const a=e.datum;let s,l=0;for(const n in r)s=We(r[n].ast,i,t,a,void 0,e),e[n]!==s&&(e[n]=s,l=1);return"rule"!==n&&function(e,t,n){let r;t.x2&&(t.x?(n&&e.x>e.x2&&(r=e.x,e.x=e.x2,e.x2=r),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(r=e.y,e.y=e.y2,e.y2=r),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}(e,r,o),l}}};function He(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var qe="2.14.0";const Ye="#fff",Je="#888",Qe={background:"#333",view:{stroke:Je},title:{color:Ye,subtitleColor:Ye},style:{"guide-label":{fill:Ye},"guide-title":{fill:Ye}},axis:{domainColor:Ye,gridColor:Je,tickColor:Ye}},Ke="#4572a7",Ze={background:"#fff",arc:{fill:Ke},area:{fill:Ke},line:{stroke:Ke,strokeWidth:2},path:{stroke:Ke},rect:{fill:Ke},shape:{stroke:Ke},symbol:{fill:Ke,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},et="#30a2da",tt="#cbcbcb",nt="#f0f0f0",rt="#333",it={arc:{fill:et},area:{fill:et},axis:{domainColor:tt,grid:!0,gridColor:tt,gridWidth:1,labelColor:"#999",labelFontSize:10,titleColor:"#333",tickColor:tt,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:nt,group:{fill:nt},legend:{labelColor:rt,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:rt,titleFontSize:14,titlePadding:10},line:{stroke:et,strokeWidth:2},path:{stroke:et,strokeWidth:.5},rect:{fill:et},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:et},bar:{binSpacing:2,fill:et,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},ot="#000",at={group:{fill:"#e5e5e5"},arc:{fill:ot},area:{fill:ot},line:{stroke:ot},path:{stroke:ot},rect:{fill:ot},shape:{stroke:ot},symbol:{fill:ot,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},st="Benton Gothic, sans-serif",lt="#82c6df",ct="Benton Gothic Bold, sans-serif",ht="normal",pt={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},ft={background:"#ffffff",title:{anchor:"start",color:"#000000",font:ct,fontSize:22,fontWeight:"normal"},arc:{fill:lt},area:{fill:lt},line:{stroke:lt,strokeWidth:2},path:{stroke:lt},rect:{fill:lt},shape:{stroke:lt},symbol:{fill:lt,size:30},axis:{labelFont:st,labelFontSize:11.5,labelFontWeight:"normal",titleFont:ct,titleFontSize:13,titleFontWeight:ht},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:st,labelFontSize:11.5,symbolType:"square",titleFont:ct,titleFontSize:13,titleFontWeight:ht},range:{category:pt["category-6"],diverging:pt["fireandice-6"],heatmap:pt["fire-7"],ordinal:pt["fire-7"],ramp:pt["fire-7"]}},dt="#ab5787",ut="#979797",gt={background:"#f9f9f9",arc:{fill:dt},area:{fill:dt},line:{stroke:dt},path:{stroke:dt},rect:{fill:dt},shape:{stroke:dt},symbol:{fill:dt,size:30},axis:{domainColor:ut,domainWidth:.5,gridWidth:.2,labelColor:ut,tickColor:ut,tickWidth:.2,titleColor:ut},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},mt="#3e5c69",vt={background:"#fff",arc:{fill:mt},area:{fill:mt},line:{stroke:mt},path:{stroke:mt},rect:{fill:mt},shape:{stroke:mt},symbol:{fill:mt},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},Et="#1696d2",bt="#000000",yt="Lato",wt="Lato",Ot={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},At={background:"#FFFFFF",title:{anchor:"start",fontSize:18,font:yt},axisX:{domain:!0,domainColor:bt,domainWidth:1,grid:!1,labelFontSize:12,labelFont:wt,labelAngle:0,tickColor:bt,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:yt},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:"#DEDDDD",gridWidth:1,labelFontSize:12,labelFont:wt,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:yt,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:wt,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:yt,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Ot["six-groups-cat-1"],diverging:Ot["diverging-colors"],heatmap:Ot["diverging-colors"],ordinal:Ot["six-groups-seq"],ramp:Ot["shades-blue"]},area:{fill:Et},rect:{fill:Et},line:{color:Et,stroke:Et,strokeWidth:5},trail:{color:Et,stroke:Et,strokeWidth:0,size:1},path:{stroke:Et,strokeWidth:.5},point:{filled:!0},text:{font:"Lato",color:Et,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:Et,stroke:null}},arc:{fill:Et},shape:{stroke:Et},symbol:{fill:Et,size:30}},xt="#3366CC",Nt="#ccc",It="Arial, sans-serif",St={arc:{fill:xt},area:{fill:xt},path:{stroke:xt},rect:{fill:xt},shape:{stroke:xt},symbol:{stroke:xt},circle:{fill:xt},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:It,fontSize:12},"guide-title":{font:It,fontSize:12},"group-title":{font:It,fontSize:12}},title:{font:It,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:Nt,tickColor:Nt,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},Rt=e=>e*(1/3+1),Lt=Rt(9),$t=Rt(10),Tt=Rt(12),Dt="Segoe UI",Ct="wf_standard-font, helvetica, arial, sans-serif",Ft="#252423",kt="#605E5C",Pt="transparent",_t="#118DFF",jt="#DEEFFF",Mt=[jt,_t],zt={view:{stroke:Pt},background:Pt,font:Dt,header:{titleFont:Ct,titleFontSize:Tt,titleColor:Ft,labelFont:Dt,labelFontSize:$t,labelColor:kt},axis:{ticks:!1,grid:!1,domain:!1,labelColor:kt,labelFontSize:Lt,titleFont:Ct,titleColor:Ft,titleFontSize:Tt,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:"#C8C6C4",gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:_t},line:{stroke:_t,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Dt,fontSize:Lt,fill:kt},arc:{fill:_t},area:{fill:_t,line:!0,opacity:.6},path:{stroke:_t},rect:{fill:_t},point:{fill:_t,filled:!0,size:75},shape:{stroke:_t},symbol:{fill:_t,strokeWidth:1.5,size:50},legend:{titleFont:Dt,titleFontWeight:"bold",titleColor:kt,labelFont:Dt,labelFontSize:$t,labelColor:kt,symbolType:"circle",symbolSize:75},range:{category:[_t,"#12239E","#E66C37","#6B007B","#E044A7","#744EC2","#D9B300","#D64550"],diverging:Mt,heatmap:Mt,ordinal:[jt,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",_t]}},Ut='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',Bt=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],Gt=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function Vt({type:e,background:t}){const n="dark"===e?"#161616":"#ffffff",r="dark"===e?"#f4f4f4":"#161616",i="dark"===e?"#d4bbff":"#6929c4";return{background:t,arc:{fill:i},area:{fill:i},path:{stroke:i},rect:{fill:i},shape:{stroke:i},symbol:{stroke:i},circle:{fill:i},view:{fill:n,stroke:n},group:{fill:n},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:Ut,fontWeight:600},axis:{labelColor:r,labelFontSize:12,grid:!0,gridColor:"#525252",titleColor:r,labelAngle:0},style:{"guide-label":{font:Ut,fill:r,fontWeight:400},"guide-title":{font:Ut,fill:r,fontWeight:400}},range:{category:"dark"===e?Bt:Gt,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const Wt=Vt({type:"light",background:"#ffffff"}),Xt=Vt({type:"light",background:"#f4f4f4"}),Ht=Vt({type:"dark",background:"#262626"}),qt=Vt({type:"dark",background:"#161616"}),Yt=qe,Jt=Object.freeze(Object.defineProperty({__proto__:null,carbong10:Xt,carbong100:qt,carbong90:Ht,carbonwhite:Wt,dark:Qe,excel:Ze,fivethirtyeight:it,ggplot2:at,googlecharts:St,latimes:ft,powerbi:zt,quartz:gt,urbaninstitute:At,version:Yt,vox:vt},Symbol.toStringTag,{value:"Module"}));function Qt(e,t){return JSON.stringify(e,function(e){const t=[];return function(n,r){if("object"!=typeof r||null===r)return r;const i=t.indexOf(this)+1;return t.length=i,t.length>e?"[Object]":t.indexOf(r)>=0?"[Circular]":(t.push(r),r)}}(t))}var Kt="#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black;\n}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n";const Zt="vg-tooltip-element",en={offsetX:10,offsetY:10,id:Zt,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:function(e){return String(e).replace(/&/g,"&").replace(/t(r(e)?e:Qt(e,o)))).join(", ")}]`;if(i(e)){let n="";const{title:r,image:a,...s}=e;r&&(n+=`

${t(r)}

`),a&&(n+=``);const l=Object.keys(s);if(l.length>0){n+="";for(const e of l){let r=s[e];void 0!==r&&(i(r)&&(r=Qt(r,o)),n+=``)}n+="
${t(e)}${t(r)}
"}return n||"{}"}return t(e)}};class tn{constructor(e){this.options={...en,...e};const t=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId),e.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return Kt.toString().replace(Zt,e)}(t);const n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,r){if(this.el=document.getElementById(this.options.id),!this.el){this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip");(document.fullscreenElement??document.body).appendChild(this.el)}if(null==r||""===r)return void this.el.classList.remove("visible",`${this.options.theme}-theme`);this.el.innerHTML=this.options.formatTooltip(r,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:i,y:o}=function(e,t,n,r){let i=e.clientX+n;i+t.width>window.innerWidth&&(i=+e.clientX-n-t.width);let o=e.clientY+r;return o+t.height>window.innerHeight&&(o=+e.clientY-r-t.height),{x:i,y:o}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.style.top=`${o}px`,this.el.style.left=`${i}px`}}var nn,rn,on={};function an(e){return(an="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 sn(e){var t=function(e,t){if("object"!==an(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==an(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===an(t)?t:String(t)}function ln(e,t,n){return(t=sn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cn(e){return e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var hn=pn;function pn(e){var t=this;if(t instanceof pn||(t=new pn),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,r=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var i=0;null!==r;i++)n=e(n,r.value,i),r=r.next;return n},pn.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var i=this.length-1;null!==r;i--)n=e(n,r.value,i),r=r.prev;return n},pn.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},pn.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},pn.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new pn;if(tthis.length&&(t=this.length);for(var r=0,i=this.head;null!==i&&rthis.length&&(t=this.length);for(var r=this.length,i=this.tail;null!==i&&r>t;r--)i=i.prev;for(;null!==i&&r>e;r--,i=i.prev)n.push(i.value);return n},pn.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,i=this.head;null!==i&&r1;const Rn=(e,t,n)=>{const r=e[Nn].get(t);if(r){const t=r.value;if(Ln(e,t)){if(Tn(e,r),!e[yn])return}else n&&(e[In]&&(r.value.now=Date.now()),e[xn].unshiftNode(r));return t.value}},Ln=(e,t)=>{if(!t||!t.maxAge&&!e[wn])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[wn]&&n>e[wn]},$n=e=>{if(e[En]>e[vn])for(let t=e[xn].tail;e[En]>e[vn]&&null!==t;){const n=t.prev;Tn(e,t),t=n}},Tn=(e,t)=>{if(t){const n=t.value;e[On]&&e[On](n.key,n.value),e[En]-=n.length,e[Nn].delete(n.key),e[xn].removeNode(t)}};class Dn{constructor(e,t,n,r,i){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=i||0}}const Cn=(e,t,n,r)=>{let i=n.value;Ln(e,i)&&(Tn(e,n),e[yn]||(i=void 0)),i&&t.call(r,i.value,i.key,e)};var Fn=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[vn]=e.max||1/0;const t=e.length||Sn;if(this[bn]="function"!=typeof t?Sn:t,this[yn]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[wn]=e.maxAge||0,this[On]=e.dispose,this[An]=e.noDisposeOnSet||!1,this[In]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[vn]=e||1/0,$n(this)}get max(){return this[vn]}set allowStale(e){this[yn]=!!e}get allowStale(){return this[yn]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[wn]=e,$n(this)}get maxAge(){return this[wn]}set lengthCalculator(e){"function"!=typeof e&&(e=Sn),e!==this[bn]&&(this[bn]=e,this[En]=0,this[xn].forEach((e=>{e.length=this[bn](e.value,e.key),this[En]+=e.length}))),$n(this)}get lengthCalculator(){return this[bn]}get length(){return this[En]}get itemCount(){return this[xn].length}rforEach(e,t){t=t||this;for(let n=this[xn].tail;null!==n;){const r=n.prev;Cn(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[xn].head;null!==n;){const r=n.next;Cn(this,e,n,t),n=r}}keys(){return this[xn].toArray().map((e=>e.key))}values(){return this[xn].toArray().map((e=>e.value))}reset(){this[On]&&this[xn]&&this[xn].length&&this[xn].forEach((e=>this[On](e.key,e.value))),this[Nn]=new Map,this[xn]=new mn,this[En]=0}dump(){return this[xn].map((e=>!Ln(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[xn]}set(e,t,n){if((n=n||this[wn])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,i=this[bn](t,e);if(this[Nn].has(e)){if(i>this[vn])return Tn(this,this[Nn].get(e)),!1;const o=this[Nn].get(e).value;return this[On]&&(this[An]||this[On](e,o.value)),o.now=r,o.maxAge=n,o.value=t,this[En]+=i-o.length,o.length=i,this.get(e),$n(this),!0}const o=new Dn(e,t,i,r,n);return o.length>this[vn]?(this[On]&&this[On](e,t),!1):(this[En]+=o.length,this[xn].unshift(o),this[Nn].set(e,this[xn].head),$n(this),!0)}has(e){if(!this[Nn].has(e))return!1;const t=this[Nn].get(e).value;return!Ln(this,t)}get(e){return Rn(this,e,!0)}peek(e){return Rn(this,e,!1)}pop(){const e=this[xn].tail;return e?(Tn(this,e),e.value):null}del(e){Tn(this,this[Nn].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],i=r.e||0;if(0===i)this.set(r.k,r.v);else{const e=i-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[Nn].forEach(((e,t)=>Rn(this,t,!1)))}};const kn=Object.freeze({loose:!0}),Pn=Object.freeze({});var _n=e=>e?"object"!=typeof e?kn:e:Pn,jn={exports:{}};var Mn={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};var zn="object"==typeof process&&on&&on.NODE_DEBUG&&/\bsemver\b/i.test(on.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};!function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=Mn,o=zn,a=(t=e.exports={}).re=[],s=t.safeRe=[],l=t.src=[],c=t.t={};let h=0;const p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",i],[p,r]],d=(e,t,n)=>{const r=(e=>{for(const[t,n]of f)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),i=h++;o(e,i,t),c[e]=i,l[i]=t,a[i]=new RegExp(t,n?"g":void 0),s[i]=new RegExp(r,n?"g":void 0)};d("NUMERICIDENTIFIER","0|[1-9]\\d*"),d("NUMERICIDENTIFIERLOOSE","\\d+"),d("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),d("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),d("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),d("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),d("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),d("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),d("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),d("BUILDIDENTIFIER",`${p}+`),d("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),d("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),d("FULL",`^${l[c.FULLPLAIN]}$`),d("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),d("LOOSE",`^${l[c.LOOSEPLAIN]}$`),d("GTLT","((?:<|>)?=?)"),d("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),d("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),d("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),d("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),d("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),d("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),d("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),d("COERCERTL",l[c.COERCE],!0),d("LONETILDE","(?:~>?)"),d("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",d("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),d("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),d("LONECARET","(?:\\^)"),d("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",d("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),d("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),d("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),d("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),d("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",d("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),d("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),d("STAR","(<|>)?=?\\s*\\*"),d("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),d("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(jn,jn.exports);var Un=jn.exports;const Bn=/^[0-9]+$/,Gn=(e,t)=>{const n=Bn.test(e),r=Bn.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:eGn(t,e)};const Wn=zn,{MAX_LENGTH:Xn,MAX_SAFE_INTEGER:Hn}=Mn,{safeRe:qn,t:Yn}=Un,Jn=_n,{compareIdentifiers:Qn}=Vn;var Kn=class e{constructor(t,n){if(n=Jn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if("string"!=typeof t)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Xn)throw new TypeError(`version is longer than ${Xn} characters`);Wn("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;const r=t.trim().match(n.loose?qn[Yn.LOOSE]:qn[Yn.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Hn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Hn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Hn||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);if(-1===r){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let r=[t,e];!1===n&&(r=[t]),0===Qn(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};const Zn=Kn;var er=(e,t,n)=>new Zn(e,n).compare(new Zn(t,n));const tr=er;const nr=er;const rr=er;const ir=er;const or=er;const ar=er;const sr=(e,t,n)=>0===tr(e,t,n),lr=(e,t,n)=>0!==nr(e,t,n),cr=(e,t,n)=>rr(e,t,n)>0,hr=(e,t,n)=>ir(e,t,n)>=0,pr=(e,t,n)=>or(e,t,n)<0,fr=(e,t,n)=>ar(e,t,n)<=0;var dr,ur,gr,mr,vr=(e,t,n,r)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return sr(e,n,r);case"!=":return lr(e,n,r);case">":return cr(e,n,r);case">=":return hr(e,n,r);case"<":return pr(e,n,r);case"<=":return fr(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};function Er(){if(mr)return gr;mr=1;class e{constructor(t,i){if(i=n(i),t instanceof e)return t.loose===!!i.loose&&t.includePrerelease===!!i.includePrerelease?t:new e(t.raw,i);if(t instanceof r)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=i,this.loose=!!i.loose,this.includePrerelease=!!i.includePrerelease,this.raw=t.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!d(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const t of this.set)if(1===t.length&&u(t[0])){this.set=[t];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const n=((this.options.includePrerelease&&p)|(this.options.loose&&f))+":"+e,o=t.get(n);if(o)return o;const u=this.options.loose,g=u?a[s.HYPHENRANGELOOSE]:a[s.HYPHENRANGE];e=e.replace(g,I(this.options.includePrerelease)),i("hyphen replace",e),e=e.replace(a[s.COMPARATORTRIM],l),i("comparator trim",e),e=e.replace(a[s.TILDETRIM],c),i("tilde trim",e),e=e.replace(a[s.CARETTRIM],h),i("caret trim",e);let v=e.split(" ").map((e=>m(e,this.options))).join(" ").split(/\s+/).map((e=>N(e,this.options)));u&&(v=v.filter((e=>(i("loose invalid filter",e,this.options),!!e.match(a[s.COMPARATORLOOSE]))))),i("range list",v);const E=new Map,b=v.map((e=>new r(e,this.options)));for(const t of b){if(d(t))return[t];E.set(t.value,t)}E.size>1&&E.has("")&&E.delete("");const y=[...E.values()];return t.set(n,y),y}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some((e=>g(e,n)&&t.set.some((t=>g(t,n)&&e.every((e=>t.every((t=>e.intersects(t,n)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options)}catch(Zr){return!1}for(let t=0;t")||!e.operator.startsWith(">"))&&(!this.operator.startsWith("<")||!e.operator.startsWith("<"))&&(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))&&!(o(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))&&!(o(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}}dr=t;const n=_n,{safeRe:r,t:i}=Un,o=vr,a=zn,s=Kn,l=Er();return dr}(),i=zn,o=Kn,{safeRe:a,t:s,comparatorTrimReplace:l,tildeTrimReplace:c,caretTrimReplace:h}=Un,{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:f}=Mn,d=e=>"<0.0.0-0"===e.value,u=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let i=r.pop();for(;n&&r.length;)n=r.every((e=>i.intersects(e,t))),i=r.pop();return n},m=(e,t)=>(i("comp",e,t),e=y(e,t),i("caret",e),e=E(e,t),i("tildes",e),e=O(e,t),i("xrange",e),e=x(e,t),i("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,E=(e,t)=>e.trim().split(/\s+/).map((e=>b(e,t))).join(" "),b=(e,t)=>{const n=t.loose?a[s.TILDELOOSE]:a[s.TILDE];return e.replace(n,((t,n,r,o,a)=>{let s;return i("tilde",e,t,n,r,o,a),v(n)?s="":v(r)?s=`>=${n}.0.0 <${+n+1}.0.0-0`:v(o)?s=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:a?(i("replaceTilde pr",a),s=`>=${n}.${r}.${o}-${a} <${n}.${+r+1}.0-0`):s=`>=${n}.${r}.${o} <${n}.${+r+1}.0-0`,i("tilde return",s),s}))},y=(e,t)=>e.trim().split(/\s+/).map((e=>w(e,t))).join(" "),w=(e,t)=>{i("caret",e,t);const n=t.loose?a[s.CARETLOOSE]:a[s.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,o,a,s)=>{let l;return i("caret",e,t,n,o,a,s),v(n)?l="":v(o)?l=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(a)?l="0"===n?`>=${n}.${o}.0${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.0${r} <${+n+1}.0.0-0`:s?(i("replaceCaret pr",s),l="0"===n?"0"===o?`>=${n}.${o}.${a}-${s} <${n}.${o}.${+a+1}-0`:`>=${n}.${o}.${a}-${s} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${a}-${s} <${+n+1}.0.0-0`):(i("no pr"),l="0"===n?"0"===o?`>=${n}.${o}.${a}${r} <${n}.${o}.${+a+1}-0`:`>=${n}.${o}.${a}${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${a} <${+n+1}.0.0-0`),i("caret return",l),l}))},O=(e,t)=>(i("replaceXRanges",e,t),e.split(/\s+/).map((e=>A(e,t))).join(" ")),A=(e,t)=>{e=e.trim();const n=t.loose?a[s.XRANGELOOSE]:a[s.XRANGE];return e.replace(n,((n,r,o,a,s,l)=>{i("xRange",e,n,r,o,a,s,l);const c=v(o),h=c||v(a),p=h||v(s),f=p;return"="===r&&f&&(r=""),l=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&f?(h&&(a=0),s=0,">"===r?(r=">=",h?(o=+o+1,a=0,s=0):(a=+a+1,s=0)):"<="===r&&(r="<",h?o=+o+1:a=+a+1),"<"===r&&(l="-0"),n=`${r+o}.${a}.${s}${l}`):h?n=`>=${o}.0.0${l} <${+o+1}.0.0-0`:p&&(n=`>=${o}.${a}.0${l} <${o}.${+a+1}.0-0`),i("xRange return",n),n}))},x=(e,t)=>(i("replaceStars",e,t),e.trim().replace(a[s.STAR],"")),N=(e,t)=>(i("replaceGTE0",e,t),e.trim().replace(a[t.includePrerelease?s.GTE0PRE:s.GTE0],"")),I=e=>(t,n,r,i,o,a,s,l,c,h,p,f,d)=>`${n=v(r)?"":v(i)?`>=${r}.0.0${e?"-0":""}`:v(o)?`>=${r}.${i}.0${e?"-0":""}`:a?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=v(c)?"":v(h)?`<${+c+1}.0.0-0`:v(p)?`<${c}.${+h+1}.0-0`:f?`<=${c}.${h}.${p}-${f}`:e?`<${c}.${h}.${+p+1}-0`:`<=${l}`}`.trim(),S=(e,t,n)=>{for(let r=0;r0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0};return gr}const br=Er();var yr=cn(((e,t,n)=>{try{t=new br(t,n)}catch(Zr){return!1}return t.test(e)}));var wr='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';function Or(e,...t){for(const n of t)Ar(e,n);return e}function Ar(e,t){for(const n of Object.keys(t))s(e,n,t[n],!0)}function xr(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 Nr(e){for(var t=1;te,"vega-lite":(e,t)=>Sr.compile(e,{config:t}).spec},Fr='\n\n \n \n \n',kr="chart-wrapper";function Pr(e,t,n,r){const i=`${t}
`,o=`
${n}`,a=window.open("");a.document.write(i+e+o),a.document.title=`${Tr[r]} JSON Source`}function _r(e){return(t=e)&&"load"in t?e:Ir.loader(e);var t}async function jr(e,t,n={}){let s,l;r(t)?(l=_r(n.loader),s=JSON.parse(await l.load(t))):s=t;const c=function(e){var t;const n=(null==(t=e.usermeta)?void 0:t.embedOptions)??{};return r(n.defaultStyle)&&(n.defaultStyle=!1),n}(s),h=c.loader;l&&!h||(l=_r(n.loader??h));const p=await Mr(c,l),f=await Mr(n,l),d=Nr(Nr({},Or(f,p)),{},{config:o(f.config??{},p.config??{})});return await async function(e,t,n={},r){const s=n.theme?o(Jt[n.theme],n.config??{}):n.config,l=a(n.actions)?n.actions:Or({},Lr,n.actions??{}),c=Nr(Nr({},$r),n.i18n),h=n.renderer??"canvas",p=n.logLevel??Ir.Warn,f=n.downloadFileName??"visualization",d="string"==typeof e?document.querySelector(e):e;if(!d)throw new Error(`${e} does not exist`);if(!1!==n.defaultStyle){const e="vega-embed-style",{root:t,rootContainer:r}=function(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}(d);if(!t.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerHTML=void 0===n.defaultStyle||!0===n.defaultStyle?wr.toString():n.defaultStyle,r.appendChild(t)}}const u=function(e,t){if(e.$schema){const n=He(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Tr[n.library]}, but mode argument sets ${Tr[t]??t}.`);const r=n.library;return yr(Dr[r],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Tr[r]} ${n.version}, but the current version of ${Tr[r]} is v${Dr[r]}.`),r}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}(t,n.mode);let g=Cr[u](t,s);if("vega-lite"===u&&g.$schema){const e=He(g.$schema);yr(Dr.vega,`^${e.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${e.version}, but current version is v${Dr.vega}.`)}d.classList.add("vega-embed"),l&&d.classList.add("has-actions");d.innerHTML="";let m=d;if(l){const e=document.createElement("div");e.classList.add(kr),d.appendChild(e),m=e}const v=n.patch;v&&(g=v instanceof Function?v(g):Ae(g,v,!0,!1).newDocument);n.formatLocale&&Ir.formatLocale(n.formatLocale);n.timeFormatLocale&&Ir.timeFormatLocale(n.timeFormatLocale);if(n.expressionFunctions)for(const i in n.expressionFunctions){const e=n.expressionFunctions[i];"fn"in e?Ir.expressionFunction(i,e.fn,e.visitor):e instanceof Function&&Ir.expressionFunction(i,e)}const{ast:E}=n,b=Ir.parse(g,"vega-lite"===u?{}:s,{ast:E}),y=new(n.viewClass||Ir.View)(b,Nr({loader:r,logLevel:p,renderer:h},E?{expr:Ir.expressionInterpreter??n.expr??Xe}:{}));if(y.addSignalListener("autosize",((e,t)=>{const{type:n}=t;"fit-x"==n?(m.classList.add("fit-x"),m.classList.remove("fit-y")):"fit-y"==n?(m.classList.remove("fit-x"),m.classList.add("fit-y")):"fit"==n?m.classList.add("fit-x","fit-y"):m.classList.remove("fit-x","fit-y")})),!1!==n.tooltip){const e="function"==typeof n.tooltip?n.tooltip:new tn(!0===n.tooltip?{}:n.tooltip).call;y.tooltip(e)}let w,{hover:O}=n;void 0===O&&(O="vega"===u);if(O){const{hoverSet:e,updateSet:t}="boolean"==typeof O?{}:O;y.hover(e,t)}n&&(null!=n.width&&y.width(n.width),null!=n.height&&y.height(n.height),null!=n.padding&&y.padding(n.padding));if(await y.initialize(m,n.bind).runAsync(),!1!==l){let e=d;if(!1!==n.defaultStyle||n.forceActionsMenu){const t=document.createElement("details");t.title=c.CLICK_TO_VIEW_ACTIONS,d.append(t),e=t;const n=document.createElement("summary");n.innerHTML=Fr,t.append(n),w=e=>{t.contains(e.target)||t.removeAttribute("open")},document.addEventListener("click",w)}const r=document.createElement("div");if(e.append(r),r.classList.add("vega-actions"),!0===l||!1!==l.export)for(const t of["svg","png"])if(!0===l||!0===l.export||l.export[t]){const e=c[`${t.toUpperCase()}_ACTION`],o=document.createElement("a"),a=i(n.scaleFactor)?n.scaleFactor[t]:n.scaleFactor;o.text=e,o.href="#",o.target="_blank",o.download=`${f}.${t}`,o.addEventListener("mousedown",(async function(e){e.preventDefault();const n=await y.toImageURL(t,a);this.href=n})),r.append(o)}if(!0===l||!1!==l.source){const e=document.createElement("a");e.text=c.SOURCE_ACTION,e.href="#",e.addEventListener("click",(function(e){Pr(ke(t),n.sourceHeader??"",n.sourceFooter??"",u),e.preventDefault()})),r.append(e)}if("vega-lite"===u&&(!0===l||!1!==l.compiled)){const e=document.createElement("a");e.text=c.COMPILED_ACTION,e.href="#",e.addEventListener("click",(function(e){Pr(ke(g),n.sourceHeader??"",n.sourceFooter??"","vega"),e.preventDefault()})),r.append(e)}if(!0===l||!1!==l.editor){const e=n.editorUrl??"https://vega.github.io/editor/",i=document.createElement("a");i.text=c.EDITOR_ACTION,i.href="#",i.addEventListener("click",(function(n){!function(e,t,n){const r=e.open(t),{origin:i}=new URL(t);let o=40;e.addEventListener("message",(function t(n){n.source===r&&(o=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){o<=0||(r.postMessage(n,i),setTimeout(e,250),o-=1)}),250)}(window,e,{config:s,mode:u,renderer:h,spec:ke(t)}),n.preventDefault()})),r.append(i)}}function A(){w&&document.removeEventListener("click",w),y.finalize()}return{view:y,spec:t,vgSpec:g,finalize:A,embedOptions:n}}(e,s,d,l)}async function Mr(e,t){const n=r(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=r(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return Nr(Nr(Nr({},e),i?{patch:i}:{}),n?{config:n}:{})}function zr(e,t){Object.keys(t).forEach((n=>{!function(e,t,n){var r;n&&((r=n)&&"[object Function]"==={}.toString.call(r)?n(e.data(t)):e.change(t,Ir.changeset().remove((()=>!0)).insert(n)))}(e,n,t[n])}))}function Ur(e){const t=new Set;return e.forEach((e=>{Object.keys(e).forEach((e=>{t.add(e)}))})),t}const Br=()=>{};function Gr(e,t){const n=Object.keys(t);return n.forEach((n=>{try{e.addSignalListener(n,t[n])}catch(r){console.warn("Cannot add invalid signal listener.",r)}})),n.length>0}function Vr(e,t){const n=Object.keys(t);return n.forEach((n=>{try{e.removeSignalListener(n,t[n])}catch(r){console.warn("Cannot remove invalid signal listener.",r)}})),n.length>0}function Wr(e){const{spec:t,width:n,height:r}=e;return void 0!==n&&void 0!==r?{...t,width:n,height:r}:void 0!==n?{...t,width:n}:void 0!==r?{...t,height:r}:t}function Xr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Hr extends l.PureComponent{constructor(){super(...arguments),Xr(this,"containerRef",l.createRef()),Xr(this,"resultPromise",void 0),Xr(this,"handleError",(e=>{const{onError:t=Br}=this.props;t(e,this.containerRef.current),console.warn(e)})),Xr(this,"modifyView",(e=>{this.resultPromise&&this.resultPromise.then((t=>(t&&e(t.view),!0))).catch(this.handleError)}))}componentDidMount(){this.createView()}componentDidUpdate(e){const t=Ur([this.props,e]);if(t.delete("className"),t.delete("signalListeners"),t.delete("spec"),t.delete("style"),t.delete("width"),t.delete("height"),Array.from(t).some((t=>this.props[t]!==e[t])))this.clearView(),this.createView();else{const t=function(e,t){if(e===t)return!1;const n={width:!1,height:!1,isExpensive:!1},r=Ur([e,t]);return!r.has("width")||"width"in e&&"width"in t&&e.width===t.width||("width"in e&&"number"==typeof e.width?n.width=e.width:n.isExpensive=!0),!r.has("height")||"height"in e&&"height"in t&&e.height===t.height||("height"in e&&"number"==typeof e.height?n.height=e.height:n.isExpensive=!0),r.delete("width"),r.delete("height"),[...r].some((n=>!(n in e)||!(n in t)||!te(e[n],t[n])))&&(n.isExpensive=!0),!(!1===n.width&&!1===n.height&&!n.isExpensive)&&n}(Wr(this.props),Wr(e)),{signalListeners:n}=this.props,{signalListeners:r}=e;if(t)if(t.isExpensive)this.clearView(),this.createView();else{const e=!oe(n,r);this.modifyView((i=>{!1!==t.width&&i.width(t.width),!1!==t.height&&i.height(t.height),e&&(r&&Vr(i,r),n&&Gr(i,n)),i.run()}))}else oe(n,r)||this.modifyView((e=>{r&&Vr(e,r),n&&Gr(e,n),e.run()}))}}componentWillUnmount(){this.clearView()}createView(){const{spec:e,onNewView:t,signalListeners:n={},width:r,height:i,...o}=this.props;if(this.containerRef.current){const e=Wr(this.props);this.resultPromise=jr(this.containerRef.current,e,o).then((e=>{if(e){const{view:t}=e;Gr(t,n)&&t.run()}return e})).catch(this.handleError),t&&this.modifyView(t)}}clearView(){return this.resultPromise&&this.resultPromise.then((e=>{e&&e.finalize()})).catch(this.handleError),this.resultPromise=void 0,this}render(){const{className:e,style:t}=this.props;return l.createElement("div",{ref:this.containerRef,className:e,style:t})}}function qr(){return qr=Object.assign||function(e){for(var t=1;t{this.update();const{onNewView:t=Br}=this.props;t(e)}))}componentDidMount(){this.update()}componentDidUpdate(e){oe(this.props.data,e.data)||this.update()}update(){const{data:e}=this.props;this.vegaEmbed.current&&e&&Object.keys(e).length>0&&this.vegaEmbed.current.modifyView((t=>{zr(t,e),t.resize().run()}))}render(){const{data:e,...t}=this.props;return l.createElement(Hr,qr({ref:this.vegaEmbed},t,{onNewView:this.handleNewView}))}}function Qr(){return Qr=Object.assign||function(e){for(var t=1;t-1}var V=Object.getOwnPropertySymbols?function(t){for(var r=[];t;)a(r,n(t)),t=o(t);return r}:c;function z(t){return u(t,e,V)}var H=Object.prototype.hasOwnProperty;var J=/\w*$/;var K=i?i.prototype:void 0,Q=K?K.valueOf:void 0;function W(t,r,e){var n,c,a,o=t.constructor;switch(r){case"[object ArrayBuffer]":return s(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,r){var e=r?s(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)}(t,e);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return f(t,e);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return(a=new(c=t).constructor(c.source,J.exec(c))).lastIndex=c.lastIndex,a;case"[object Symbol]":return n=t,Q?Object(Q.call(n)):{}}}var $=l&&l.isMap,_=$?v($):function(t){return b(t)&&"[object Map]"==j(t)};var q=l&&l.isSet,T=q?v(q):function(t){return b(t)&&"[object Set]"==j(t)},X="[object Arguments]",Y="[object Function]",Z="[object Object]",tt={};function rt(c,a,o,u,s,i){var f,b=1&a,l=2&a,v=4&a;if(void 0!==f)return f;if(!y(c))return c;var S=d(c);if(S){if(f=function(t){var r=t.length,e=new t.constructor(r);return r&&"string"==typeof t[0]&&H.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(c),!b)return p(c,f)}else{var I=j(c),O=I==Y||"[object GeneratorFunction]"==I;if(A(c))return h(c,b);if(I==Z||I==X||O&&!s){if(f=l||O?{}:g(c),!b)return l?function(r,e){return t(r,V(r),e)}(c,function(r,n){return r&&t(n,e(n),r)}(f,c)):function(r,e){return t(r,n(r),e)}(c,function(e,n){return e&&t(n,r(n),e)}(f,c))}else{if(!tt[I])return s?c:{};f=W(c,I,b)}}i||(i=new w);var F=i.get(c);if(F)return F;i.set(c,f),T(c)?c.forEach((function(t){f.add(rt(t,a,o,t,c,i))})):_(c)&&c.forEach((function(t,r){f.set(r,rt(t,a,o,r,c,i))}));var U=S?void 0:(v?l?z:m:l?e:r)(c);return N(U||c,(function(t,r){U&&(t=c[r=t]),x(f,r,rt(t,a,o,r,c,i))})),f}function et(t){return"function"==typeof t?t:S}function nt(t,r){return(d(t)?N:D)(t,et(r))}function ct(t,r){var e=[];return D(t,(function(t,n,c){r(t,n,c)&&e.push(t)})),e}function at(t,r){return(d(t)?I:ct)(t,k(r))}function ot(t){return null==t?[]:function(t,r){return O(r,(function(r){return t[r]}))}(t,r(t))}function ut(t){return void 0===t}function st(t,r,e,n,c){return c(t,(function(t,c,a){e=n?(n=!1,t):r(e,t,c,a)})),e}function it(t,r,e){var n=d(t)?F:st,c=arguments.length<3;return n(t,k(r),e,c,D)}tt[X]=tt["[object Array]"]=tt["[object ArrayBuffer]"]=tt["[object DataView]"]=tt["[object Boolean]"]=tt["[object Date]"]=tt["[object Float32Array]"]=tt["[object Float64Array]"]=tt["[object Int8Array]"]=tt["[object Int16Array]"]=tt["[object Int32Array]"]=tt["[object Map]"]=tt["[object Number]"]=tt[Z]=tt["[object RegExp]"]=tt["[object Set]"]=tt["[object String]"]=tt["[object Symbol]"]=tt["[object Uint8Array]"]=tt["[object Uint8ClampedArray]"]=tt["[object Uint16Array]"]=tt["[object Uint32Array]"]=!0,tt["[object Error]"]=tt[Y]=tt["[object WeakMap]"]=!1;var ft=U&&1/E(new U([,-0]))[1]==1/0?function(t){return new U(t)}:C;function bt(t,r,e){var n=-1,c=L,a=t.length,o=!0,u=[],s=u;if(a>=200){var i=r?null:ft(t);if(i)return E(i);o=!1,c=B,s=new M}else s=r?[]:u;t:for(;++n{if(z$.includes(O.next))return;let $="";for(;10!=O.next&&-1!==O.next;)$+=String.fromCodePoint(O.next),O.advance();O.advance();const i=E$.filter((O=>$.startsWith(O)));if(i.length>0){for(;-1!==O.next;)O.advance();O.acceptToken(V$[i[0]])}else O.acceptToken(11)})),N$=$.deserialize({version:14,states:"nOVQROOOOQQ'#Ce'#CeOVQROOQOQPOOOOQQ-E6c-E6c",stateData:"q~O]OS~OPROQRORROSROTROUROVROZPO~O",goto:"aYPPPPPPPPPZQQORSQ",nodeNames:"⚠ PieDiagram MindmapDiagram FlowchartDiagram SequenceDiagram JourneyDiagram RequirementDiagram GanttDiagram MermaidDiagram",maxTerm:13,skippedNodes:[0],repeatNodeCount:1,tokenData:"j~RRXY[]^[pq[~aR]~XY[]^[pq[",tokenizers:[0,D$],topRules:{MermaidDiagram:[0,8]},tokenPrec:0}),J$=[1,2,3,4,5],C$=new O(((O,$)=>{if(!(O.next<0)){O.advance();let $=0;for(;32==O.next||9==O.next;)O.advance(),$++;let i=10==O.next||13==O.next||35==O.next;O.acceptToken(i?18:17,-$)}}),{contextual:!0,fallback:!0}),B$=new O(((O,$)=>{let i=0;for(;O.next>-1&&10!==O.next;){if(58===O.next)return;if(40===O.next||91===O.next||123===O.next)return i>0?void O.acceptToken($.context.lineType):void 0;if((41===O.next||93===O.next||125===O.next)&&i>0)return void O.acceptToken($.context.lineType);O.advance(),i++}O.acceptToken($.context.lineType)})),K$=O=>4-O%4,L$=new O(((O,$)=>{let i=O.peek(-1);if(10==i||13==i){for(;;){if(32==O.next);else if(9!=O.next)break;O.advance()}10!=O.next&&13!=O.next&&35!=O.next&&O.acceptToken(16)}})),I$=new i({start:{lineType:1},shift(O,$,i,t){if(16===$){const $=(O=>{let $=0;for(let i=0;iJ$[O%5])($)}return O}}),A$={diagramName:t.define(w.typeName)},M$={diagramName:t.define(A$.diagramName),lineText1:t.define(),lineText2:t.define(),lineText3:t.define(),lineText4:t.define(),lineText5:t.define()},Oi={diagramName:t.define(A$.diagramName),lineComment:t.define(w.lineComment),number:t.define(w.number),showData:t.define(w.keyword),string:t.define(w.string),title:t.define(w.keyword),titleText:t.define(w.string)},$i={diagramName:t.define(A$.diagramName),keyword:t.define(w.keyword),lineComment:t.define(w.lineComment),link:t.define(w.contentSeparator),nodeEdge:t.define(w.contentSeparator),nodeEdgeText:t.define(w.string),nodeId:t.define(w.variableName),nodeText:t.define(w.string),number:t.define(w.number),orientation:t.define(w.modifier),string:t.define(w.string)},ii={diagramName:t.define(A$.diagramName),arrow:t.define(w.contentSeparator),keyword1:t.define(w.keyword),keyword2:t.define(w.controlKeyword),lineComment:t.define(w.lineComment),messageText1:t.define(w.string),messageText2:t.define(w.content),nodeText:t.define(w.variableName),position:t.define(w.modifier)},ti={diagramName:t.define(A$.diagramName),actor:t.define(w.variableName),keyword:t.define(w.keyword),lineComment:t.define(w.lineComment),score:t.define(w.number),text:t.define(w.string)},wi={diagramName:t.define(A$.diagramName),arrow:t.define(w.contentSeparator),keyword:t.define(w.keyword),lineComment:t.define(w.lineComment),number:t.define(w.number),quotedString:t.define(w.string),unquotedString:t.define(w.content)},Qi={diagramName:t.define(A$.diagramName),keyword:t.define(w.keyword),lineComment:t.define(w.lineComment),string:t.define(w.string)},ei=Q({DiagramName:M$.diagramName,LineText1:M$.lineText1,LineText2:M$.lineText2,LineText3:M$.lineText3,LineText4:M$.lineText4,LineText5:M$.lineText5}),ai={__proto__:null,mindmap:44,icon:50},Xi=$.deserialize({version:14,states:"&fOYQ[OOOOQW'#Ci'#CiQbQ[OOQgQ[OOOOQW'#Cc'#CcOOQW-E6g-E6gOlQ]O'#CdOOQW'#Cj'#CjQgQ[OOO!]Q^O,59OOOQW-E6h-E6hOOQW'#Cs'#CsO!vQ[O'#CeO!{Q^O'#CgO!{Q^O'#CyO!{Q^O'#C|O!{Q^O'#C}O!{Q^O'#DQO!{Q^O'#DRO!{Q^O'#DSOOQW'#Ch'#ChO#^Q[O1G.jOOQW1G.j1G.jO#hQ[O,59POOQW'#Cf'#CfOOQW,59R,59RO#mQ[O,59eO#rQ[O,59hO#wQ[O,59iO#|Q[O,59lO$RQ[O,59mO$WQ[O,59nOOQW7+$U7+$UO!{Q^O1G.kOOQW1G/P1G/POOQW1G/S1G/SOOQW1G/T1G/TOOQW1G/W1G/WOOQW1G/X1G/XOOQW1G/Y1G/YO$]Q[O7+$VOOQW<ai[O]||-1}],tokenPrec:0}),oi=new O((O=>{if(10!==O.next){if(-1!==O.next){for(;10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(1)}}else O.acceptToken(1)})),Si=Q({DiagramName:Oi.diagramName,LineComment:Oi.lineComment,Number:Oi.number,ShowData:Oi.showData,String:Oi.string,Title:Oi.title,TitleText:Oi.titleText}),ri={__proto__:null,pie:34,showData:36,title:38},Pi=$.deserialize({version:14,states:"$nOYQQOOO_QQO'#CkOOQO'#Ce'#CeQYQQOOOOQO'#C`'#C`OpOSO'#CcOxQQO'#CpOOQO'#Cf'#CfO}QQO,59VO!YQRO,59VO!hQQO,59VOOQO'#Ca'#CaOOQP'#Cb'#CbOOQO-E6c-E6cOOOO'#Cg'#CgO!vOSO,58}OOQO,58},58}O#OQQO,59[OOQO-E6d-E6dO#TQQO1G.qO#TQQO1G.qO#`QRO1G.qOOOO-E6e-E6eOOQO1G.i1G.iOOQO1G.v1G.vO#nQQO7+$]O#nQQO7+$]O#yQQO<ri[O]||-1}],tokenPrec:0}),si=[-1,9,13,32,34,39,96],ni=[40,62,91,123,124],Gi=[41,93,124,125],li=new O((O=>{if(!si.includes(O.next)&&!ni.includes(O.next)){for(;!Gi.includes(O.next)&&-1!==O.next;)O.advance();O.acceptToken(2)}})),qi=new O((O=>{if(!si.includes(O.next)&&!ni.includes(O.next)&&45!==O.next&&61!==O.next&&46!==O.next){for(;45!==O.next&&61!==O.next&&46!==O.next&&-1!==O.next;)O.advance();O.acceptToken(1)}})),yi=new O((O=>{if(10!==O.next&&-1!==O.next){for(;10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(3)}})),Ti=Q({"( )":w.paren,"[ ]":w.squareBracket,"{ }":w.brace,"<":w.angleBracket,DiagramName:$i.diagramName,DoubleEqual:$i.link,DoubleHyphen:$i.link,Keyword:$i.keyword,LineComment:$i.lineComment,Link:$i.link,NodeEdge:$i.nodeEdge,NodeEdgeText:$i.nodeEdgeText,NodeId:$i.nodeId,NodeText:$i.nodeText,Number:$i.number,Orientation:$i.orientation,String:$i.string}),xi={__proto__:null,flowchart:60,graph:62,TB:64,TD:66,BT:68,RL:70,LR:72,subgraph:148,end:150,direction:152,click:154,call:156,href:158,_self:160,_blank:162,_parent:164,_to:166,style:170,linkStyle:172,class:174,classDef:176},ci=$.deserialize({version:14,states:"*hOYQWOOOvQWO'#CxOOQO'#Co'#CoQYQWOOOOQO'#Cb'#CbOOQO'#Cp'#CpO!TQWO,59dO!cQWO,59dOOQS'#Cc'#CcOOQO-E6m-E6mOOQO-E6n-E6nO%aQWO1G/OOOQS'#Cd'#CdO(_O`O'#CfO(gOpO'#CfO(oO!bO'#CfO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeO(wQYO'#CeOOQO'#Cg'#CgO)VQXO'#ChOOQO'#DS'#DSO)eQWO'#DSO%aQWO1G/OOOQO'#Ck'#CkOOQO'#Cn'#CnO)yQWO7+$jOOOO'#Cq'#CqO,wO`O,59QOOQO,59Q,59QOOOO'#Cr'#CrO-POpO,59QOOOO'#Cs'#CsO-XO!bO,59QOOQO'#DU'#DUO-aQWO,59PO-fQWO,59PO-kQWO,59PO-pQ#tO,59PO-uQ#tO,59PO-}Q#tO,59PO.SQ#tO,59PO.XQWO,59PO.^Q#tO,59PO.cQ&jO,59POOQO'#Dv'#DvO.hQWO,59SO.|Q[O,59nO)yQWO7+$jO/RQWO'#CtO)yQWO7+$jO2dQWO<{~OkOSSOS~OnSOoSO~OpWOqWOrWOsWOtWOuTO~OilXnlXolX~PbOuTOilanlaola~O]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpOilanlaola~PbO]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpOilinlioli~PbOytOzrO~O{tO|uO~O}tO!OwO~OQyOy]O{^O}_O~OP!UOy]O{^O}_O~Om[OpWOqWOrWOsWOtWO~O]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpOilqnlqolq~PbOy!_OzrO~O{!_O|uO~O}!_O!OwO~O!P!bO~O!R!bO~O!S!bO~O!U!bO~O!U!bO!Y!bO~O!X!bO~O![!bO~O!_!bO~O!a!bO~O!c!bO~O!djO!ejO!fjO!gjO!hjO!ijO~OR!dO~O!{!fO]hX^hX`hXahXihXmhXnhXohXphXqhXrhXshXthXuhXwhXyhX{hX}hX!QhX!ShX!ThX!VhX!WhX!ZhX!]hX!^hX!`hX!bhX!dhX!ehX!fhX!ghX!hhX!ihX!khX!lhX!mhX!nhX!ohX!phX!qhX!rhX!shX!thX!uhX!vhX!whX!xhX!yhX!zhX~O]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpOilynlyoly~PbO!{!iO]ha^ha`haahaihamhanhaohaphaqharhashathauhawhayha{ha}ha!Qha!Sha!Tha!Vha!Wha!Zha!]ha!^ha!`ha!bha!dha!eha!fha!gha!hha!iha!kha!lha!mha!nha!oha!pha!qha!rha!sha!tha!uha!vha!wha!xha!yha!zha~O]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpOil!Rnl!Rol!R~PbO]kO^kO`lOalOm[Ow`Oy]O{^O}_O!QaO!SbO!TcO!VdO!WeO!ZfO!]aO!^gO!`hO!biO!djO!ejO!fjO!gjO!hjO!ijO!klO!loO!moO!noO!ooO!poO!qoO!roO!soO!toO!uoO!vlO!wpO!xpO!ypO!zpO~PbOukS!d!e!f!g!h!i]^!k!{y{}a`m]~",goto:"'[!kPPPPPP!l!p#Q#a#m$Y#aPP#aPP$i$u${%e%k%q%wPPP&RPPPPPPPPP&VP&iPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'XTPORQVPg[VZmnq!X!Z![!]!h!jdlVZnq!X!Z![!]!h!jR!WmelVZnq!X!Z![!]!h!jdlVZnq!X!Z![!]!h!jdy`abcdefghiR!UkdlVZnq!X!Z![!]!h!jR!c!VemVZnq!X!Z![!]!h!jQRORXRQUP[YUZ!X![!h!jQZVQ!XnS![q!ZR!h!]Qs]R!^sQv^R!`vQx_R!axQ!ZnQ!]qT!g!Z!]TQORQnVQqZW!Ynq!Z!]X!e!X![!h!jQz`Q{aQ|bQ}cQ!OdQ!PeQ!QfQ!RgQ!ShR!TiR!Vk",nodeNames:"⚠ NodeEdgeText NodeText StyleText LineComment FlowchartDiagram DiagramName Orientation NodeId Node String Link NodeEdge DoubleHyphen DoubleEqual Keyword : ::: StyleKeyword",maxTerm:89,propSources:[Ti],skippedNodes:[0,4],repeatNodeCount:6,tokenData:"=3^!aR3ZOX!)tXY!.cYZ!0iZ^!.c^p!)tpq!.cqr!2wrs+ kst!2wtu!2wuv,(_vw6>_wx7ETxy8Kwyz9!^z{!2w{|!2w|}!)t}!O9&O!O!P9/Q!P!Q!2w!Q![!2w![!]:5y!]!^:8k!^!_:9c!_!`:Br!`!a:F`!a!b!2w!b!c!)t!c!}!2w!}#O:GW#O#P!2w#P#Q:Iw#Q#R!)t#R#S!2w#S#T:Lk#T#c!2w#c#d<%_#d#l!2w#l#m<%_#m#o!2w#o#p=,[#p#q=.Q#q#r=.x#r#s=0n#s#y!)t#y#z!.c#z$f!)t$f$g!.c$g$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!.c#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)t^!)}X!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)tY!*qV!OWzQOw!*jwx!+Wx#S!*j#S#T!+o#T;'S!*j;'S;=`!,W<%lO!*jW!+]S!OWO#S!+W#T;'S!+W;'S;=`!+i<%lO!+WW!+lP;=`<%l!+WQ!+tSzQOw!+ox;'S!+o;'S;=`!,Q<%lO!+oQ!,TP;=`<%l!+oY!,ZP;=`<%l!*j[!,eV!OW|SOr!,^rs!+Ws#S!,^#S#T!,z#T;'S!,^;'S;=`!-c<%lO!,^S!-PS|SOr!,zs;'S!,z;'S;=`!-]<%lO!,zS!-`P;=`<%l!,z[!-fP;=`<%l!,^U!-pV|SzQOr!-irs!+osw!-iwx!,zx;'S!-i;'S;=`!.V<%lO!-iU!.YP;=`<%l!-i^!.`P;=`<%l!)t!a!.nm!OW|SzQk!ROX!)tX^!.c^p!)tpq!.cqr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#y!)t#y#z!.c#z$f!)t$f$g!.c$g#BY!)t#BY#BZ!.c#BZ$IS!)t$IS$I_!.c$I_$I|!)t$I|$JO!.c$JO$JT!)t$JT$JU!.c$JU$KV!)t$KV$KW!.c$KW&FU!)t&FU&FV!.c&FV;'S!)t;'S;=`!.]<%lO!)t!a!0vo!OW|SzQuPk!ROX!)tXY!.cYZ!0iZ^!.c^p!)tpq!.cqr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#y!)t#y#z!.c#z$f!)t$f$g!.c$g#BY!)t#BY#BZ!.c#BZ$IS!)t$IS$I_!.c$I_$I|!)t$I|$JO!.c$JO$JT!)t$JT$JU!.c$JU$KV!)t$KV$KW!.c$KW&FU!)t&FU&FV!.c&FV;'S!)t;'S;=`!.]<%lO!)t_!3S2g!OW|SzQmPOq!)tqr!2wrs#9kst!2wtu!2wuv!2wvw!2wwx';ixz!)tz{!2w{|!2w|!O!)t!O!P!2w!P!Q!2w!Q![!2w![!a!)t!a!b!2w!b!c!)t!c!}!2w!}#O!)t#O#P!2w#P#R!)t#R#S!2w#S#T)Hy#T#o!2w#o$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!)t#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)tZ#9t2g!OWzQmPOq!*jqr#9krs#9kst#9ktu#9kuv#9kvw#9kwx$@]xz!*jz{#9k{|#9k|!O!*j!O!P#9k!P!Q#9k!Q![#9k![!a!*j!a!b#9k!b!c!*j!c!}#9k!}#O!*j#O#P#9k#P#R!*j#R#S#9k#S#T&4y#T#o#9k#o$p!*j$p$q#9k$q${!*j${$|#9k$|%Q!*j%Q%R#9k%R%W!*j%W%o#9k%o%p!*j%p&a#9k&a&b!*j&b0`#9k0`0d!*j0d0p#9k0p1O!*j1O1T#9k1T1[!*j1[1]#9k1]1^!*j1^1_#9k1_4U!*j4U4Z#9k4Z4[!*j4[4]#9k4]4^#9k4^4`!*j4`4d#9k4d4l!*j4l4m#9k4m4n!*j4n4q#9k4q4r!*j4r4s#9k4s4t!*j4t5Y#9k5Y5Z!*j5Z7Q#9k7Q7R!*j7R:S#9k:S:[!*j:[=p#9k=p=y!*j=y>q#9k>q>s!*j>s>t#9k>t>{!*j>{?t#9k?tA`!*jA`A{#9kA{BQ!*jBQBT#9kBTCS!*jCSDP#9kDPDt!*jDtDu#9kDuDv#9kDvDw!*jDwGO#9kGOGP!*jGPGQ#9kGQGa!*jGaGb#9kGbGc#9kGcGj!*jGjGk#9kGkGl#9kGlGv!*jGvGy#9kGyG{!*jG{G|#9kG|H^!*jH^H_#9kH_H`!*jH`IO#9kIOIm!*jImKj#9kKjKu!*jKuKv#9kKvL`!*jL`MR#9kMRM[!*jM[M]#9kM]M^#9kM^Mb!*jMbMc#9kMcMh!*jMhNO#9kNONS!*jNSNT#9kNTN^!*jN^N_#9kN_Nb!*jNbNc#9kNcNz!*jNz! e#9k! e!#O!*j!#O!#P#9k!#P!#Q!*j!#Q!#]#9k!#]!%W!*j!%W!&`#9k!&`!&c!*j!&c!&d#9k!&d!&v!*j!&v!&w#9k!&w!'O!*j!'O!'Y#9k!'Y!'i!*j!'i!'p#9k!'p!'q!*j!'q!'x#9k!'x!'}!*j!'}!(V#9k!(V!(X!*j!(X!(Y#9k!(Y!(Z#9k!(Z!(]!*j!(]!(s#9k!(s!(t!*j!(t!({#9k!({!(|!*j!(|!(}#9k!(}!)Q!*j!)Q!)U#9k!)U!)X!*j!)X!)Y#9k!)Y!)j!*j!)j!)k#9k!)k!)x!*j!)x!)y#9k!)y!)z#9k!)z!){!*j!){!*O#9k!*O!*^!*j!*^!*_#9k!*_!*`#9k!*`!*s!*j!*s!*y#9k!*y!*}!*j!*}!+O#9k!+O!+P#9k!+P!+R!*j!+R!+i#9k!+i!+j!*j!+j!+q#9k!+q!+r!*j!+r!+s#9k!+s!+t#9k!+t!+u!*j!+u!+v#9k!+v!+w#9k!+w!+x!*j!+x!+y#9k!+y!+z#9k!+z!,k!*j!,k!,o#9k!,o!,p!*j!,p!,q#9k!,q!-U!*j!-U!-X#9k!-X!-i!*j!-i!-r#9k!-r!-s!*j!-s!-v#9k!-v!-w!*j!-w!._#9k!._!.`!*j!.`!.g#9k!.g!.h!*j!.h!.i#9k!.i!.j#9k!.j!.k!*j!.k!.p#9k!.p!.s!*j!.s!.t#9k!.t!/W!*j!/W!/X#9k!/X!/h!*j!/h!/i#9k!/i!/j#9k!/j!0_!*j!0_!0g#9k!0g!0i!*j!0i!0j#9k!0j!0k#9k!0k!0m!*j!0m!1T#9k!1T!1U!*j!1U!1]#9k!1]!1^!*j!1^!1_#9k!1_!1`#9k!1`!1a!*j!1a!1f#9k!1f!1i!*j!1i!1j#9k!1j!2Y!*j!2Y!2Z#9k!2Z!2[#9k!2[!2]!*j!2]!2`#9k!2`!2o!*j!2o!2p#9k!2p!3R!*j!3R!3S#9k!3S!3T!*j!3T!3Z#9k!3Z!3^!*j!3^!3a#9k!3a!3b!*j!3b!3f#9k!3f!3i!*j!3i!3j#9k!3j!3k#9k!3k!3l!*j!3l!3m#9k!3m!3n!*j!3n!3o#9k!3o!3p#9k!3p!3s!*j!3s!3t#9k!3t!3u#9k!3u!3x!*j!3x!3{#9k!3{!4O!*j!4O!4[#9k!4[!4r!*j!4r!4s#9k!4s!5y!*j!5y!6R#9k!6R!6S!*j!6S!6V#9k!6V!6W!*j!6W!6o#9k!6o!6p!*j!6p!6z#9k!6z!6{!*j!6{!7Q#9k!7Q!7T!*j!7T!7U#9k!7U!7p!*j!7p!7q#9k!7q!7r#9k!7r!7x!*j!7x!7y#9k!7y!7z#9k!7z!8o!*j!8o!8w#9k!8w!8x!*j!8x!8{#9k!8{!8|!*j!8|!9e#9k!9e!9f!*j!9f!9p#9k!9p!9q!*j!9q!9v#9k!9v!9y!*j!9y!9z#9k!9z!:l!*j!:l!:m#9k!:m!:n!*j!:n!:o#9k!:o!:p#9k!:p!;P!*j!;P!;Q#9k!;Q!;R#9k!;R!;e!*j!;e!;m#9k!;m!;n!*j!;n!;q#9k!;q!;r!*j!;r!O!*j!>O!>U#9k!>U!>Z!*j!>Z!>m#9k!>m!>p!*j!>p!?Y#9k!?Y!?Z!*j!?Z!?d#9k!?d!?e!*j!?e!?f#9k!?f!?h!*j!?h!?o#9k!?o!@{!*j!@{!A}#9k!A}!BO!*j!BO!BP#9k!BP!BQ#9k!BQ!B^!*j!B^!Be#9k!Be!Cq!*j!Cq!Cr#9k!Cr!Cs#9k!Cs!Ct!*j!Ct!Cu#9k!Cu!Cw!*j!Cw!Cx#9k!Cx!Cy#9k!Cy!Cz!*j!Cz!C{#9k!C{!C}!*j!C}!DO#9k!DO!DU!*j!DU!DY#9k!DY!DZ!*j!DZ!Db#9k!Db!Dc!*j!Dc!Df#9k!Df!Dg!*j!Dg!Dh#9k!Dh!Di!*j!Di!Dj#9k!Dj!Dl!*j!Dl!Dm#9k!Dm!Dn#9k!Dn!Do!*j!Do!Ds#9k!Ds!Dt!*j!Dt!Du#9k!Du!Dv#9k!Dv!EP!*j!EP!EQ#9k!EQ!ES!*j!ES!EX#9k!EX!EY!*j!EY!EZ#9k!EZ!Ep!*j!Ep!Et#9k!Et!Ff!*j!Ff!Fg#9k!Fg!Gx!*j!Gx!HQ#9k!HQ!HR!*j!HR!Hw#9k!Hw!Id!*j!Id!Ii#9k!Ii!LQ!*j!LQ!L}#9k!L}!Mc!*j!Mc!Md#9k!Md!Mt!*j!Mt!Mz#9k!Mz!NO!*j!NO!NS#9k!NS!NV!*j!NV!NW#9k!NW!NZ!*j!NZ!N[#9k!N[!N]#9k!N]!Nd!*j!Nd!Ng#9k!Ng!Nk!*j!Nk!Nx#9k!Nx# U!*j# U# V#9k# V# h!*j# h#!`#9k#!`#!a!*j#!a#!b#9k#!b#!g!*j#!g#!h#9k#!h#!j!*j#!j##g#9k##g##h!*j##h#*s#9k#*s#*t!*j#*t#*x#9k#*x#*z!*j#*z#+R#9k#+R#+S!*j#+S#+T#9k#+T#+U!*j#+U#+Y#9k#+Y#+[!*j#+[#,V#9k#,V#,W!*j#,W#,[#9k#,[#,^!*j#,^#-P#9k#-P#-Q!*j#-Q#-U#9k#-U#-W!*j#-W#-_#9k#-_#-`!*j#-`#-a#9k#-a#-b!*j#-b#-f#9k#-f#-h!*j#-h#-w#9k#-w#-x!*j#-x#/T#9k#/T#/U!*j#/U#/Y#9k#/Y#/[!*j#/[#0q#9k#0q#1h!*j#1h#1x#9k#1x#2Y!*j#2Y#4R#9k#4R#4_!*j#4_#Au#9k#Au#Aw!*j#Aw#BY#9k#BY#BZ!*j#BZ#Bu#9k#Bu#Bz!*j#Bz#Di#9k#Di#EO!*j#EO#E]#9k#E]#E^!*j#E^#Eb#9k#Eb#Ep!*j#Ep#FS#9k#FS#Fb!*j#Fb#Ft#9k#Ft#GS!*j#GS#Ga#9k#Ga#Gb!*j#Gb#Ge#9k#Ge#Gt!*j#Gt#Hz#9k#Hz#Io!*j#Io#Ip#9k#Ip#It!*j#It#Iu#9k#Iu#K[!*j#K[#MW#9k#MW#M`!*j#M`#NZ#9k#NZ#N[!*j#N[#N]#9k#N]#Nb!*j#Nb$ z#9k$ z$!U!*j$!U$!s#9k$!s$#x!*j$#x$$h#9k$$h$$j!*j$$j$$o#9k$$o$$z!*j$$z$%x#9k$%x$&_!*j$&_$&f#9k$&f$'p!*j$'p$(X#9k$(X$(b!*j$(b$)i#9k$)i$+_!*j$+_$+`#9k$+`$-a!*j$-a$.b#9k$.b$.s!*j$.s$.z#9k$.z$0T!*j$0T$0s#9k$0s$1Q!*j$1Q$1R#9k$1R$1S#9k$1S$1^!*j$1^$2[#9k$2[$2v!*j$2v$3l#9k$3l$4g!*j$4g$4j#9k$4j$4t!*j$4t$5j#9k$5j$7y!*j$7y$7}#9k$7}$8O!*j$8O$8S#9k$8S$8V!*j$8V$8W#9k$8W$8X#9k$8X$8b!*j$8b$z#9k5>z5>{!*j5>{5>|#9k5>|5?P!*j5?P5?Q#9k5?Q5?R#9k5?R5?T!*j5?T5?Y#9k5?Y5?[!*j5?[5?]#9k5?]5?^!*j5?^5?_#9k5?_5?w!*j5?w5?z#9k5?z5?|!*j5?|5@X#9k5@X5@`!*j5@`5@c#9k5@c5@o!*j5@o5@u#9k5@u5@w!*j5@w5@}#9k5@}5AP!*j5AP5AV#9k5AV5A`!*j5A`5Ag#9k5Ag5Ah!*j5Ah5Ao#9k5Ao5Dv!*j5Dv5Ek#9k5Ek5FY!*j5FY;%S#9k;%S;%`!*j;%`;%w#9k;%w;%{!*j;%{;'O#9k;'O;'S!*j;'S;=`!,W<%l?&r!*j?&r?.p#9k?.p?.r!*j?.r?1Q#9k?1Q?1x!*j?1x?2P#9k?2P?2]!*j?2]?2b#9k?2b?2g!*j?2g?2h#9k?2h?2i!*j?2i?2s#9k?2s?2t!*j?2t?3R#9k?3R?3S!*j?3S?3X#9k?3X?3Y!*j?3Y?3Z#9k?3Z?3[!*j?3[?3]#9k?3]?3^#9k?3^?3_!*j?3_?3`#9k?3`?3a#9k?3a?3b!*j?3b?5r#9k?5r?6e!*j?6e?>`#9k?>`?>r!*j?>r?@U#9k?@U?@W!*j?@W?A`#9k?A`?BY!*j?BY?Bf#9k?Bf?EO!*j?EO?ET#9k?ET?EU!*j?EU?HR#9k?HR?Hw!*j?Hw?Ic#9k?Ic?Ii!*j?Ii?JT#9k?JT?J`!*j?J`?L]#9k?L]?L`!*j?L`?Lf#9k?Lf?Lh!*j?Lh?Ln#9k?Ln?Lp!*j?Lp?Lv#9k?Lv?Lx!*j?Lx?L{#9k?L{O!*jX$@d2g!OWmPOq!+Wqr$@]rs$@]st$@]tu$@]uv$@]vw$@]wx$@]xz!+Wz{$@]{|$@]|!O!+W!O!P$@]!P!Q$@]!Q![$@]![!a!+W!a!b$@]!b!c!+W!c!}$@]!}#O!+W#O#P$@]#P#R!+W#R#S$@]#S#T%F{#T#o$@]#o$p!+W$p$q$@]$q${!+W${$|$@]$|%Q!+W%Q%R$@]%R%W!+W%W%o$@]%o%p!+W%p&a$@]&a&b!+W&b0`$@]0`0d!+W0d0p$@]0p1O!+W1O1T$@]1T1[!+W1[1]$@]1]1^!+W1^1_$@]1_4U!+W4U4Z$@]4Z4[!+W4[4]$@]4]4^$@]4^4`!+W4`4d$@]4d4l!+W4l4m$@]4m4n!+W4n4q$@]4q4r!+W4r4s$@]4s4t!+W4t5Y$@]5Y5Z!+W5Z7Q$@]7Q7R!+W7R:S$@]:S:[!+W:[=p$@]=p=y!+W=y>q$@]>q>s!+W>s>t$@]>t>{!+W>{?t$@]?tA`!+WA`A{$@]A{BQ!+WBQBT$@]BTCS!+WCSDP$@]DPDt!+WDtDu$@]DuDv$@]DvDw!+WDwGO$@]GOGP!+WGPGQ$@]GQGa!+WGaGb$@]GbGc$@]GcGj!+WGjGk$@]GkGl$@]GlGv!+WGvGy$@]GyG{!+WG{G|$@]G|H^!+WH^H_$@]H_H`!+WH`IO$@]IOIm!+WImKj$@]KjKu!+WKuKv$@]KvL`!+WL`MR$@]MRM[!+WM[M]$@]M]M^$@]M^Mb!+WMbMc$@]McMh!+WMhNO$@]NONS!+WNSNT$@]NTN^!+WN^N_$@]N_Nb!+WNbNc$@]NcNz!+WNz! e$@]! e!#O!+W!#O!#P$@]!#P!#Q!+W!#Q!#]$@]!#]!%W!+W!%W!&`$@]!&`!&c!+W!&c!&d$@]!&d!&v!+W!&v!&w$@]!&w!'O!+W!'O!'Y$@]!'Y!'i!+W!'i!'p$@]!'p!'q!+W!'q!'x$@]!'x!'}!+W!'}!(V$@]!(V!(X!+W!(X!(Y$@]!(Y!(Z$@]!(Z!(]!+W!(]!(s$@]!(s!(t!+W!(t!({$@]!({!(|!+W!(|!(}$@]!(}!)Q!+W!)Q!)U$@]!)U!)X!+W!)X!)Y$@]!)Y!)j!+W!)j!)k$@]!)k!)x!+W!)x!)y$@]!)y!)z$@]!)z!){!+W!){!*O$@]!*O!*^!+W!*^!*_$@]!*_!*`$@]!*`!*s!+W!*s!*y$@]!*y!*}!+W!*}!+O$@]!+O!+P$@]!+P!+R!+W!+R!+i$@]!+i!+j!+W!+j!+q$@]!+q!+r!+W!+r!+s$@]!+s!+t$@]!+t!+u!+W!+u!+v$@]!+v!+w$@]!+w!+x!+W!+x!+y$@]!+y!+z$@]!+z!,k!+W!,k!,o$@]!,o!,p!+W!,p!,q$@]!,q!-U!+W!-U!-X$@]!-X!-i!+W!-i!-r$@]!-r!-s!+W!-s!-v$@]!-v!-w!+W!-w!._$@]!._!.`!+W!.`!.g$@]!.g!.h!+W!.h!.i$@]!.i!.j$@]!.j!.k!+W!.k!.p$@]!.p!.s!+W!.s!.t$@]!.t!/W!+W!/W!/X$@]!/X!/h!+W!/h!/i$@]!/i!/j$@]!/j!0_!+W!0_!0g$@]!0g!0i!+W!0i!0j$@]!0j!0k$@]!0k!0m!+W!0m!1T$@]!1T!1U!+W!1U!1]$@]!1]!1^!+W!1^!1_$@]!1_!1`$@]!1`!1a!+W!1a!1f$@]!1f!1i!+W!1i!1j$@]!1j!2Y!+W!2Y!2Z$@]!2Z!2[$@]!2[!2]!+W!2]!2`$@]!2`!2o!+W!2o!2p$@]!2p!3R!+W!3R!3S$@]!3S!3T!+W!3T!3Z$@]!3Z!3^!+W!3^!3a$@]!3a!3b!+W!3b!3f$@]!3f!3i!+W!3i!3j$@]!3j!3k$@]!3k!3l!+W!3l!3m$@]!3m!3n!+W!3n!3o$@]!3o!3p$@]!3p!3s!+W!3s!3t$@]!3t!3u$@]!3u!3x!+W!3x!3{$@]!3{!4O!+W!4O!4[$@]!4[!4r!+W!4r!4s$@]!4s!5y!+W!5y!6R$@]!6R!6S!+W!6S!6V$@]!6V!6W!+W!6W!6o$@]!6o!6p!+W!6p!6z$@]!6z!6{!+W!6{!7Q$@]!7Q!7T!+W!7T!7U$@]!7U!7p!+W!7p!7q$@]!7q!7r$@]!7r!7x!+W!7x!7y$@]!7y!7z$@]!7z!8o!+W!8o!8w$@]!8w!8x!+W!8x!8{$@]!8{!8|!+W!8|!9e$@]!9e!9f!+W!9f!9p$@]!9p!9q!+W!9q!9v$@]!9v!9y!+W!9y!9z$@]!9z!:l!+W!:l!:m$@]!:m!:n!+W!:n!:o$@]!:o!:p$@]!:p!;P!+W!;P!;Q$@]!;Q!;R$@]!;R!;e!+W!;e!;m$@]!;m!;n!+W!;n!;q$@]!;q!;r!+W!;r!O!+W!>O!>U$@]!>U!>Z!+W!>Z!>m$@]!>m!>p!+W!>p!?Y$@]!?Y!?Z!+W!?Z!?d$@]!?d!?e!+W!?e!?f$@]!?f!?h!+W!?h!?o$@]!?o!@{!+W!@{!A}$@]!A}!BO!+W!BO!BP$@]!BP!BQ$@]!BQ!B^!+W!B^!Be$@]!Be!Cq!+W!Cq!Cr$@]!Cr!Cs$@]!Cs!Ct!+W!Ct!Cu$@]!Cu!Cw!+W!Cw!Cx$@]!Cx!Cy$@]!Cy!Cz!+W!Cz!C{$@]!C{!C}!+W!C}!DO$@]!DO!DU!+W!DU!DY$@]!DY!DZ!+W!DZ!Db$@]!Db!Dc!+W!Dc!Df$@]!Df!Dg!+W!Dg!Dh$@]!Dh!Di!+W!Di!Dj$@]!Dj!Dl!+W!Dl!Dm$@]!Dm!Dn$@]!Dn!Do!+W!Do!Ds$@]!Ds!Dt!+W!Dt!Du$@]!Du!Dv$@]!Dv!EP!+W!EP!EQ$@]!EQ!ES!+W!ES!EX$@]!EX!EY!+W!EY!EZ$@]!EZ!Ep!+W!Ep!Et$@]!Et!Ff!+W!Ff!Fg$@]!Fg!Gx!+W!Gx!HQ$@]!HQ!HR!+W!HR!Hw$@]!Hw!Id!+W!Id!Ii$@]!Ii!LQ!+W!LQ!L}$@]!L}!Mc!+W!Mc!Md$@]!Md!Mt!+W!Mt!Mz$@]!Mz!NO!+W!NO!NS$@]!NS!NV!+W!NV!NW$@]!NW!NZ!+W!NZ!N[$@]!N[!N]$@]!N]!Nd!+W!Nd!Ng$@]!Ng!Nk!+W!Nk!Nx$@]!Nx# U!+W# U# V$@]# V# h!+W# h#!`$@]#!`#!a!+W#!a#!b$@]#!b#!g!+W#!g#!h$@]#!h#!j!+W#!j##g$@]##g##h!+W##h#*s$@]#*s#*t!+W#*t#*x$@]#*x#*z!+W#*z#+R$@]#+R#+S!+W#+S#+T$@]#+T#+U!+W#+U#+Y$@]#+Y#+[!+W#+[#,V$@]#,V#,W!+W#,W#,[$@]#,[#,^!+W#,^#-P$@]#-P#-Q!+W#-Q#-U$@]#-U#-W!+W#-W#-_$@]#-_#-`!+W#-`#-a$@]#-a#-b!+W#-b#-f$@]#-f#-h!+W#-h#-w$@]#-w#-x!+W#-x#/T$@]#/T#/U!+W#/U#/Y$@]#/Y#/[!+W#/[#0q$@]#0q#1h!+W#1h#1x$@]#1x#2Y!+W#2Y#4R$@]#4R#4_!+W#4_#Au$@]#Au#Aw!+W#Aw#BY$@]#BY#BZ!+W#BZ#Bu$@]#Bu#Bz!+W#Bz#Di$@]#Di#EO!+W#EO#E]$@]#E]#E^!+W#E^#Eb$@]#Eb#Ep!+W#Ep#FS$@]#FS#Fb!+W#Fb#Ft$@]#Ft#GS!+W#GS#Ga$@]#Ga#Gb!+W#Gb#Ge$@]#Ge#Gt!+W#Gt#Hz$@]#Hz#Io!+W#Io#Ip$@]#Ip#It!+W#It#Iu$@]#Iu#K[!+W#K[#MW$@]#MW#M`!+W#M`#NZ$@]#NZ#N[!+W#N[#N]$@]#N]#Nb!+W#Nb$ z$@]$ z$!U!+W$!U$!s$@]$!s$#x!+W$#x$$h$@]$$h$$j!+W$$j$$o$@]$$o$$z!+W$$z$%x$@]$%x$&_!+W$&_$&f$@]$&f$'p!+W$'p$(X$@]$(X$(b!+W$(b$)i$@]$)i$+_!+W$+_$+`$@]$+`$-a!+W$-a$.b$@]$.b$.s!+W$.s$.z$@]$.z$0T!+W$0T$0s$@]$0s$1Q!+W$1Q$1R$@]$1R$1S$@]$1S$1^!+W$1^$2[$@]$2[$2v!+W$2v$3l$@]$3l$4g!+W$4g$4j$@]$4j$4t!+W$4t$5j$@]$5j$7y!+W$7y$7}$@]$7}$8O!+W$8O$8S$@]$8S$8V!+W$8V$8W$@]$8W$8X$@]$8X$8b!+W$8b$z$@]5>z5>{!+W5>{5>|$@]5>|5?P!+W5?P5?Q$@]5?Q5?R$@]5?R5?T!+W5?T5?Y$@]5?Y5?[!+W5?[5?]$@]5?]5?^!+W5?^5?_$@]5?_5?w!+W5?w5?z$@]5?z5?|!+W5?|5@X$@]5@X5@`!+W5@`5@c$@]5@c5@o!+W5@o5@u$@]5@u5@w!+W5@w5@}$@]5@}5AP!+W5AP5AV$@]5AV5A`!+W5A`5Ag$@]5Ag5Ah!+W5Ah5Ao$@]5Ao5Dv!+W5Dv5Ek$@]5Ek5FY!+W5FY;%S$@];%S;%`!+W;%`;%w$@];%w;%{!+W;%{;'O$@];'O;'S!+W;'S;=`!+i<%l?&r!+W?&r?.p$@]?.p?.r!+W?.r?1Q$@]?1Q?1x!+W?1x?2P$@]?2P?2]!+W?2]?2b$@]?2b?2g!+W?2g?2h$@]?2h?2i!+W?2i?2s$@]?2s?2t!+W?2t?3R$@]?3R?3S!+W?3S?3X$@]?3X?3Y!+W?3Y?3Z$@]?3Z?3[!+W?3[?3]$@]?3]?3^$@]?3^?3_!+W?3_?3`$@]?3`?3a$@]?3a?3b!+W?3b?5r$@]?5r?6e!+W?6e?>`$@]?>`?>r!+W?>r?@U$@]?@U?@W!+W?@W?A`$@]?A`?BY!+W?BY?Bf$@]?Bf?EO!+W?EO?ET$@]?ET?EU!+W?EU?HR$@]?HR?Hw!+W?Hw?Ic$@]?Ic?Ii!+W?Ii?JT$@]?JT?J`!+W?J`?L]$@]?L]?L`!+W?L`?Lf$@]?Lf?Lh!+W?Lh?Ln$@]?Ln?Lp!+W?Lp?Lv$@]?Lv?Lx!+W?Lx?L{$@]?L{O!+WP%GQ*]mPqr%F{rs%F{st%F{tu%F{uv%F{vw%F{wx%F{z{%F{{|%F{!O!P%F{!P!Q%F{!Q![%F{!a!b%F{!c!}%F{#O#P%F{#R#S%F{#S#T%F{#T#o%F{$p$q%F{${$|%F{%Q%R%F{%W%o%F{%p&a%F{&b0`%F{0d0p%F{1O1T%F{1[1]%F{1^1_%F{4U4Z%F{4[4]%F{4]4^%F{4`4d%F{4l4m%F{4n4q%F{4r4s%F{4t5Y%F{5Z7Q%F{7R:S%F{:[=p%F{=y>q%F{>s>t%F{>{?t%F{A`A{%F{BQBT%F{CSDP%F{DtDu%F{DuDv%F{DwGO%F{GPGQ%F{GaGb%F{GbGc%F{GjGk%F{GkGl%F{GvGy%F{G{G|%F{H^H_%F{H`IO%F{ImKj%F{KuKv%F{L`MR%F{M[M]%F{M]M^%F{MbMc%F{MhNO%F{NSNT%F{N^N_%F{NbNc%F{Nz! e%F{!#O!#P%F{!#Q!#]%F{!%W!&`%F{!&c!&d%F{!&v!&w%F{!'O!'Y%F{!'i!'p%F{!'q!'x%F{!'}!(V%F{!(X!(Y%F{!(Y!(Z%F{!(]!(s%F{!(t!({%F{!(|!(}%F{!)Q!)U%F{!)X!)Y%F{!)j!)k%F{!)x!)y%F{!)y!)z%F{!){!*O%F{!*^!*_%F{!*_!*`%F{!*s!*y%F{!*}!+O%F{!+O!+P%F{!+R!+i%F{!+j!+q%F{!+r!+s%F{!+s!+t%F{!+u!+v%F{!+v!+w%F{!+x!+y%F{!+y!+z%F{!,k!,o%F{!,p!,q%F{!-U!-X%F{!-i!-r%F{!-s!-v%F{!-w!._%F{!.`!.g%F{!.h!.i%F{!.i!.j%F{!.k!.p%F{!.s!.t%F{!/W!/X%F{!/h!/i%F{!/i!/j%F{!0_!0g%F{!0i!0j%F{!0j!0k%F{!0m!1T%F{!1U!1]%F{!1^!1_%F{!1_!1`%F{!1a!1f%F{!1i!1j%F{!2Y!2Z%F{!2Z!2[%F{!2]!2`%F{!2o!2p%F{!3R!3S%F{!3T!3Z%F{!3^!3a%F{!3b!3f%F{!3i!3j%F{!3j!3k%F{!3l!3m%F{!3n!3o%F{!3o!3p%F{!3s!3t%F{!3t!3u%F{!3x!3{%F{!4O!4[%F{!4r!4s%F{!5y!6R%F{!6S!6V%F{!6W!6o%F{!6p!6z%F{!6{!7Q%F{!7T!7U%F{!7p!7q%F{!7q!7r%F{!7x!7y%F{!7y!7z%F{!8o!8w%F{!8x!8{%F{!8|!9e%F{!9f!9p%F{!9q!9v%F{!9y!9z%F{!:l!:m%F{!:n!:o%F{!:o!:p%F{!;P!;Q%F{!;Q!;R%F{!;e!;m%F{!;n!;q%F{!;r!O!>U%F{!>Z!>m%F{!>p!?Y%F{!?Z!?d%F{!?e!?f%F{!?h!?o%F{!@{!A}%F{!BO!BP%F{!BP!BQ%F{!B^!Be%F{!Cq!Cr%F{!Cr!Cs%F{!Ct!Cu%F{!Cw!Cx%F{!Cx!Cy%F{!Cz!C{%F{!C}!DO%F{!DU!DY%F{!DZ!Db%F{!Dc!Df%F{!Dg!Dh%F{!Di!Dj%F{!Dl!Dm%F{!Dm!Dn%F{!Do!Ds%F{!Dt!Du%F{!Du!Dv%F{!EP!EQ%F{!ES!EX%F{!EY!EZ%F{!Ep!Et%F{!Ff!Fg%F{!Gx!HQ%F{!HR!Hw%F{!Id!Ii%F{!LQ!L}%F{!Mc!Md%F{!Mt!Mz%F{!NO!NS%F{!NV!NW%F{!NZ!N[%F{!N[!N]%F{!Nd!Ng%F{!Nk!Nx%F{# U# V%F{# h#!`%F{#!a#!b%F{#!g#!h%F{#!j##g%F{##h#*s%F{#*t#*x%F{#*z#+R%F{#+S#+T%F{#+U#+Y%F{#+[#,V%F{#,W#,[%F{#,^#-P%F{#-Q#-U%F{#-W#-_%F{#-`#-a%F{#-b#-f%F{#-h#-w%F{#-x#/T%F{#/U#/Y%F{#/[#0q%F{#1h#1x%F{#2Y#4R%F{#4_#Au%F{#Aw#BY%F{#BZ#Bu%F{#Bz#Di%F{#EO#E]%F{#E^#Eb%F{#Ep#FS%F{#Fb#Ft%F{#GS#Ga%F{#Gb#Ge%F{#Gt#Hz%F{#Io#Ip%F{#It#Iu%F{#K[#MW%F{#M`#NZ%F{#N[#N]%F{#Nb$ z%F{$!U$!s%F{$#x$$h%F{$$j$$o%F{$$z$%x%F{$&_$&f%F{$'p$(X%F{$(b$)i%F{$+_$+`%F{$-a$.b%F{$.s$.z%F{$0T$0s%F{$1Q$1R%F{$1R$1S%F{$1^$2[%F{$2v$3l%F{$4g$4j%F{$4t$5j%F{$7y$7}%F{$8O$8S%F{$8V$8W%F{$8W$8X%F{$8b$z%F{5>{5>|%F{5?P5?Q%F{5?Q5?R%F{5?T5?Y%F{5?[5?]%F{5?^5?_%F{5?w5?z%F{5?|5@X%F{5@`5@c%F{5@o5@u%F{5@w5@}%F{5AP5AV%F{5A`5Ag%F{5Ah5Ao%F{5Dv5Ek%F{5FY;%S%F{;%`;%w%F{;%{;'O%F{?&r?.p%F{?.r?1Q%F{?1x?2P%F{?2]?2b%F{?2g?2h%F{?2i?2s%F{?2t?3R%F{?3S?3X%F{?3Y?3Z%F{?3[?3]%F{?3]?3^%F{?3_?3`%F{?3`?3a%F{?3b?5r%F{?6e?>`%F{?>r?@U%F{?@W?A`%F{?BY?Bf%F{?EO?ET%F{?EU?HR%F{?Hw?Ic%F{?Ii?JT%F{?J`?L]%F{?L`?Lf%F{?Lh?Ln%F{?Lp?Lv%F{?Lx?L{%F{R&5Q2gzQmPOq!+oqr&4yrs&4yst&4ytu&4yuv&4yvw&4ywx%F{xz!+oz{&4y{|&4y|!O!+o!O!P&4y!P!Q&4y!Q![&4y![!a!+o!a!b&4y!b!c!+o!c!}&4y!}#O!+o#O#P&4y#P#R!+o#R#S&4y#S#T&4y#T#o&4y#o$p!+o$p$q&4y$q${!+o${$|&4y$|%Q!+o%Q%R&4y%R%W!+o%W%o&4y%o%p!+o%p&a&4y&a&b!+o&b0`&4y0`0d!+o0d0p&4y0p1O!+o1O1T&4y1T1[!+o1[1]&4y1]1^!+o1^1_&4y1_4U!+o4U4Z&4y4Z4[!+o4[4]&4y4]4^&4y4^4`!+o4`4d&4y4d4l!+o4l4m&4y4m4n!+o4n4q&4y4q4r!+o4r4s&4y4s4t!+o4t5Y&4y5Y5Z!+o5Z7Q&4y7Q7R!+o7R:S&4y:S:[!+o:[=p&4y=p=y!+o=y>q&4y>q>s!+o>s>t&4y>t>{!+o>{?t&4y?tA`!+oA`A{&4yA{BQ!+oBQBT&4yBTCS!+oCSDP&4yDPDt!+oDtDu&4yDuDv&4yDvDw!+oDwGO&4yGOGP!+oGPGQ&4yGQGa!+oGaGb&4yGbGc&4yGcGj!+oGjGk&4yGkGl&4yGlGv!+oGvGy&4yGyG{!+oG{G|&4yG|H^!+oH^H_&4yH_H`!+oH`IO&4yIOIm!+oImKj&4yKjKu!+oKuKv&4yKvL`!+oL`MR&4yMRM[!+oM[M]&4yM]M^&4yM^Mb!+oMbMc&4yMcMh!+oMhNO&4yNONS!+oNSNT&4yNTN^!+oN^N_&4yN_Nb!+oNbNc&4yNcNz!+oNz! e&4y! e!#O!+o!#O!#P&4y!#P!#Q!+o!#Q!#]&4y!#]!%W!+o!%W!&`&4y!&`!&c!+o!&c!&d&4y!&d!&v!+o!&v!&w&4y!&w!'O!+o!'O!'Y&4y!'Y!'i!+o!'i!'p&4y!'p!'q!+o!'q!'x&4y!'x!'}!+o!'}!(V&4y!(V!(X!+o!(X!(Y&4y!(Y!(Z&4y!(Z!(]!+o!(]!(s&4y!(s!(t!+o!(t!({&4y!({!(|!+o!(|!(}&4y!(}!)Q!+o!)Q!)U&4y!)U!)X!+o!)X!)Y&4y!)Y!)j!+o!)j!)k&4y!)k!)x!+o!)x!)y&4y!)y!)z&4y!)z!){!+o!){!*O&4y!*O!*^!+o!*^!*_&4y!*_!*`&4y!*`!*s!+o!*s!*y&4y!*y!*}!+o!*}!+O&4y!+O!+P&4y!+P!+R!+o!+R!+i&4y!+i!+j!+o!+j!+q&4y!+q!+r!+o!+r!+s&4y!+s!+t&4y!+t!+u!+o!+u!+v&4y!+v!+w&4y!+w!+x!+o!+x!+y&4y!+y!+z&4y!+z!,k!+o!,k!,o&4y!,o!,p!+o!,p!,q&4y!,q!-U!+o!-U!-X&4y!-X!-i!+o!-i!-r&4y!-r!-s!+o!-s!-v&4y!-v!-w!+o!-w!._&4y!._!.`!+o!.`!.g&4y!.g!.h!+o!.h!.i&4y!.i!.j&4y!.j!.k!+o!.k!.p&4y!.p!.s!+o!.s!.t&4y!.t!/W!+o!/W!/X&4y!/X!/h!+o!/h!/i&4y!/i!/j&4y!/j!0_!+o!0_!0g&4y!0g!0i!+o!0i!0j&4y!0j!0k&4y!0k!0m!+o!0m!1T&4y!1T!1U!+o!1U!1]&4y!1]!1^!+o!1^!1_&4y!1_!1`&4y!1`!1a!+o!1a!1f&4y!1f!1i!+o!1i!1j&4y!1j!2Y!+o!2Y!2Z&4y!2Z!2[&4y!2[!2]!+o!2]!2`&4y!2`!2o!+o!2o!2p&4y!2p!3R!+o!3R!3S&4y!3S!3T!+o!3T!3Z&4y!3Z!3^!+o!3^!3a&4y!3a!3b!+o!3b!3f&4y!3f!3i!+o!3i!3j&4y!3j!3k&4y!3k!3l!+o!3l!3m&4y!3m!3n!+o!3n!3o&4y!3o!3p&4y!3p!3s!+o!3s!3t&4y!3t!3u&4y!3u!3x!+o!3x!3{&4y!3{!4O!+o!4O!4[&4y!4[!4r!+o!4r!4s&4y!4s!5y!+o!5y!6R&4y!6R!6S!+o!6S!6V&4y!6V!6W!+o!6W!6o&4y!6o!6p!+o!6p!6z&4y!6z!6{!+o!6{!7Q&4y!7Q!7T!+o!7T!7U&4y!7U!7p!+o!7p!7q&4y!7q!7r&4y!7r!7x!+o!7x!7y&4y!7y!7z&4y!7z!8o!+o!8o!8w&4y!8w!8x!+o!8x!8{&4y!8{!8|!+o!8|!9e&4y!9e!9f!+o!9f!9p&4y!9p!9q!+o!9q!9v&4y!9v!9y!+o!9y!9z&4y!9z!:l!+o!:l!:m&4y!:m!:n!+o!:n!:o&4y!:o!:p&4y!:p!;P!+o!;P!;Q&4y!;Q!;R&4y!;R!;e!+o!;e!;m&4y!;m!;n!+o!;n!;q&4y!;q!;r!+o!;r!O!+o!>O!>U&4y!>U!>Z!+o!>Z!>m&4y!>m!>p!+o!>p!?Y&4y!?Y!?Z!+o!?Z!?d&4y!?d!?e!+o!?e!?f&4y!?f!?h!+o!?h!?o&4y!?o!@{!+o!@{!A}&4y!A}!BO!+o!BO!BP&4y!BP!BQ&4y!BQ!B^!+o!B^!Be&4y!Be!Cq!+o!Cq!Cr&4y!Cr!Cs&4y!Cs!Ct!+o!Ct!Cu&4y!Cu!Cw!+o!Cw!Cx&4y!Cx!Cy&4y!Cy!Cz!+o!Cz!C{&4y!C{!C}!+o!C}!DO&4y!DO!DU!+o!DU!DY&4y!DY!DZ!+o!DZ!Db&4y!Db!Dc!+o!Dc!Df&4y!Df!Dg!+o!Dg!Dh&4y!Dh!Di!+o!Di!Dj&4y!Dj!Dl!+o!Dl!Dm&4y!Dm!Dn&4y!Dn!Do!+o!Do!Ds&4y!Ds!Dt!+o!Dt!Du&4y!Du!Dv&4y!Dv!EP!+o!EP!EQ&4y!EQ!ES!+o!ES!EX&4y!EX!EY!+o!EY!EZ&4y!EZ!Ep!+o!Ep!Et&4y!Et!Ff!+o!Ff!Fg&4y!Fg!Gx!+o!Gx!HQ&4y!HQ!HR!+o!HR!Hw&4y!Hw!Id!+o!Id!Ii&4y!Ii!LQ!+o!LQ!L}&4y!L}!Mc!+o!Mc!Md&4y!Md!Mt!+o!Mt!Mz&4y!Mz!NO!+o!NO!NS&4y!NS!NV!+o!NV!NW&4y!NW!NZ!+o!NZ!N[&4y!N[!N]&4y!N]!Nd!+o!Nd!Ng&4y!Ng!Nk!+o!Nk!Nx&4y!Nx# U!+o# U# V&4y# V# h!+o# h#!`&4y#!`#!a!+o#!a#!b&4y#!b#!g!+o#!g#!h&4y#!h#!j!+o#!j##g&4y##g##h!+o##h#*s&4y#*s#*t!+o#*t#*x&4y#*x#*z!+o#*z#+R&4y#+R#+S!+o#+S#+T&4y#+T#+U!+o#+U#+Y&4y#+Y#+[!+o#+[#,V&4y#,V#,W!+o#,W#,[&4y#,[#,^!+o#,^#-P&4y#-P#-Q!+o#-Q#-U&4y#-U#-W!+o#-W#-_&4y#-_#-`!+o#-`#-a&4y#-a#-b!+o#-b#-f&4y#-f#-h!+o#-h#-w&4y#-w#-x!+o#-x#/T&4y#/T#/U!+o#/U#/Y&4y#/Y#/[!+o#/[#0q&4y#0q#1h!+o#1h#1x&4y#1x#2Y!+o#2Y#4R&4y#4R#4_!+o#4_#Au&4y#Au#Aw!+o#Aw#BY&4y#BY#BZ!+o#BZ#Bu&4y#Bu#Bz!+o#Bz#Di&4y#Di#EO!+o#EO#E]&4y#E]#E^!+o#E^#Eb&4y#Eb#Ep!+o#Ep#FS&4y#FS#Fb!+o#Fb#Ft&4y#Ft#GS!+o#GS#Ga&4y#Ga#Gb!+o#Gb#Ge&4y#Ge#Gt!+o#Gt#Hz&4y#Hz#Io!+o#Io#Ip&4y#Ip#It!+o#It#Iu&4y#Iu#K[!+o#K[#MW&4y#MW#M`!+o#M`#NZ&4y#NZ#N[!+o#N[#N]&4y#N]#Nb!+o#Nb$ z&4y$ z$!U!+o$!U$!s&4y$!s$#x!+o$#x$$h&4y$$h$$j!+o$$j$$o&4y$$o$$z!+o$$z$%x&4y$%x$&_!+o$&_$&f&4y$&f$'p!+o$'p$(X&4y$(X$(b!+o$(b$)i&4y$)i$+_!+o$+_$+`&4y$+`$-a!+o$-a$.b&4y$.b$.s!+o$.s$.z&4y$.z$0T!+o$0T$0s&4y$0s$1Q!+o$1Q$1R&4y$1R$1S&4y$1S$1^!+o$1^$2[&4y$2[$2v!+o$2v$3l&4y$3l$4g!+o$4g$4j&4y$4j$4t!+o$4t$5j&4y$5j$7y!+o$7y$7}&4y$7}$8O!+o$8O$8S&4y$8S$8V!+o$8V$8W&4y$8W$8X&4y$8X$8b!+o$8b$z&4y5>z5>{!+o5>{5>|&4y5>|5?P!+o5?P5?Q&4y5?Q5?R&4y5?R5?T!+o5?T5?Y&4y5?Y5?[!+o5?[5?]&4y5?]5?^!+o5?^5?_&4y5?_5?w!+o5?w5?z&4y5?z5?|!+o5?|5@X&4y5@X5@`!+o5@`5@c&4y5@c5@o!+o5@o5@u&4y5@u5@w!+o5@w5@}&4y5@}5AP!+o5AP5AV&4y5AV5A`!+o5A`5Ag&4y5Ag5Ah!+o5Ah5Ao&4y5Ao5Dv!+o5Dv5Ek&4y5Ek5FY!+o5FY;%S&4y;%S;%`!+o;%`;%w&4y;%w;%{!+o;%{;'O&4y;'O;'S!+o;'S;=`!,Q<%l?&r!+o?&r?.p&4y?.p?.r!+o?.r?1Q&4y?1Q?1x!+o?1x?2P&4y?2P?2]!+o?2]?2b&4y?2b?2g!+o?2g?2h&4y?2h?2i!+o?2i?2s&4y?2s?2t!+o?2t?3R&4y?3R?3S!+o?3S?3X&4y?3X?3Y!+o?3Y?3Z&4y?3Z?3[!+o?3[?3]&4y?3]?3^&4y?3^?3_!+o?3_?3`&4y?3`?3a&4y?3a?3b!+o?3b?5r&4y?5r?6e!+o?6e?>`&4y?>`?>r!+o?>r?@U&4y?@U?@W!+o?@W?A`&4y?A`?BY!+o?BY?Bf&4y?Bf?EO!+o?EO?ET&4y?ET?EU!+o?EU?HR&4y?HR?Hw!+o?Hw?Ic&4y?Ic?Ii!+o?Ii?JT&4y?JT?J`!+o?J`?L]&4y?L]?L`!+o?L`?Lf&4y?Lf?Lh!+o?Lh?Ln&4y?Ln?Lp!+o?Lp?Lv&4y?Lv?Lx!+o?Lx?L{&4y?L{O!+o]';r2g!OW|SmPOq!,^qr';irs$@]st';itu';iuv';ivw';iwx';ixz!,^z{';i{|';i|!O!,^!O!P';i!P!Q';i!Q![';i![!a!,^!a!b';i!b!c!,^!c!}';i!}#O!,^#O#P';i#P#R!,^#R#S';i#S#T(BZ#T#o';i#o$p!,^$p$q';i$q${!,^${$|';i$|%Q!,^%Q%R';i%R%W!,^%W%o';i%o%p!,^%p&a';i&a&b!,^&b0`';i0`0d!,^0d0p';i0p1O!,^1O1T';i1T1[!,^1[1]';i1]1^!,^1^1_';i1_4U!,^4U4Z';i4Z4[!,^4[4]';i4]4^';i4^4`!,^4`4d';i4d4l!,^4l4m';i4m4n!,^4n4q';i4q4r!,^4r4s';i4s4t!,^4t5Y';i5Y5Z!,^5Z7Q';i7Q7R!,^7R:S';i:S:[!,^:[=p';i=p=y!,^=y>q';i>q>s!,^>s>t';i>t>{!,^>{?t';i?tA`!,^A`A{';iA{BQ!,^BQBT';iBTCS!,^CSDP';iDPDt!,^DtDu';iDuDv';iDvDw!,^DwGO';iGOGP!,^GPGQ';iGQGa!,^GaGb';iGbGc';iGcGj!,^GjGk';iGkGl';iGlGv!,^GvGy';iGyG{!,^G{G|';iG|H^!,^H^H_';iH_H`!,^H`IO';iIOIm!,^ImKj';iKjKu!,^KuKv';iKvL`!,^L`MR';iMRM[!,^M[M]';iM]M^';iM^Mb!,^MbMc';iMcMh!,^MhNO';iNONS!,^NSNT';iNTN^!,^N^N_';iN_Nb!,^NbNc';iNcNz!,^Nz! e';i! e!#O!,^!#O!#P';i!#P!#Q!,^!#Q!#]';i!#]!%W!,^!%W!&`';i!&`!&c!,^!&c!&d';i!&d!&v!,^!&v!&w';i!&w!'O!,^!'O!'Y';i!'Y!'i!,^!'i!'p';i!'p!'q!,^!'q!'x';i!'x!'}!,^!'}!(V';i!(V!(X!,^!(X!(Y';i!(Y!(Z';i!(Z!(]!,^!(]!(s';i!(s!(t!,^!(t!({';i!({!(|!,^!(|!(}';i!(}!)Q!,^!)Q!)U';i!)U!)X!,^!)X!)Y';i!)Y!)j!,^!)j!)k';i!)k!)x!,^!)x!)y';i!)y!)z';i!)z!){!,^!){!*O';i!*O!*^!,^!*^!*_';i!*_!*`';i!*`!*s!,^!*s!*y';i!*y!*}!,^!*}!+O';i!+O!+P';i!+P!+R!,^!+R!+i';i!+i!+j!,^!+j!+q';i!+q!+r!,^!+r!+s';i!+s!+t';i!+t!+u!,^!+u!+v';i!+v!+w';i!+w!+x!,^!+x!+y';i!+y!+z';i!+z!,k!,^!,k!,o';i!,o!,p!,^!,p!,q';i!,q!-U!,^!-U!-X';i!-X!-i!,^!-i!-r';i!-r!-s!,^!-s!-v';i!-v!-w!,^!-w!._';i!._!.`!,^!.`!.g';i!.g!.h!,^!.h!.i';i!.i!.j';i!.j!.k!,^!.k!.p';i!.p!.s!,^!.s!.t';i!.t!/W!,^!/W!/X';i!/X!/h!,^!/h!/i';i!/i!/j';i!/j!0_!,^!0_!0g';i!0g!0i!,^!0i!0j';i!0j!0k';i!0k!0m!,^!0m!1T';i!1T!1U!,^!1U!1]';i!1]!1^!,^!1^!1_';i!1_!1`';i!1`!1a!,^!1a!1f';i!1f!1i!,^!1i!1j';i!1j!2Y!,^!2Y!2Z';i!2Z!2[';i!2[!2]!,^!2]!2`';i!2`!2o!,^!2o!2p';i!2p!3R!,^!3R!3S';i!3S!3T!,^!3T!3Z';i!3Z!3^!,^!3^!3a';i!3a!3b!,^!3b!3f';i!3f!3i!,^!3i!3j';i!3j!3k';i!3k!3l!,^!3l!3m';i!3m!3n!,^!3n!3o';i!3o!3p';i!3p!3s!,^!3s!3t';i!3t!3u';i!3u!3x!,^!3x!3{';i!3{!4O!,^!4O!4[';i!4[!4r!,^!4r!4s';i!4s!5y!,^!5y!6R';i!6R!6S!,^!6S!6V';i!6V!6W!,^!6W!6o';i!6o!6p!,^!6p!6z';i!6z!6{!,^!6{!7Q';i!7Q!7T!,^!7T!7U';i!7U!7p!,^!7p!7q';i!7q!7r';i!7r!7x!,^!7x!7y';i!7y!7z';i!7z!8o!,^!8o!8w';i!8w!8x!,^!8x!8{';i!8{!8|!,^!8|!9e';i!9e!9f!,^!9f!9p';i!9p!9q!,^!9q!9v';i!9v!9y!,^!9y!9z';i!9z!:l!,^!:l!:m';i!:m!:n!,^!:n!:o';i!:o!:p';i!:p!;P!,^!;P!;Q';i!;Q!;R';i!;R!;e!,^!;e!;m';i!;m!;n!,^!;n!;q';i!;q!;r!,^!;r!O!,^!>O!>U';i!>U!>Z!,^!>Z!>m';i!>m!>p!,^!>p!?Y';i!?Y!?Z!,^!?Z!?d';i!?d!?e!,^!?e!?f';i!?f!?h!,^!?h!?o';i!?o!@{!,^!@{!A}';i!A}!BO!,^!BO!BP';i!BP!BQ';i!BQ!B^!,^!B^!Be';i!Be!Cq!,^!Cq!Cr';i!Cr!Cs';i!Cs!Ct!,^!Ct!Cu';i!Cu!Cw!,^!Cw!Cx';i!Cx!Cy';i!Cy!Cz!,^!Cz!C{';i!C{!C}!,^!C}!DO';i!DO!DU!,^!DU!DY';i!DY!DZ!,^!DZ!Db';i!Db!Dc!,^!Dc!Df';i!Df!Dg!,^!Dg!Dh';i!Dh!Di!,^!Di!Dj';i!Dj!Dl!,^!Dl!Dm';i!Dm!Dn';i!Dn!Do!,^!Do!Ds';i!Ds!Dt!,^!Dt!Du';i!Du!Dv';i!Dv!EP!,^!EP!EQ';i!EQ!ES!,^!ES!EX';i!EX!EY!,^!EY!EZ';i!EZ!Ep!,^!Ep!Et';i!Et!Ff!,^!Ff!Fg';i!Fg!Gx!,^!Gx!HQ';i!HQ!HR!,^!HR!Hw';i!Hw!Id!,^!Id!Ii';i!Ii!LQ!,^!LQ!L}';i!L}!Mc!,^!Mc!Md';i!Md!Mt!,^!Mt!Mz';i!Mz!NO!,^!NO!NS';i!NS!NV!,^!NV!NW';i!NW!NZ!,^!NZ!N[';i!N[!N]';i!N]!Nd!,^!Nd!Ng';i!Ng!Nk!,^!Nk!Nx';i!Nx# U!,^# U# V';i# V# h!,^# h#!`';i#!`#!a!,^#!a#!b';i#!b#!g!,^#!g#!h';i#!h#!j!,^#!j##g';i##g##h!,^##h#*s';i#*s#*t!,^#*t#*x';i#*x#*z!,^#*z#+R';i#+R#+S!,^#+S#+T';i#+T#+U!,^#+U#+Y';i#+Y#+[!,^#+[#,V';i#,V#,W!,^#,W#,[';i#,[#,^!,^#,^#-P';i#-P#-Q!,^#-Q#-U';i#-U#-W!,^#-W#-_';i#-_#-`!,^#-`#-a';i#-a#-b!,^#-b#-f';i#-f#-h!,^#-h#-w';i#-w#-x!,^#-x#/T';i#/T#/U!,^#/U#/Y';i#/Y#/[!,^#/[#0q';i#0q#1h!,^#1h#1x';i#1x#2Y!,^#2Y#4R';i#4R#4_!,^#4_#Au';i#Au#Aw!,^#Aw#BY';i#BY#BZ!,^#BZ#Bu';i#Bu#Bz!,^#Bz#Di';i#Di#EO!,^#EO#E]';i#E]#E^!,^#E^#Eb';i#Eb#Ep!,^#Ep#FS';i#FS#Fb!,^#Fb#Ft';i#Ft#GS!,^#GS#Ga';i#Ga#Gb!,^#Gb#Ge';i#Ge#Gt!,^#Gt#Hz';i#Hz#Io!,^#Io#Ip';i#Ip#It!,^#It#Iu';i#Iu#K[!,^#K[#MW';i#MW#M`!,^#M`#NZ';i#NZ#N[!,^#N[#N]';i#N]#Nb!,^#Nb$ z';i$ z$!U!,^$!U$!s';i$!s$#x!,^$#x$$h';i$$h$$j!,^$$j$$o';i$$o$$z!,^$$z$%x';i$%x$&_!,^$&_$&f';i$&f$'p!,^$'p$(X';i$(X$(b!,^$(b$)i';i$)i$+_!,^$+_$+`';i$+`$-a!,^$-a$.b';i$.b$.s!,^$.s$.z';i$.z$0T!,^$0T$0s';i$0s$1Q!,^$1Q$1R';i$1R$1S';i$1S$1^!,^$1^$2[';i$2[$2v!,^$2v$3l';i$3l$4g!,^$4g$4j';i$4j$4t!,^$4t$5j';i$5j$7y!,^$7y$7}';i$7}$8O!,^$8O$8S';i$8S$8V!,^$8V$8W';i$8W$8X';i$8X$8b!,^$8b$z';i5>z5>{!,^5>{5>|';i5>|5?P!,^5?P5?Q';i5?Q5?R';i5?R5?T!,^5?T5?Y';i5?Y5?[!,^5?[5?]';i5?]5?^!,^5?^5?_';i5?_5?w!,^5?w5?z';i5?z5?|!,^5?|5@X';i5@X5@`!,^5@`5@c';i5@c5@o!,^5@o5@u';i5@u5@w!,^5@w5@}';i5@}5AP!,^5AP5AV';i5AV5A`!,^5A`5Ag';i5Ag5Ah!,^5Ah5Ao';i5Ao5Dv!,^5Dv5Ek';i5Ek5FY!,^5FY;%S';i;%S;%`!,^;%`;%w';i;%w;%{!,^;%{;'O';i;'O;'S!,^;'S;=`!-c<%l?&r!,^?&r?.p';i?.p?.r!,^?.r?1Q';i?1Q?1x!,^?1x?2P';i?2P?2]!,^?2]?2b';i?2b?2g!,^?2g?2h';i?2h?2i!,^?2i?2s';i?2s?2t!,^?2t?3R';i?3R?3S!,^?3S?3X';i?3X?3Y!,^?3Y?3Z';i?3Z?3[!,^?3[?3]';i?3]?3^';i?3^?3_!,^?3_?3`';i?3`?3a';i?3a?3b!,^?3b?5r';i?5r?6e!,^?6e?>`';i?>`?>r!,^?>r?@U';i?@U?@W!,^?@W?A`';i?A`?BY!,^?BY?Bf';i?Bf?EO!,^?EO?ET';i?ET?EU!,^?EU?HR';i?HR?Hw!,^?Hw?Ic';i?Ic?Ii!,^?Ii?JT';i?JT?J`!,^?J`?L]';i?L]?L`!,^?L`?Lf';i?Lf?Lh!,^?Lh?Ln';i?Ln?Lp!,^?Lp?Lv';i?Lv?Lx!,^?Lx?L{';i?L{O!,^T(Bb2g|SmPOq!,zqr(BZrs%F{st(BZtu(BZuv(BZvw(BZwx(BZxz!,zz{(BZ{|(BZ|!O!,z!O!P(BZ!P!Q(BZ!Q![(BZ![!a!,z!a!b(BZ!b!c!,z!c!}(BZ!}#O!,z#O#P(BZ#P#R!,z#R#S(BZ#S#T(BZ#T#o(BZ#o$p!,z$p$q(BZ$q${!,z${$|(BZ$|%Q!,z%Q%R(BZ%R%W!,z%W%o(BZ%o%p!,z%p&a(BZ&a&b!,z&b0`(BZ0`0d!,z0d0p(BZ0p1O!,z1O1T(BZ1T1[!,z1[1](BZ1]1^!,z1^1_(BZ1_4U!,z4U4Z(BZ4Z4[!,z4[4](BZ4]4^(BZ4^4`!,z4`4d(BZ4d4l!,z4l4m(BZ4m4n!,z4n4q(BZ4q4r!,z4r4s(BZ4s4t!,z4t5Y(BZ5Y5Z!,z5Z7Q(BZ7Q7R!,z7R:S(BZ:S:[!,z:[=p(BZ=p=y!,z=y>q(BZ>q>s!,z>s>t(BZ>t>{!,z>{?t(BZ?tA`!,zA`A{(BZA{BQ!,zBQBT(BZBTCS!,zCSDP(BZDPDt!,zDtDu(BZDuDv(BZDvDw!,zDwGO(BZGOGP!,zGPGQ(BZGQGa!,zGaGb(BZGbGc(BZGcGj!,zGjGk(BZGkGl(BZGlGv!,zGvGy(BZGyG{!,zG{G|(BZG|H^!,zH^H_(BZH_H`!,zH`IO(BZIOIm!,zImKj(BZKjKu!,zKuKv(BZKvL`!,zL`MR(BZMRM[!,zM[M](BZM]M^(BZM^Mb!,zMbMc(BZMcMh!,zMhNO(BZNONS!,zNSNT(BZNTN^!,zN^N_(BZN_Nb!,zNbNc(BZNcNz!,zNz! e(BZ! e!#O!,z!#O!#P(BZ!#P!#Q!,z!#Q!#](BZ!#]!%W!,z!%W!&`(BZ!&`!&c!,z!&c!&d(BZ!&d!&v!,z!&v!&w(BZ!&w!'O!,z!'O!'Y(BZ!'Y!'i!,z!'i!'p(BZ!'p!'q!,z!'q!'x(BZ!'x!'}!,z!'}!(V(BZ!(V!(X!,z!(X!(Y(BZ!(Y!(Z(BZ!(Z!(]!,z!(]!(s(BZ!(s!(t!,z!(t!({(BZ!({!(|!,z!(|!(}(BZ!(}!)Q!,z!)Q!)U(BZ!)U!)X!,z!)X!)Y(BZ!)Y!)j!,z!)j!)k(BZ!)k!)x!,z!)x!)y(BZ!)y!)z(BZ!)z!){!,z!){!*O(BZ!*O!*^!,z!*^!*_(BZ!*_!*`(BZ!*`!*s!,z!*s!*y(BZ!*y!*}!,z!*}!+O(BZ!+O!+P(BZ!+P!+R!,z!+R!+i(BZ!+i!+j!,z!+j!+q(BZ!+q!+r!,z!+r!+s(BZ!+s!+t(BZ!+t!+u!,z!+u!+v(BZ!+v!+w(BZ!+w!+x!,z!+x!+y(BZ!+y!+z(BZ!+z!,k!,z!,k!,o(BZ!,o!,p!,z!,p!,q(BZ!,q!-U!,z!-U!-X(BZ!-X!-i!,z!-i!-r(BZ!-r!-s!,z!-s!-v(BZ!-v!-w!,z!-w!._(BZ!._!.`!,z!.`!.g(BZ!.g!.h!,z!.h!.i(BZ!.i!.j(BZ!.j!.k!,z!.k!.p(BZ!.p!.s!,z!.s!.t(BZ!.t!/W!,z!/W!/X(BZ!/X!/h!,z!/h!/i(BZ!/i!/j(BZ!/j!0_!,z!0_!0g(BZ!0g!0i!,z!0i!0j(BZ!0j!0k(BZ!0k!0m!,z!0m!1T(BZ!1T!1U!,z!1U!1](BZ!1]!1^!,z!1^!1_(BZ!1_!1`(BZ!1`!1a!,z!1a!1f(BZ!1f!1i!,z!1i!1j(BZ!1j!2Y!,z!2Y!2Z(BZ!2Z!2[(BZ!2[!2]!,z!2]!2`(BZ!2`!2o!,z!2o!2p(BZ!2p!3R!,z!3R!3S(BZ!3S!3T!,z!3T!3Z(BZ!3Z!3^!,z!3^!3a(BZ!3a!3b!,z!3b!3f(BZ!3f!3i!,z!3i!3j(BZ!3j!3k(BZ!3k!3l!,z!3l!3m(BZ!3m!3n!,z!3n!3o(BZ!3o!3p(BZ!3p!3s!,z!3s!3t(BZ!3t!3u(BZ!3u!3x!,z!3x!3{(BZ!3{!4O!,z!4O!4[(BZ!4[!4r!,z!4r!4s(BZ!4s!5y!,z!5y!6R(BZ!6R!6S!,z!6S!6V(BZ!6V!6W!,z!6W!6o(BZ!6o!6p!,z!6p!6z(BZ!6z!6{!,z!6{!7Q(BZ!7Q!7T!,z!7T!7U(BZ!7U!7p!,z!7p!7q(BZ!7q!7r(BZ!7r!7x!,z!7x!7y(BZ!7y!7z(BZ!7z!8o!,z!8o!8w(BZ!8w!8x!,z!8x!8{(BZ!8{!8|!,z!8|!9e(BZ!9e!9f!,z!9f!9p(BZ!9p!9q!,z!9q!9v(BZ!9v!9y!,z!9y!9z(BZ!9z!:l!,z!:l!:m(BZ!:m!:n!,z!:n!:o(BZ!:o!:p(BZ!:p!;P!,z!;P!;Q(BZ!;Q!;R(BZ!;R!;e!,z!;e!;m(BZ!;m!;n!,z!;n!;q(BZ!;q!;r!,z!;r!O!,z!>O!>U(BZ!>U!>Z!,z!>Z!>m(BZ!>m!>p!,z!>p!?Y(BZ!?Y!?Z!,z!?Z!?d(BZ!?d!?e!,z!?e!?f(BZ!?f!?h!,z!?h!?o(BZ!?o!@{!,z!@{!A}(BZ!A}!BO!,z!BO!BP(BZ!BP!BQ(BZ!BQ!B^!,z!B^!Be(BZ!Be!Cq!,z!Cq!Cr(BZ!Cr!Cs(BZ!Cs!Ct!,z!Ct!Cu(BZ!Cu!Cw!,z!Cw!Cx(BZ!Cx!Cy(BZ!Cy!Cz!,z!Cz!C{(BZ!C{!C}!,z!C}!DO(BZ!DO!DU!,z!DU!DY(BZ!DY!DZ!,z!DZ!Db(BZ!Db!Dc!,z!Dc!Df(BZ!Df!Dg!,z!Dg!Dh(BZ!Dh!Di!,z!Di!Dj(BZ!Dj!Dl!,z!Dl!Dm(BZ!Dm!Dn(BZ!Dn!Do!,z!Do!Ds(BZ!Ds!Dt!,z!Dt!Du(BZ!Du!Dv(BZ!Dv!EP!,z!EP!EQ(BZ!EQ!ES!,z!ES!EX(BZ!EX!EY!,z!EY!EZ(BZ!EZ!Ep!,z!Ep!Et(BZ!Et!Ff!,z!Ff!Fg(BZ!Fg!Gx!,z!Gx!HQ(BZ!HQ!HR!,z!HR!Hw(BZ!Hw!Id!,z!Id!Ii(BZ!Ii!LQ!,z!LQ!L}(BZ!L}!Mc!,z!Mc!Md(BZ!Md!Mt!,z!Mt!Mz(BZ!Mz!NO!,z!NO!NS(BZ!NS!NV!,z!NV!NW(BZ!NW!NZ!,z!NZ!N[(BZ!N[!N](BZ!N]!Nd!,z!Nd!Ng(BZ!Ng!Nk!,z!Nk!Nx(BZ!Nx# U!,z# U# V(BZ# V# h!,z# h#!`(BZ#!`#!a!,z#!a#!b(BZ#!b#!g!,z#!g#!h(BZ#!h#!j!,z#!j##g(BZ##g##h!,z##h#*s(BZ#*s#*t!,z#*t#*x(BZ#*x#*z!,z#*z#+R(BZ#+R#+S!,z#+S#+T(BZ#+T#+U!,z#+U#+Y(BZ#+Y#+[!,z#+[#,V(BZ#,V#,W!,z#,W#,[(BZ#,[#,^!,z#,^#-P(BZ#-P#-Q!,z#-Q#-U(BZ#-U#-W!,z#-W#-_(BZ#-_#-`!,z#-`#-a(BZ#-a#-b!,z#-b#-f(BZ#-f#-h!,z#-h#-w(BZ#-w#-x!,z#-x#/T(BZ#/T#/U!,z#/U#/Y(BZ#/Y#/[!,z#/[#0q(BZ#0q#1h!,z#1h#1x(BZ#1x#2Y!,z#2Y#4R(BZ#4R#4_!,z#4_#Au(BZ#Au#Aw!,z#Aw#BY(BZ#BY#BZ!,z#BZ#Bu(BZ#Bu#Bz!,z#Bz#Di(BZ#Di#EO!,z#EO#E](BZ#E]#E^!,z#E^#Eb(BZ#Eb#Ep!,z#Ep#FS(BZ#FS#Fb!,z#Fb#Ft(BZ#Ft#GS!,z#GS#Ga(BZ#Ga#Gb!,z#Gb#Ge(BZ#Ge#Gt!,z#Gt#Hz(BZ#Hz#Io!,z#Io#Ip(BZ#Ip#It!,z#It#Iu(BZ#Iu#K[!,z#K[#MW(BZ#MW#M`!,z#M`#NZ(BZ#NZ#N[!,z#N[#N](BZ#N]#Nb!,z#Nb$ z(BZ$ z$!U!,z$!U$!s(BZ$!s$#x!,z$#x$$h(BZ$$h$$j!,z$$j$$o(BZ$$o$$z!,z$$z$%x(BZ$%x$&_!,z$&_$&f(BZ$&f$'p!,z$'p$(X(BZ$(X$(b!,z$(b$)i(BZ$)i$+_!,z$+_$+`(BZ$+`$-a!,z$-a$.b(BZ$.b$.s!,z$.s$.z(BZ$.z$0T!,z$0T$0s(BZ$0s$1Q!,z$1Q$1R(BZ$1R$1S(BZ$1S$1^!,z$1^$2[(BZ$2[$2v!,z$2v$3l(BZ$3l$4g!,z$4g$4j(BZ$4j$4t!,z$4t$5j(BZ$5j$7y!,z$7y$7}(BZ$7}$8O!,z$8O$8S(BZ$8S$8V!,z$8V$8W(BZ$8W$8X(BZ$8X$8b!,z$8b$z(BZ5>z5>{!,z5>{5>|(BZ5>|5?P!,z5?P5?Q(BZ5?Q5?R(BZ5?R5?T!,z5?T5?Y(BZ5?Y5?[!,z5?[5?](BZ5?]5?^!,z5?^5?_(BZ5?_5?w!,z5?w5?z(BZ5?z5?|!,z5?|5@X(BZ5@X5@`!,z5@`5@c(BZ5@c5@o!,z5@o5@u(BZ5@u5@w!,z5@w5@}(BZ5@}5AP!,z5AP5AV(BZ5AV5A`!,z5A`5Ag(BZ5Ag5Ah!,z5Ah5Ao(BZ5Ao5Dv!,z5Dv5Ek(BZ5Ek5FY!,z5FY;%S(BZ;%S;%`!,z;%`;%w(BZ;%w;%{!,z;%{;'O(BZ;'O;'S!,z;'S;=`!-]<%l?&r!,z?&r?.p(BZ?.p?.r!,z?.r?1Q(BZ?1Q?1x!,z?1x?2P(BZ?2P?2]!,z?2]?2b(BZ?2b?2g!,z?2g?2h(BZ?2h?2i!,z?2i?2s(BZ?2s?2t!,z?2t?3R(BZ?3R?3S!,z?3S?3X(BZ?3X?3Y!,z?3Y?3Z(BZ?3Z?3[!,z?3[?3](BZ?3]?3^(BZ?3^?3_!,z?3_?3`(BZ?3`?3a(BZ?3a?3b!,z?3b?5r(BZ?5r?6e!,z?6e?>`(BZ?>`?>r!,z?>r?@U(BZ?@U?@W!,z?@W?A`(BZ?A`?BY!,z?BY?Bf(BZ?Bf?EO!,z?EO?ET(BZ?ET?EU!,z?EU?HR(BZ?HR?Hw!,z?Hw?Ic(BZ?Ic?Ii!,z?Ii?JT(BZ?JT?J`!,z?J`?L](BZ?L]?L`!,z?L`?Lf(BZ?Lf?Lh!,z?Lh?Ln(BZ?Ln?Lp!,z?Lp?Lv(BZ?Lv?Lx!,z?Lx?L{(BZ?L{O!,zV)IS2g|SzQmPOq!-iqr)Hyrs&4yst)Hytu)Hyuv)Hyvw)Hywx(BZxz!-iz{)Hy{|)Hy|!O!-i!O!P)Hy!P!Q)Hy!Q![)Hy![!a!-i!a!b)Hy!b!c!-i!c!})Hy!}#O!-i#O#P)Hy#P#R!-i#R#S)Hy#S#T)Hy#T#o)Hy#o$p!-i$p$q)Hy$q${!-i${$|)Hy$|%Q!-i%Q%R)Hy%R%W!-i%W%o)Hy%o%p!-i%p&a)Hy&a&b!-i&b0`)Hy0`0d!-i0d0p)Hy0p1O!-i1O1T)Hy1T1[!-i1[1])Hy1]1^!-i1^1_)Hy1_4U!-i4U4Z)Hy4Z4[!-i4[4])Hy4]4^)Hy4^4`!-i4`4d)Hy4d4l!-i4l4m)Hy4m4n!-i4n4q)Hy4q4r!-i4r4s)Hy4s4t!-i4t5Y)Hy5Y5Z!-i5Z7Q)Hy7Q7R!-i7R:S)Hy:S:[!-i:[=p)Hy=p=y!-i=y>q)Hy>q>s!-i>s>t)Hy>t>{!-i>{?t)Hy?tA`!-iA`A{)HyA{BQ!-iBQBT)HyBTCS!-iCSDP)HyDPDt!-iDtDu)HyDuDv)HyDvDw!-iDwGO)HyGOGP!-iGPGQ)HyGQGa!-iGaGb)HyGbGc)HyGcGj!-iGjGk)HyGkGl)HyGlGv!-iGvGy)HyGyG{!-iG{G|)HyG|H^!-iH^H_)HyH_H`!-iH`IO)HyIOIm!-iImKj)HyKjKu!-iKuKv)HyKvL`!-iL`MR)HyMRM[!-iM[M])HyM]M^)HyM^Mb!-iMbMc)HyMcMh!-iMhNO)HyNONS!-iNSNT)HyNTN^!-iN^N_)HyN_Nb!-iNbNc)HyNcNz!-iNz! e)Hy! e!#O!-i!#O!#P)Hy!#P!#Q!-i!#Q!#])Hy!#]!%W!-i!%W!&`)Hy!&`!&c!-i!&c!&d)Hy!&d!&v!-i!&v!&w)Hy!&w!'O!-i!'O!'Y)Hy!'Y!'i!-i!'i!'p)Hy!'p!'q!-i!'q!'x)Hy!'x!'}!-i!'}!(V)Hy!(V!(X!-i!(X!(Y)Hy!(Y!(Z)Hy!(Z!(]!-i!(]!(s)Hy!(s!(t!-i!(t!({)Hy!({!(|!-i!(|!(})Hy!(}!)Q!-i!)Q!)U)Hy!)U!)X!-i!)X!)Y)Hy!)Y!)j!-i!)j!)k)Hy!)k!)x!-i!)x!)y)Hy!)y!)z)Hy!)z!){!-i!){!*O)Hy!*O!*^!-i!*^!*_)Hy!*_!*`)Hy!*`!*s!-i!*s!*y)Hy!*y!*}!-i!*}!+O)Hy!+O!+P)Hy!+P!+R!-i!+R!+i)Hy!+i!+j!-i!+j!+q)Hy!+q!+r!-i!+r!+s)Hy!+s!+t)Hy!+t!+u!-i!+u!+v)Hy!+v!+w)Hy!+w!+x!-i!+x!+y)Hy!+y!+z)Hy!+z!,k!-i!,k!,o)Hy!,o!,p!-i!,p!,q)Hy!,q!-U!-i!-U!-X)Hy!-X!-i!-i!-i!-r)Hy!-r!-s!-i!-s!-v)Hy!-v!-w!-i!-w!._)Hy!._!.`!-i!.`!.g)Hy!.g!.h!-i!.h!.i)Hy!.i!.j)Hy!.j!.k!-i!.k!.p)Hy!.p!.s!-i!.s!.t)Hy!.t!/W!-i!/W!/X)Hy!/X!/h!-i!/h!/i)Hy!/i!/j)Hy!/j!0_!-i!0_!0g)Hy!0g!0i!-i!0i!0j)Hy!0j!0k)Hy!0k!0m!-i!0m!1T)Hy!1T!1U!-i!1U!1])Hy!1]!1^!-i!1^!1_)Hy!1_!1`)Hy!1`!1a!-i!1a!1f)Hy!1f!1i!-i!1i!1j)Hy!1j!2Y!-i!2Y!2Z)Hy!2Z!2[)Hy!2[!2]!-i!2]!2`)Hy!2`!2o!-i!2o!2p)Hy!2p!3R!-i!3R!3S)Hy!3S!3T!-i!3T!3Z)Hy!3Z!3^!-i!3^!3a)Hy!3a!3b!-i!3b!3f)Hy!3f!3i!-i!3i!3j)Hy!3j!3k)Hy!3k!3l!-i!3l!3m)Hy!3m!3n!-i!3n!3o)Hy!3o!3p)Hy!3p!3s!-i!3s!3t)Hy!3t!3u)Hy!3u!3x!-i!3x!3{)Hy!3{!4O!-i!4O!4[)Hy!4[!4r!-i!4r!4s)Hy!4s!5y!-i!5y!6R)Hy!6R!6S!-i!6S!6V)Hy!6V!6W!-i!6W!6o)Hy!6o!6p!-i!6p!6z)Hy!6z!6{!-i!6{!7Q)Hy!7Q!7T!-i!7T!7U)Hy!7U!7p!-i!7p!7q)Hy!7q!7r)Hy!7r!7x!-i!7x!7y)Hy!7y!7z)Hy!7z!8o!-i!8o!8w)Hy!8w!8x!-i!8x!8{)Hy!8{!8|!-i!8|!9e)Hy!9e!9f!-i!9f!9p)Hy!9p!9q!-i!9q!9v)Hy!9v!9y!-i!9y!9z)Hy!9z!:l!-i!:l!:m)Hy!:m!:n!-i!:n!:o)Hy!:o!:p)Hy!:p!;P!-i!;P!;Q)Hy!;Q!;R)Hy!;R!;e!-i!;e!;m)Hy!;m!;n!-i!;n!;q)Hy!;q!;r!-i!;r!O!-i!>O!>U)Hy!>U!>Z!-i!>Z!>m)Hy!>m!>p!-i!>p!?Y)Hy!?Y!?Z!-i!?Z!?d)Hy!?d!?e!-i!?e!?f)Hy!?f!?h!-i!?h!?o)Hy!?o!@{!-i!@{!A})Hy!A}!BO!-i!BO!BP)Hy!BP!BQ)Hy!BQ!B^!-i!B^!Be)Hy!Be!Cq!-i!Cq!Cr)Hy!Cr!Cs)Hy!Cs!Ct!-i!Ct!Cu)Hy!Cu!Cw!-i!Cw!Cx)Hy!Cx!Cy)Hy!Cy!Cz!-i!Cz!C{)Hy!C{!C}!-i!C}!DO)Hy!DO!DU!-i!DU!DY)Hy!DY!DZ!-i!DZ!Db)Hy!Db!Dc!-i!Dc!Df)Hy!Df!Dg!-i!Dg!Dh)Hy!Dh!Di!-i!Di!Dj)Hy!Dj!Dl!-i!Dl!Dm)Hy!Dm!Dn)Hy!Dn!Do!-i!Do!Ds)Hy!Ds!Dt!-i!Dt!Du)Hy!Du!Dv)Hy!Dv!EP!-i!EP!EQ)Hy!EQ!ES!-i!ES!EX)Hy!EX!EY!-i!EY!EZ)Hy!EZ!Ep!-i!Ep!Et)Hy!Et!Ff!-i!Ff!Fg)Hy!Fg!Gx!-i!Gx!HQ)Hy!HQ!HR!-i!HR!Hw)Hy!Hw!Id!-i!Id!Ii)Hy!Ii!LQ!-i!LQ!L})Hy!L}!Mc!-i!Mc!Md)Hy!Md!Mt!-i!Mt!Mz)Hy!Mz!NO!-i!NO!NS)Hy!NS!NV!-i!NV!NW)Hy!NW!NZ!-i!NZ!N[)Hy!N[!N])Hy!N]!Nd!-i!Nd!Ng)Hy!Ng!Nk!-i!Nk!Nx)Hy!Nx# U!-i# U# V)Hy# V# h!-i# h#!`)Hy#!`#!a!-i#!a#!b)Hy#!b#!g!-i#!g#!h)Hy#!h#!j!-i#!j##g)Hy##g##h!-i##h#*s)Hy#*s#*t!-i#*t#*x)Hy#*x#*z!-i#*z#+R)Hy#+R#+S!-i#+S#+T)Hy#+T#+U!-i#+U#+Y)Hy#+Y#+[!-i#+[#,V)Hy#,V#,W!-i#,W#,[)Hy#,[#,^!-i#,^#-P)Hy#-P#-Q!-i#-Q#-U)Hy#-U#-W!-i#-W#-_)Hy#-_#-`!-i#-`#-a)Hy#-a#-b!-i#-b#-f)Hy#-f#-h!-i#-h#-w)Hy#-w#-x!-i#-x#/T)Hy#/T#/U!-i#/U#/Y)Hy#/Y#/[!-i#/[#0q)Hy#0q#1h!-i#1h#1x)Hy#1x#2Y!-i#2Y#4R)Hy#4R#4_!-i#4_#Au)Hy#Au#Aw!-i#Aw#BY)Hy#BY#BZ!-i#BZ#Bu)Hy#Bu#Bz!-i#Bz#Di)Hy#Di#EO!-i#EO#E])Hy#E]#E^!-i#E^#Eb)Hy#Eb#Ep!-i#Ep#FS)Hy#FS#Fb!-i#Fb#Ft)Hy#Ft#GS!-i#GS#Ga)Hy#Ga#Gb!-i#Gb#Ge)Hy#Ge#Gt!-i#Gt#Hz)Hy#Hz#Io!-i#Io#Ip)Hy#Ip#It!-i#It#Iu)Hy#Iu#K[!-i#K[#MW)Hy#MW#M`!-i#M`#NZ)Hy#NZ#N[!-i#N[#N])Hy#N]#Nb!-i#Nb$ z)Hy$ z$!U!-i$!U$!s)Hy$!s$#x!-i$#x$$h)Hy$$h$$j!-i$$j$$o)Hy$$o$$z!-i$$z$%x)Hy$%x$&_!-i$&_$&f)Hy$&f$'p!-i$'p$(X)Hy$(X$(b!-i$(b$)i)Hy$)i$+_!-i$+_$+`)Hy$+`$-a!-i$-a$.b)Hy$.b$.s!-i$.s$.z)Hy$.z$0T!-i$0T$0s)Hy$0s$1Q!-i$1Q$1R)Hy$1R$1S)Hy$1S$1^!-i$1^$2[)Hy$2[$2v!-i$2v$3l)Hy$3l$4g!-i$4g$4j)Hy$4j$4t!-i$4t$5j)Hy$5j$7y!-i$7y$7})Hy$7}$8O!-i$8O$8S)Hy$8S$8V!-i$8V$8W)Hy$8W$8X)Hy$8X$8b!-i$8b$z)Hy5>z5>{!-i5>{5>|)Hy5>|5?P!-i5?P5?Q)Hy5?Q5?R)Hy5?R5?T!-i5?T5?Y)Hy5?Y5?[!-i5?[5?])Hy5?]5?^!-i5?^5?_)Hy5?_5?w!-i5?w5?z)Hy5?z5?|!-i5?|5@X)Hy5@X5@`!-i5@`5@c)Hy5@c5@o!-i5@o5@u)Hy5@u5@w!-i5@w5@})Hy5@}5AP!-i5AP5AV)Hy5AV5A`!-i5A`5Ag)Hy5Ag5Ah!-i5Ah5Ao)Hy5Ao5Dv!-i5Dv5Ek)Hy5Ek5FY!-i5FY;%S)Hy;%S;%`!-i;%`;%w)Hy;%w;%{!-i;%{;'O)Hy;'O;'S!-i;'S;=`!.V<%l?&r!-i?&r?.p)Hy?.p?.r!-i?.r?1Q)Hy?1Q?1x!-i?1x?2P)Hy?2P?2]!-i?2]?2b)Hy?2b?2g!-i?2g?2h)Hy?2h?2i!-i?2i?2s)Hy?2s?2t!-i?2t?3R)Hy?3R?3S!-i?3S?3X)Hy?3X?3Y!-i?3Y?3Z)Hy?3Z?3[!-i?3[?3])Hy?3]?3^)Hy?3^?3_!-i?3_?3`)Hy?3`?3a)Hy?3a?3b!-i?3b?5r)Hy?5r?6e!-i?6e?>`)Hy?>`?>r!-i?>r?@U)Hy?@U?@W!-i?@W?A`)Hy?A`?BY!-i?BY?Bf)Hy?Bf?EO!-i?EO?ET)Hy?ET?EU!-i?EU?HR)Hy?HR?Hw!-i?Hw?Ic)Hy?Ic?Ii!-i?Ii?JT)Hy?JT?J`!-i?J`?L])Hy?L]?L`!-i?L`?Lf)Hy?Lf?Lh!-i?Lh?Ln)Hy?Ln?Lp!-i?Lp?Lv)Hy?Lv?Lx!-i?Lx?L{)Hy?L{O!-i_+ v2g!OWzQ{TmPOq!*jqr#9krs#9kst#9ktu#9kuv#9kvw#9kwx$@]xz!*jz{#9k{|#9k|!O!*j!O!P#9k!P!Q#9k!Q![#9k![!a!*j!a!b#9k!b!c!*j!c!}#9k!}#O!*j#O#P#9k#P#R!*j#R#S#9k#S#T&4y#T#o#9k#o$p!*j$p$q#9k$q${!*j${$|#9k$|%Q!*j%Q%R#9k%R%W!*j%W%o#9k%o%p!*j%p&a#9k&a&b!*j&b0`#9k0`0d!*j0d0p#9k0p1O!*j1O1T#9k1T1[!*j1[1]#9k1]1^!*j1^1_#9k1_4U!*j4U4Z#9k4Z4[!*j4[4]#9k4]4^#9k4^4`!*j4`4d#9k4d4l!*j4l4m#9k4m4n!*j4n4q#9k4q4r!*j4r4s#9k4s4t!*j4t5Y#9k5Y5Z!*j5Z7Q#9k7Q7R!*j7R:S#9k:S:[!*j:[=p#9k=p=y!*j=y>q#9k>q>s!*j>s>t#9k>t>{!*j>{?t#9k?tA`!*jA`A{#9kA{BQ!*jBQBT#9kBTCS!*jCSDP#9kDPDt!*jDtDu#9kDuDv#9kDvDw!*jDwGO#9kGOGP!*jGPGQ#9kGQGa!*jGaGb#9kGbGc#9kGcGj!*jGjGk#9kGkGl#9kGlGv!*jGvGy#9kGyG{!*jG{G|#9kG|H^!*jH^H_#9kH_H`!*jH`IO#9kIOIm!*jImKj#9kKjKu!*jKuKv#9kKvL`!*jL`MR#9kMRM[!*jM[M]#9kM]M^#9kM^Mb!*jMbMc#9kMcMh!*jMhNO#9kNONS!*jNSNT#9kNTN^!*jN^N_#9kN_Nb!*jNbNc#9kNcNz!*jNz! e#9k! e!#O!*j!#O!#P#9k!#P!#Q!*j!#Q!#]#9k!#]!%W!*j!%W!&`#9k!&`!&c!*j!&c!&d#9k!&d!&v!*j!&v!&w#9k!&w!'O!*j!'O!'Y#9k!'Y!'i!*j!'i!'p#9k!'p!'q!*j!'q!'x#9k!'x!'}!*j!'}!(V#9k!(V!(X!*j!(X!(Y#9k!(Y!(Z#9k!(Z!(]!*j!(]!(s#9k!(s!(t!*j!(t!({#9k!({!(|!*j!(|!(}#9k!(}!)Q!*j!)Q!)U#9k!)U!)X!*j!)X!)Y#9k!)Y!)j!*j!)j!)k#9k!)k!)x!*j!)x!)y#9k!)y!)z#9k!)z!){!*j!){!*O#9k!*O!*^!*j!*^!*_#9k!*_!*`#9k!*`!*s!*j!*s!*y#9k!*y!*}!*j!*}!+O#9k!+O!+P#9k!+P!+R!*j!+R!+i#9k!+i!+j!*j!+j!+q#9k!+q!+r!*j!+r!+s#9k!+s!+t#9k!+t!+u!*j!+u!+v#9k!+v!+w#9k!+w!+x!*j!+x!+y#9k!+y!+z#9k!+z!,k!*j!,k!,o#9k!,o!,p!*j!,p!,q#9k!,q!-U!*j!-U!-X#9k!-X!-i!*j!-i!-r#9k!-r!-s!*j!-s!-v#9k!-v!-w!*j!-w!._#9k!._!.`!*j!.`!.g#9k!.g!.h!*j!.h!.i#9k!.i!.j#9k!.j!.k!*j!.k!.p#9k!.p!.s!*j!.s!.t#9k!.t!/W!*j!/W!/X#9k!/X!/h!*j!/h!/i#9k!/i!/j#9k!/j!0_!*j!0_!0g#9k!0g!0i!*j!0i!0j#9k!0j!0k#9k!0k!0m!*j!0m!1T#9k!1T!1U!*j!1U!1]#9k!1]!1^!*j!1^!1_#9k!1_!1`#9k!1`!1a!*j!1a!1f#9k!1f!1i!*j!1i!1j#9k!1j!2Y!*j!2Y!2Z#9k!2Z!2[#9k!2[!2]!*j!2]!2`#9k!2`!2o!*j!2o!2p#9k!2p!3R!*j!3R!3S#9k!3S!3T!*j!3T!3Z#9k!3Z!3^!*j!3^!3a#9k!3a!3b!*j!3b!3f#9k!3f!3i!*j!3i!3j#9k!3j!3k#9k!3k!3l!*j!3l!3m#9k!3m!3n!*j!3n!3o#9k!3o!3p#9k!3p!3s!*j!3s!3t#9k!3t!3u#9k!3u!3x!*j!3x!3{#9k!3{!4O!*j!4O!4[#9k!4[!4r!*j!4r!4s#9k!4s!5y!*j!5y!6R#9k!6R!6S!*j!6S!6V#9k!6V!6W!*j!6W!6o#9k!6o!6p!*j!6p!6z#9k!6z!6{!*j!6{!7Q#9k!7Q!7T!*j!7T!7U#9k!7U!7p!*j!7p!7q#9k!7q!7r#9k!7r!7x!*j!7x!7y#9k!7y!7z#9k!7z!8o!*j!8o!8w#9k!8w!8x!*j!8x!8{#9k!8{!8|!*j!8|!9e#9k!9e!9f!*j!9f!9p#9k!9p!9q!*j!9q!9v#9k!9v!9y!*j!9y!9z#9k!9z!:l!*j!:l!:m#9k!:m!:n!*j!:n!:o#9k!:o!:p#9k!:p!;P!*j!;P!;Q#9k!;Q!;R#9k!;R!;e!*j!;e!;m#9k!;m!;n!*j!;n!;q#9k!;q!;r!*j!;r!O!*j!>O!>U#9k!>U!>Z!*j!>Z!>m#9k!>m!>p!*j!>p!?Y#9k!?Y!?Z!*j!?Z!?d#9k!?d!?e!*j!?e!?f#9k!?f!?h!*j!?h!?o#9k!?o!@{!*j!@{!A}#9k!A}!BO!*j!BO!BP#9k!BP!BQ#9k!BQ!B^!*j!B^!Be#9k!Be!Cq!*j!Cq!Cr#9k!Cr!Cs#9k!Cs!Ct!*j!Ct!Cu#9k!Cu!Cw!*j!Cw!Cx#9k!Cx!Cy#9k!Cy!Cz!*j!Cz!C{#9k!C{!C}!*j!C}!DO#9k!DO!DU!*j!DU!DY#9k!DY!DZ!*j!DZ!Db#9k!Db!Dc!*j!Dc!Df#9k!Df!Dg!*j!Dg!Dh#9k!Dh!Di!*j!Di!Dj#9k!Dj!Dl!*j!Dl!Dm#9k!Dm!Dn#9k!Dn!Do!*j!Do!Ds#9k!Ds!Dt!*j!Dt!Du#9k!Du!Dv#9k!Dv!EP!*j!EP!EQ#9k!EQ!ES!*j!ES!EX#9k!EX!EY!*j!EY!EZ#9k!EZ!Ep!*j!Ep!Et#9k!Et!Ff!*j!Ff!Fg#9k!Fg!Gx!*j!Gx!HQ#9k!HQ!HR!*j!HR!Hw#9k!Hw!Id!*j!Id!Ii#9k!Ii!LQ!*j!LQ!L}#9k!L}!Mc!*j!Mc!Md#9k!Md!Mt!*j!Mt!Mz#9k!Mz!NO!*j!NO!NS#9k!NS!NV!*j!NV!NW#9k!NW!NZ!*j!NZ!N[#9k!N[!N]#9k!N]!Nd!*j!Nd!Ng#9k!Ng!Nk!*j!Nk!Nx#9k!Nx# U!*j# U# V#9k# V# h!*j# h#!`#9k#!`#!a!*j#!a#!b#9k#!b#!g!*j#!g#!h#9k#!h#!j!*j#!j##g#9k##g##h!*j##h#*s#9k#*s#*t!*j#*t#*x#9k#*x#*z!*j#*z#+R#9k#+R#+S!*j#+S#+T#9k#+T#+U!*j#+U#+Y#9k#+Y#+[!*j#+[#,V#9k#,V#,W!*j#,W#,[#9k#,[#,^!*j#,^#-P#9k#-P#-Q!*j#-Q#-U#9k#-U#-W!*j#-W#-_#9k#-_#-`!*j#-`#-a#9k#-a#-b!*j#-b#-f#9k#-f#-h!*j#-h#-w#9k#-w#-x!*j#-x#/T#9k#/T#/U!*j#/U#/Y#9k#/Y#/[!*j#/[#0q#9k#0q#1h!*j#1h#1x#9k#1x#2Y!*j#2Y#4R#9k#4R#4_!*j#4_#Au#9k#Au#Aw!*j#Aw#BY#9k#BY#BZ!*j#BZ#Bu#9k#Bu#Bz!*j#Bz#Di#9k#Di#EO!*j#EO#E]#9k#E]#E^!*j#E^#Eb#9k#Eb#Ep!*j#Ep#FS#9k#FS#Fb!*j#Fb#Ft#9k#Ft#GS!*j#GS#Ga#9k#Ga#Gb!*j#Gb#Ge#9k#Ge#Gt!*j#Gt#Hz#9k#Hz#Io!*j#Io#Ip#9k#Ip#It!*j#It#Iu#9k#Iu#K[!*j#K[#MW#9k#MW#M`!*j#M`#NZ#9k#NZ#N[!*j#N[#N]#9k#N]#Nb!*j#Nb$ z#9k$ z$!U!*j$!U$!s#9k$!s$#x!*j$#x$$h#9k$$h$$j!*j$$j$$o#9k$$o$$z!*j$$z$%x#9k$%x$&_!*j$&_$&f#9k$&f$'p!*j$'p$(X#9k$(X$(b!*j$(b$)i#9k$)i$+_!*j$+_$+`#9k$+`$-a!*j$-a$.b#9k$.b$.s!*j$.s$.z#9k$.z$0T!*j$0T$0s#9k$0s$1Q!*j$1Q$1R#9k$1R$1S#9k$1S$1^!*j$1^$2[#9k$2[$2v!*j$2v$3l#9k$3l$4g!*j$4g$4j#9k$4j$4t!*j$4t$5j#9k$5j$7y!*j$7y$7}#9k$7}$8O!*j$8O$8S#9k$8S$8V!*j$8V$8W#9k$8W$8X#9k$8X$8b!*j$8b$z#9k5>z5>{!*j5>{5>|#9k5>|5?P!*j5?P5?Q#9k5?Q5?R#9k5?R5?T!*j5?T5?Y#9k5?Y5?[!*j5?[5?]#9k5?]5?^!*j5?^5?_#9k5?_5?w!*j5?w5?z#9k5?z5?|!*j5?|5@X#9k5@X5@`!*j5@`5@c#9k5@c5@o!*j5@o5@u#9k5@u5@w!*j5@w5@}#9k5@}5AP!*j5AP5AV#9k5AV5A`!*j5A`5Ag#9k5Ag5Ah!*j5Ah5Ao#9k5Ao5Dv!*j5Dv5Ek#9k5Ek5FY!*j5FY;%S#9k;%S;%`!*j;%`;%w#9k;%w;%{!*j;%{;'O#9k;'O;'S!*j;'S;=`!,W<%l?&r!*j?&r?.p#9k?.p?.r!*j?.r?1Q#9k?1Q?1x!*j?1x?2P#9k?2P?2]!*j?2]?2b#9k?2b?2g!*j?2g?2h#9k?2h?2i!*j?2i?2s#9k?2s?2t!*j?2t?3R#9k?3R?3S!*j?3S?3X#9k?3X?3Y!*j?3Y?3Z#9k?3Z?3[!*j?3[?3]#9k?3]?3^#9k?3^?3_!*j?3_?3`#9k?3`?3a#9k?3a?3b!*j?3b?5r#9k?5r?6e!*j?6e?>`#9k?>`?>r!*j?>r?@U#9k?@U?@W!*j?@W?A`#9k?A`?BY!*j?BY?Bf#9k?Bf?EO!*j?EO?ET#9k?ET?EU!*j?EU?HR#9k?HR?Hw!*j?Hw?Ic#9k?Ic?Ii!*j?Ii?JT#9k?JT?J`!*j?J`?L]#9k?L]?L`!*j?L`?Lf#9k?Lf?Lh!*j?Lh?Ln#9k?Ln?Lp!*j?Lp?Lv#9k?Lv?Lx!*j?Lx?L{#9k?L{O!*j!a,(j2g!OW|SzQmPOq!)tqr!2wrs#9kst!2wtu!2wuv-/Rvw!2wwx';ixz!)tz{!2w{|!2w|!O!)t!O!P!2w!P!Q!2w!Q![!2w![!a!)t!a!b!2w!b!c!)t!c!}!2w!}#O!)t#O#P!2w#P#R!)t#R#S!2w#S#T)Hy#T#o!2w#o$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!)t#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)t!a-/`2i!OW|SzQS!RmPOY.5}YZ!)tZq.5}qr-/Rrs.q-/R>q>s.5}>s>t-/R>t>{.5}>{?t-/R?tA`.5}A`A{-/RA{BQ.5}BQBT-/RBTCS.5}CSDP-/RDPDt.5}DtDu-/RDuDv-/RDvDw.5}DwGO-/RGOGP.5}GPGQ-/RGQGa.5}GaGb-/RGbGc-/RGcGj.5}GjGk-/RGkGl-/RGlGv.5}GvGy-/RGyG{.5}G{G|-/RG|H^.5}H^H_-/RH_H`.5}H`IO-/RIOIm.5}ImKj-/RKjKu.5}KuKv-/RKvL`.5}L`MR-/RMRM[.5}M[M]-/RM]M^-/RM^Mb.5}MbMc-/RMcMh.5}MhNO-/RNONS.5}NSNT-/RNTN^.5}N^N_-/RN_Nb.5}NbNc-/RNcNz.5}Nz! e-/R! e!#O.5}!#O!#P-/R!#P!#Q.5}!#Q!#]-/R!#]!%W.5}!%W!&`-/R!&`!&c.5}!&c!&d-/R!&d!&v.5}!&v!&w-/R!&w!'O.5}!'O!'Y-/R!'Y!'i.5}!'i!'p-/R!'p!'q.5}!'q!'x-/R!'x!'}.5}!'}!(V-/R!(V!(X.5}!(X!(Y-/R!(Y!(Z-/R!(Z!(].5}!(]!(s-/R!(s!(t.5}!(t!({-/R!({!(|.5}!(|!(}-/R!(}!)Q.5}!)Q!)U-/R!)U!)X.5}!)X!)Y-/R!)Y!)j.5}!)j!)k-/R!)k!)x.5}!)x!)y-/R!)y!)z-/R!)z!){.5}!){!*O-/R!*O!*^.5}!*^!*_-/R!*_!*`-/R!*`!*s.5}!*s!*y-/R!*y!*}.5}!*}!+O-/R!+O!+P-/R!+P!+R.5}!+R!+i-/R!+i!+j.5}!+j!+q-/R!+q!+r.5}!+r!+s-/R!+s!+t-/R!+t!+u.5}!+u!+v-/R!+v!+w-/R!+w!+x.5}!+x!+y-/R!+y!+z-/R!+z!,k.5}!,k!,o-/R!,o!,p.5}!,p!,q-/R!,q!-U.5}!-U!-X-/R!-X!-i.5}!-i!-r-/R!-r!-s.5}!-s!-v-/R!-v!-w.5}!-w!._-/R!._!.`.5}!.`!.g-/R!.g!.h.5}!.h!.i-/R!.i!.j-/R!.j!.k.5}!.k!.p-/R!.p!.s.5}!.s!.t-/R!.t!/W.5}!/W!/X-/R!/X!/h.5}!/h!/i-/R!/i!/j-/R!/j!0_.5}!0_!0g-/R!0g!0i.5}!0i!0j-/R!0j!0k-/R!0k!0m.5}!0m!1T-/R!1T!1U.5}!1U!1]-/R!1]!1^.5}!1^!1_-/R!1_!1`-/R!1`!1a.5}!1a!1f-/R!1f!1i.5}!1i!1j-/R!1j!2Y.5}!2Y!2Z-/R!2Z!2[-/R!2[!2].5}!2]!2`-/R!2`!2o.5}!2o!2p-/R!2p!3R.5}!3R!3S-/R!3S!3T.5}!3T!3Z-/R!3Z!3^.5}!3^!3a-/R!3a!3b.5}!3b!3f-/R!3f!3i.5}!3i!3j-/R!3j!3k-/R!3k!3l.5}!3l!3m-/R!3m!3n.5}!3n!3o-/R!3o!3p-/R!3p!3s.5}!3s!3t-/R!3t!3u-/R!3u!3x.5}!3x!3{-/R!3{!4O.5}!4O!4[-/R!4[!4r.5}!4r!4s-/R!4s!5y.5}!5y!6R-/R!6R!6S.5}!6S!6V-/R!6V!6W.5}!6W!6o-/R!6o!6p.5}!6p!6z-/R!6z!6{.5}!6{!7Q-/R!7Q!7T.5}!7T!7U-/R!7U!7p.5}!7p!7q-/R!7q!7r-/R!7r!7x.5}!7x!7y-/R!7y!7z-/R!7z!8o.5}!8o!8w-/R!8w!8x.5}!8x!8{-/R!8{!8|.5}!8|!9e-/R!9e!9f.5}!9f!9p-/R!9p!9q.5}!9q!9v-/R!9v!9y.5}!9y!9z-/R!9z!:l.5}!:l!:m-/R!:m!:n.5}!:n!:o-/R!:o!:p-/R!:p!;P.5}!;P!;Q-/R!;Q!;R-/R!;R!;e.5}!;e!;m-/R!;m!;n.5}!;n!;q-/R!;q!;r.5}!;r!O.5}!>O!>U-/R!>U!>Z.5}!>Z!>m-/R!>m!>p.5}!>p!?Y-/R!?Y!?Z.5}!?Z!?d-/R!?d!?e.5}!?e!?f-/R!?f!?h.5}!?h!?o-/R!?o!@{.5}!@{!A}-/R!A}!BO.5}!BO!BP-/R!BP!BQ-/R!BQ!B^.5}!B^!Be-/R!Be!Cq.5}!Cq!Cr-/R!Cr!Cs-/R!Cs!Ct.5}!Ct!Cu-/R!Cu!Cw.5}!Cw!Cx-/R!Cx!Cy-/R!Cy!Cz.5}!Cz!C{-/R!C{!C}.5}!C}!DO-/R!DO!DU.5}!DU!DY-/R!DY!DZ.5}!DZ!Db-/R!Db!Dc.5}!Dc!Df-/R!Df!Dg.5}!Dg!Dh-/R!Dh!Di.5}!Di!Dj-/R!Dj!Dl.5}!Dl!Dm-/R!Dm!Dn-/R!Dn!Do.5}!Do!Ds-/R!Ds!Dt.5}!Dt!Du-/R!Du!Dv-/R!Dv!EP.5}!EP!EQ-/R!EQ!ES.5}!ES!EX-/R!EX!EY.5}!EY!EZ-/R!EZ!Ep.5}!Ep!Et-/R!Et!Ff.5}!Ff!Fg-/R!Fg!Gx.5}!Gx!HQ-/R!HQ!HR.5}!HR!Hw-/R!Hw!Id.5}!Id!Ii-/R!Ii!LQ.5}!LQ!L}-/R!L}!Mc.5}!Mc!Md-/R!Md!Mt.5}!Mt!Mz-/R!Mz!NO.5}!NO!NS-/R!NS!NV.5}!NV!NW-/R!NW!NZ.5}!NZ!N[-/R!N[!N]-/R!N]!Nd.5}!Nd!Ng-/R!Ng!Nk.5}!Nk!Nx-/R!Nx# U.5}# U# V-/R# V# h.5}# h#!`-/R#!`#!a.5}#!a#!b-/R#!b#!g.5}#!g#!h-/R#!h#!j.5}#!j##g-/R##g##h.5}##h#*s-/R#*s#*t.5}#*t#*x-/R#*x#*z.5}#*z#+R-/R#+R#+S.5}#+S#+T-/R#+T#+U.5}#+U#+Y-/R#+Y#+[.5}#+[#,V-/R#,V#,W.5}#,W#,[-/R#,[#,^.5}#,^#-P-/R#-P#-Q.5}#-Q#-U-/R#-U#-W.5}#-W#-_-/R#-_#-`.5}#-`#-a-/R#-a#-b.5}#-b#-f-/R#-f#-h.5}#-h#-w-/R#-w#-x.5}#-x#/T-/R#/T#/U.5}#/U#/Y-/R#/Y#/[.5}#/[#0q-/R#0q#1h.5}#1h#1x-/R#1x#2Y.5}#2Y#4R-/R#4R#4_.5}#4_#Au-/R#Au#Aw.5}#Aw#BY-/R#BY#BZ.5}#BZ#Bu-/R#Bu#Bz.5}#Bz#Di-/R#Di#EO.5}#EO#E]-/R#E]#E^.5}#E^#Eb-/R#Eb#Ep.5}#Ep#FS-/R#FS#Fb.5}#Fb#Ft-/R#Ft#GS.5}#GS#Ga-/R#Ga#Gb.5}#Gb#Ge-/R#Ge#Gt.5}#Gt#Hz-/R#Hz#Io.5}#Io#Ip-/R#Ip#It.5}#It#Iu-/R#Iu#K[.5}#K[#MW-/R#MW#M`.5}#M`#NZ-/R#NZ#N[.5}#N[#N]-/R#N]#Nb.5}#Nb$ z-/R$ z$!U.5}$!U$!s-/R$!s$#x.5}$#x$$h-/R$$h$$j.5}$$j$$o-/R$$o$$z.5}$$z$%x-/R$%x$&_.5}$&_$&f-/R$&f$'p.5}$'p$(X-/R$(X$(b.5}$(b$)i-/R$)i$+_.5}$+_$+`-/R$+`$-a.5}$-a$.b-/R$.b$.s.5}$.s$.z-/R$.z$0T.5}$0T$0s-/R$0s$1Q.5}$1Q$1R-/R$1R$1S-/R$1S$1^.5}$1^$2[-/R$2[$2v.5}$2v$3l-/R$3l$4g.5}$4g$4j-/R$4j$4t.5}$4t$5j-/R$5j$7y.5}$7y$7}-/R$7}$8O.5}$8O$8S-/R$8S$8V.5}$8V$8W-/R$8W$8X-/R$8X$8b.5}$8b$z-/R5>z5>{.5}5>{5>|-/R5>|5?P.5}5?P5?Q-/R5?Q5?R-/R5?R5?T.5}5?T5?Y-/R5?Y5?[.5}5?[5?]-/R5?]5?^.5}5?^5?_-/R5?_5?w.5}5?w5?z-/R5?z5?|.5}5?|5@X-/R5@X5@`.5}5@`5@c-/R5@c5@o.5}5@o5@u-/R5@u5@w.5}5@w5@}-/R5@}5AP.5}5AP5AV-/R5AV5A`.5}5A`5Ag-/R5Ag5Ah.5}5Ah5Ao-/R5Ao5Dv.5}5Dv5Ek-/R5Ek5FY.5}5FY;%S-/R;%S;%`.5};%`;%w-/R;%w;%{.5};%{;'O-/R;'O;'S.5};'S;=`.`-/R?>`?>r.5}?>r?@U-/R?@U?@W.5}?@W?A`-/R?A`?BY.5}?BY?Bf-/R?Bf?EO.5}?EO?ET-/R?ET?EU.5}?EU?HR-/R?HR?Hw.5}?Hw?Ic-/R?Ic?Ii.5}?Ii?JT-/R?JT?J`.5}?J`?L]-/R?L]?L`.5}?L`?Lf-/R?Lf?Lh.5}?Lh?Ln-/R?Ln?Lp.5}?Lp?Lv-/R?Lv?Lx.5}?Lx?L{-/R?L{O.5}!a.6YZ!OW|SzQS!ROY.5}YZ!)tZr.5}rs.6{sw.5}wx.9vx#S.5}#S#T.;f#T;'S.5};'S;=`.q.q>s.6{>s>t.t>{.6{>{?t.O.6{!>O!>U.U!>Z.6{!>Z!>m.m!>p.6{!>p!?Y.z.
z5>{.6{5>{5>|.
|5?P.6{5?P5?Q.`.`?>r.6{?>r?@U.q/Cb>q>s.7q>s>t/Cb>t>{.7q>{?t/Cb?tA`.7qA`A{/CbA{BQ.7qBQBT/CbBTCS.7qCSDP/CbDPDt.7qDtDu/CbDuDv/CbDvDw.7qDwGO/CbGOGP.7qGPGQ/CbGQGa.7qGaGb/CbGbGc/CbGcGj.7qGjGk/CbGkGl/CbGlGv.7qGvGy/CbGyG{.7qG{G|/CbG|H^.7qH^H_/CbH_H`.7qH`IO/CbIOIm.7qImKj/CbKjKu.7qKuKv/CbKvL`.7qL`MR/CbMRM[.7qM[M]/CbM]M^/CbM^Mb.7qMbMc/CbMcMh.7qMhNO/CbNONS.7qNSNT/CbNTN^.7qN^N_/CbN_Nb.7qNbNc/CbNcNz.7qNz! e/Cb! e!#O.7q!#O!#P/Cb!#P!#Q.7q!#Q!#]/Cb!#]!%W.7q!%W!&`/Cb!&`!&c.7q!&c!&d/Cb!&d!&v.7q!&v!&w/Cb!&w!'O.7q!'O!'Y/Cb!'Y!'i.7q!'i!'p/Cb!'p!'q.7q!'q!'x/Cb!'x!'}.7q!'}!(V/Cb!(V!(X.7q!(X!(Y/Cb!(Y!(Z/Cb!(Z!(].7q!(]!(s/Cb!(s!(t.7q!(t!({/Cb!({!(|.7q!(|!(}/Cb!(}!)Q.7q!)Q!)U/Cb!)U!)X.7q!)X!)Y/Cb!)Y!)j.7q!)j!)k/Cb!)k!)x.7q!)x!)y/Cb!)y!)z/Cb!)z!){.7q!){!*O/Cb!*O!*^.7q!*^!*_/Cb!*_!*`/Cb!*`!*s.7q!*s!*y/Cb!*y!*}.7q!*}!+O/Cb!+O!+P/Cb!+P!+R.7q!+R!+i/Cb!+i!+j.7q!+j!+q/Cb!+q!+r.7q!+r!+s/Cb!+s!+t/Cb!+t!+u.7q!+u!+v/Cb!+v!+w/Cb!+w!+x.7q!+x!+y/Cb!+y!+z/Cb!+z!,k.7q!,k!,o/Cb!,o!,p.7q!,p!,q/Cb!,q!-U.7q!-U!-X/Cb!-X!-i.7q!-i!-r/Cb!-r!-s.7q!-s!-v/Cb!-v!-w.7q!-w!._/Cb!._!.`.7q!.`!.g/Cb!.g!.h.7q!.h!.i/Cb!.i!.j/Cb!.j!.k.7q!.k!.p/Cb!.p!.s.7q!.s!.t/Cb!.t!/W.7q!/W!/X/Cb!/X!/h.7q!/h!/i/Cb!/i!/j/Cb!/j!0_.7q!0_!0g/Cb!0g!0i.7q!0i!0j/Cb!0j!0k/Cb!0k!0m.7q!0m!1T/Cb!1T!1U.7q!1U!1]/Cb!1]!1^.7q!1^!1_/Cb!1_!1`/Cb!1`!1a.7q!1a!1f/Cb!1f!1i.7q!1i!1j/Cb!1j!2Y.7q!2Y!2Z/Cb!2Z!2[/Cb!2[!2].7q!2]!2`/Cb!2`!2o.7q!2o!2p/Cb!2p!3R.7q!3R!3S/Cb!3S!3T.7q!3T!3Z/Cb!3Z!3^.7q!3^!3a/Cb!3a!3b.7q!3b!3f/Cb!3f!3i.7q!3i!3j/Cb!3j!3k/Cb!3k!3l.7q!3l!3m/Cb!3m!3n.7q!3n!3o/Cb!3o!3p/Cb!3p!3s.7q!3s!3t/Cb!3t!3u/Cb!3u!3x.7q!3x!3{/Cb!3{!4O.7q!4O!4[/Cb!4[!4r.7q!4r!4s/Cb!4s!5y.7q!5y!6R/Cb!6R!6S.7q!6S!6V/Cb!6V!6W.7q!6W!6o/Cb!6o!6p.7q!6p!6z/Cb!6z!6{.7q!6{!7Q/Cb!7Q!7T.7q!7T!7U/Cb!7U!7p.7q!7p!7q/Cb!7q!7r/Cb!7r!7x.7q!7x!7y/Cb!7y!7z/Cb!7z!8o.7q!8o!8w/Cb!8w!8x.7q!8x!8{/Cb!8{!8|.7q!8|!9e/Cb!9e!9f.7q!9f!9p/Cb!9p!9q.7q!9q!9v/Cb!9v!9y.7q!9y!9z/Cb!9z!:l.7q!:l!:m/Cb!:m!:n.7q!:n!:o/Cb!:o!:p/Cb!:p!;P.7q!;P!;Q/Cb!;Q!;R/Cb!;R!;e.7q!;e!;m/Cb!;m!;n.7q!;n!;q/Cb!;q!;r.7q!;r!O.7q!>O!>U/Cb!>U!>Z.7q!>Z!>m/Cb!>m!>p.7q!>p!?Y/Cb!?Y!?Z.7q!?Z!?d/Cb!?d!?e.7q!?e!?f/Cb!?f!?h.7q!?h!?o/Cb!?o!@{.7q!@{!A}/Cb!A}!BO.7q!BO!BP/Cb!BP!BQ/Cb!BQ!B^.7q!B^!Be/Cb!Be!Cq.7q!Cq!Cr/Cb!Cr!Cs/Cb!Cs!Ct.7q!Ct!Cu/Cb!Cu!Cw.7q!Cw!Cx/Cb!Cx!Cy/Cb!Cy!Cz.7q!Cz!C{/Cb!C{!C}.7q!C}!DO/Cb!DO!DU.7q!DU!DY/Cb!DY!DZ.7q!DZ!Db/Cb!Db!Dc.7q!Dc!Df/Cb!Df!Dg.7q!Dg!Dh/Cb!Dh!Di.7q!Di!Dj/Cb!Dj!Dl.7q!Dl!Dm/Cb!Dm!Dn/Cb!Dn!Do.7q!Do!Ds/Cb!Ds!Dt.7q!Dt!Du/Cb!Du!Dv/Cb!Dv!EP.7q!EP!EQ/Cb!EQ!ES.7q!ES!EX/Cb!EX!EY.7q!EY!EZ/Cb!EZ!Ep.7q!Ep!Et/Cb!Et!Ff.7q!Ff!Fg/Cb!Fg!Gx.7q!Gx!HQ/Cb!HQ!HR.7q!HR!Hw/Cb!Hw!Id.7q!Id!Ii/Cb!Ii!LQ.7q!LQ!L}/Cb!L}!Mc.7q!Mc!Md/Cb!Md!Mt.7q!Mt!Mz/Cb!Mz!NO.7q!NO!NS/Cb!NS!NV.7q!NV!NW/Cb!NW!NZ.7q!NZ!N[/Cb!N[!N]/Cb!N]!Nd.7q!Nd!Ng/Cb!Ng!Nk.7q!Nk!Nx/Cb!Nx# U.7q# U# V/Cb# V# h.7q# h#!`/Cb#!`#!a.7q#!a#!b/Cb#!b#!g.7q#!g#!h/Cb#!h#!j.7q#!j##g/Cb##g##h.7q##h#*s/Cb#*s#*t.7q#*t#*x/Cb#*x#*z.7q#*z#+R/Cb#+R#+S.7q#+S#+T/Cb#+T#+U.7q#+U#+Y/Cb#+Y#+[.7q#+[#,V/Cb#,V#,W.7q#,W#,[/Cb#,[#,^.7q#,^#-P/Cb#-P#-Q.7q#-Q#-U/Cb#-U#-W.7q#-W#-_/Cb#-_#-`.7q#-`#-a/Cb#-a#-b.7q#-b#-f/Cb#-f#-h.7q#-h#-w/Cb#-w#-x.7q#-x#/T/Cb#/T#/U.7q#/U#/Y/Cb#/Y#/[.7q#/[#0q/Cb#0q#1h.7q#1h#1x/Cb#1x#2Y.7q#2Y#4R/Cb#4R#4_.7q#4_#Au/Cb#Au#Aw.7q#Aw#BY/Cb#BY#BZ.7q#BZ#Bu/Cb#Bu#Bz.7q#Bz#Di/Cb#Di#EO.7q#EO#E]/Cb#E]#E^.7q#E^#Eb/Cb#Eb#Ep.7q#Ep#FS/Cb#FS#Fb.7q#Fb#Ft/Cb#Ft#GS.7q#GS#Ga/Cb#Ga#Gb.7q#Gb#Ge/Cb#Ge#Gt.7q#Gt#Hz/Cb#Hz#Io.7q#Io#Ip/Cb#Ip#It.7q#It#Iu/Cb#Iu#K[.7q#K[#MW/Cb#MW#M`.7q#M`#NZ/Cb#NZ#N[.7q#N[#N]/Cb#N]#Nb.7q#Nb$ z/Cb$ z$!U.7q$!U$!s/Cb$!s$#x.7q$#x$$h/Cb$$h$$j.7q$$j$$o/Cb$$o$$z.7q$$z$%x/Cb$%x$&_.7q$&_$&f/Cb$&f$'p.7q$'p$(X/Cb$(X$(b.7q$(b$)i/Cb$)i$+_.7q$+_$+`/Cb$+`$-a.7q$-a$.b/Cb$.b$.s.7q$.s$.z/Cb$.z$0T.7q$0T$0s/Cb$0s$1Q.7q$1Q$1R/Cb$1R$1S/Cb$1S$1^.7q$1^$2[/Cb$2[$2v.7q$2v$3l/Cb$3l$4g.7q$4g$4j/Cb$4j$4t.7q$4t$5j/Cb$5j$7y.7q$7y$7}/Cb$7}$8O.7q$8O$8S/Cb$8S$8V.7q$8V$8W/Cb$8W$8X/Cb$8X$8b.7q$8b$z/Cb5>z5>{.7q5>{5>|/Cb5>|5?P.7q5?P5?Q/Cb5?Q5?R/Cb5?R5?T.7q5?T5?Y/Cb5?Y5?[.7q5?[5?]/Cb5?]5?^.7q5?^5?_/Cb5?_5?w.7q5?w5?z/Cb5?z5?|.7q5?|5@X/Cb5@X5@`.7q5@`5@c/Cb5@c5@o.7q5@o5@u/Cb5@u5@w.7q5@w5@}/Cb5@}5AP.7q5AP5AV/Cb5AV5A`.7q5A`5Ag/Cb5Ag5Ah.7q5Ah5Ao/Cb5Ao5Dv.7q5Dv5Ek/Cb5Ek5FY.7q5FY;%S/Cb;%S;%`.7q;%`;%w/Cb;%w;%{.7q;%{;'O/Cb;'O;'S.7q;'S;=`.8v<%l?&r.7q?&r?.p/Cb?.p?.r.7q?.r?1Q/Cb?1Q?1x.7q?1x?2P/Cb?2P?2].7q?2]?2b/Cb?2b?2g.7q?2g?2h/Cb?2h?2i.7q?2i?2s/Cb?2s?2t.7q?2t?3R/Cb?3R?3S.7q?3S?3X/Cb?3X?3Y.7q?3Y?3Z/Cb?3Z?3[.7q?3[?3]/Cb?3]?3^/Cb?3^?3_.7q?3_?3`/Cb?3`?3a/Cb?3a?3b.7q?3b?5r/Cb?5r?6e.7q?6e?>`/Cb?>`?>r.7q?>r?@U/Cb?@U?@W.7q?@W?A`/Cb?A`?BY.7q?BY?Bf/Cb?Bf?EO.7q?EO?ET/Cb?ET?EU.7q?EU?HR/Cb?HR?Hw.7q?Hw?Ic/Cb?Ic?Ii.7q?Ii?JT/Cb?JT?J`.7q?J`?L]/Cb?L]?L`.7q?L`?Lf/Cb?Lf?Lh.7q?Lh?Ln/Cb?Ln?Lp.7q?Lp?Lv/Cb?Lv?Lx.7q?Lx?L{/Cb?L{O.7q!R0Ja2hS!RmPOY.8_Zq.8_qr0JYrs0JYst0JYtu0JYuv0JYvw0JYwx0JYxz.8_z{0JY{|0JY|!O.8_!O!P0JY!P!Q0JY!Q![0JY![!a.8_!a!b0JY!b!c.8_!c!}0JY!}#O.8_#O#P0JY#P#R.8_#R#S0JY#S#T0JY#T#o0JY#o$p.8_$p$q0JY$q${.8_${$|0JY$|%Q.8_%Q%R0JY%R%W.8_%W%o0JY%o%p.8_%p&a0JY&a&b.8_&b0`0JY0`0d.8_0d0p0JY0p1O.8_1O1T0JY1T1[.8_1[1]0JY1]1^.8_1^1_0JY1_4U.8_4U4Z0JY4Z4[.8_4[4]0JY4]4^0JY4^4`.8_4`4d0JY4d4l.8_4l4m0JY4m4n.8_4n4q0JY4q4r.8_4r4s0JY4s4t.8_4t5Y0JY5Y5Z.8_5Z7Q0JY7Q7R.8_7R:S0JY:S:[.8_:[=p0JY=p=y.8_=y>q0JY>q>s.8_>s>t0JY>t>{.8_>{?t0JY?tA`.8_A`A{0JYA{BQ.8_BQBT0JYBTCS.8_CSDP0JYDPDt.8_DtDu0JYDuDv0JYDvDw.8_DwGO0JYGOGP.8_GPGQ0JYGQGa.8_GaGb0JYGbGc0JYGcGj.8_GjGk0JYGkGl0JYGlGv.8_GvGy0JYGyG{.8_G{G|0JYG|H^.8_H^H_0JYH_H`.8_H`IO0JYIOIm.8_ImKj0JYKjKu.8_KuKv0JYKvL`.8_L`MR0JYMRM[.8_M[M]0JYM]M^0JYM^Mb.8_MbMc0JYMcMh.8_MhNO0JYNONS.8_NSNT0JYNTN^.8_N^N_0JYN_Nb.8_NbNc0JYNcNz.8_Nz! e0JY! e!#O.8_!#O!#P0JY!#P!#Q.8_!#Q!#]0JY!#]!%W.8_!%W!&`0JY!&`!&c.8_!&c!&d0JY!&d!&v.8_!&v!&w0JY!&w!'O.8_!'O!'Y0JY!'Y!'i.8_!'i!'p0JY!'p!'q.8_!'q!'x0JY!'x!'}.8_!'}!(V0JY!(V!(X.8_!(X!(Y0JY!(Y!(Z0JY!(Z!(].8_!(]!(s0JY!(s!(t.8_!(t!({0JY!({!(|.8_!(|!(}0JY!(}!)Q.8_!)Q!)U0JY!)U!)X.8_!)X!)Y0JY!)Y!)j.8_!)j!)k0JY!)k!)x.8_!)x!)y0JY!)y!)z0JY!)z!){.8_!){!*O0JY!*O!*^.8_!*^!*_0JY!*_!*`0JY!*`!*s.8_!*s!*y0JY!*y!*}.8_!*}!+O0JY!+O!+P0JY!+P!+R.8_!+R!+i0JY!+i!+j.8_!+j!+q0JY!+q!+r.8_!+r!+s0JY!+s!+t0JY!+t!+u.8_!+u!+v0JY!+v!+w0JY!+w!+x.8_!+x!+y0JY!+y!+z0JY!+z!,k.8_!,k!,o0JY!,o!,p.8_!,p!,q0JY!,q!-U.8_!-U!-X0JY!-X!-i.8_!-i!-r0JY!-r!-s.8_!-s!-v0JY!-v!-w.8_!-w!._0JY!._!.`.8_!.`!.g0JY!.g!.h.8_!.h!.i0JY!.i!.j0JY!.j!.k.8_!.k!.p0JY!.p!.s.8_!.s!.t0JY!.t!/W.8_!/W!/X0JY!/X!/h.8_!/h!/i0JY!/i!/j0JY!/j!0_.8_!0_!0g0JY!0g!0i.8_!0i!0j0JY!0j!0k0JY!0k!0m.8_!0m!1T0JY!1T!1U.8_!1U!1]0JY!1]!1^.8_!1^!1_0JY!1_!1`0JY!1`!1a.8_!1a!1f0JY!1f!1i.8_!1i!1j0JY!1j!2Y.8_!2Y!2Z0JY!2Z!2[0JY!2[!2].8_!2]!2`0JY!2`!2o.8_!2o!2p0JY!2p!3R.8_!3R!3S0JY!3S!3T.8_!3T!3Z0JY!3Z!3^.8_!3^!3a0JY!3a!3b.8_!3b!3f0JY!3f!3i.8_!3i!3j0JY!3j!3k0JY!3k!3l.8_!3l!3m0JY!3m!3n.8_!3n!3o0JY!3o!3p0JY!3p!3s.8_!3s!3t0JY!3t!3u0JY!3u!3x.8_!3x!3{0JY!3{!4O.8_!4O!4[0JY!4[!4r.8_!4r!4s0JY!4s!5y.8_!5y!6R0JY!6R!6S.8_!6S!6V0JY!6V!6W.8_!6W!6o0JY!6o!6p.8_!6p!6z0JY!6z!6{.8_!6{!7Q0JY!7Q!7T.8_!7T!7U0JY!7U!7p.8_!7p!7q0JY!7q!7r0JY!7r!7x.8_!7x!7y0JY!7y!7z0JY!7z!8o.8_!8o!8w0JY!8w!8x.8_!8x!8{0JY!8{!8|.8_!8|!9e0JY!9e!9f.8_!9f!9p0JY!9p!9q.8_!9q!9v0JY!9v!9y.8_!9y!9z0JY!9z!:l.8_!:l!:m0JY!:m!:n.8_!:n!:o0JY!:o!:p0JY!:p!;P.8_!;P!;Q0JY!;Q!;R0JY!;R!;e.8_!;e!;m0JY!;m!;n.8_!;n!;q0JY!;q!;r.8_!;r!O.8_!>O!>U0JY!>U!>Z.8_!>Z!>m0JY!>m!>p.8_!>p!?Y0JY!?Y!?Z.8_!?Z!?d0JY!?d!?e.8_!?e!?f0JY!?f!?h.8_!?h!?o0JY!?o!@{.8_!@{!A}0JY!A}!BO.8_!BO!BP0JY!BP!BQ0JY!BQ!B^.8_!B^!Be0JY!Be!Cq.8_!Cq!Cr0JY!Cr!Cs0JY!Cs!Ct.8_!Ct!Cu0JY!Cu!Cw.8_!Cw!Cx0JY!Cx!Cy0JY!Cy!Cz.8_!Cz!C{0JY!C{!C}.8_!C}!DO0JY!DO!DU.8_!DU!DY0JY!DY!DZ.8_!DZ!Db0JY!Db!Dc.8_!Dc!Df0JY!Df!Dg.8_!Dg!Dh0JY!Dh!Di.8_!Di!Dj0JY!Dj!Dl.8_!Dl!Dm0JY!Dm!Dn0JY!Dn!Do.8_!Do!Ds0JY!Ds!Dt.8_!Dt!Du0JY!Du!Dv0JY!Dv!EP.8_!EP!EQ0JY!EQ!ES.8_!ES!EX0JY!EX!EY.8_!EY!EZ0JY!EZ!Ep.8_!Ep!Et0JY!Et!Ff.8_!Ff!Fg0JY!Fg!Gx.8_!Gx!HQ0JY!HQ!HR.8_!HR!Hw0JY!Hw!Id.8_!Id!Ii0JY!Ii!LQ.8_!LQ!L}0JY!L}!Mc.8_!Mc!Md0JY!Md!Mt.8_!Mt!Mz0JY!Mz!NO.8_!NO!NS0JY!NS!NV.8_!NV!NW0JY!NW!NZ.8_!NZ!N[0JY!N[!N]0JY!N]!Nd.8_!Nd!Ng0JY!Ng!Nk.8_!Nk!Nx0JY!Nx# U.8_# U# V0JY# V# h.8_# h#!`0JY#!`#!a.8_#!a#!b0JY#!b#!g.8_#!g#!h0JY#!h#!j.8_#!j##g0JY##g##h.8_##h#*s0JY#*s#*t.8_#*t#*x0JY#*x#*z.8_#*z#+R0JY#+R#+S.8_#+S#+T0JY#+T#+U.8_#+U#+Y0JY#+Y#+[.8_#+[#,V0JY#,V#,W.8_#,W#,[0JY#,[#,^.8_#,^#-P0JY#-P#-Q.8_#-Q#-U0JY#-U#-W.8_#-W#-_0JY#-_#-`.8_#-`#-a0JY#-a#-b.8_#-b#-f0JY#-f#-h.8_#-h#-w0JY#-w#-x.8_#-x#/T0JY#/T#/U.8_#/U#/Y0JY#/Y#/[.8_#/[#0q0JY#0q#1h.8_#1h#1x0JY#1x#2Y.8_#2Y#4R0JY#4R#4_.8_#4_#Au0JY#Au#Aw.8_#Aw#BY0JY#BY#BZ.8_#BZ#Bu0JY#Bu#Bz.8_#Bz#Di0JY#Di#EO.8_#EO#E]0JY#E]#E^.8_#E^#Eb0JY#Eb#Ep.8_#Ep#FS0JY#FS#Fb.8_#Fb#Ft0JY#Ft#GS.8_#GS#Ga0JY#Ga#Gb.8_#Gb#Ge0JY#Ge#Gt.8_#Gt#Hz0JY#Hz#Io.8_#Io#Ip0JY#Ip#It.8_#It#Iu0JY#Iu#K[.8_#K[#MW0JY#MW#M`.8_#M`#NZ0JY#NZ#N[.8_#N[#N]0JY#N]#Nb.8_#Nb$ z0JY$ z$!U.8_$!U$!s0JY$!s$#x.8_$#x$$h0JY$$h$$j.8_$$j$$o0JY$$o$$z.8_$$z$%x0JY$%x$&_.8_$&_$&f0JY$&f$'p.8_$'p$(X0JY$(X$(b.8_$(b$)i0JY$)i$+_.8_$+_$+`0JY$+`$-a.8_$-a$.b0JY$.b$.s.8_$.s$.z0JY$.z$0T.8_$0T$0s0JY$0s$1Q.8_$1Q$1R0JY$1R$1S0JY$1S$1^.8_$1^$2[0JY$2[$2v.8_$2v$3l0JY$3l$4g.8_$4g$4j0JY$4j$4t.8_$4t$5j0JY$5j$7y.8_$7y$7}0JY$7}$8O.8_$8O$8S0JY$8S$8V.8_$8V$8W0JY$8W$8X0JY$8X$8b.8_$8b$z0JY5>z5>{.8_5>{5>|0JY5>|5?P.8_5?P5?Q0JY5?Q5?R0JY5?R5?T.8_5?T5?Y0JY5?Y5?[.8_5?[5?]0JY5?]5?^.8_5?^5?_0JY5?_5?w.8_5?w5?z0JY5?z5?|.8_5?|5@X0JY5@X5@`.8_5@`5@c0JY5@c5@o.8_5@o5@u0JY5@u5@w.8_5@w5@}0JY5@}5AP.8_5AP5AV0JY5AV5A`.8_5A`5Ag0JY5Ag5Ah.8_5Ah5Ao0JY5Ao5Dv.8_5Dv5Ek0JY5Ek5FY.8_5FY;%S0JY;%S;%`.8_;%`;%w0JY;%w;%{.8_;%{;'O0JY;'O;'S.8_;'S;=`.8p<%l?&r.8_?&r?.p0JY?.p?.r.8_?.r?1Q0JY?1Q?1x.8_?1x?2P0JY?2P?2].8_?2]?2b0JY?2b?2g.8_?2g?2h0JY?2h?2i.8_?2i?2s0JY?2s?2t.8_?2t?3R0JY?3R?3S.8_?3S?3X0JY?3X?3Y.8_?3Y?3Z0JY?3Z?3[.8_?3[?3]0JY?3]?3^0JY?3^?3_.8_?3_?3`0JY?3`?3a0JY?3a?3b.8_?3b?5r0JY?5r?6e.8_?6e?>`0JY?>`?>r.8_?>r?@U0JY?@U?@W.8_?@W?A`0JY?A`?BY.8_?BY?Bf0JY?Bf?EO.8_?EO?ET0JY?ET?EU.8_?EU?HR0JY?HR?Hw.8_?Hw?Ic0JY?Ic?Ii.8_?Ii?JT0JY?JT?J`.8_?J`?L]0JY?L]?L`.8_?L`?Lf0JY?Lf?Lh.8_?Lh?Ln0JY?Ln?Lp.8_?Lp?Lv0JY?Lv?Lx.8_?Lx?L{0JY?L{O.8_!T2#U2izQS!RmPOY.8|YZ!+oZq.8|qr2!{rs2!{st2!{tu2!{uv2!{vw2!{wx0JYxz.8|z{2!{{|2!{|!O.8|!O!P2!{!P!Q2!{!Q![2!{![!a.8|!a!b2!{!b!c.8|!c!}2!{!}#O.8|#O#P2!{#P#R.8|#R#S2!{#S#T2!{#T#o2!{#o$p.8|$p$q2!{$q${.8|${$|2!{$|%Q.8|%Q%R2!{%R%W.8|%W%o2!{%o%p.8|%p&a2!{&a&b.8|&b0`2!{0`0d.8|0d0p2!{0p1O.8|1O1T2!{1T1[.8|1[1]2!{1]1^.8|1^1_2!{1_4U.8|4U4Z2!{4Z4[.8|4[4]2!{4]4^2!{4^4`.8|4`4d2!{4d4l.8|4l4m2!{4m4n.8|4n4q2!{4q4r.8|4r4s2!{4s4t.8|4t5Y2!{5Y5Z.8|5Z7Q2!{7Q7R.8|7R:S2!{:S:[.8|:[=p2!{=p=y.8|=y>q2!{>q>s.8|>s>t2!{>t>{.8|>{?t2!{?tA`.8|A`A{2!{A{BQ.8|BQBT2!{BTCS.8|CSDP2!{DPDt.8|DtDu2!{DuDv2!{DvDw.8|DwGO2!{GOGP.8|GPGQ2!{GQGa.8|GaGb2!{GbGc2!{GcGj.8|GjGk2!{GkGl2!{GlGv.8|GvGy2!{GyG{.8|G{G|2!{G|H^.8|H^H_2!{H_H`.8|H`IO2!{IOIm.8|ImKj2!{KjKu.8|KuKv2!{KvL`.8|L`MR2!{MRM[.8|M[M]2!{M]M^2!{M^Mb.8|MbMc2!{McMh.8|MhNO2!{NONS.8|NSNT2!{NTN^.8|N^N_2!{N_Nb.8|NbNc2!{NcNz.8|Nz! e2!{! e!#O.8|!#O!#P2!{!#P!#Q.8|!#Q!#]2!{!#]!%W.8|!%W!&`2!{!&`!&c.8|!&c!&d2!{!&d!&v.8|!&v!&w2!{!&w!'O.8|!'O!'Y2!{!'Y!'i.8|!'i!'p2!{!'p!'q.8|!'q!'x2!{!'x!'}.8|!'}!(V2!{!(V!(X.8|!(X!(Y2!{!(Y!(Z2!{!(Z!(].8|!(]!(s2!{!(s!(t.8|!(t!({2!{!({!(|.8|!(|!(}2!{!(}!)Q.8|!)Q!)U2!{!)U!)X.8|!)X!)Y2!{!)Y!)j.8|!)j!)k2!{!)k!)x.8|!)x!)y2!{!)y!)z2!{!)z!){.8|!){!*O2!{!*O!*^.8|!*^!*_2!{!*_!*`2!{!*`!*s.8|!*s!*y2!{!*y!*}.8|!*}!+O2!{!+O!+P2!{!+P!+R.8|!+R!+i2!{!+i!+j.8|!+j!+q2!{!+q!+r.8|!+r!+s2!{!+s!+t2!{!+t!+u.8|!+u!+v2!{!+v!+w2!{!+w!+x.8|!+x!+y2!{!+y!+z2!{!+z!,k.8|!,k!,o2!{!,o!,p.8|!,p!,q2!{!,q!-U.8|!-U!-X2!{!-X!-i.8|!-i!-r2!{!-r!-s.8|!-s!-v2!{!-v!-w.8|!-w!._2!{!._!.`.8|!.`!.g2!{!.g!.h.8|!.h!.i2!{!.i!.j2!{!.j!.k.8|!.k!.p2!{!.p!.s.8|!.s!.t2!{!.t!/W.8|!/W!/X2!{!/X!/h.8|!/h!/i2!{!/i!/j2!{!/j!0_.8|!0_!0g2!{!0g!0i.8|!0i!0j2!{!0j!0k2!{!0k!0m.8|!0m!1T2!{!1T!1U.8|!1U!1]2!{!1]!1^.8|!1^!1_2!{!1_!1`2!{!1`!1a.8|!1a!1f2!{!1f!1i.8|!1i!1j2!{!1j!2Y.8|!2Y!2Z2!{!2Z!2[2!{!2[!2].8|!2]!2`2!{!2`!2o.8|!2o!2p2!{!2p!3R.8|!3R!3S2!{!3S!3T.8|!3T!3Z2!{!3Z!3^.8|!3^!3a2!{!3a!3b.8|!3b!3f2!{!3f!3i.8|!3i!3j2!{!3j!3k2!{!3k!3l.8|!3l!3m2!{!3m!3n.8|!3n!3o2!{!3o!3p2!{!3p!3s.8|!3s!3t2!{!3t!3u2!{!3u!3x.8|!3x!3{2!{!3{!4O.8|!4O!4[2!{!4[!4r.8|!4r!4s2!{!4s!5y.8|!5y!6R2!{!6R!6S.8|!6S!6V2!{!6V!6W.8|!6W!6o2!{!6o!6p.8|!6p!6z2!{!6z!6{.8|!6{!7Q2!{!7Q!7T.8|!7T!7U2!{!7U!7p.8|!7p!7q2!{!7q!7r2!{!7r!7x.8|!7x!7y2!{!7y!7z2!{!7z!8o.8|!8o!8w2!{!8w!8x.8|!8x!8{2!{!8{!8|.8|!8|!9e2!{!9e!9f.8|!9f!9p2!{!9p!9q.8|!9q!9v2!{!9v!9y.8|!9y!9z2!{!9z!:l.8|!:l!:m2!{!:m!:n.8|!:n!:o2!{!:o!:p2!{!:p!;P.8|!;P!;Q2!{!;Q!;R2!{!;R!;e.8|!;e!;m2!{!;m!;n.8|!;n!;q2!{!;q!;r.8|!;r!O.8|!>O!>U2!{!>U!>Z.8|!>Z!>m2!{!>m!>p.8|!>p!?Y2!{!?Y!?Z.8|!?Z!?d2!{!?d!?e.8|!?e!?f2!{!?f!?h.8|!?h!?o2!{!?o!@{.8|!@{!A}2!{!A}!BO.8|!BO!BP2!{!BP!BQ2!{!BQ!B^.8|!B^!Be2!{!Be!Cq.8|!Cq!Cr2!{!Cr!Cs2!{!Cs!Ct.8|!Ct!Cu2!{!Cu!Cw.8|!Cw!Cx2!{!Cx!Cy2!{!Cy!Cz.8|!Cz!C{2!{!C{!C}.8|!C}!DO2!{!DO!DU.8|!DU!DY2!{!DY!DZ.8|!DZ!Db2!{!Db!Dc.8|!Dc!Df2!{!Df!Dg.8|!Dg!Dh2!{!Dh!Di.8|!Di!Dj2!{!Dj!Dl.8|!Dl!Dm2!{!Dm!Dn2!{!Dn!Do.8|!Do!Ds2!{!Ds!Dt.8|!Dt!Du2!{!Du!Dv2!{!Dv!EP.8|!EP!EQ2!{!EQ!ES.8|!ES!EX2!{!EX!EY.8|!EY!EZ2!{!EZ!Ep.8|!Ep!Et2!{!Et!Ff.8|!Ff!Fg2!{!Fg!Gx.8|!Gx!HQ2!{!HQ!HR.8|!HR!Hw2!{!Hw!Id.8|!Id!Ii2!{!Ii!LQ.8|!LQ!L}2!{!L}!Mc.8|!Mc!Md2!{!Md!Mt.8|!Mt!Mz2!{!Mz!NO.8|!NO!NS2!{!NS!NV.8|!NV!NW2!{!NW!NZ.8|!NZ!N[2!{!N[!N]2!{!N]!Nd.8|!Nd!Ng2!{!Ng!Nk.8|!Nk!Nx2!{!Nx# U.8|# U# V2!{# V# h.8|# h#!`2!{#!`#!a.8|#!a#!b2!{#!b#!g.8|#!g#!h2!{#!h#!j.8|#!j##g2!{##g##h.8|##h#*s2!{#*s#*t.8|#*t#*x2!{#*x#*z.8|#*z#+R2!{#+R#+S.8|#+S#+T2!{#+T#+U.8|#+U#+Y2!{#+Y#+[.8|#+[#,V2!{#,V#,W.8|#,W#,[2!{#,[#,^.8|#,^#-P2!{#-P#-Q.8|#-Q#-U2!{#-U#-W.8|#-W#-_2!{#-_#-`.8|#-`#-a2!{#-a#-b.8|#-b#-f2!{#-f#-h.8|#-h#-w2!{#-w#-x.8|#-x#/T2!{#/T#/U.8|#/U#/Y2!{#/Y#/[.8|#/[#0q2!{#0q#1h.8|#1h#1x2!{#1x#2Y.8|#2Y#4R2!{#4R#4_.8|#4_#Au2!{#Au#Aw.8|#Aw#BY2!{#BY#BZ.8|#BZ#Bu2!{#Bu#Bz.8|#Bz#Di2!{#Di#EO.8|#EO#E]2!{#E]#E^.8|#E^#Eb2!{#Eb#Ep.8|#Ep#FS2!{#FS#Fb.8|#Fb#Ft2!{#Ft#GS.8|#GS#Ga2!{#Ga#Gb.8|#Gb#Ge2!{#Ge#Gt.8|#Gt#Hz2!{#Hz#Io.8|#Io#Ip2!{#Ip#It.8|#It#Iu2!{#Iu#K[.8|#K[#MW2!{#MW#M`.8|#M`#NZ2!{#NZ#N[.8|#N[#N]2!{#N]#Nb.8|#Nb$ z2!{$ z$!U.8|$!U$!s2!{$!s$#x.8|$#x$$h2!{$$h$$j.8|$$j$$o2!{$$o$$z.8|$$z$%x2!{$%x$&_.8|$&_$&f2!{$&f$'p.8|$'p$(X2!{$(X$(b.8|$(b$)i2!{$)i$+_.8|$+_$+`2!{$+`$-a.8|$-a$.b2!{$.b$.s.8|$.s$.z2!{$.z$0T.8|$0T$0s2!{$0s$1Q.8|$1Q$1R2!{$1R$1S2!{$1S$1^.8|$1^$2[2!{$2[$2v.8|$2v$3l2!{$3l$4g.8|$4g$4j2!{$4j$4t.8|$4t$5j2!{$5j$7y.8|$7y$7}2!{$7}$8O.8|$8O$8S2!{$8S$8V.8|$8V$8W2!{$8W$8X2!{$8X$8b.8|$8b$z2!{5>z5>{.8|5>{5>|2!{5>|5?P.8|5?P5?Q2!{5?Q5?R2!{5?R5?T.8|5?T5?Y2!{5?Y5?[.8|5?[5?]2!{5?]5?^.8|5?^5?_2!{5?_5?w.8|5?w5?z2!{5?z5?|.8|5?|5@X2!{5@X5@`.8|5@`5@c2!{5@c5@o.8|5@o5@u2!{5@u5@w.8|5@w5@}2!{5@}5AP.8|5AP5AV2!{5AV5A`.8|5A`5Ag2!{5Ag5Ah.8|5Ah5Ao2!{5Ao5Dv.8|5Dv5Ek2!{5Ek5FY.8|5FY;%S2!{;%S;%`.8|;%`;%w2!{;%w;%{.8|;%{;'O2!{;'O;'S.8|;'S;=`.9j<%l?&r.8|?&r?.p2!{?.p?.r.8|?.r?1Q2!{?1Q?1x.8|?1x?2P2!{?2P?2].8|?2]?2b2!{?2b?2g.8|?2g?2h2!{?2h?2i.8|?2i?2s2!{?2s?2t.8|?2t?3R2!{?3R?3S.8|?3S?3X2!{?3X?3Y.8|?3Y?3Z2!{?3Z?3[.8|?3[?3]2!{?3]?3^2!{?3^?3_.8|?3_?3`2!{?3`?3a2!{?3a?3b.8|?3b?5r2!{?5r?6e.8|?6e?>`2!{?>`?>r.8|?>r?@U2!{?@U?@W.8|?@W?A`2!{?A`?BY.8|?BY?Bf2!{?Bf?EO.8|?EO?ET2!{?ET?EU.8|?EU?HR2!{?HR?Hw.8|?Hw?Ic2!{?Ic?Ii.8|?Ii?JT2!{?JT?J`.8|?J`?L]2!{?L]?L`.8|?L`?Lf2!{?Lf?Lh.8|?Lh?Ln2!{?Ln?Lp.8|?Lp?Lv2!{?Lv?Lx.8|?Lx?L{2!{?L{O.8|!_3*O2i!OW|SS!RmPOY.9vYZ!,^Zq.9vqr3)srs/Cbst3)stu3)suv3)svw3)swx3)sxz.9vz{3)s{|3)s|!O.9v!O!P3)s!P!Q3)s!Q![3)s![!a.9v!a!b3)s!b!c.9v!c!}3)s!}#O.9v#O#P3)s#P#R.9v#R#S3)s#S#T40m#T#o3)s#o$p.9v$p$q3)s$q${.9v${$|3)s$|%Q.9v%Q%R3)s%R%W.9v%W%o3)s%o%p.9v%p&a3)s&a&b.9v&b0`3)s0`0d.9v0d0p3)s0p1O.9v1O1T3)s1T1[.9v1[1]3)s1]1^.9v1^1_3)s1_4U.9v4U4Z3)s4Z4[.9v4[4]3)s4]4^3)s4^4`.9v4`4d3)s4d4l.9v4l4m3)s4m4n.9v4n4q3)s4q4r.9v4r4s3)s4s4t.9v4t5Y3)s5Y5Z.9v5Z7Q3)s7Q7R.9v7R:S3)s:S:[.9v:[=p3)s=p=y.9v=y>q3)s>q>s.9v>s>t3)s>t>{.9v>{?t3)s?tA`.9vA`A{3)sA{BQ.9vBQBT3)sBTCS.9vCSDP3)sDPDt.9vDtDu3)sDuDv3)sDvDw.9vDwGO3)sGOGP.9vGPGQ3)sGQGa.9vGaGb3)sGbGc3)sGcGj.9vGjGk3)sGkGl3)sGlGv.9vGvGy3)sGyG{.9vG{G|3)sG|H^.9vH^H_3)sH_H`.9vH`IO3)sIOIm.9vImKj3)sKjKu.9vKuKv3)sKvL`.9vL`MR3)sMRM[.9vM[M]3)sM]M^3)sM^Mb.9vMbMc3)sMcMh.9vMhNO3)sNONS.9vNSNT3)sNTN^.9vN^N_3)sN_Nb.9vNbNc3)sNcNz.9vNz! e3)s! e!#O.9v!#O!#P3)s!#P!#Q.9v!#Q!#]3)s!#]!%W.9v!%W!&`3)s!&`!&c.9v!&c!&d3)s!&d!&v.9v!&v!&w3)s!&w!'O.9v!'O!'Y3)s!'Y!'i.9v!'i!'p3)s!'p!'q.9v!'q!'x3)s!'x!'}.9v!'}!(V3)s!(V!(X.9v!(X!(Y3)s!(Y!(Z3)s!(Z!(].9v!(]!(s3)s!(s!(t.9v!(t!({3)s!({!(|.9v!(|!(}3)s!(}!)Q.9v!)Q!)U3)s!)U!)X.9v!)X!)Y3)s!)Y!)j.9v!)j!)k3)s!)k!)x.9v!)x!)y3)s!)y!)z3)s!)z!){.9v!){!*O3)s!*O!*^.9v!*^!*_3)s!*_!*`3)s!*`!*s.9v!*s!*y3)s!*y!*}.9v!*}!+O3)s!+O!+P3)s!+P!+R.9v!+R!+i3)s!+i!+j.9v!+j!+q3)s!+q!+r.9v!+r!+s3)s!+s!+t3)s!+t!+u.9v!+u!+v3)s!+v!+w3)s!+w!+x.9v!+x!+y3)s!+y!+z3)s!+z!,k.9v!,k!,o3)s!,o!,p.9v!,p!,q3)s!,q!-U.9v!-U!-X3)s!-X!-i.9v!-i!-r3)s!-r!-s.9v!-s!-v3)s!-v!-w.9v!-w!._3)s!._!.`.9v!.`!.g3)s!.g!.h.9v!.h!.i3)s!.i!.j3)s!.j!.k.9v!.k!.p3)s!.p!.s.9v!.s!.t3)s!.t!/W.9v!/W!/X3)s!/X!/h.9v!/h!/i3)s!/i!/j3)s!/j!0_.9v!0_!0g3)s!0g!0i.9v!0i!0j3)s!0j!0k3)s!0k!0m.9v!0m!1T3)s!1T!1U.9v!1U!1]3)s!1]!1^.9v!1^!1_3)s!1_!1`3)s!1`!1a.9v!1a!1f3)s!1f!1i.9v!1i!1j3)s!1j!2Y.9v!2Y!2Z3)s!2Z!2[3)s!2[!2].9v!2]!2`3)s!2`!2o.9v!2o!2p3)s!2p!3R.9v!3R!3S3)s!3S!3T.9v!3T!3Z3)s!3Z!3^.9v!3^!3a3)s!3a!3b.9v!3b!3f3)s!3f!3i.9v!3i!3j3)s!3j!3k3)s!3k!3l.9v!3l!3m3)s!3m!3n.9v!3n!3o3)s!3o!3p3)s!3p!3s.9v!3s!3t3)s!3t!3u3)s!3u!3x.9v!3x!3{3)s!3{!4O.9v!4O!4[3)s!4[!4r.9v!4r!4s3)s!4s!5y.9v!5y!6R3)s!6R!6S.9v!6S!6V3)s!6V!6W.9v!6W!6o3)s!6o!6p.9v!6p!6z3)s!6z!6{.9v!6{!7Q3)s!7Q!7T.9v!7T!7U3)s!7U!7p.9v!7p!7q3)s!7q!7r3)s!7r!7x.9v!7x!7y3)s!7y!7z3)s!7z!8o.9v!8o!8w3)s!8w!8x.9v!8x!8{3)s!8{!8|.9v!8|!9e3)s!9e!9f.9v!9f!9p3)s!9p!9q.9v!9q!9v3)s!9v!9y.9v!9y!9z3)s!9z!:l.9v!:l!:m3)s!:m!:n.9v!:n!:o3)s!:o!:p3)s!:p!;P.9v!;P!;Q3)s!;Q!;R3)s!;R!;e.9v!;e!;m3)s!;m!;n.9v!;n!;q3)s!;q!;r.9v!;r!O.9v!>O!>U3)s!>U!>Z.9v!>Z!>m3)s!>m!>p.9v!>p!?Y3)s!?Y!?Z.9v!?Z!?d3)s!?d!?e.9v!?e!?f3)s!?f!?h.9v!?h!?o3)s!?o!@{.9v!@{!A}3)s!A}!BO.9v!BO!BP3)s!BP!BQ3)s!BQ!B^.9v!B^!Be3)s!Be!Cq.9v!Cq!Cr3)s!Cr!Cs3)s!Cs!Ct.9v!Ct!Cu3)s!Cu!Cw.9v!Cw!Cx3)s!Cx!Cy3)s!Cy!Cz.9v!Cz!C{3)s!C{!C}.9v!C}!DO3)s!DO!DU.9v!DU!DY3)s!DY!DZ.9v!DZ!Db3)s!Db!Dc.9v!Dc!Df3)s!Df!Dg.9v!Dg!Dh3)s!Dh!Di.9v!Di!Dj3)s!Dj!Dl.9v!Dl!Dm3)s!Dm!Dn3)s!Dn!Do.9v!Do!Ds3)s!Ds!Dt.9v!Dt!Du3)s!Du!Dv3)s!Dv!EP.9v!EP!EQ3)s!EQ!ES.9v!ES!EX3)s!EX!EY.9v!EY!EZ3)s!EZ!Ep.9v!Ep!Et3)s!Et!Ff.9v!Ff!Fg3)s!Fg!Gx.9v!Gx!HQ3)s!HQ!HR.9v!HR!Hw3)s!Hw!Id.9v!Id!Ii3)s!Ii!LQ.9v!LQ!L}3)s!L}!Mc.9v!Mc!Md3)s!Md!Mt.9v!Mt!Mz3)s!Mz!NO.9v!NO!NS3)s!NS!NV.9v!NV!NW3)s!NW!NZ.9v!NZ!N[3)s!N[!N]3)s!N]!Nd.9v!Nd!Ng3)s!Ng!Nk.9v!Nk!Nx3)s!Nx# U.9v# U# V3)s# V# h.9v# h#!`3)s#!`#!a.9v#!a#!b3)s#!b#!g.9v#!g#!h3)s#!h#!j.9v#!j##g3)s##g##h.9v##h#*s3)s#*s#*t.9v#*t#*x3)s#*x#*z.9v#*z#+R3)s#+R#+S.9v#+S#+T3)s#+T#+U.9v#+U#+Y3)s#+Y#+[.9v#+[#,V3)s#,V#,W.9v#,W#,[3)s#,[#,^.9v#,^#-P3)s#-P#-Q.9v#-Q#-U3)s#-U#-W.9v#-W#-_3)s#-_#-`.9v#-`#-a3)s#-a#-b.9v#-b#-f3)s#-f#-h.9v#-h#-w3)s#-w#-x.9v#-x#/T3)s#/T#/U.9v#/U#/Y3)s#/Y#/[.9v#/[#0q3)s#0q#1h.9v#1h#1x3)s#1x#2Y.9v#2Y#4R3)s#4R#4_.9v#4_#Au3)s#Au#Aw.9v#Aw#BY3)s#BY#BZ.9v#BZ#Bu3)s#Bu#Bz.9v#Bz#Di3)s#Di#EO.9v#EO#E]3)s#E]#E^.9v#E^#Eb3)s#Eb#Ep.9v#Ep#FS3)s#FS#Fb.9v#Fb#Ft3)s#Ft#GS.9v#GS#Ga3)s#Ga#Gb.9v#Gb#Ge3)s#Ge#Gt.9v#Gt#Hz3)s#Hz#Io.9v#Io#Ip3)s#Ip#It.9v#It#Iu3)s#Iu#K[.9v#K[#MW3)s#MW#M`.9v#M`#NZ3)s#NZ#N[.9v#N[#N]3)s#N]#Nb.9v#Nb$ z3)s$ z$!U.9v$!U$!s3)s$!s$#x.9v$#x$$h3)s$$h$$j.9v$$j$$o3)s$$o$$z.9v$$z$%x3)s$%x$&_.9v$&_$&f3)s$&f$'p.9v$'p$(X3)s$(X$(b.9v$(b$)i3)s$)i$+_.9v$+_$+`3)s$+`$-a.9v$-a$.b3)s$.b$.s.9v$.s$.z3)s$.z$0T.9v$0T$0s3)s$0s$1Q.9v$1Q$1R3)s$1R$1S3)s$1S$1^.9v$1^$2[3)s$2[$2v.9v$2v$3l3)s$3l$4g.9v$4g$4j3)s$4j$4t.9v$4t$5j3)s$5j$7y.9v$7y$7}3)s$7}$8O.9v$8O$8S3)s$8S$8V.9v$8V$8W3)s$8W$8X3)s$8X$8b.9v$8b$z3)s5>z5>{.9v5>{5>|3)s5>|5?P.9v5?P5?Q3)s5?Q5?R3)s5?R5?T.9v5?T5?Y3)s5?Y5?[.9v5?[5?]3)s5?]5?^.9v5?^5?_3)s5?_5?w.9v5?w5?z3)s5?z5?|.9v5?|5@X3)s5@X5@`.9v5@`5@c3)s5@c5@o.9v5@o5@u3)s5@u5@w.9v5@w5@}3)s5@}5AP.9v5AP5AV3)s5AV5A`.9v5A`5Ag3)s5Ag5Ah.9v5Ah5Ao3)s5Ao5Dv.9v5Dv5Ek3)s5Ek5FY.9v5FY;%S3)s;%S;%`.9v;%`;%w3)s;%w;%{.9v;%{;'O3)s;'O;'S.9v;'S;=`.;`<%l?&r.9v?&r?.p3)s?.p?.r.9v?.r?1Q3)s?1Q?1x.9v?1x?2P3)s?2P?2].9v?2]?2b3)s?2b?2g.9v?2g?2h3)s?2h?2i.9v?2i?2s3)s?2s?2t.9v?2t?3R3)s?3R?3S.9v?3S?3X3)s?3X?3Y.9v?3Y?3Z3)s?3Z?3[.9v?3[?3]3)s?3]?3^3)s?3^?3_.9v?3_?3`3)s?3`?3a3)s?3a?3b.9v?3b?5r3)s?5r?6e.9v?6e?>`3)s?>`?>r.9v?>r?@U3)s?@U?@W.9v?@W?A`3)s?A`?BY.9v?BY?Bf3)s?Bf?EO.9v?EO?ET3)s?ET?EU.9v?EU?HR3)s?HR?Hw.9v?Hw?Ic3)s?Ic?Ii.9v?Ii?JT3)s?JT?J`.9v?J`?L]3)s?L]?L`.9v?L`?Lf3)s?Lf?Lh.9v?Lh?Ln3)s?Ln?Lp.9v?Lp?Lv3)s?Lv?Lx.9v?Lx?L{3)s?L{O.9v!V40v2i|SS!RmPOY.:lYZ!,zZq.:lqr40mrs0JYst40mtu40muv40mvw40mwx40mxz.:lz{40m{|40m|!O.:l!O!P40m!P!Q40m!Q![40m![!a.:l!a!b40m!b!c.:l!c!}40m!}#O.:l#O#P40m#P#R.:l#R#S40m#S#T40m#T#o40m#o$p.:l$p$q40m$q${.:l${$|40m$|%Q.:l%Q%R40m%R%W.:l%W%o40m%o%p.:l%p&a40m&a&b.:l&b0`40m0`0d.:l0d0p40m0p1O.:l1O1T40m1T1[.:l1[1]40m1]1^.:l1^1_40m1_4U.:l4U4Z40m4Z4[.:l4[4]40m4]4^40m4^4`.:l4`4d40m4d4l.:l4l4m40m4m4n.:l4n4q40m4q4r.:l4r4s40m4s4t.:l4t5Y40m5Y5Z.:l5Z7Q40m7Q7R.:l7R:S40m:S:[.:l:[=p40m=p=y.:l=y>q40m>q>s.:l>s>t40m>t>{.:l>{?t40m?tA`.:lA`A{40mA{BQ.:lBQBT40mBTCS.:lCSDP40mDPDt.:lDtDu40mDuDv40mDvDw.:lDwGO40mGOGP.:lGPGQ40mGQGa.:lGaGb40mGbGc40mGcGj.:lGjGk40mGkGl40mGlGv.:lGvGy40mGyG{.:lG{G|40mG|H^.:lH^H_40mH_H`.:lH`IO40mIOIm.:lImKj40mKjKu.:lKuKv40mKvL`.:lL`MR40mMRM[.:lM[M]40mM]M^40mM^Mb.:lMbMc40mMcMh.:lMhNO40mNONS.:lNSNT40mNTN^.:lN^N_40mN_Nb.:lNbNc40mNcNz.:lNz! e40m! e!#O.:l!#O!#P40m!#P!#Q.:l!#Q!#]40m!#]!%W.:l!%W!&`40m!&`!&c.:l!&c!&d40m!&d!&v.:l!&v!&w40m!&w!'O.:l!'O!'Y40m!'Y!'i.:l!'i!'p40m!'p!'q.:l!'q!'x40m!'x!'}.:l!'}!(V40m!(V!(X.:l!(X!(Y40m!(Y!(Z40m!(Z!(].:l!(]!(s40m!(s!(t.:l!(t!({40m!({!(|.:l!(|!(}40m!(}!)Q.:l!)Q!)U40m!)U!)X.:l!)X!)Y40m!)Y!)j.:l!)j!)k40m!)k!)x.:l!)x!)y40m!)y!)z40m!)z!){.:l!){!*O40m!*O!*^.:l!*^!*_40m!*_!*`40m!*`!*s.:l!*s!*y40m!*y!*}.:l!*}!+O40m!+O!+P40m!+P!+R.:l!+R!+i40m!+i!+j.:l!+j!+q40m!+q!+r.:l!+r!+s40m!+s!+t40m!+t!+u.:l!+u!+v40m!+v!+w40m!+w!+x.:l!+x!+y40m!+y!+z40m!+z!,k.:l!,k!,o40m!,o!,p.:l!,p!,q40m!,q!-U.:l!-U!-X40m!-X!-i.:l!-i!-r40m!-r!-s.:l!-s!-v40m!-v!-w.:l!-w!._40m!._!.`.:l!.`!.g40m!.g!.h.:l!.h!.i40m!.i!.j40m!.j!.k.:l!.k!.p40m!.p!.s.:l!.s!.t40m!.t!/W.:l!/W!/X40m!/X!/h.:l!/h!/i40m!/i!/j40m!/j!0_.:l!0_!0g40m!0g!0i.:l!0i!0j40m!0j!0k40m!0k!0m.:l!0m!1T40m!1T!1U.:l!1U!1]40m!1]!1^.:l!1^!1_40m!1_!1`40m!1`!1a.:l!1a!1f40m!1f!1i.:l!1i!1j40m!1j!2Y.:l!2Y!2Z40m!2Z!2[40m!2[!2].:l!2]!2`40m!2`!2o.:l!2o!2p40m!2p!3R.:l!3R!3S40m!3S!3T.:l!3T!3Z40m!3Z!3^.:l!3^!3a40m!3a!3b.:l!3b!3f40m!3f!3i.:l!3i!3j40m!3j!3k40m!3k!3l.:l!3l!3m40m!3m!3n.:l!3n!3o40m!3o!3p40m!3p!3s.:l!3s!3t40m!3t!3u40m!3u!3x.:l!3x!3{40m!3{!4O.:l!4O!4[40m!4[!4r.:l!4r!4s40m!4s!5y.:l!5y!6R40m!6R!6S.:l!6S!6V40m!6V!6W.:l!6W!6o40m!6o!6p.:l!6p!6z40m!6z!6{.:l!6{!7Q40m!7Q!7T.:l!7T!7U40m!7U!7p.:l!7p!7q40m!7q!7r40m!7r!7x.:l!7x!7y40m!7y!7z40m!7z!8o.:l!8o!8w40m!8w!8x.:l!8x!8{40m!8{!8|.:l!8|!9e40m!9e!9f.:l!9f!9p40m!9p!9q.:l!9q!9v40m!9v!9y.:l!9y!9z40m!9z!:l.:l!:l!:m40m!:m!:n.:l!:n!:o40m!:o!:p40m!:p!;P.:l!;P!;Q40m!;Q!;R40m!;R!;e.:l!;e!;m40m!;m!;n.:l!;n!;q40m!;q!;r.:l!;r!O.:l!>O!>U40m!>U!>Z.:l!>Z!>m40m!>m!>p.:l!>p!?Y40m!?Y!?Z.:l!?Z!?d40m!?d!?e.:l!?e!?f40m!?f!?h.:l!?h!?o40m!?o!@{.:l!@{!A}40m!A}!BO.:l!BO!BP40m!BP!BQ40m!BQ!B^.:l!B^!Be40m!Be!Cq.:l!Cq!Cr40m!Cr!Cs40m!Cs!Ct.:l!Ct!Cu40m!Cu!Cw.:l!Cw!Cx40m!Cx!Cy40m!Cy!Cz.:l!Cz!C{40m!C{!C}.:l!C}!DO40m!DO!DU.:l!DU!DY40m!DY!DZ.:l!DZ!Db40m!Db!Dc.:l!Dc!Df40m!Df!Dg.:l!Dg!Dh40m!Dh!Di.:l!Di!Dj40m!Dj!Dl.:l!Dl!Dm40m!Dm!Dn40m!Dn!Do.:l!Do!Ds40m!Ds!Dt.:l!Dt!Du40m!Du!Dv40m!Dv!EP.:l!EP!EQ40m!EQ!ES.:l!ES!EX40m!EX!EY.:l!EY!EZ40m!EZ!Ep.:l!Ep!Et40m!Et!Ff.:l!Ff!Fg40m!Fg!Gx.:l!Gx!HQ40m!HQ!HR.:l!HR!Hw40m!Hw!Id.:l!Id!Ii40m!Ii!LQ.:l!LQ!L}40m!L}!Mc.:l!Mc!Md40m!Md!Mt.:l!Mt!Mz40m!Mz!NO.:l!NO!NS40m!NS!NV.:l!NV!NW40m!NW!NZ.:l!NZ!N[40m!N[!N]40m!N]!Nd.:l!Nd!Ng40m!Ng!Nk.:l!Nk!Nx40m!Nx# U.:l# U# V40m# V# h.:l# h#!`40m#!`#!a.:l#!a#!b40m#!b#!g.:l#!g#!h40m#!h#!j.:l#!j##g40m##g##h.:l##h#*s40m#*s#*t.:l#*t#*x40m#*x#*z.:l#*z#+R40m#+R#+S.:l#+S#+T40m#+T#+U.:l#+U#+Y40m#+Y#+[.:l#+[#,V40m#,V#,W.:l#,W#,[40m#,[#,^.:l#,^#-P40m#-P#-Q.:l#-Q#-U40m#-U#-W.:l#-W#-_40m#-_#-`.:l#-`#-a40m#-a#-b.:l#-b#-f40m#-f#-h.:l#-h#-w40m#-w#-x.:l#-x#/T40m#/T#/U.:l#/U#/Y40m#/Y#/[.:l#/[#0q40m#0q#1h.:l#1h#1x40m#1x#2Y.:l#2Y#4R40m#4R#4_.:l#4_#Au40m#Au#Aw.:l#Aw#BY40m#BY#BZ.:l#BZ#Bu40m#Bu#Bz.:l#Bz#Di40m#Di#EO.:l#EO#E]40m#E]#E^.:l#E^#Eb40m#Eb#Ep.:l#Ep#FS40m#FS#Fb.:l#Fb#Ft40m#Ft#GS.:l#GS#Ga40m#Ga#Gb.:l#Gb#Ge40m#Ge#Gt.:l#Gt#Hz40m#Hz#Io.:l#Io#Ip40m#Ip#It.:l#It#Iu40m#Iu#K[.:l#K[#MW40m#MW#M`.:l#M`#NZ40m#NZ#N[.:l#N[#N]40m#N]#Nb.:l#Nb$ z40m$ z$!U.:l$!U$!s40m$!s$#x.:l$#x$$h40m$$h$$j.:l$$j$$o40m$$o$$z.:l$$z$%x40m$%x$&_.:l$&_$&f40m$&f$'p.:l$'p$(X40m$(X$(b.:l$(b$)i40m$)i$+_.:l$+_$+`40m$+`$-a.:l$-a$.b40m$.b$.s.:l$.s$.z40m$.z$0T.:l$0T$0s40m$0s$1Q.:l$1Q$1R40m$1R$1S40m$1S$1^.:l$1^$2[40m$2[$2v.:l$2v$3l40m$3l$4g.:l$4g$4j40m$4j$4t.:l$4t$5j40m$5j$7y.:l$7y$7}40m$7}$8O.:l$8O$8S40m$8S$8V.:l$8V$8W40m$8W$8X40m$8X$8b.:l$8b$z40m5>z5>{.:l5>{5>|40m5>|5?P.:l5?P5?Q40m5?Q5?R40m5?R5?T.:l5?T5?Y40m5?Y5?[.:l5?[5?]40m5?]5?^.:l5?^5?_40m5?_5?w.:l5?w5?z40m5?z5?|.:l5?|5@X40m5@X5@`.:l5@`5@c40m5@c5@o.:l5@o5@u40m5@u5@w.:l5@w5@}40m5@}5AP.:l5AP5AV40m5AV5A`.:l5A`5Ag40m5Ag5Ah.:l5Ah5Ao40m5Ao5Dv.:l5Dv5Ek40m5Ek5FY.:l5FY;%S40m;%S;%`.:l;%`;%w40m;%w;%{.:l;%{;'O40m;'O;'S.:l;'S;=`.;Y<%l?&r.:l?&r?.p40m?.p?.r.:l?.r?1Q40m?1Q?1x.:l?1x?2P40m?2P?2].:l?2]?2b40m?2b?2g.:l?2g?2h40m?2h?2i.:l?2i?2s40m?2s?2t.:l?2t?3R40m?3R?3S.:l?3S?3X40m?3X?3Y.:l?3Y?3Z40m?3Z?3[.:l?3[?3]40m?3]?3^40m?3^?3_.:l?3_?3`40m?3`?3a40m?3a?3b.:l?3b?5r40m?5r?6e.:l?6e?>`40m?>`?>r.:l?>r?@U40m?@U?@W.:l?@W?A`40m?A`?BY.:l?BY?Bf40m?Bf?EO.:l?EO?ET40m?ET?EU.:l?EU?HR40m?HR?Hw.:l?Hw?Ic40m?Ic?Ii.:l?Ii?JT40m?JT?J`.:l?J`?L]40m?L]?L`.:l?L`?Lf40m?Lf?Lh.:l?Lh?Ln40m?Ln?Lp.:l?Lp?Lv40m?Lv?Lx.:l?Lx?L{40m?L{O.:l!X57p2i|SzQS!RmPOY.;fYZ!-iZq.;fqr57ers2!{st57etu57euv57evw57ewx40mxz.;fz{57e{|57e|!O.;f!O!P57e!P!Q57e!Q![57e![!a.;f!a!b57e!b!c.;f!c!}57e!}#O.;f#O#P57e#P#R.;f#R#S57e#S#T57e#T#o57e#o$p.;f$p$q57e$q${.;f${$|57e$|%Q.;f%Q%R57e%R%W.;f%W%o57e%o%p.;f%p&a57e&a&b.;f&b0`57e0`0d.;f0d0p57e0p1O.;f1O1T57e1T1[.;f1[1]57e1]1^.;f1^1_57e1_4U.;f4U4Z57e4Z4[.;f4[4]57e4]4^57e4^4`.;f4`4d57e4d4l.;f4l4m57e4m4n.;f4n4q57e4q4r.;f4r4s57e4s4t.;f4t5Y57e5Y5Z.;f5Z7Q57e7Q7R.;f7R:S57e:S:[.;f:[=p57e=p=y.;f=y>q57e>q>s.;f>s>t57e>t>{.;f>{?t57e?tA`.;fA`A{57eA{BQ.;fBQBT57eBTCS.;fCSDP57eDPDt.;fDtDu57eDuDv57eDvDw.;fDwGO57eGOGP.;fGPGQ57eGQGa.;fGaGb57eGbGc57eGcGj.;fGjGk57eGkGl57eGlGv.;fGvGy57eGyG{.;fG{G|57eG|H^.;fH^H_57eH_H`.;fH`IO57eIOIm.;fImKj57eKjKu.;fKuKv57eKvL`.;fL`MR57eMRM[.;fM[M]57eM]M^57eM^Mb.;fMbMc57eMcMh.;fMhNO57eNONS.;fNSNT57eNTN^.;fN^N_57eN_Nb.;fNbNc57eNcNz.;fNz! e57e! e!#O.;f!#O!#P57e!#P!#Q.;f!#Q!#]57e!#]!%W.;f!%W!&`57e!&`!&c.;f!&c!&d57e!&d!&v.;f!&v!&w57e!&w!'O.;f!'O!'Y57e!'Y!'i.;f!'i!'p57e!'p!'q.;f!'q!'x57e!'x!'}.;f!'}!(V57e!(V!(X.;f!(X!(Y57e!(Y!(Z57e!(Z!(].;f!(]!(s57e!(s!(t.;f!(t!({57e!({!(|.;f!(|!(}57e!(}!)Q.;f!)Q!)U57e!)U!)X.;f!)X!)Y57e!)Y!)j.;f!)j!)k57e!)k!)x.;f!)x!)y57e!)y!)z57e!)z!){.;f!){!*O57e!*O!*^.;f!*^!*_57e!*_!*`57e!*`!*s.;f!*s!*y57e!*y!*}.;f!*}!+O57e!+O!+P57e!+P!+R.;f!+R!+i57e!+i!+j.;f!+j!+q57e!+q!+r.;f!+r!+s57e!+s!+t57e!+t!+u.;f!+u!+v57e!+v!+w57e!+w!+x.;f!+x!+y57e!+y!+z57e!+z!,k.;f!,k!,o57e!,o!,p.;f!,p!,q57e!,q!-U.;f!-U!-X57e!-X!-i.;f!-i!-r57e!-r!-s.;f!-s!-v57e!-v!-w.;f!-w!._57e!._!.`.;f!.`!.g57e!.g!.h.;f!.h!.i57e!.i!.j57e!.j!.k.;f!.k!.p57e!.p!.s.;f!.s!.t57e!.t!/W.;f!/W!/X57e!/X!/h.;f!/h!/i57e!/i!/j57e!/j!0_.;f!0_!0g57e!0g!0i.;f!0i!0j57e!0j!0k57e!0k!0m.;f!0m!1T57e!1T!1U.;f!1U!1]57e!1]!1^.;f!1^!1_57e!1_!1`57e!1`!1a.;f!1a!1f57e!1f!1i.;f!1i!1j57e!1j!2Y.;f!2Y!2Z57e!2Z!2[57e!2[!2].;f!2]!2`57e!2`!2o.;f!2o!2p57e!2p!3R.;f!3R!3S57e!3S!3T.;f!3T!3Z57e!3Z!3^.;f!3^!3a57e!3a!3b.;f!3b!3f57e!3f!3i.;f!3i!3j57e!3j!3k57e!3k!3l.;f!3l!3m57e!3m!3n.;f!3n!3o57e!3o!3p57e!3p!3s.;f!3s!3t57e!3t!3u57e!3u!3x.;f!3x!3{57e!3{!4O.;f!4O!4[57e!4[!4r.;f!4r!4s57e!4s!5y.;f!5y!6R57e!6R!6S.;f!6S!6V57e!6V!6W.;f!6W!6o57e!6o!6p.;f!6p!6z57e!6z!6{.;f!6{!7Q57e!7Q!7T.;f!7T!7U57e!7U!7p.;f!7p!7q57e!7q!7r57e!7r!7x.;f!7x!7y57e!7y!7z57e!7z!8o.;f!8o!8w57e!8w!8x.;f!8x!8{57e!8{!8|.;f!8|!9e57e!9e!9f.;f!9f!9p57e!9p!9q.;f!9q!9v57e!9v!9y.;f!9y!9z57e!9z!:l.;f!:l!:m57e!:m!:n.;f!:n!:o57e!:o!:p57e!:p!;P.;f!;P!;Q57e!;Q!;R57e!;R!;e.;f!;e!;m57e!;m!;n.;f!;n!;q57e!;q!;r.;f!;r!O.;f!>O!>U57e!>U!>Z.;f!>Z!>m57e!>m!>p.;f!>p!?Y57e!?Y!?Z.;f!?Z!?d57e!?d!?e.;f!?e!?f57e!?f!?h.;f!?h!?o57e!?o!@{.;f!@{!A}57e!A}!BO.;f!BO!BP57e!BP!BQ57e!BQ!B^.;f!B^!Be57e!Be!Cq.;f!Cq!Cr57e!Cr!Cs57e!Cs!Ct.;f!Ct!Cu57e!Cu!Cw.;f!Cw!Cx57e!Cx!Cy57e!Cy!Cz.;f!Cz!C{57e!C{!C}.;f!C}!DO57e!DO!DU.;f!DU!DY57e!DY!DZ.;f!DZ!Db57e!Db!Dc.;f!Dc!Df57e!Df!Dg.;f!Dg!Dh57e!Dh!Di.;f!Di!Dj57e!Dj!Dl.;f!Dl!Dm57e!Dm!Dn57e!Dn!Do.;f!Do!Ds57e!Ds!Dt.;f!Dt!Du57e!Du!Dv57e!Dv!EP.;f!EP!EQ57e!EQ!ES.;f!ES!EX57e!EX!EY.;f!EY!EZ57e!EZ!Ep.;f!Ep!Et57e!Et!Ff.;f!Ff!Fg57e!Fg!Gx.;f!Gx!HQ57e!HQ!HR.;f!HR!Hw57e!Hw!Id.;f!Id!Ii57e!Ii!LQ.;f!LQ!L}57e!L}!Mc.;f!Mc!Md57e!Md!Mt.;f!Mt!Mz57e!Mz!NO.;f!NO!NS57e!NS!NV.;f!NV!NW57e!NW!NZ.;f!NZ!N[57e!N[!N]57e!N]!Nd.;f!Nd!Ng57e!Ng!Nk.;f!Nk!Nx57e!Nx# U.;f# U# V57e# V# h.;f# h#!`57e#!`#!a.;f#!a#!b57e#!b#!g.;f#!g#!h57e#!h#!j.;f#!j##g57e##g##h.;f##h#*s57e#*s#*t.;f#*t#*x57e#*x#*z.;f#*z#+R57e#+R#+S.;f#+S#+T57e#+T#+U.;f#+U#+Y57e#+Y#+[.;f#+[#,V57e#,V#,W.;f#,W#,[57e#,[#,^.;f#,^#-P57e#-P#-Q.;f#-Q#-U57e#-U#-W.;f#-W#-_57e#-_#-`.;f#-`#-a57e#-a#-b.;f#-b#-f57e#-f#-h.;f#-h#-w57e#-w#-x.;f#-x#/T57e#/T#/U.;f#/U#/Y57e#/Y#/[.;f#/[#0q57e#0q#1h.;f#1h#1x57e#1x#2Y.;f#2Y#4R57e#4R#4_.;f#4_#Au57e#Au#Aw.;f#Aw#BY57e#BY#BZ.;f#BZ#Bu57e#Bu#Bz.;f#Bz#Di57e#Di#EO.;f#EO#E]57e#E]#E^.;f#E^#Eb57e#Eb#Ep.;f#Ep#FS57e#FS#Fb.;f#Fb#Ft57e#Ft#GS.;f#GS#Ga57e#Ga#Gb.;f#Gb#Ge57e#Ge#Gt.;f#Gt#Hz57e#Hz#Io.;f#Io#Ip57e#Ip#It.;f#It#Iu57e#Iu#K[.;f#K[#MW57e#MW#M`.;f#M`#NZ57e#NZ#N[.;f#N[#N]57e#N]#Nb.;f#Nb$ z57e$ z$!U.;f$!U$!s57e$!s$#x.;f$#x$$h57e$$h$$j.;f$$j$$o57e$$o$$z.;f$$z$%x57e$%x$&_.;f$&_$&f57e$&f$'p.;f$'p$(X57e$(X$(b.;f$(b$)i57e$)i$+_.;f$+_$+`57e$+`$-a.;f$-a$.b57e$.b$.s.;f$.s$.z57e$.z$0T.;f$0T$0s57e$0s$1Q.;f$1Q$1R57e$1R$1S57e$1S$1^.;f$1^$2[57e$2[$2v.;f$2v$3l57e$3l$4g.;f$4g$4j57e$4j$4t.;f$4t$5j57e$5j$7y.;f$7y$7}57e$7}$8O.;f$8O$8S57e$8S$8V.;f$8V$8W57e$8W$8X57e$8X$8b.;f$8b$z57e5>z5>{.;f5>{5>|57e5>|5?P.;f5?P5?Q57e5?Q5?R57e5?R5?T.;f5?T5?Y57e5?Y5?[.;f5?[5?]57e5?]5?^.;f5?^5?_57e5?_5?w.;f5?w5?z57e5?z5?|.;f5?|5@X57e5@X5@`.;f5@`5@c57e5@c5@o.;f5@o5@u57e5@u5@w.;f5@w5@}57e5@}5AP.;f5AP5AV57e5AV5A`.;f5A`5Ag57e5Ag5Ah.;f5Ah5Ao57e5Ao5Dv.;f5Dv5Ek57e5Ek5FY.;f5FY;%S57e;%S;%`.;f;%`;%w57e;%w;%{.;f;%{;'O57e;'O;'S.;f;'S;=`.<[<%l?&r.;f?&r?.p57e?.p?.r.;f?.r?1Q57e?1Q?1x.;f?1x?2P57e?2P?2].;f?2]?2b57e?2b?2g.;f?2g?2h57e?2h?2i.;f?2i?2s57e?2s?2t.;f?2t?3R57e?3R?3S.;f?3S?3X57e?3X?3Y.;f?3Y?3Z57e?3Z?3[.;f?3[?3]57e?3]?3^57e?3^?3_.;f?3_?3`57e?3`?3a57e?3a?3b.;f?3b?5r57e?5r?6e.;f?6e?>`57e?>`?>r.;f?>r?@U57e?@U?@W.;f?@W?A`57e?A`?BY.;f?BY?Bf57e?Bf?EO.;f?EO?ET57e?ET?EU.;f?EU?HR57e?HR?Hw.;f?Hw?Ic57e?Ic?Ii.;f?Ii?JT57e?JT?J`.;f?J`?L]57e?L]?L`.;f?L`?Lf57e?Lf?Lh.;f?Lh?Ln57e?Ln?Lp.;f?Lp?Lv57e?Lv?Lx.;f?Lx?L{57e?L{O.;f_6>l2g!OW|SzQ!kPmPOq!)tqr!2wrs#9kst!2wtu!2wuv!2wvw!2wwx';ixz!)tz{!2w{|!2w|!O!)t!O!P!2w!P!Q!2w!Q![!2w![!a!)t!a!b!2w!b!c!)t!c!}!2w!}#O!)t#O#P!2w#P#R!)t#R#S!2w#S#T)Hy#T#o!2w#o$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!)t#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)t_7E`2g!OW|SyRmPOq!,^qr';irs$@]st';itu';iuv';ivw';iwx';ixz!,^z{';i{|';i|!O!,^!O!P';i!P!Q';i!Q![';i![!a!,^!a!b';i!b!c!,^!c!}';i!}#O!,^#O#P';i#P#R!,^#R#S';i#S#T(BZ#T#o';i#o$p!,^$p$q';i$q${!,^${$|';i$|%Q!,^%Q%R';i%R%W!,^%W%o';i%o%p!,^%p&a';i&a&b!,^&b0`';i0`0d!,^0d0p';i0p1O!,^1O1T';i1T1[!,^1[1]';i1]1^!,^1^1_';i1_4U!,^4U4Z';i4Z4[!,^4[4]';i4]4^';i4^4`!,^4`4d';i4d4l!,^4l4m';i4m4n!,^4n4q';i4q4r!,^4r4s';i4s4t!,^4t5Y';i5Y5Z!,^5Z7Q';i7Q7R!,^7R:S';i:S:[!,^:[=p';i=p=y!,^=y>q';i>q>s!,^>s>t';i>t>{!,^>{?t';i?tA`!,^A`A{';iA{BQ!,^BQBT';iBTCS!,^CSDP';iDPDt!,^DtDu';iDuDv';iDvDw!,^DwGO';iGOGP!,^GPGQ';iGQGa!,^GaGb';iGbGc';iGcGj!,^GjGk';iGkGl';iGlGv!,^GvGy';iGyG{!,^G{G|';iG|H^!,^H^H_';iH_H`!,^H`IO';iIOIm!,^ImKj';iKjKu!,^KuKv';iKvL`!,^L`MR';iMRM[!,^M[M]';iM]M^';iM^Mb!,^MbMc';iMcMh!,^MhNO';iNONS!,^NSNT';iNTN^!,^N^N_';iN_Nb!,^NbNc';iNcNz!,^Nz! e';i! e!#O!,^!#O!#P';i!#P!#Q!,^!#Q!#]';i!#]!%W!,^!%W!&`';i!&`!&c!,^!&c!&d';i!&d!&v!,^!&v!&w';i!&w!'O!,^!'O!'Y';i!'Y!'i!,^!'i!'p';i!'p!'q!,^!'q!'x';i!'x!'}!,^!'}!(V';i!(V!(X!,^!(X!(Y';i!(Y!(Z';i!(Z!(]!,^!(]!(s';i!(s!(t!,^!(t!({';i!({!(|!,^!(|!(}';i!(}!)Q!,^!)Q!)U';i!)U!)X!,^!)X!)Y';i!)Y!)j!,^!)j!)k';i!)k!)x!,^!)x!)y';i!)y!)z';i!)z!){!,^!){!*O';i!*O!*^!,^!*^!*_';i!*_!*`';i!*`!*s!,^!*s!*y';i!*y!*}!,^!*}!+O';i!+O!+P';i!+P!+R!,^!+R!+i';i!+i!+j!,^!+j!+q';i!+q!+r!,^!+r!+s';i!+s!+t';i!+t!+u!,^!+u!+v';i!+v!+w';i!+w!+x!,^!+x!+y';i!+y!+z';i!+z!,k!,^!,k!,o';i!,o!,p!,^!,p!,q';i!,q!-U!,^!-U!-X';i!-X!-i!,^!-i!-r';i!-r!-s!,^!-s!-v';i!-v!-w!,^!-w!._';i!._!.`!,^!.`!.g';i!.g!.h!,^!.h!.i';i!.i!.j';i!.j!.k!,^!.k!.p';i!.p!.s!,^!.s!.t';i!.t!/W!,^!/W!/X';i!/X!/h!,^!/h!/i';i!/i!/j';i!/j!0_!,^!0_!0g';i!0g!0i!,^!0i!0j';i!0j!0k';i!0k!0m!,^!0m!1T';i!1T!1U!,^!1U!1]';i!1]!1^!,^!1^!1_';i!1_!1`';i!1`!1a!,^!1a!1f';i!1f!1i!,^!1i!1j';i!1j!2Y!,^!2Y!2Z';i!2Z!2[';i!2[!2]!,^!2]!2`';i!2`!2o!,^!2o!2p';i!2p!3R!,^!3R!3S';i!3S!3T!,^!3T!3Z';i!3Z!3^!,^!3^!3a';i!3a!3b!,^!3b!3f';i!3f!3i!,^!3i!3j';i!3j!3k';i!3k!3l!,^!3l!3m';i!3m!3n!,^!3n!3o';i!3o!3p';i!3p!3s!,^!3s!3t';i!3t!3u';i!3u!3x!,^!3x!3{';i!3{!4O!,^!4O!4[';i!4[!4r!,^!4r!4s';i!4s!5y!,^!5y!6R';i!6R!6S!,^!6S!6V';i!6V!6W!,^!6W!6o';i!6o!6p!,^!6p!6z';i!6z!6{!,^!6{!7Q';i!7Q!7T!,^!7T!7U';i!7U!7p!,^!7p!7q';i!7q!7r';i!7r!7x!,^!7x!7y';i!7y!7z';i!7z!8o!,^!8o!8w';i!8w!8x!,^!8x!8{';i!8{!8|!,^!8|!9e';i!9e!9f!,^!9f!9p';i!9p!9q!,^!9q!9v';i!9v!9y!,^!9y!9z';i!9z!:l!,^!:l!:m';i!:m!:n!,^!:n!:o';i!:o!:p';i!:p!;P!,^!;P!;Q';i!;Q!;R';i!;R!;e!,^!;e!;m';i!;m!;n!,^!;n!;q';i!;q!;r!,^!;r!O!,^!>O!>U';i!>U!>Z!,^!>Z!>m';i!>m!>p!,^!>p!?Y';i!?Y!?Z!,^!?Z!?d';i!?d!?e!,^!?e!?f';i!?f!?h!,^!?h!?o';i!?o!@{!,^!@{!A}';i!A}!BO!,^!BO!BP';i!BP!BQ';i!BQ!B^!,^!B^!Be';i!Be!Cq!,^!Cq!Cr';i!Cr!Cs';i!Cs!Ct!,^!Ct!Cu';i!Cu!Cw!,^!Cw!Cx';i!Cx!Cy';i!Cy!Cz!,^!Cz!C{';i!C{!C}!,^!C}!DO';i!DO!DU!,^!DU!DY';i!DY!DZ!,^!DZ!Db';i!Db!Dc!,^!Dc!Df';i!Df!Dg!,^!Dg!Dh';i!Dh!Di!,^!Di!Dj';i!Dj!Dl!,^!Dl!Dm';i!Dm!Dn';i!Dn!Do!,^!Do!Ds';i!Ds!Dt!,^!Dt!Du';i!Du!Dv';i!Dv!EP!,^!EP!EQ';i!EQ!ES!,^!ES!EX';i!EX!EY!,^!EY!EZ';i!EZ!Ep!,^!Ep!Et';i!Et!Ff!,^!Ff!Fg';i!Fg!Gx!,^!Gx!HQ';i!HQ!HR!,^!HR!Hw';i!Hw!Id!,^!Id!Ii';i!Ii!LQ!,^!LQ!L}';i!L}!Mc!,^!Mc!Md';i!Md!Mt!,^!Mt!Mz';i!Mz!NO!,^!NO!NS';i!NS!NV!,^!NV!NW';i!NW!NZ!,^!NZ!N[';i!N[!N]';i!N]!Nd!,^!Nd!Ng';i!Ng!Nk!,^!Nk!Nx';i!Nx# U!,^# U# V';i# V# h!,^# h#!`';i#!`#!a!,^#!a#!b';i#!b#!g!,^#!g#!h';i#!h#!j!,^#!j##g';i##g##h!,^##h#*s';i#*s#*t!,^#*t#*x';i#*x#*z!,^#*z#+R';i#+R#+S!,^#+S#+T';i#+T#+U!,^#+U#+Y';i#+Y#+[!,^#+[#,V';i#,V#,W!,^#,W#,[';i#,[#,^!,^#,^#-P';i#-P#-Q!,^#-Q#-U';i#-U#-W!,^#-W#-_';i#-_#-`!,^#-`#-a';i#-a#-b!,^#-b#-f';i#-f#-h!,^#-h#-w';i#-w#-x!,^#-x#/T';i#/T#/U!,^#/U#/Y';i#/Y#/[!,^#/[#0q';i#0q#1h!,^#1h#1x';i#1x#2Y!,^#2Y#4R';i#4R#4_!,^#4_#Au';i#Au#Aw!,^#Aw#BY';i#BY#BZ!,^#BZ#Bu';i#Bu#Bz!,^#Bz#Di';i#Di#EO!,^#EO#E]';i#E]#E^!,^#E^#Eb';i#Eb#Ep!,^#Ep#FS';i#FS#Fb!,^#Fb#Ft';i#Ft#GS!,^#GS#Ga';i#Ga#Gb!,^#Gb#Ge';i#Ge#Gt!,^#Gt#Hz';i#Hz#Io!,^#Io#Ip';i#Ip#It!,^#It#Iu';i#Iu#K[!,^#K[#MW';i#MW#M`!,^#M`#NZ';i#NZ#N[!,^#N[#N]';i#N]#Nb!,^#Nb$ z';i$ z$!U!,^$!U$!s';i$!s$#x!,^$#x$$h';i$$h$$j!,^$$j$$o';i$$o$$z!,^$$z$%x';i$%x$&_!,^$&_$&f';i$&f$'p!,^$'p$(X';i$(X$(b!,^$(b$)i';i$)i$+_!,^$+_$+`';i$+`$-a!,^$-a$.b';i$.b$.s!,^$.s$.z';i$.z$0T!,^$0T$0s';i$0s$1Q!,^$1Q$1R';i$1R$1S';i$1S$1^!,^$1^$2[';i$2[$2v!,^$2v$3l';i$3l$4g!,^$4g$4j';i$4j$4t!,^$4t$5j';i$5j$7y!,^$7y$7}';i$7}$8O!,^$8O$8S';i$8S$8V!,^$8V$8W';i$8W$8X';i$8X$8b!,^$8b$z';i5>z5>{!,^5>{5>|';i5>|5?P!,^5?P5?Q';i5?Q5?R';i5?R5?T!,^5?T5?Y';i5?Y5?[!,^5?[5?]';i5?]5?^!,^5?^5?_';i5?_5?w!,^5?w5?z';i5?z5?|!,^5?|5@X';i5@X5@`!,^5@`5@c';i5@c5@o!,^5@o5@u';i5@u5@w!,^5@w5@}';i5@}5AP!,^5AP5AV';i5AV5A`!,^5A`5Ag';i5Ag5Ah!,^5Ah5Ao';i5Ao5Dv!,^5Dv5Ek';i5Ek5FY!,^5FY;%S';i;%S;%`!,^;%`;%w';i;%w;%{!,^;%{;'O';i;'O;'S!,^;'S;=`!-c<%l?&r!,^?&r?.p';i?.p?.r!,^?.r?1Q';i?1Q?1x!,^?1x?2P';i?2P?2]!,^?2]?2b';i?2b?2g!,^?2g?2h';i?2h?2i!,^?2i?2s';i?2s?2t!,^?2t?3R';i?3R?3S!,^?3S?3X';i?3X?3Y!,^?3Y?3Z';i?3Z?3[!,^?3[?3]';i?3]?3^';i?3^?3_!,^?3_?3`';i?3`?3a';i?3a?3b!,^?3b?5r';i?5r?6e!,^?6e?>`';i?>`?>r!,^?>r?@U';i?@U?@W!,^?@W?A`';i?A`?BY!,^?BY?Bf';i?Bf?EO!,^?EO?ET';i?ET?EU!,^?EU?HR';i?HR?Hw!,^?Hw?Ic';i?Ic?Ii!,^?Ii?JT';i?JT?J`!,^?J`?L]';i?L]?L`!,^?L`?Lf';i?Lf?Lh!,^?Lh?Ln';i?Ln?Lp!,^?Lp?Lv';i?Lv?Lx!,^?Lx?L{';i?L{O!,^_8LS]wP!OW|SzQOr!)trs!*jsw!)twx!,^xy8L{yz8Nnz!}!)t!}#O9 f#O#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_8MWY!ZP!OW|SzQOr!)trs!*jsw!)twx!,^xy8Mvy#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_8NRX!bP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_8NyX!vP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9 qX!TP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t!a9!i]!PP!OW|SzQOr!)trs!*jsw!)twx!,^xy!)tyz9#bz#P!)t#P#Q9%W#Q#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t!`9#mZ![`!OW|SzQOr!)trs!*jsw!)twx!,^xy!)tyz9$`z#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t!O9$kX!cp!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)tn9%cX!Y`!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9&Z[!OW|SzQ!fPOr!)trs!*jsw!)twx!,^x}!)t}!O9'P!O!P9+}!P#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9'^a!OW|SzQ!fP]POr!)trs!*jsw!)twx!,^x}!)t}!O9(c!O!`!)t!`!a9+V!a#S!)t#S#T!-i#T#c!)t#c#d9+V#d#l!)t#l#m9+V#m;'S!)t;'S;=`!.]<%lO!)t_9(pa!OW|SzQ!fP!iPOr!)trs!*jsw!)twx!,^x}!)t}!O9)u!O!`!)t!`!a9+V!a#S!)t#S#T!-i#T#c!)t#c#d9+V#d#l!)t#l#m9+V#m;'S!)t;'S;=`!.]<%lO!)t_9*Qa!OW|SzQ!fPOr!)trs!*jsw!)twx!,^x}!)t}!O9)u!O!`!)t!`!a9+V!a#S!)t#S#T!-i#T#c!)t#c#d9+V#d#l!)t#l#m9+V#m;'S!)t;'S;=`!.]<%lO!)t_9+bX!OW|SzQ!fPOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9,Y[!OW|SzQ!hPOr!)trs!*jsw!)twx!,^x}!)t}!O9-O!O!P9+}!P#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9-Z_!OW|SzQ!hPOr!)trs!*jsw!)twx!,^x!`!)t!`!a9.Y!a#S!)t#S#T!-i#T#c!)t#c#d9.Y#d#l!)t#l#m9.Y#m;'S!)t;'S;=`!.]<%lO!)t_9.eX!OW|SzQ!hPOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_9/_2h!OW|SzQ!hPmPOq!)tqr!2wrs#9kst!2wtu!2wuv!2wvw!2wwx';ixz!)tz{!2w{|!2w|}!)t}!O9-O!O!P9/Q!P!Q!2w!Q![!2w![!a!)t!a!b!2w!b!c!)t!c!}!2w!}#O!)t#O#P!2w#P#R!)t#R#S!2w#S#T)Hy#T#o!2w#o$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!)t#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)t_:6UZ!OW|SzQ`POr!)trs!*jsw!)twx!,^x![!)t![!]:6w!]#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:7QZ!OW|SzQOr!)trs!*jsw!)twx!,^x![!)t![!]:7s!]#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:8OX!OW|SzQaPOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:8vX!OW|SzQ!{POr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:9l]!OW|SzQOr!)trs!*jsw!)twx!,^x}!)t}!O::e!O!_!)t!_!`:=l!`#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_::n[!OW|SzQOr!)trs!*jsw!)twx!,^x}!)t}!O:;d!O!P9+}!P#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:;oa!OW|SzQ!fPOr!)trs!*jsw!)twx!,^x}!)t}!O9)u!O!`!)t!`!a:h!`#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:>s`!OW|SzQ!gPOr!)trs!*jsw!)twx!,^x!_!)t!_!`:?u!`!a:Az!a#S!)t#S#T!-i#T#c!)t#c#d:Az#d#l!)t#l#m:Az#m;'S!)t;'S;=`!.]<%lO!)t_:@Q`!OW|SzQ!gPOr!)trs!*jsw!)twx!,^x!_!)t!_!`:?u!`!a:AS!a#S!)t#S#T!-i#T#c!)t#c#d:AS#d#l!)t#l#m:AS#m;'S!)t;'S;=`!.]<%lO!)t_:A_X!OW|SzQ!gPOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:BVX!OW|SzQ!ePOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:B}Z!OW|SzQ!gPOr!)trs!*jsw!)twx!,^x!_!)t!_!`:Cp!`#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:C}`!OW|SzQ!gP^POr!)trs!*jsw!)twx!,^x!_!)t!_!`:EP!`!a:AS!a#S!)t#S#T!-i#T#c!)t#c#d:AS#d#l!)t#l#m:AS#m;'S!)t;'S;=`!.]<%lO!)t_:E^`!OW|SzQ!gP!iPOr!)trs!*jsw!)twx!,^x!_!)t!_!`:?u!`!a:AS!a#S!)t#S#T!-i#T#c!)t#c#d:AS#d#l!)t#l#m:AS#m;'S!)t;'S;=`!.]<%lO!)t_:FkX!]P!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:Gc[!QP!OW|SzQOr!)trs!*jsw!)twx!,^xy:HXy!}!)t!}#O:IP#O#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:HdX!VP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:I[X!WP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)to:JS]!RP!OW|SzQOr!)trs!*jsw!)twx!,^xy!)tyz:J{z#P!)t#P#Q:Ks#Q#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)tn:KWX!U`!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)tn:LOX!X`!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_:Lv2g|SzQ}XmPOq!-iqr)Hyrs&4yst)Hytu)Hyuv)Hyvw)Hywx(BZxz!-iz{)Hy{|)Hy|!O!-i!O!P)Hy!P!Q)Hy!Q![)Hy![!a!-i!a!b)Hy!b!c!-i!c!})Hy!}#O!-i#O#P)Hy#P#R!-i#R#S)Hy#S#T)Hy#T#o)Hy#o$p!-i$p$q)Hy$q${!-i${$|)Hy$|%Q!-i%Q%R)Hy%R%W!-i%W%o)Hy%o%p!-i%p&a)Hy&a&b!-i&b0`)Hy0`0d!-i0d0p)Hy0p1O!-i1O1T)Hy1T1[!-i1[1])Hy1]1^!-i1^1_)Hy1_4U!-i4U4Z)Hy4Z4[!-i4[4])Hy4]4^)Hy4^4`!-i4`4d)Hy4d4l!-i4l4m)Hy4m4n!-i4n4q)Hy4q4r!-i4r4s)Hy4s4t!-i4t5Y)Hy5Y5Z!-i5Z7Q)Hy7Q7R!-i7R:S)Hy:S:[!-i:[=p)Hy=p=y!-i=y>q)Hy>q>s!-i>s>t)Hy>t>{!-i>{?t)Hy?tA`!-iA`A{)HyA{BQ!-iBQBT)HyBTCS!-iCSDP)HyDPDt!-iDtDu)HyDuDv)HyDvDw!-iDwGO)HyGOGP!-iGPGQ)HyGQGa!-iGaGb)HyGbGc)HyGcGj!-iGjGk)HyGkGl)HyGlGv!-iGvGy)HyGyG{!-iG{G|)HyG|H^!-iH^H_)HyH_H`!-iH`IO)HyIOIm!-iImKj)HyKjKu!-iKuKv)HyKvL`!-iL`MR)HyMRM[!-iM[M])HyM]M^)HyM^Mb!-iMbMc)HyMcMh!-iMhNO)HyNONS!-iNSNT)HyNTN^!-iN^N_)HyN_Nb!-iNbNc)HyNcNz!-iNz! e)Hy! e!#O!-i!#O!#P)Hy!#P!#Q!-i!#Q!#])Hy!#]!%W!-i!%W!&`)Hy!&`!&c!-i!&c!&d)Hy!&d!&v!-i!&v!&w)Hy!&w!'O!-i!'O!'Y)Hy!'Y!'i!-i!'i!'p)Hy!'p!'q!-i!'q!'x)Hy!'x!'}!-i!'}!(V)Hy!(V!(X!-i!(X!(Y)Hy!(Y!(Z)Hy!(Z!(]!-i!(]!(s)Hy!(s!(t!-i!(t!({)Hy!({!(|!-i!(|!(})Hy!(}!)Q!-i!)Q!)U)Hy!)U!)X!-i!)X!)Y)Hy!)Y!)j!-i!)j!)k)Hy!)k!)x!-i!)x!)y)Hy!)y!)z)Hy!)z!){!-i!){!*O)Hy!*O!*^!-i!*^!*_)Hy!*_!*`)Hy!*`!*s!-i!*s!*y)Hy!*y!*}!-i!*}!+O)Hy!+O!+P)Hy!+P!+R!-i!+R!+i)Hy!+i!+j!-i!+j!+q)Hy!+q!+r!-i!+r!+s)Hy!+s!+t)Hy!+t!+u!-i!+u!+v)Hy!+v!+w)Hy!+w!+x!-i!+x!+y)Hy!+y!+z)Hy!+z!,k!-i!,k!,o)Hy!,o!,p!-i!,p!,q)Hy!,q!-U!-i!-U!-X)Hy!-X!-i!-i!-i!-r)Hy!-r!-s!-i!-s!-v)Hy!-v!-w!-i!-w!._)Hy!._!.`!-i!.`!.g)Hy!.g!.h!-i!.h!.i)Hy!.i!.j)Hy!.j!.k!-i!.k!.p)Hy!.p!.s!-i!.s!.t)Hy!.t!/W!-i!/W!/X)Hy!/X!/h!-i!/h!/i)Hy!/i!/j)Hy!/j!0_!-i!0_!0g)Hy!0g!0i!-i!0i!0j)Hy!0j!0k)Hy!0k!0m!-i!0m!1T)Hy!1T!1U!-i!1U!1])Hy!1]!1^!-i!1^!1_)Hy!1_!1`)Hy!1`!1a!-i!1a!1f)Hy!1f!1i!-i!1i!1j)Hy!1j!2Y!-i!2Y!2Z)Hy!2Z!2[)Hy!2[!2]!-i!2]!2`)Hy!2`!2o!-i!2o!2p)Hy!2p!3R!-i!3R!3S)Hy!3S!3T!-i!3T!3Z)Hy!3Z!3^!-i!3^!3a)Hy!3a!3b!-i!3b!3f)Hy!3f!3i!-i!3i!3j)Hy!3j!3k)Hy!3k!3l!-i!3l!3m)Hy!3m!3n!-i!3n!3o)Hy!3o!3p)Hy!3p!3s!-i!3s!3t)Hy!3t!3u)Hy!3u!3x!-i!3x!3{)Hy!3{!4O!-i!4O!4[)Hy!4[!4r!-i!4r!4s)Hy!4s!5y!-i!5y!6R)Hy!6R!6S!-i!6S!6V)Hy!6V!6W!-i!6W!6o)Hy!6o!6p!-i!6p!6z)Hy!6z!6{!-i!6{!7Q)Hy!7Q!7T!-i!7T!7U)Hy!7U!7p!-i!7p!7q)Hy!7q!7r)Hy!7r!7x!-i!7x!7y)Hy!7y!7z)Hy!7z!8o!-i!8o!8w)Hy!8w!8x!-i!8x!8{)Hy!8{!8|!-i!8|!9e)Hy!9e!9f!-i!9f!9p)Hy!9p!9q!-i!9q!9v)Hy!9v!9y!-i!9y!9z)Hy!9z!:l!-i!:l!:m)Hy!:m!:n!-i!:n!:o)Hy!:o!:p)Hy!:p!;P!-i!;P!;Q)Hy!;Q!;R)Hy!;R!;e!-i!;e!;m)Hy!;m!;n!-i!;n!;q)Hy!;q!;r!-i!;r!O!-i!>O!>U)Hy!>U!>Z!-i!>Z!>m)Hy!>m!>p!-i!>p!?Y)Hy!?Y!?Z!-i!?Z!?d)Hy!?d!?e!-i!?e!?f)Hy!?f!?h!-i!?h!?o)Hy!?o!@{!-i!@{!A})Hy!A}!BO!-i!BO!BP)Hy!BP!BQ)Hy!BQ!B^!-i!B^!Be)Hy!Be!Cq!-i!Cq!Cr)Hy!Cr!Cs)Hy!Cs!Ct!-i!Ct!Cu)Hy!Cu!Cw!-i!Cw!Cx)Hy!Cx!Cy)Hy!Cy!Cz!-i!Cz!C{)Hy!C{!C}!-i!C}!DO)Hy!DO!DU!-i!DU!DY)Hy!DY!DZ!-i!DZ!Db)Hy!Db!Dc!-i!Dc!Df)Hy!Df!Dg!-i!Dg!Dh)Hy!Dh!Di!-i!Di!Dj)Hy!Dj!Dl!-i!Dl!Dm)Hy!Dm!Dn)Hy!Dn!Do!-i!Do!Ds)Hy!Ds!Dt!-i!Dt!Du)Hy!Du!Dv)Hy!Dv!EP!-i!EP!EQ)Hy!EQ!ES!-i!ES!EX)Hy!EX!EY!-i!EY!EZ)Hy!EZ!Ep!-i!Ep!Et)Hy!Et!Ff!-i!Ff!Fg)Hy!Fg!Gx!-i!Gx!HQ)Hy!HQ!HR!-i!HR!Hw)Hy!Hw!Id!-i!Id!Ii)Hy!Ii!LQ!-i!LQ!L})Hy!L}!Mc!-i!Mc!Md)Hy!Md!Mt!-i!Mt!Mz)Hy!Mz!NO!-i!NO!NS)Hy!NS!NV!-i!NV!NW)Hy!NW!NZ!-i!NZ!N[)Hy!N[!N])Hy!N]!Nd!-i!Nd!Ng)Hy!Ng!Nk!-i!Nk!Nx)Hy!Nx# U!-i# U# V)Hy# V# h!-i# h#!`)Hy#!`#!a!-i#!a#!b)Hy#!b#!g!-i#!g#!h)Hy#!h#!j!-i#!j##g)Hy##g##h!-i##h#*s)Hy#*s#*t!-i#*t#*x)Hy#*x#*z!-i#*z#+R)Hy#+R#+S!-i#+S#+T)Hy#+T#+U!-i#+U#+Y)Hy#+Y#+[!-i#+[#,V)Hy#,V#,W!-i#,W#,[)Hy#,[#,^!-i#,^#-P)Hy#-P#-Q!-i#-Q#-U)Hy#-U#-W!-i#-W#-_)Hy#-_#-`!-i#-`#-a)Hy#-a#-b!-i#-b#-f)Hy#-f#-h!-i#-h#-w)Hy#-w#-x!-i#-x#/T)Hy#/T#/U!-i#/U#/Y)Hy#/Y#/[!-i#/[#0q)Hy#0q#1h!-i#1h#1x)Hy#1x#2Y!-i#2Y#4R)Hy#4R#4_!-i#4_#Au)Hy#Au#Aw!-i#Aw#BY)Hy#BY#BZ!-i#BZ#Bu)Hy#Bu#Bz!-i#Bz#Di)Hy#Di#EO!-i#EO#E])Hy#E]#E^!-i#E^#Eb)Hy#Eb#Ep!-i#Ep#FS)Hy#FS#Fb!-i#Fb#Ft)Hy#Ft#GS!-i#GS#Ga)Hy#Ga#Gb!-i#Gb#Ge)Hy#Ge#Gt!-i#Gt#Hz)Hy#Hz#Io!-i#Io#Ip)Hy#Ip#It!-i#It#Iu)Hy#Iu#K[!-i#K[#MW)Hy#MW#M`!-i#M`#NZ)Hy#NZ#N[!-i#N[#N])Hy#N]#Nb!-i#Nb$ z)Hy$ z$!U!-i$!U$!s)Hy$!s$#x!-i$#x$$h)Hy$$h$$j!-i$$j$$o)Hy$$o$$z!-i$$z$%x)Hy$%x$&_!-i$&_$&f)Hy$&f$'p!-i$'p$(X)Hy$(X$(b!-i$(b$)i)Hy$)i$+_!-i$+_$+`)Hy$+`$-a!-i$-a$.b)Hy$.b$.s!-i$.s$.z)Hy$.z$0T!-i$0T$0s)Hy$0s$1Q!-i$1Q$1R)Hy$1R$1S)Hy$1S$1^!-i$1^$2[)Hy$2[$2v!-i$2v$3l)Hy$3l$4g!-i$4g$4j)Hy$4j$4t!-i$4t$5j)Hy$5j$7y!-i$7y$7})Hy$7}$8O!-i$8O$8S)Hy$8S$8V!-i$8V$8W)Hy$8W$8X)Hy$8X$8b!-i$8b$z)Hy5>z5>{!-i5>{5>|)Hy5>|5?P!-i5?P5?Q)Hy5?Q5?R)Hy5?R5?T!-i5?T5?Y)Hy5?Y5?[!-i5?[5?])Hy5?]5?^!-i5?^5?_)Hy5?_5?w!-i5?w5?z)Hy5?z5?|!-i5?|5@X)Hy5@X5@`!-i5@`5@c)Hy5@c5@o!-i5@o5@u)Hy5@u5@w!-i5@w5@})Hy5@}5AP!-i5AP5AV)Hy5AV5A`!-i5A`5Ag)Hy5Ag5Ah!-i5Ah5Ao)Hy5Ao5Dv!-i5Dv5Ek)Hy5Ek5FY!-i5FY;%S)Hy;%S;%`!-i;%`;%w)Hy;%w;%{!-i;%{;'O)Hy;'O;'S!-i;'S;=`!.V<%l?&r!-i?&r?.p)Hy?.p?.r!-i?.r?1Q)Hy?1Q?1x!-i?1x?2P)Hy?2P?2]!-i?2]?2b)Hy?2b?2g!-i?2g?2h)Hy?2h?2i!-i?2i?2s)Hy?2s?2t!-i?2t?3R)Hy?3R?3S!-i?3S?3X)Hy?3X?3Y!-i?3Y?3Z)Hy?3Z?3[!-i?3[?3])Hy?3]?3^)Hy?3^?3_!-i?3_?3`)Hy?3`?3a)Hy?3a?3b!-i?3b?5r)Hy?5r?6e!-i?6e?>`)Hy?>`?>r!-i?>r?@U)Hy?@U?@W!-i?@W?A`)Hy?A`?BY!-i?BY?Bf)Hy?Bf?EO!-i?EO?ET)Hy?ET?EU!-i?EU?HR)Hy?HR?Hw!-i?Hw?Ic)Hy?Ic?Ii!-i?Ii?JT)Hy?JT?J`!-i?J`?L])Hy?L]?L`!-i?L`?Lf)Hy?Lf?Lh!-i?Lh?Ln)Hy?Ln?Lp!-i?Lp?Lv)Hy?Lv?Lx!-i?Lx?L{)Hy?L{O!-i_<%j2j!OW|SzQmPOq!)tqr!2wrs#9kst!2wtu!2wuv!2wvw!2wwx';ixz!)tz{!2w{|!2w|}!)t}!O::e!O!P!2w!P!Q!2w!Q![!2w![!_!)t!_!`:=l!`!a!)t!a!b!2w!b!c!)t!c!}!2w!}#O!)t#O#P!2w#P#R!)t#R#S!2w#S#T)Hy#T#o!2w#o$p!)t$p$q!2w$q${!)t${$|!2w$|%Q!)t%Q%R!2w%R%W!)t%W%o!2w%o%p!)t%p&a!2w&a&b!)t&b0`!2w0`0d!)t0d0p!2w0p1O!)t1O1T!2w1T1[!)t1[1]!2w1]1^!)t1^1_!2w1_4U!)t4U4Z!2w4Z4[!)t4[4]!2w4]4^!2w4^4`!)t4`4d!2w4d4l!)t4l4m!2w4m4n!)t4n4q!2w4q4r!)t4r4s!2w4s4t!)t4t5Y!2w5Y5Z!)t5Z7Q!2w7Q7R!)t7R:S!2w:S:[!)t:[=p!2w=p=y!)t=y>q!2w>q>s!)t>s>t!2w>t>{!)t>{?t!2w?tA`!)tA`A{!2wA{BQ!)tBQBT!2wBTCS!)tCSDP!2wDPDt!)tDtDu!2wDuDv!2wDvDw!)tDwGO!2wGOGP!)tGPGQ!2wGQGa!)tGaGb!2wGbGc!2wGcGj!)tGjGk!2wGkGl!2wGlGv!)tGvGy!2wGyG{!)tG{G|!2wG|H^!)tH^H_!2wH_H`!)tH`IO!2wIOIm!)tImKj!2wKjKu!)tKuKv!2wKvL`!)tL`MR!2wMRM[!)tM[M]!2wM]M^!2wM^Mb!)tMbMc!2wMcMh!)tMhNO!2wNONS!)tNSNT!2wNTN^!)tN^N_!2wN_Nb!)tNbNc!2wNcNz!)tNz! e!2w! e!#O!)t!#O!#P!2w!#P!#Q!)t!#Q!#]!2w!#]!%W!)t!%W!&`!2w!&`!&c!)t!&c!&d!2w!&d!&v!)t!&v!&w!2w!&w!'O!)t!'O!'Y!2w!'Y!'i!)t!'i!'p!2w!'p!'q!)t!'q!'x!2w!'x!'}!)t!'}!(V!2w!(V!(X!)t!(X!(Y!2w!(Y!(Z!2w!(Z!(]!)t!(]!(s!2w!(s!(t!)t!(t!({!2w!({!(|!)t!(|!(}!2w!(}!)Q!)t!)Q!)U!2w!)U!)X!)t!)X!)Y!2w!)Y!)j!)t!)j!)k!2w!)k!)x!)t!)x!)y!2w!)y!)z!2w!)z!){!)t!){!*O!2w!*O!*^!)t!*^!*_!2w!*_!*`!2w!*`!*s!)t!*s!*y!2w!*y!*}!)t!*}!+O!2w!+O!+P!2w!+P!+R!)t!+R!+i!2w!+i!+j!)t!+j!+q!2w!+q!+r!)t!+r!+s!2w!+s!+t!2w!+t!+u!)t!+u!+v!2w!+v!+w!2w!+w!+x!)t!+x!+y!2w!+y!+z!2w!+z!,k!)t!,k!,o!2w!,o!,p!)t!,p!,q!2w!,q!-U!)t!-U!-X!2w!-X!-i!)t!-i!-r!2w!-r!-s!)t!-s!-v!2w!-v!-w!)t!-w!._!2w!._!.`!)t!.`!.g!2w!.g!.h!)t!.h!.i!2w!.i!.j!2w!.j!.k!)t!.k!.p!2w!.p!.s!)t!.s!.t!2w!.t!/W!)t!/W!/X!2w!/X!/h!)t!/h!/i!2w!/i!/j!2w!/j!0_!)t!0_!0g!2w!0g!0i!)t!0i!0j!2w!0j!0k!2w!0k!0m!)t!0m!1T!2w!1T!1U!)t!1U!1]!2w!1]!1^!)t!1^!1_!2w!1_!1`!2w!1`!1a!)t!1a!1f!2w!1f!1i!)t!1i!1j!2w!1j!2Y!)t!2Y!2Z!2w!2Z!2[!2w!2[!2]!)t!2]!2`!2w!2`!2o!)t!2o!2p!2w!2p!3R!)t!3R!3S!2w!3S!3T!)t!3T!3Z!2w!3Z!3^!)t!3^!3a!2w!3a!3b!)t!3b!3f!2w!3f!3i!)t!3i!3j!2w!3j!3k!2w!3k!3l!)t!3l!3m!2w!3m!3n!)t!3n!3o!2w!3o!3p!2w!3p!3s!)t!3s!3t!2w!3t!3u!2w!3u!3x!)t!3x!3{!2w!3{!4O!)t!4O!4[!2w!4[!4r!)t!4r!4s!2w!4s!5y!)t!5y!6R!2w!6R!6S!)t!6S!6V!2w!6V!6W!)t!6W!6o!2w!6o!6p!)t!6p!6z!2w!6z!6{!)t!6{!7Q!2w!7Q!7T!)t!7T!7U!2w!7U!7p!)t!7p!7q!2w!7q!7r!2w!7r!7x!)t!7x!7y!2w!7y!7z!2w!7z!8o!)t!8o!8w!2w!8w!8x!)t!8x!8{!2w!8{!8|!)t!8|!9e!2w!9e!9f!)t!9f!9p!2w!9p!9q!)t!9q!9v!2w!9v!9y!)t!9y!9z!2w!9z!:l!)t!:l!:m!2w!:m!:n!)t!:n!:o!2w!:o!:p!2w!:p!;P!)t!;P!;Q!2w!;Q!;R!2w!;R!;e!)t!;e!;m!2w!;m!;n!)t!;n!;q!2w!;q!;r!)t!;r!O!)t!>O!>U!2w!>U!>Z!)t!>Z!>m!2w!>m!>p!)t!>p!?Y!2w!?Y!?Z!)t!?Z!?d!2w!?d!?e!)t!?e!?f!2w!?f!?h!)t!?h!?o!2w!?o!@{!)t!@{!A}!2w!A}!BO!)t!BO!BP!2w!BP!BQ!2w!BQ!B^!)t!B^!Be!2w!Be!Cq!)t!Cq!Cr!2w!Cr!Cs!2w!Cs!Ct!)t!Ct!Cu!2w!Cu!Cw!)t!Cw!Cx!2w!Cx!Cy!2w!Cy!Cz!)t!Cz!C{!2w!C{!C}!)t!C}!DO!2w!DO!DU!)t!DU!DY!2w!DY!DZ!)t!DZ!Db!2w!Db!Dc!)t!Dc!Df!2w!Df!Dg!)t!Dg!Dh!2w!Dh!Di!)t!Di!Dj!2w!Dj!Dl!)t!Dl!Dm!2w!Dm!Dn!2w!Dn!Do!)t!Do!Ds!2w!Ds!Dt!)t!Dt!Du!2w!Du!Dv!2w!Dv!EP!)t!EP!EQ!2w!EQ!ES!)t!ES!EX!2w!EX!EY!)t!EY!EZ!2w!EZ!Ep!)t!Ep!Et!2w!Et!Ff!)t!Ff!Fg!2w!Fg!Gx!)t!Gx!HQ!2w!HQ!HR!)t!HR!Hw!2w!Hw!Id!)t!Id!Ii!2w!Ii!LQ!)t!LQ!L}!2w!L}!Mc!)t!Mc!Md!2w!Md!Mt!)t!Mt!Mz!2w!Mz!NO!)t!NO!NS!2w!NS!NV!)t!NV!NW!2w!NW!NZ!)t!NZ!N[!2w!N[!N]!2w!N]!Nd!)t!Nd!Ng!2w!Ng!Nk!)t!Nk!Nx!2w!Nx# U!)t# U# V!2w# V# h!)t# h#!`!2w#!`#!a!)t#!a#!b!2w#!b#!g!)t#!g#!h!2w#!h#!j!)t#!j##g!2w##g##h!)t##h#*s!2w#*s#*t!)t#*t#*x!2w#*x#*z!)t#*z#+R!2w#+R#+S!)t#+S#+T!2w#+T#+U!)t#+U#+Y!2w#+Y#+[!)t#+[#,V!2w#,V#,W!)t#,W#,[!2w#,[#,^!)t#,^#-P!2w#-P#-Q!)t#-Q#-U!2w#-U#-W!)t#-W#-_!2w#-_#-`!)t#-`#-a!2w#-a#-b!)t#-b#-f!2w#-f#-h!)t#-h#-w!2w#-w#-x!)t#-x#/T!2w#/T#/U!)t#/U#/Y!2w#/Y#/[!)t#/[#0q!2w#0q#1h!)t#1h#1x!2w#1x#2Y!)t#2Y#4R!2w#4R#4_!)t#4_#Au!2w#Au#Aw!)t#Aw#BY!2w#BY#BZ!)t#BZ#Bu!2w#Bu#Bz!)t#Bz#Di!2w#Di#EO!)t#EO#E]!2w#E]#E^!)t#E^#Eb!2w#Eb#Ep!)t#Ep#FS!2w#FS#Fb!)t#Fb#Ft!2w#Ft#GS!)t#GS#Ga!2w#Ga#Gb!)t#Gb#Ge!2w#Ge#Gt!)t#Gt#Hz!2w#Hz#Io!)t#Io#Ip!2w#Ip#It!)t#It#Iu!2w#Iu#K[!)t#K[#MW!2w#MW#M`!)t#M`#NZ!2w#NZ#N[!)t#N[#N]!2w#N]#Nb!)t#Nb$ z!2w$ z$!U!)t$!U$!s!2w$!s$#x!)t$#x$$h!2w$$h$$j!)t$$j$$o!2w$$o$$z!)t$$z$%x!2w$%x$&_!)t$&_$&f!2w$&f$'p!)t$'p$(X!2w$(X$(b!)t$(b$)i!2w$)i$+_!)t$+_$+`!2w$+`$-a!)t$-a$.b!2w$.b$.s!)t$.s$.z!2w$.z$0T!)t$0T$0s!2w$0s$1Q!)t$1Q$1R!2w$1R$1S!2w$1S$1^!)t$1^$2[!2w$2[$2v!)t$2v$3l!2w$3l$4g!)t$4g$4j!2w$4j$4t!)t$4t$5j!2w$5j$7y!)t$7y$7}!2w$7}$8O!)t$8O$8S!2w$8S$8V!)t$8V$8W!2w$8W$8X!2w$8X$8b!)t$8b$z!2w5>z5>{!)t5>{5>|!2w5>|5?P!)t5?P5?Q!2w5?Q5?R!2w5?R5?T!)t5?T5?Y!2w5?Y5?[!)t5?[5?]!2w5?]5?^!)t5?^5?_!2w5?_5?w!)t5?w5?z!2w5?z5?|!)t5?|5@X!2w5@X5@`!)t5@`5@c!2w5@c5@o!)t5@o5@u!2w5@u5@w!)t5@w5@}!2w5@}5AP!)t5AP5AV!2w5AV5A`!)t5A`5Ag!2w5Ag5Ah!)t5Ah5Ao!2w5Ao5Dv!)t5Dv5Ek!2w5Ek5FY!)t5FY;%S!2w;%S;%`!)t;%`;%w!2w;%w;%{!)t;%{;'O!2w;'O;'S!)t;'S;=`!.]<%l?&r!)t?&r?.p!2w?.p?.r!)t?.r?1Q!2w?1Q?1x!)t?1x?2P!2w?2P?2]!)t?2]?2b!2w?2b?2g!)t?2g?2h!2w?2h?2i!)t?2i?2s!2w?2s?2t!)t?2t?3R!2w?3R?3S!)t?3S?3X!2w?3X?3Y!)t?3Y?3Z!2w?3Z?3[!)t?3[?3]!2w?3]?3^!2w?3^?3_!)t?3_?3`!2w?3`?3a!2w?3a?3b!)t?3b?5r!2w?5r?6e!)t?6e?>`!2w?>`?>r!)t?>r?@U!2w?@U?@W!)t?@W?A`!2w?A`?BY!)t?BY?Bf!2w?Bf?EO!)t?EO?ET!2w?ET?EU!)t?EU?HR!2w?HR?Hw!)t?Hw?Ic!2w?Ic?Ii!)t?Ii?JT!2w?JT?J`!)t?J`?L]!2w?L]?L`!)t?L`?Lf!2w?Lf?Lh!)t?Lh?Ln!2w?Ln?Lp!)t?Lp?Lv!2w?Lv?Lx!)t?Lx?L{!2w?L{O!)t_=,gZ!^P!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#o!)t#o#p=-Y#p;'S!)t;'S;=`!.]<%lO!)t_=-eX!`P!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_=.]X!SP!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)to=/TZ!_P!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#q!)t#q#r=/v#r;'S!)t;'S;=`!.]<%lO!)tn=0RX!a`!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t_=0wZ!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#r!)t#r#s=1j#s;'S!)t;'S;=`!.]<%lO!)t_=1sZ!OW|SzQOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T#r!)t#r#s=2f#s;'S!)t;'S;=`!.]<%lO!)t_=2qX!OW|SzQ!iPOr!)trs!*jsw!)twx!,^x#S!)t#S#T!-i#T;'S!)t;'S;=`!.]<%lO!)t",tokenizers:[qi,li,yi,0,1,2,3,4,5],topRules:{FlowchartDiagram:[0,5]},specialized:[{term:29,get:O=>xi[O]||-1}],tokenPrec:1356}),pi=[-1,9,10,13,32,37],hi=[43,45],fi=[44,58,62],Yi=["->","-x","-)"," -"," "],mi=["--\x3e","->>","--x","--)"," as"],Ri={"left of":12,"right of":12,activate:1,actor:8,alt:25,and:26,as:9,autonumber:2,box:27,break:28,create:3,critical:29,deactivate:4,destroy:5,else:30,end:6,link:31,links:32,loop:33,note:7,opt:34,option:35,over:12,par:36,participant:10,rect:37},bi=Object.keys(Ri),ki=new O((O=>{if(!pi.includes(O.next)){for(;10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(24)}})),ji=new O((O=>{if(pi.includes(O.next)||hi.includes(O.next))return;const $=()=>{if(-1===O.peek(0)||-1===O.peek(1)||-1===O.peek(2))return!1;let $=String.fromCodePoint(O.peek(0))+String.fromCodePoint(O.peek(1));return!!Yi.includes($)||($+=String.fromCodePoint(O.peek(2)),!!mi.includes($))};let i="";for(;!fi.includes(O.next)&&!$()&&10!==O.next&&-1!==O.next;)i+=String.fromCodePoint(O.next),O.advance();const t=bi.filter((O=>O===i?i.toLowerCase().startsWith(O):i.toLowerCase().startsWith(O+" ")));t.length>0?O.acceptToken(Ri[t[0]],t[0].length-i.length):O.acceptToken(11)})),di=Q({DiagramName:ii.diagramName,NodeText:ii.nodeText,Keyword1:ii.keyword1,Keyword2:ii.keyword2,LineComment:ii.lineComment,"Arrow ArrowSuffix":ii.arrow,Position:ii.position,MessageText1:ii.messageText1,MessageText2:ii.messageText2}),ui={__proto__:null,sequenceDiagram:84},Ui=$.deserialize({version:14,states:"'nOVQSOOO[QSO'#DUQOQSOOOOQO'#Cj'#CjO#QQUO,59pOOQP'#Co'#CoOOQQ'#Cq'#CqOOQO'#DY'#DYO#XQUO'#DYO#gQUO'#DYO#lQUO'#DYO#wQUO'#DYO#|QUO'#DYO$RQTO'#DYO$WQUO'#DYO$]QSO1G/[O$eQYO,59tO$sQUO,59tO$xQUO,59tO%TQUO,59tOOQO,59t,59tO%YQUO,59tOOQO'#Cp'#CpO%_QSO,59tO%dQUO7+$vO%kQSO7+$vOOQQ'#Cm'#CmO%sQSO1G/`O%xQUO1G/`O%}QUO1G/`OOQO1G/`1G/`O&VQUO1G/`O&[QUO1G/`O&gQSO1G/`O&oQTO1G/`OOQO,59^,59^O&tQUO<QAN>QO&oQTOAN>QOOQOG23lG23l",stateData:"'g~OwOS~OzRO~O{SOgxX~OPZOQVORYOSZOTYOUVOV[OWXOYXOZWO_VOiTOjTOkTOlTOmTOnTOoUOpUOqTOrTOsTOtTOuTO~Ogxa~PdOXaO``Og|X{|X~OZbO~OWcOYcOZbO~OZdO~O[eO~OhfO~OZgO~O{hOgxi~OZkO{lO}jO!OjO~OZnO~OXoOg|a{|a~OZpO~OZqO~O!PrO~Ogxq~PdO{tOgxq~O!PvO~OZwO~OZwO{xO~OZyO~OXzOg|i{|i~O!PvO!QxO~Oh{O~Ogxy~PdO!P!OO~OZ!PO~OZ}O~O!P!RO~O{w`y`~",goto:"#S}PPPPPPPPPPPPPP!OPP!R!U!b!h!k!qPPPPPPPPPPPPPPPPP!wPPP!zRPORm`QyrQ}vQ!Q!OR!S!RX]Sht|Rd]X^Sht|Qi_RuiRQOQ_SVsht|",nodeNames:"⚠ Activate Autonumber Create Deactivate Destroy End Note Actor As Participant NodeText Position SequenceDiagram DiagramName LineComment Arrow ArrowSuffix MessageText1 Keyword MessageText2 Link",maxTerm:48,nodeProps:[["group",-9,1,2,3,4,5,6,7,19,21,"Keyword1",-3,8,9,10,"Keyword2"]],propSources:[di],skippedNodes:[0],repeatNodeCount:1,tokenData:"(x~RmXY!|YZ#qZ^!|pq!|tu$nuv%`{|%}|}&S}!O&X![!]'T!c!}$n#T#o$n#y#z!|$f$g!|$g#BY$n#BY#BZ'Y#BZ$IS$n$IS$I_'Y$I_$I|$n$I|$JO'Y$JO$JT$n$JT$JU'Y$JU$KV$n$KV$KW'Y$KW&FU$n&FU&FV'Y&FV;'S$n;'S;=`%Y<%lO$n~#RYw~X^!|pq!|#y#z!|$f$g!|#BY#BZ!|$IS$I_!|$I|$JO!|$JT$JU!|$KV$KW!|&FU&FV!|~#x[{~w~XY!|YZ#qZ^!|pq!|#y#z!|$f$g!|#BY#BZ!|$IS$I_!|$I|$JO!|$JT$JU!|$KV$KW!|&FU&FV!|~$sVy~tu$n!Q![$n!c!}$n#T#o$n$g;'S$n;'S;=`%Y<%lO$n~%]P;=`<%l$n~%cPuv%f~%kS_~OY%fZ;'S%f;'S;=`%w<%lO%f~%zP;=`<%l%f~&SO}~~&XO!Q~R&^S!OQyz&j}!O&o!`!a&{#l#m&jP&oO`PP&rRyz&j!`!a&{#l#m&jP'QP`P!`!a&j~'YO!P~~'agw~y~X^!|pq!|tu$n!Q![$n!c!}$n#T#o$n#y#z!|$f$g!|$g#BY$n#BY#BZ'Y#BZ$IS$n$IS$I_'Y$I_$I|$n$I|$JO'Y$JO$JT$n$JT$JU'Y$JU$KV$n$KV$KW'Y$KW&FU$n&FU&FV'Y&FV;'S$n;'S;=`%Y<%lO$n",tokenizers:[ki,ji,0,1],topRules:{SequenceDiagram:[0,13]},specialized:[{term:41,get:O=>ui[O]||-1}],tokenPrec:293}),Zi=[-1,9,10,13,32],vi=["title","section"],_i=O=>Zi.includes(O.next)||(O=>37===O.peek(0)&&37===O.peek(1))(O),gi=new O((O=>{if(_i(O))return;let $="";for(;!Zi.includes(O.next);)$+=String.fromCodePoint(O.next),O.advance();const i=vi.filter((O=>O===$?$.toLowerCase().startsWith(O):$.toLowerCase().startsWith(O+" ")));i.length>0&&O.acceptToken(1,i[0].length-$.length)})),Wi=new O((O=>{if(!_i(O)){for(;10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(14)}})),Fi=new O((O=>{if(!_i(O)){for(;58!==O.next&&10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(15)}})),Hi=new O((O=>{if(!_i(O)){for(;44!==O.next&&10!==O.next&&-1!==O.next;)O.advance();O.acceptToken(16)}})),zi=Q({DiagramName:ti.diagramName,"Text TaskName":ti.text,Actor:ti.actor,Keyword:ti.keyword,LineComment:ti.lineComment,Score:ti.score}),Vi={__proto__:null,journey:42},Ei=$.deserialize({version:14,states:"%^OVQ`OOO[QeO'#CoQOQ`OOOOQT'#C_'#C_OOQT'#Cf'#CfOmQeO,59ZOOQO'#Cc'#CcO!OQ`O'#CbOOQO'#Cs'#CsO!TQbO'#CsOvQ`O,59ZOOQT-E6d-E6dO!YQ`O1G.uO!bQdO,58|OOQO'#Ca'#CaOOQO,59_,59_O!gQeO1G.uO!YQ`O1G.uO!xQeO7+$aO#RQ`O7+$aOOQO'#Cd'#CdO#ZQ`O1G.hOOQO,59S,59SOOQO-E6f-E6fO#fQeO<Vi[O]||-1}],tokenPrec:172}),Di=[-1,45,60,62,10,13,123,61],Ni=new O((O=>{if(Di.includes(O.next)||32===O.next)return;let $,i="",t=0;do{if($=O.peek(t),-1===$)return;i+=String.fromCodePoint($),t++}while(!Di.includes($));45!==$&&60!==$||(i=i.slice(0,-1).trim(),O.acceptToken(1,i.length))})),Ji=Q({"DiagramName SubDiagramType":wi.diagramName,LineComment:wi.lineComment,IDNumber:wi.number,"UnquotedString RelationshipStart":wi.unquotedString,QuotedString:wi.quotedString,PropKeyword:wi.unquotedString,Keyword:wi.keyword,"ForwardArrow BackArrow Hyphen":wi.arrow}),Ci={__proto__:null,requirementDiagram:144,requirement:150,Requirement:152,functionalRequirement:154,FunctionalRequirement:156,performanceRequirement:158,PerformanceRequirement:160,interfaceRequirement:162,InterfaceRequirement:164,physicalRequirement:166,PhysicalRequirement:168,designConstraint:170,DesignConstraint:172,element:174,Element:176,id:18,Id:20,ID:22,text:28,Text:30,risk:34,Risk:36,low:40,Low:42,medium:44,Medium:46,high:48,High:50,verifymethod:54,verifyMethod:56,VerifyMethod:58,analysis:62,Analysis:64,demonstration:66,Demonstration:68,inspection:70,Inspection:72,test:74,Test:76,type:80,Type:82,docRef:86,DocRef:88,contains:96,Contains:98,copies:100,Copies:102,derives:104,Derives:106,satisfies:108,Satisfies:110,verifies:112,Verifies:114,refines:116,Refines:118,traces:120,Traces:122},Bi=$.deserialize({version:14,states:")`OYQQOOO_QQO'#DtQOQQOOOOQO'#C`'#C`O!kQRO,5:`O!rOSO'#CcOOQO'#Ef'#EfO!zQQO'#DZO#SQRO'#DnO$^QRO1G/zOOQO'#Ca'#CaO$eQWO'#DxOOOO'#Do'#DoO$mOSO,58}OOQP,58},58}O$uQQO,59uO$uQQO,59uOOQP,5:Y,5:YOOQP-E7l-E7lOOQP'#Cb'#CbOOQP'#Eg'#EgO%sQQO,5:dOOOO-E7m-E7mOOQP1G.i1G.iO%xQQO1G/aOOQO'#D]'#D]O%}QQO1G/aO&SQQO1G0OO$eQWO7+${O'VQQO7+%jOOQP<pAN>pO$eQWO,5:{O$eQWO,5;OO$eQWO,5;POOQO1G0e1G0eOOQO1G0h1G0hOOQO'#Co'#CoOOQO1G0i1G0iOOQO'#Cz'#CzOOQO1G0g1G0gOOQO1G0j1G0jOOQO1G0k1G0k",stateData:"*e~O!gOSQOS~O!jRO~O!kSO!e!hX~OPUO!mYO!nYO!oYO!pYO!qYO!rYO!sYO!tYO!uYO!vYO!wYO!xYO!yYO!zYO!|TO~O!e!ha~PgO!|^O!}[O~O!O_O!a`O~O!kaOP!bX!e!bX!m!bX!n!bX!o!bX!p!bX!q!bX!r!bX!s!bX!t!bX!u!bX!v!bX!w!bX!x!bX!y!bX!z!bX!|!bX~O!e!hi~PgO!{cO!|TO~O!|gO!}[O~O!QiO!RiO!SiO!TiO!UiO!ViO!WiO!XiO!YiO!ZiO![iO!]iO!^iO!_iO~O#OkO~O!`lO~O!OlO~O!kmO~OXuOYuOZuO^vO_vOawObwOkxOlxOmxOxyOyyO{zO|zO~O#P!OO~P&XO#S!PO~O#S!QO~O#S!RO~O!k!SOX#QXY#QXZ#QX^#QX_#QXa#QXb#QXk#QXl#QXm#QXx#QXy#QX{#QX|#QX#P#QX~O#P!UO~P&XO#S!VO~O#S!WO~O#S!XO~O[!YO~Od![Oe![Of![Og![Oh![Oi![O~Oo!^Op!^Oq!^Or!^Os!^Ot!^Ou!^Ov!^O~O!k!a!g!`!O!`~",goto:"%r#[PPPP#]#`#d#k#vPPPP#zPP$OPP$SPPPPPP$VPPP$ZPPPPPPPP$^PP$bPP$fP$jPPPPPPPPPPPPPPPP$p$v$|PPP%SPPP$fPPPPPPPPPPPPPPPPPPP%V%ZP%Z%Z%Z%Z%Z%_%cRPOTZSXZdZl!V!W!XSUSXZdZl!V!W!XTomtT{mtTpmtR!Z!QTqmtR!]!RT|mtT}mtTWSXQh_Rj`QXSRbXQ]TRf]QtmR!TtRQOTsmtTrmtTVSXQeZQnlQ!_!VQ!`!WR!a!X",nodeNames:"⚠ RelationshipStart LineComment RequirementDiagram DiagramName SubDiagramType UnquotedString QuotedString ID PropKeyword PropKeyword PropKeyword IDNumber Text PropKeyword PropKeyword Risk PropKeyword PropKeyword RiskType Keyword Keyword Keyword Keyword Keyword Keyword VerifyMethod PropKeyword PropKeyword PropKeyword VerifyMethodType Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Type PropKeyword PropKeyword DocRef PropKeyword PropKeyword RelationshipLine Hyphen RelationshipType Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword ForwardArrow BackArrow",maxTerm:103,propSources:[Ji],skippedNodes:[0,2],repeatNodeCount:3,tokenData:"1g~R{OX#xXY$aYZ&SZ^$a^p#xpq$aqr#xrs'}su#xuv(Sv}#x}!O)v!O!Q#x!Q![*t![!]+|!]!^#x!^!_,a!_!c#x!c!}-]!}#T#x#T#o-]#o#p0o#p#q#x#q#r1S#r#y#x#y#z$a#z$f#x$f$g$a$g#BY#x#BY#BZ$a#BZ$IS#x$IS$I_$a$I_$I|#x$I|$JO$a$JO$JT#x$JT$JU$a$JU$KV#x$KV$KW$a$KW&FU#x&FU&FV$a&FV;'S#x;'S;=`$Z<%lO#xQ#}S!}QOr#xs;'S#x;'S;=`$Z<%lO#xQ$^P;=`<%l#xV$hh!}Q!gTOX#xX^$a^p#xpq$aqr#xs#y#x#y#z$a#z$f#x$f$g$a$g#BY#x#BY#BZ$a#BZ$IS#x$IS$I_$a$I_$I|#x$I|$JO$a$JO$JT#x$JT$JU$a$JU$KV#x$KV$KW$a$KW&FU#x&FU&FV$a&FV;'S#x;'S;=`$Z<%lO#xV&]j!}Q!kP!gTOX#xXY$aYZ&SZ^$a^p#xpq$aqr#xs#y#x#y#z$a#z$f#x$f$g$a$g#BY#x#BY#BZ$a#BZ$IS#x$IS$I_$a$I_$I|#x$I|$JO$a$JO$JT#x$JT$JU$a$JU$KV#x$KV$KW$a$KW&FU#x&FU&FV$a&FV;'S#x;'S;=`$Z<%lO#x~(SO!|~V(XU!}QOr#xsu#xuv(kv;'S#x;'S;=`$Z<%lO#xV(rVQT!}QOY(kYZ#xZr(krs)Xs;'S(k;'S;=`)p<%lO(kT)^SQTOY)XZ;'S)X;'S;=`)j<%lO)XT)mP;=`<%l)XV)sP;=`<%l(kR)}U!}Q!OPOr#xs!`#x!`!a*a!a;'S#x;'S;=`$Z<%lO#xR*hS!}Q!`POr#xs;'S#x;'S;=`$Z<%lO#xR*{W[P!}QOr#xs!O#x!O!P+e!P!Q#x!Q![*t![;'S#x;'S;=`$Z<%lO#xR+jU!}QOr#xs!Q#x!Q![*t![;'S#x;'S;=`$Z<%lO#xR,TS#SP!}QOr#xs;'S#x;'S;=`$Z<%lO#xR,fU!}QOr#xs}#x}!O,x!O;'S#x;'S;=`$Z<%lO#xR-PS!}Q!aPOr#xs;'S#x;'S;=`$Z<%lO#xV-fb!}Q!{S!iPOY.nYZ#xZ].n]^#x^r.nrs/ts}.n}!O#x!O!^.n!^!a#x!a!c.n!c!}-]!}#T.n#T#o-]#o#p#x#p;'S.n;'S;=`0i<%lO.nU.u_!}Q!{SOY.nYZ#xZ].n]^#x^r.nrs/ts}.n}!O#x!O!^.n!^!a#x!a#o.n#o#p#x#p;'S.n;'S;=`0i<%lO.nS/yW!{SOY/tZ]/t^}/t!O!^/t!a#o/t#p;'S/t;'S;=`0c<%lO/tS0fP;=`<%l/tU0lP;=`<%l.nR0vS#OP!}QOr#xs;'S#x;'S;=`$Z<%lO#xR1ZS#PP!}QOr#xs;'S#x;'S;=`$Z<%lO#x",tokenizers:[Ni,0,1,2],topRules:{RequirementDiagram:[0,3]},specialized:[{term:71,get:O=>Ci[O]||-1}],tokenPrec:428}),Ki={axisFormat:1,dateFormat:2,excludes:3,inclusiveEndDates:4,section:9,tickInterval:5,title:6,todayMarker:7,weekday:8},Li=Object.keys(Ki),Ii=new O((O=>{if(32===O.next||10===O.next||-1===O.next)return;if(37===O.next&&37===O.peek(1))return;let $="";for(;10!==O.next&&-1!==O.next;)$+=String.fromCodePoint(O.next),O.advance();const i=Li.filter((O=>O===$?$.startsWith(O):$.startsWith(O+" ")));i.length>0?O.acceptToken(Ki[i[0]],i[0].length-$.length):O.acceptToken(17)})),Ai=Q({"DiagramName Section":Qi.diagramName,Keyword:Qi.keyword,ImportantText:Qi.string,LineComment:Qi.lineComment}),Mi={__proto__:null,gantt:44},Ot=$.deserialize({version:14,states:"!|OVQQOOO[QQO'#CpQOQQOOOOQO'#Cg'#CgO!XQRO,59[OOQP'#Ci'#CiO!`QRO'#CtO!SQRO'#CtOOQP'#Ct'#CtO!eQRO'#CkO#`QRO1G.vOOQP'#Ch'#ChOOQP,59`,59`OOQP,59V,59VOOQP-E6i-E6i",stateData:"#j~OcOS~OfRO~OgSO`dX~OPVOQVORVOSWOTVOUUOVVOWVOXUO^WOaTO~O`da~PdOaZO~Og]OP_XQ_XR_XS_XT_XU_XV_XW_XX_X^_X`_Xa_X~O`di~PdOgc~",goto:"!UiPPPPPPPPPPPjmpPwPPPP}PPP!QRPOR[USWSYR[VQYSR^YRQOTXSY",nodeNames:"⚠ AxisFormat DateFormat Excludes InclusiveEndDates TickInterval Title TodayMarker Weekday Section GanttDiagram DiagramName ImportantText Text LineComment",maxTerm:24,nodeProps:[["group",-8,1,2,3,4,5,6,7,8,"Keyword"]],propSources:[Ai],skippedNodes:[0],repeatNodeCount:1,tokenData:"$l~R_XY!QYZ!uZ^!Qpq!Quv#r!c!}$a#T#o$a#y#z!Q$f$g!Q#BY#BZ!Q$IS$I_!Q$I|$JO!Q$JT$JU!Q$KV$KW!Q&FU&FV!Q~!VYc~X^!Qpq!Q#y#z!Q$f$g!Q#BY#BZ!Q$IS$I_!Q$I|$JO!Q$JT$JU!Q$KV$KW!Q&FU&FV!Q~!|[g~c~XY!QYZ!uZ^!Qpq!Q#y#z!Q$f$g!Q#BY#BZ!Q$IS$I_!Q$I|$JO!Q$JT$JU!Q$KV$KW!Q&FU&FV!Q~#uPuv#x~#}S^~OY#xZ;'S#x;'S;=`$Z<%lO#x~$^P;=`<%l#x~$fQe~!c!}$a#T#o$a",tokenizers:[Ii,0],topRules:{GanttDiagram:[0,10]},specialized:[{term:21,get:O=>Mi[O]||-1}],tokenPrec:115});var $t,it,tt,wt,Qt,et,at,Xt;(it=$t||($t={})).Mermaid="MermaidDiagram",it.Mindmap="MindmapDiagram",it.Pie="PieDiagram",it.Flowchart="FlowchartDiagram",it.Sequence="SequenceDiagram",it.Journey="JourneyDiagram",it.Requirement="RequirementDiagram",it.Gantt="GanttDiagram",(wt=tt||(tt={})).Mermaid="mermaid",wt.Mindmap="mindmap",wt.Pie="pie",wt.Flowchart="flowchart",wt.Sequence="sequenceDiagram",wt.Journey="journey",wt.Requirement="requirementDiagram",wt.Gantt="gantt",(et=Qt||(Qt={})).Mermaid="mermaid",et.Mindmap="mindmap",et.Pie="pie",et.Flowchart="flowchart",et.Sequence="sequence",et.Journey="journey",et.Requirement="requirement",et.Gantt="gantt",(Xt=at||(at={})).Graph="graph",Xt.Sequence="sequence",Xt.Requirement="requirement";const ot=e.define({name:Qt.Mermaid,parser:N$.configure({wrap:a((O=>{switch(O.name){case $t.Mindmap:return{parser:Xi};case $t.Pie:return{parser:Pi};case $t.Flowchart:return{parser:ci};case $t.Sequence:return{parser:Ui};case $t.Journey:return{parser:Ei};case $t.Requirement:return{parser:Bi};case $t.Gantt:return{parser:Ot};default:return null}}))})}),St=e.define({name:Qt.Mindmap,parser:Xi}),rt=e.define({name:Qt.Pie,parser:Pi}),Pt=e.define({name:Qt.Flowchart,parser:ci}),st=e.define({name:Qt.Sequence,parser:Ui}),nt=e.define({name:Qt.Journey,parser:Ei}),Gt=e.define({name:Qt.Requirement,parser:Bi}),lt=e.define({name:Qt.Gantt,parser:Ot});function qt(){return new X(ot)}o.of({name:tt.Mermaid,load:async()=>qt()}),o.of({name:tt.Mindmap,load:async()=>new X(St)}),o.of({name:tt.Pie,load:async()=>new X(rt)}),o.of({name:tt.Flowchart,alias:[at.Graph],load:async()=>new X(Pt)}),o.of({name:tt.Sequence,alias:[at.Sequence],load:async()=>new X(st)}),o.of({name:tt.Journey,load:async()=>new X(nt)}),o.of({name:tt.Requirement,alias:[at.Requirement],load:async()=>new X(Gt)}),o.of({name:tt.Gantt,load:async()=>new X(lt)});const yt=Q({LineComment:w.lineComment,BlockComment:w.blockComment,AnyChar:w.character,Literal:w.string,"tokens from grammar as empty prop extend specialize AtName":w.keyword,"@top @left @right @cut @external":w.modifier,"@precedence @tokens @context @dialects @skip @detectDelim @conflict":w.definitionKeyword,"@extend @specialize":w.operatorKeyword,"CharSet InvertedCharSet":w.regexp,CharClass:w.atom,RuleName:w.variableName,"RuleDeclaration/RuleName InlineRule/RuleName TokensBody/RuleName":w.definition(w.variableName),PrecedenceName:w.labelName,Name:w.name,"( )":w.paren,"[ ]":w.squareBracket,"{ }":w.brace,'"!" ~ "*" + ? |':w.operator}),Tt={__proto__:null,"@asciiLetter":244,"@asciiUpperCase":244,"@asciiLowerCase":244,"@digit":244,"@whitespace":244,"@eof":244,"@specialize":76,"@extend":78,"@top":98,"@precedence":102,"@left":108,"@right":110,"@cut":112,"@tokens":116,"@conflict":126,"@local":134,"@else":142,"@external":146,"@context":172,"@dialects":176,"@skip":182,"@detectDelim":190},xt={__proto__:null,tokens:136,from:148,prop:156,as:158,propSource:162,extend:166,specialize:168},ct=$.deserialize({version:14,states:"nAN>nO7oQPOAN>sO6lQPOAN>xOOQO1G.s1G.sOOQO,5;O,5;OOOQO-E8b-E8bOOQO7+$g7+$gOOQO7+%`7+%`O7tQPO7+%`O7yQPO'#DzO8XQPO'#EkO8dQPO,5:eOOQO,5:e,5:eOOQOG24_G24_OOQOG24dG24dOOQO<Tt[O]||-1},{term:125,get:O=>xt[O]||-1}],tokenPrec:1086}),pt=e.define({name:"lezer",parser:ct.configure({props:[S.add({"Body TokensBody SkipBody PrecedenceBody":r})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});const ht=new O((O=>{for(let $=!1,i=0;;i++){let{next:t}=O;if(t<0){i>0&&O.acceptToken(63);break}if(34===t){i>0?O.acceptToken(63):O.acceptToken(65,1);break}if(123===t&&$){1==i?O.acceptToken(64,1):O.acceptToken(63,-1);break}92===t&&(O.advance(),O.acceptToken(66,1)),$=36===t,O.advance()}})),ft=new O((O=>{for(let $=!1,i=!1,t=0;;t++){let{next:w}=O;if(w<0){t>0&&O.acceptToken(67);break}if(39===w&&i){t>1?O.acceptToken(67,-1):O.acceptToken(69,1);break}if(123===w&&$){1==t?O.acceptToken(68,1):O.acceptToken(67,-1);break}92===w&&(O.advance(),O.acceptToken(70,1)),$=36===w,i=39===w,O.advance()}})),Yt={__proto__:null,assert:22,with:26,let:30,inherit:42,in:48,if:52,then:54,else:56,builtins:70,null:214,true:216,false:216,rec:100,or:108},mt=$.deserialize({version:14,states:"7QO]QSOOO!sQWO'#DyO#XQ`O'#EjO&QQSO'#C`O&YQTO'#CnO'lQWO'#EWO(VQSO'#C|O(VQSO'#C|OOQO'#DQ'#DQOOQO'#DT'#DTO)dQUO'#DUO*yQSO'#DcOOQO'#Ej'#EjO,XQ`O'#EiOOQO'#Ei'#EiO-wQ`O'#EXOOQO'#Eh'#EhOOQO'#EX'#EXOOQO'#EW'#EWOOQO'#Dw'#DwO]QSO'#CfO]QSO'#ChO/dQSO'#D^O]QSO'#CuO]QSO'#D[O/xQSO'#D_QOQSOOO/}QSO'#CdO0`Q`O,5:eO3XQSO,5:eO3aQSO,5:eO4sQSO'#EOOOQO'#Cm'#CmOOQO'#Df'#DfO4}QSO,59wO]QSO'#CpO5`QSO'#ClO5eQSO'#EUO]QSO,58zO5sQSO,58zO5xQSO,58zOOQP'#EQ'#EQOOQP'#Dg'#DgO5}QTO,59YOOQO,59Y,59YO]QSO'#CoO6]QSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO6|QWO,59hO8VQSO'#D]O/xQSO'#D^OOQO,59h,59hOOQQ'#En'#EnOOQQ'#Dj'#DjO8hQUO,59pOOQO,59p,59pO]QSO'#DVOOQO'#Dk'#DkO8vQSO,59}OOQO,59},59}O8}QSO'#EiO6]QSO,59jOOQO,59i,59iO9XQSO,59QO9^QSO,59SO9cQSO,59UO]QSO,59UOOQO,59x,59xO9tQSO,59aO9yQSO,59vOOQO,59y,59yO:OQSO'#DhO;hQSO,5:jO]QSO,59OO;rQWO1G0PO;zQSO1G0POOQO1G0P1G0POOQO-E7d-E7dOOQO1G/c1G/cOqAN>qO!$ZQSO<}AN>}O!$iQSO,59jO)rQSO7+$p",stateData:"!$x~O!jOSPOSQOS~OTQOUPOZdO]eO_fOfhOjgOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~OTkOVlOXnOeuO!sSO!usO~O!lvO!pwOT#^XU#^X_#^Xf#^Xn#^Xo#^Xs#^Xu#^Xv#^Xz#^X{#^X|#^X}#^X!S#^X!U#^X!`#^X!n#^X!s#^X!v#^X!|#^X!}#^X#O#^X#P#^X#Q#^X#R#^X#S#^X#T#^X#U#^X#V#^X#W#^X#X#^X#Y#^X#_#^X#`#^X#a#^X!q#^Xk#^Xg#^XV#^X!o#^Xl#^X~O!lvO!pxO~O!ayO!b}O!c|O!dyO~On!TOo!VO!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO#X![O#Y!]O~O!`!zX!q!zXk!zXg!zXV!zX!o!zXl!zX~P&hOT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~O!e!bO!f!fO!g!eO!h!bO~OT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#_WO#`XO#aYO~O!T!iO~P)rOT#]XU#]X_#]Xf#]Xs#]Xu#]Xv#]Xz#]X{#]X|#]X}#]X!S#]X!U#]X!s#]X#_#]X#`#]X#a#]X~O!v!kOn#]Xo#]X!`#]X!n#]X!|#]X!}#]X#O#]X#P#]X#Q#]X#R#]X#S#]X#T#]X#U#]X#V#]X#W#]X#X#]X#Y#]X!q#]Xk#]Xg#]XV#]X!o#]Xl#]X~P+QOn!{Xo!{X!`!{X!n!{X!|!{X!}!{X#O!{X#P!{X#Q!{X#R!{X#S!{X#T!{X#U!{X#V!{X#W!{X#X!{X#Y!{X!q!{Xk!{Xg!{XV!{X!o!{Xl!{X~P)rOToOU!_OeuOh!pO!sSO!usO~OU!_O~O!n!wO!v!uOVWX!oWX!w!rX~OT!PaU!Pa_!Paf!Pan!Pao!Pas!Pau!Pav!Paz!Pa{!Pa|!Pa}!Pa!S!Pa!U!Pa!`!Pa!l!ma!n!Pa!p!ma!s!Pa!v!Pa!|!Pa!}!Pa#O!Pa#P!Pa#Q!Pa#R!Pa#S!Pa#T!Pa#U!Pa#V!Pa#W!Pa#X!Pa#Y!Pa#_!Pa#`!Pa#a!Pa!q!Pak!Pag!PaV!Pa!o!Pal!Pa~OV!zO!o!xO~OV!zO~O!v!uOT!rXU!rX_!rXf!rXs!rXu!rXv!rXz!rX{!rX|!rX}!rX!S!rX!U!rX!W!rX!s!rX#_!rX#`!rX#a!rX~O!w!rX!T!rX~P3fOToOV!|OeuO!sSO!usO~O!w#OO~OT#POf#RO!sSO!usO~OU#TO~OT#UO~O!ayO!b}O!c#WO!dyO~OT#YO!sSO!usO~O!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO~Onpaopa!`pa#Rpa#Spa#Tpa#Upa#Vpa#Wpa#Xpa#Ypa!qpakpagpaVpa!opalpa~P6hOToOV#iOeuO!sSO!usO~O!e!bO!f!fO!g#kO!h!bO~O!T#nO~P)rO!v$mO!T#]X~P+QO!q#pO~O!q#qO~OToOeuOh#rO!sSO!usO~Ok#tO~Og#uO~OT#vO!sSO!usO~O!v!uOT!raU!ra_!raf!ras!rau!rav!raz!ra{!ra|!ra}!ra!S!ra!U!ra!W!ra!s!ra#_!ra#`!ra#a!ra~O!w!ra!T!ra~P:ZOT#yOX#{O~OV$OO!o#|O~OV$PO~OT#PO!q$SO!sSO!usO~OT#yOV$UOXnO~O!l$VO~OV$WO~On!rXo!rX!`!rX!n!rX!|!rX!}!rX#O!rX#P!rX#Q!rX#R!rX#S!rX#T!rX#U!rX#V!rX#W!rX#X!rX#Y!rX!q!rXk!rXg!rXV!rX!o!rXl!rX~P3fO!n!OO!|!POnmiomi!`mi#Omi#Pmi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O!}mi~P>iO!}!PO~P>iO!n!OO!|!PO!}!PO#O!QOnmiomi!`mi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O#Pmi~P@_O#P!RO~P@_O#R!TOnmiomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TOomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TO#S!UOomi!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO!`mi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO!`mi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO!`mi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO!`mi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hO!`mi!qmikmigmiVmi!omilmi~P&hOV$YO~OTriUri_rifrisriurivrizri{ri|ri}ri!Sri!Uri!sri#_ri#`ri#ari~O!W$[Onriori!`ri!nri!|ri!}ri#Ori#Pri#Qri#Rri#Sri#Tri#Uri#Vri#Wri#Xri#Yri!qrikrigriVri!orilri~PL_O!n!wOVWX!oWX~OV$aO~OT#yOX$bO~O!q$dO~Og$eO~On!rao!ra!`!ra!n!ra!|!ra!}!ra#O!ra#P!ra#Q!ra#R!ra#S!ra#T!ra#U!ra#V!ra#W!ra#X!ra#Y!ra!q!rak!rag!raV!ra!o!ral!ra~P:ZO!W$nO!Tri~PL_Ol$hO~OV$iO~OT#yO~OT#PO!sSO!usO~OT#PO!q$lO!sSO!usO~OToO!sSO!usO~Oz!v!v~",goto:"2g#cPPPP#dPPP#yP#dP#dP#dP$S$Z$k%{%fPPPP&PPPP&fPP&f'[(QP({PP({({)vPPPP({)z({({PPP({P*|+S+_+e+p+z,QPPPPPPPPPPP,WP-cPPPP-{P.VPPP$S$S#d.ZPPPPPPPPPPPPPP/o0e1fPPP2cwcOdeghsv}!f!p!w#O#R#p#q#r#t$V$hSmP#TV#z!x#|$cZqPfr!_!oYtPfr!_!oQ#Z!OQ#o!kR$Z$m!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n[oPfr!_!o$mW#Pu#Q$e$jS#Y!O!kR#v!uTyS{wbOdeghsv}!f!p!w#O#R#p#q#r#t$V$h!gaOUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!g`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!q^OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n!q[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nT!bY!d!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nS!qf!`R!tiQ!ymR#}!ySrP!_Q!ofT!{r!oQ{SR#V{S!vkoS#w!v$XR$X#YQ#QuS$R#Q$jR$j$eQ!dYR#j!dQ!hZR#m!hQjOQ!mdQ!neQ!rgQ!shQ!}sQ#SvQ#X}Q#l!fQ#s!pQ#x!wQ$Q#OQ$T#RQ$]#pQ$^#qQ$_#rQ$`#tQ$f$VR$k$hvROdeghsv}!f!p!w#O#R#p#q#r#t$V$hR#UwapPfr!O!_!k!o$mTzS{vTOdeghsv}!f!p!w#O#R#p#q#r#t$V$hQ!^UQ!aVQ#[!PQ#]!QQ#^!RQ#_!SQ#`!TQ#a!UQ#b!VQ#c!WQ#d!XQ#e!YQ#f!ZQ#g![R#h!]!g_OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!f`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$hS!gZ!hQ!l_T$g$[$n!j]OUV_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$[$hV!jZ!h$nT!cY!d",nodeNames:"⚠ LineComment BlockComment Program Function Identifier { } Formal Ellipses Assert assert With with Let let Bind AttrPath String Interpolation Interpolation inherit ( ) in IfExpr if then else BinaryExpr < > UnaryExpr App Select builtins Null Integer Float Boolean IndentedString Interpolation Path HPath SPath URI Parenthesized AttrSet LetAttrSet RecAttrSet rec ] [ List or",maxTerm:110,nodeProps:[["closedBy",6,"}",22,")",52,"]"],["openedBy",7,"{",23,"(",51,"["]],skippedNodes:[0,1,2],repeatNodeCount:7,tokenData:">P~RtXY#cYZ#c]^#cpq#cqr#trs$Rst$Wtu$ovw$zwx%Vxy%byz%gz{%l{|%q|})]}!O)b!O!P*X!P!Q.r!Q!R0l!R![2e![!]3S!]!^3X!^!_3^!_!`5_!`!a5l!a!b5y!b!c6O!c!}6T!}#O;g#P#Q;l#R#S:u#T#o6T#o#p;q#p#q;v#q#rYt[O]||-1}],tokenPrec:2290}),Rt=e.define({name:"Nix",parser:mt.configure({props:[P.add({Parenthesized:s({closing:")"}),AttrSet:s({closing:"}"}),List:s({closing:"]"}),Let:n({except:/^\s*in\b/})}),S.add({AttrSet:r,List:r,Let(O){let $=O.getChild("let"),i=O.getChild("in");return $&&i?{from:$.to,to:i.from}:null}}),Q({Identifier:w.propertyName,Boolean:w.bool,String:w.string,IndentedString:w.string,LineComment:w.lineComment,BlockComment:w.blockComment,Float:w.float,Integer:w.integer,Null:w.null,URI:w.url,SPath:w.literal,Path:w.literal,"( )":w.paren,"{ }":w.brace,"[ ]":w.squareBracket,"if then else":w.controlKeyword,"import with let in rec builtins inherit assert or":w.keyword})]}),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","''",'"']},indentOnInput:/^\s*(in|\}|\)|\])$/}}),bt=[q("let ${binds} in ${expression}",{label:"let",detail:"Let ... in statement",type:"keyword"}),q("with ${expression}; ${expression}",{label:"with",detail:"With statement",type:"keyword"})];const kt={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},jt={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},dt={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function ut(O){return 9==O||10==O||13==O||32==O}let Ut=null,Zt=null,vt=0;function _t(O,$){let i=O.pos+$;if(vt==i&&Zt==O)return Ut;let t=O.peek($);for(;ut(t);)t=O.peek(++$);let w="";for(;45==(Q=t)||46==Q||58==Q||Q>=65&&Q<=90||95==Q||Q>=97&&Q<=122||Q>=161;)w+=String.fromCharCode(t),t=O.peek(++$);var Q;return Zt=O,vt=i,Ut=w?w.toLowerCase():t==gt||t==Wt?void 0:null}const gt=63,Wt=33;function Ft(O,$){this.name=O,this.parent=$,this.hash=$?$.hash:0;for(let i=0;iHt.indexOf($)>-1?new Ft(_t(t,1)||"",O):O,reduce:(O,$)=>67==$&&O?O.parent:O,reuse(O,$,i,t){let w=$.type.id;return 4==w||118==w?new Ft(_t(t,1)||"",O):O},hash:O=>O?O.hash:0,strict:!1}),Vt=new O(((O,$)=>{if(60!=O.next)return void(O.next<0&&$.context&&O.acceptToken(148));O.advance();let i=47==O.next;i&&O.advance();let t=_t(O,0);if(void 0===t)return;if(!t)return O.acceptToken(i?12:4);let w=$.context?$.context.name:null;if(i){if(t==w)return O.acceptToken(9);if(w&&jt[w])return O.acceptToken(148,-2);for(let O=$.context;O;O=O.parent)if(O.name==t)return;O.acceptToken(11)}else{if("script"==t)return O.acceptToken(5);if("style"==t)return O.acceptToken(6);if("textarea"==t)return O.acceptToken(7);if(kt.hasOwnProperty(t))return O.acceptToken(8);w&&dt[w]&&dt[w][t]?O.acceptToken(148,-1):O.acceptToken(4)}}),{contextual:!0});function Et($,i,t){let w=2+$.length;return new O((O=>{for(let Q=0,e=0,a=0;;a++){if(O.next<0){a&&O.acceptToken(i);break}if(0==Q&&60==O.next||1==Q&&47==O.next||Q>=2&&Qe?O.acceptToken(i,-e):O.acceptToken(t,-(e-2));break}if((10==O.next||13==O.next)&&a){O.acceptToken(i,1);break}Q=e=0}else e++;O.advance()}}))}const Dt=Et("script",145,1),Nt=Et("style",146,2),Jt=Et("textarea",147,3),Ct=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Bt=125,Kt=[58,35,64,47],Lt=new O((O=>{for(let $=0,i=0;;i++){if(O.next<0){i&&O.acceptToken(149);break}if(45==O.next)$++;else{if(62==O.next&&$>=2){i>3&&O.acceptToken(149,-2);break}$=0}O.advance()}}));function It(O){let $=!1,i=null,t=!1;return()=>$?t?(t=!1,!0):92===O.next?(t=!0,!0):"double"===i&&34===O.next||"single"===i&&39===O.next?($=!1,i=null,!0):"template"!==i||96!==O.next||($=!1,i=null,!0):34===O.next?($=!0,i="double",!0):39===O.next?($=!0,i="single",!0):96===O.next&&($=!0,i="template",!0)}function At(O){let $=!1,i=!1;return()=>$?10!==O.next||($=!1,!0):i?42!==O.next||47!==O.peek(1)||(i=!1,!0):47===O.next&&47===O.peek(1)?($=!0,!0):47===O.next&&42===O.peek(1)&&(i=!0,!0)}const Mt=new O((O=>{if(Kt.includes(O.next))return;const $=At(O),i=It(O);let t=[];const w=O=>{const $=t.lastIndexOf(O);if(-1!==$)for(;t.length>$;)t.pop()};for(let Q=0;;Q++){if(O.next<0){Q>0&&O.acceptToken(13);break}if($()||i())O.advance();else{if(0===t.length&&(O.next===Bt||41===O.next||93===O.next)){O.acceptToken(13);break}switch(O.next){case 40:t.push("(");break;case 41:w("(");break;case 91:t.push("[");break;case 93:w("[");break;case 123:t.push("{");break;case Bt:w("{")}O.advance()}}})),Ow=new O((O=>{if(Kt.includes(O.peek(0)))return;const $=At(O),i=It(O);let t=[];const w=O=>{const $=t.lastIndexOf(O);if(-1!==$)for(;t.length>$;)t.pop()};for(let Q=0;;Q++){if(O.next<0){Q>0&&O.acceptToken(14);break}if($()||i())O.advance();else{if(0===t.length&&(O.next===Bt||41===O.next||93===O.next||44===O.next)){O.acceptToken(14);break}switch(O.next){case 40:t.push("(");break;case 41:w("(");break;case 91:t.push("[");break;case 93:w("[");break;case 123:t.push("{");break;case Bt:w("{")}if(0!==Q&&0===t.length&&Ct.includes(O.next)){O.acceptToken(14);break}O.advance()}}})),$w=Q({"Text RawText":w.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":w.angleBracket,TagName:w.tagName,"MismatchedCloseTag/TagName":[w.tagName,w.invalid],AttributeName:w.attributeName,UnquotedAttributeValue:w.attributeValue,"DoubleQuote SingleQuote AttributeValueContent":w.attributeValue,Is:w.definitionOperator,"EntityReference CharacterReference":w.character,Comment:w.blockComment,ProcessingInst:w.processingInstruction,DoctypeDecl:w.documentMeta,"{ }":w.bracket,"[ ]":w.squareBracket,"( )":w.paren,"| , :":w.punctuation,"...":w.derefOperator,ComponentName:w.className,SvelteElementNamespace:w.namespace,SvelteElementType:w.tagName,StyleAttributeName:w.propertyName,BlockType:w.controlKeyword,BlockPrefix:w.typeOperator,"UnknownBlock/BlockType":w.invalid,UnknownBlockContent:w.invalid,"if then catch":w.controlKeyword,as:w.definitionOperator,Variable:w.variableName,Modifier:w.modifier,DirectlyInterpolatedAttributeValue:w.attributeValue,"DirectiveOn/DirectiveName":w.controlKeyword,"DirectiveOn/DirectiveTarget":w.typeName,"DirectiveUse/DirectiveName":w.controlKeyword,"DirectiveUse/DirectiveTarget":w.function(w.variableName),"DirectiveBind/DirectiveName":w.controlKeyword,"DirectiveBind/DirectiveTarget":w.variableName,"DirectiveLet/DirectiveName":w.definitionKeyword,"DirectiveLet/DirectiveTarget":w.definition(w.variableName),"DirectiveTransition/DirectiveName":w.operatorKeyword,"DirectiveTransition/DirectiveTarget":w.function(w.variableName),"DirectiveIn/DirectiveName":w.operatorKeyword,"DirectiveIn/DirectiveTarget":w.function(w.variableName),"DirectiveOut/DirectiveName":w.operatorKeyword,"DirectiveOut/DirectiveTarget":w.function(w.variableName),"DirectiveAnimate/DirectiveName":w.operatorKeyword,"DirectiveAnimate/DirectiveTarget":w.function(w.variableName),"DirectiveClass/DirectiveName":w.attributeName,"DirectiveClass/DirectiveTarget":w.variableName,"DirectiveStyle/DirectiveName":w.attributeName,"DirectiveStyle/DirectiveTarget":w.propertyName}),iw={__proto__:null,"#":41,":":51,"/":59,"@":109},tw={__proto__:null,if:44,else:52,each:64,await:82,then:90,catch:94,key:102,html:110,debug:114,const:118},ww={__proto__:null,if:54,as:66,then:84,catch:86},Qw={__proto__:null,on:313,bind:317,let:319,class:321,style:323,use:325,transition:327,in:329,out:331,animate:333},ew={__proto__:null,svelte:243},aw=$.deserialize({version:14,states:"DxQVO#|OOO!ZO#|O'#ClO#[O#|O'#CzO$]O#|O'#DTO%^O#|O'#D_O&_Q'[O'#DjO&mQ&jO'#DrO&rQ&jO'#EpO&wQ&jO'#EsO&|Q&jO'#EvO'XQ&jO'#E|O'^OXO'#DqO'iOYO'#DqO'tO[O'#DqO)TO#|O'#DqOOOW'#Dq'#DqO)[O&zO'#FOO&|Q&jO'#FQO&|Q&jO'#FROOOW'#Fj'#FjOOOW'#FT'#FTQVO#|OOOOOW'#FU'#FUO!ZO#|O,59WOOOW,59W,59WO)uQ'[O'#DjO#[O#|O,59fOOOW,59f,59fO)|Q'[O'#DjOOOW'#FV'#FVO$]O#|O,59oOOOW,59o,59oO*fQ'[O'#DjOOOW'#FW'#FWO%^O#|O,59yOOOW,59y,59yO*mQ'[O'#DjO+OQ&jO,5:UO+TQ,UO,5:VO+YQ,UO,59XO+hQ,UO,59}O,nQ7[O,5:^O,uQ7[O,5;[O,|Q7[O,5;_O-TO,UO'#ExOOQO'#F|'#F|O-YQ7[O,5;bO-dQ7[O,5;hOOOX'#F^'#F^O-kOXO'#EnO-vOXO,5:]OOOY'#F_'#F_O.OOYO'#EqO.ZOYO,5:]OOO['#F`'#F`O.cO[O'#EtO.nO[O,5:]O.vO#|O,5:]O&|Q&jO'#E{OOOW,5:],5:]OOO`'#Fa'#FaO.}O&zO,5;jOOOW,5;j,5;jO/VQ,UO,5;lO/[Q,UO,5;mOOOW-E9R-E9ROOOW-E9S-E9SOOOW1G.r1G.rO/aQ,UO,59`O/fQ,UO,59dOOOW1G/Q1G/QO/kQ,UO,59nOOOW-E9T-E9TOOOW1G/Z1G/ZO/pQ,UO,59tO/xQ,UO,59xOOOW-E9U-E9UOOOW1G/e1G/eO/}Q,UO,59|OOOW1G/p1G/pO0SQMhO1G/qO0[Q'[O1G.sO0aQ'|O1G/RO0fQ'|O1G/[O0kQ'[O1G/fO0pQ'[O1G/iO0uQ!LQO1G/lO0zQ'[O1G/nO1PQ$ISO'#DtOOOO'#Dz'#DzO1[O,UO'#DyOOOO'#EO'#EOO1aO,UO'#D}OOOO'#EQ'#EQO1fO,UO'#EPOOOO'#ES'#ESO1kO,UO'#EROOOO'#EU'#EUO1pO,UO'#ETOOOO'#EW'#EWO1uO,UO'#EVOOOO'#EY'#EYO1zO,UO'#EXOOOO'#E['#E[O2PO,UO'#EZOOOO'#E^'#E^O2UO,UO'#E]OOOO'#E`'#E`O2ZO,UO'#E_O2`Q7[O'#DxO3gQ7[O'#EjO4kQ7[O'#ElOOQO'#Fl'#FlOOQO'#FY'#FYO5rQ7[O1G/xOOOX1G/x1G/xOOQO'#Fm'#FmO5yQ7[O1G0vOOOY1G0v1G0vO6QQ7[O1G0yOOO[1G0y1G0yO6XO(CWO,5;dO6^Q7[O1G0|OOOW1G0|1G0|OOOW1G1S1G1SO6hQ7[O1G1SOOOX-E9[-E9[O6oQ&jO'#EoOOOW1G/w1G/wOOOY-E9]-E9]O6tQ&jO'#ErOOO[-E9^-E9^O6yQ&jO'#EuO7OQ,UO,5;gOOO`-E9_-E9_OOOW1G1U1G1UOOOW1G1W1G1WOOOW1G1X1G1XP)dQ'[O'#DjO7TQ$ISO1G.zO7]Q&jO1G/OO7bQ&jO1G/YP*TQ'[O'#DjO7gQ!LQO1G/`O7oQ!LQO1G/bO7wQ&jO1G/dO7|Q&jO1G/hOOOW7+%]7+%]O8RQ&jO7+%]O8WQ&jO7+$_O8]Q$ISO7+$mO8bQ$ISO7+$vO8mQ&jO7+%QO8rQ&jO7+%TO8wQ&jO7+%WO9PQ&jO7+%YOOQO'#Du'#DuOOQO,5:`,5:`O9UQ&jO,5:`O9ZQ'[O,5:bO9`O07`O,5:eO9eO07`O,5:iO9jO07`O,5:kO9oO07`O,5:mO9tO07`O,5:oO9yO07`O,5:qO:OO07`O,5:sO:TO07`O,5:uO:YO07`O,5:wO:_O07`O,5:yO:dQ?MpO'#FZO:iQ7[O,5:dO;pQ!0LbO,5:dOSQ'[O7+$fOOOW7+$j7+$jOOOW7+$t7+$tOOOW7+$z7+$zO>XQ&jO7+$zOOOW7+$|7+$|O>^Q&jO7+$|OOOW7+%O7+%OOOOW7+%S7+%SOOOW<cQ'|O<hQ'|O<mQ!LQO'#FXO>rQ&jO<zQ&jO1G/|OOQO1G0P1G0POOQO1G0T1G0TOOQO1G0V1G0VOOQO1G0X1G0XOOQO1G0Z1G0ZOOQO1G0]1G0]OOQO1G0_1G0_OOQO1G0a1G0aOOQO1G0c1G0cOOQO1G0e1G0eOOQO,5;u,5;uOOQO-E9X-E9XO?PQ!0LbO1G0OO?_Q'[O'#DjOOQO'#Ed'#EdO?uO#@ItO'#EdO@_O&2DjO'#EdOOQO1G0O1G0OOOQO1G0p1G0pO@fQ!0LbO1G0rOOQO1G0r1G0rOOOW1G0u1G0uOOOW1G0x1G0xOOOW1G0{1G0{O@tQ&jO<^AN>^OOQO7+%h7+%hOOQO7+%j7+%jOOOO'#Fz'#FzOOOO'#F['#F[OAZO#@ItO'#EfOOQO,5;O,5;OOAbO&jO,5;OOOOO'#F]'#F]OAgO&2DjO'#EhOAnO&jO,5;OOOQO7+&^7+&^OOOWAN=lAN=lOOOWG23_G23_OAsQ'[OG23_OAxQ!LQOG23_OOOWG23hG23hOOOO-E9Y-E9YOOQO1G0j1G0jOOOO-E9Z-E9ZOBTQ&jOLD(yOOOWLD(yLD(yOBYQ'[OLD(yOB_Q&jOLD(yOBgQ&jO!$'LeOBlQ&jO!$'LeOOOW!$'Le!$'LeOBqQ'[O!$'LeOOOW!)9BP!)9BPOBvQ&jO!)9BPOB{Q&jO!)9BPOOOW!.K7k!.K7kOCQQ&jO!.K7kOOOW!4/-V!4/-V",stateData:"Cd~O$]OS~OSXOTUOUVOVWOWYOYbOZaO[cObTO!acO!bcO!ccO!dcO#scO#vdO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObiO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cOblO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObpO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObtO!acO!bcO!ccO!dcO#scO$q`O~O]uOcvOdwO!WxO~O!gyO~O!gzO~O!g{O~O!g}O#k}O#m|O~O!g!PO~O$V!QOP#bP$Y#bP~O$W!TOQ#eP$Y#eP~O$X!WOR#hP$Y#hP~OSXOTUOUVOVWOWYOX![OYbOZaO[cObTO!acO!bcO!ccO!dcO#scO$q`O~O$Y!]O~P(PO$Z!^O$r!`O~O]uOcvOdwOi!fO!WxO~Om!gO~P)dOm!iO~P)dO]uOcvOdwOi!lO!WxO~Om!mO~P*TO]uOcvOdwOm!pO!WxO~Og!qO~Oe!rO~Of!sOp!tOy!uO!T!vO~O!X!wO!Z!xO!]!yO~Ob!zO!o#cO#_#bO$b!{O$d!}O$e#PO$f#RO$g#TO$h#VO$i#XO$j#ZO$k#]O$l#_O~O#a#gO~P+sO#a#jO~P+sO#a#lO~P+sO$c#mO~O#a#oO#q#pO~P+sO#a#pO~P+sO$V!QOP#bX$Y#bX~OP#sO$Y#tO~O$W!TOQ#eX$Y#eX~OQ#vO$Y#tO~O$X!WOR#hX$Y#hX~OR#xO$Y#tO~O$Y#tO~P(PO$Z!^O$r#{O~O#a#|O~O#a#}O~Oj$PO~Of$QO~Op$RO~O}$TO!P$UO~Oy$VO~O!T$WO~Og$XO!`$YO~O]$ZO~O^$[O~O^$]O~O]$^O~O]$_O~Ou$`O~O]$aO~Og$cO!k$eO$_$bO~O$c$fO~O$c$gO~O$c$hO~O$c$iO~O$c$jO~O$c$kO~O$c$lO~O$c$mO~O$c$nO~O$c$oO~O#T$pO#V$rOb!lX!o!lX#_!lX#a!lX$b!lX$d!lX$e!lX$f!lX$g!lX$h!lX$i!lX$j!lX$k!lX$l!lX#q!lX~O#V$sOb#^X!o#^X#_#^X#a#^X$b#^X$d#^X$e#^X$f#^X$g#^X$h#^X$i#^X$j#^X$k#^X$l#^X#q#^X~O#T$pO#V$uOb#`X!o#`X#_#`X#a#`X$b#`X$d#`X$e#`X$f#`X$g#`X$h#`X$i#`X$j#`X$k#`X$l#`X#q#`X~O#a$wO~P+sO#a$xO~P+sO#a$yO~P+sO#n$zO~O#a${O#q$|O~P+sO#a$|O~P+sO!g$}O~O!g%OO~O!g%PO~O#a%QO~Og%ROk%SO~Og%TO~Og%UO~Og%VOu%WO~Og%XOu%YO~Og%ZO~Og%[O~Og%]O~Og%^O~Oq%_O~Og%`Oz%aO{%aO~Og%bO~Og%cO~Og%fOt%dO~Og%gO~Og%hO~O]%iO~O!p%jO~O!p%kO~O!p%lO~O!p%mO~O!p%nO~O!p%oO~O!p%pO~O!p%qO~O!p%rO~O!p%sO~O#U%tO~O#T$pO#V%vOb!la!o!la#_!la#a!la$b!la$d!la$e!la$f!la$g!la$h!la$i!la$j!la$k!la$l!la#q!la~Ob%wO#X%yO#Z%zO#]%{O~Ob%wO#X%yO#Z%zO#]%|O~O#T$pO#V%}Ob#`a!o#`a#_#`a#a#`a$b#`a$d#`a$e#`a$f#`a$g#`a$h#`a$i#`a$j#`a$k#`a$l#`a#q#`a~Ob%wO#X%yO#Z%zO#]&OO~O#a&PO~O#a&QO~O#a&RO~O]&SO~Og&TO~Og&UO~O^&VO~O^&WO~Ou&XO~Og&ZOt%dO~Og&[O~Ob%wO#X%yO#Z%zO#]&]O~O]uO~Ob%wO!b&^O!c&^O!d&^O$m&_O~O#X&aO~P?dOb%wO!b&^O!c&^O!d&^O$o&cO~O#Z&aO~P?|Ob%wO#X%yO#Z%zO#]&fO~Og&gO~Og&hOr&iOt&jO~Og&kO~O#X#YX~P?dO#X&mO~O#Z#[X~P?|O#Z&mO~O]&oO~Og&pOr&qOu&rO~Os&sO~O]&tO~Og&uOr&vO~Og&wO~Os&xO~O]&yO~Og&zO~Os&{O~Og&|O~O!`$]#q$q#s#v!c!b#_!o!d#a~",goto:"1T$qPPPPPPPPPPPPPPPP$r%QPPPPPP%`PPP%fP$r%lPPPPPP%z$r&QPPP&`P&`P&d$r&jP&x$rPP$rP$rP'O$rPPPPP$r'kP'y(V'yP'y(Y(fPP(Y(r(Y)O(Y)[(Y)h(Y)t(Y*Q(Y*^(Y*j(Y*vPPP+SP+cP+fP'yP'yP+i+l+o+},Q,T,c,f,iP,wPP,}-TP$rP$r$rP-c-i-s-y.T.Z.q.{/R/X/_/e/kPPPPPPPP/qP0V0cPPPPPPPPPPPP0oP0wicOPQRS^egjnr!ZiPOPQRS^egjnr!ZXfPQgjQhPR!egiQOPQRS^egjnr!ZQkQR!hjiROPQRS^egjnr!ZTmRnQoRR!kniSOPQRS^egjnr!ZQsSR!orhcOPQRS^egjnr!ZY%x$r$s$u%v%}X&^%y%z&`&diZOPQRS^egjnr!Ze#dyz{!O!P#f#i#k#n#qR$d!ze#hyz{!O!P#f#i#k#n#qe!|yz{!O!P#f#i#k#n#qe#Oyz{!O!P#f#i#k#n#qe#Qyz{!O!P#f#i#k#n#qe#Syz{!O!P#f#i#k#n#qe#Uyz{!O!P#f#i#k#n#qe#Wyz{!O!P#f#i#k#n#qe#Yyz{!O!P#f#i#k#n#qe#[yz{!O!P#f#i#k#n#qe#^yz{!O!P#f#i#k#n#qe#`yz{!O!P#f#i#k#n#qQ%{$rQ%|$sQ&O$uQ&]%vR&f%}R&b%yR&e%zR!SZR#t!Si[OPQRS^egjnr!ZR!V[R#t!Vi]OPQRS^egjnr!ZR!Y]R#t!Yi^OPQRS^egjnr!ZX}Xab![Q!]^R#t!Zi_OPQRS^egjnr!ZQeOR!ceQgPQjQT!dgjQnRR!jnQrSQ!Z^T!nr!ZQ%e$`R&Y%eQ#fyQ#izQ#k{Q#n!OQ#q!PZ$v#f#i#k#n#qQ$q#aQ$t#cT%u$q$tQ&`%yR&l&`Q&d%zR&n&dQ!RZR#r!RQ!U[R#u!UQ!X]R#w!XQ!_`R#z!_SdOeWfPQgjSmRnXqS^r!Ze#eyz{!O!P#f#i#k#n#qe#ayz{!O!P#f#i#k#n#qS&_%y&`T&c%z&dQ!OXQ!aaQ!bbR#y![",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag LongExpression ShortExpression Document IfBlock IfBlockOpen { BlockPrefix BlockPrefix BlockType BlockType } ElseBlock BlockPrefix BlockType if IfBlockClose BlockPrefix EachBlock EachBlockOpen BlockType as ( ) , Variable EachBlockClose AwaitBlock AwaitBlockOpen BlockType then catch ThenBlock BlockType CatchBlock BlockType AwaitBlockClose KeyBlock KeyBlockOpen BlockType KeyBlockClose RawHTMLBlock BlockPrefix BlockType DebugBlock BlockType ConstBlock BlockType Interpolation UnknownBlock UnknownBlockContent Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName DirectlyInterpolatedAttribute DirectlyInterpolatedAttributeValue SpreadInterpolatedAttribute ... Directive DirectiveOn DirectiveName AttributeName DirectiveTarget DirectiveBind DirectiveName DirectiveLet DirectiveName DirectiveClass DirectiveName DirectiveStyle DirectiveName DirectiveUse DirectiveName DirectiveTransition DirectiveName DirectiveIn DirectiveName DirectiveOut DirectiveName DirectiveAnimate DirectiveName | Modifier Is AttributeValue DoubleQuote AttributeValueContent SingleQuote AttributeValueContent UnquotedAttributeValue StyleAttribute StyleAttributeName Attribute EndTag ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag ComponentName SvelteElementName SvelteElementNamespace SvelteElementType CloseTag SelfClosingTag SelfClosingEndTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:172,context:zt,nodeProps:[["closedBy",-10,1,2,3,5,6,7,8,9,10,11,"EndTag",4,"EndTag SelfClosingEndTag",17,"IfBlockClose",18,"}",31,"EachBlockClose",34,"(",40,"AwaitBlockClose",48,"AwaitBlockOpen",50,"KeyBlockClose",-4,68,112,115,118,"CloseTag",101,'"',103,"'"],["group",-10,12,60,64,65,66,67,126,127,128,129,"Entity",-4,16,30,39,49,"Block Entity",-4,17,31,40,50,"BlockOpen",-3,24,44,46,"BlockInline",-4,28,38,48,52,"BlockClose",-4,53,56,58,61,"BlockInline Entity",63,"Entity TextContent",-3,110,113,116,"TextContent Entity"],["openedBy",23,"{",28,"IfBlockOpen",35,")",38,"EachBlockOpen",52,"KeyBlockOpen",101,'"',103,"'",109,"StartTag StartCloseTag",-4,111,114,117,123,"OpenTag",125,"StartTag"]],propSources:[$w],skippedNodes:[0],repeatNodeCount:13,tokenData:"&8h$IRR!dOX%aXY/TYZ/TZ[%a[]1{]^/T^p%apq/Tqr2yrsEastF_tuHxuv2yvw!)[wx#,nxy#-lyz#0Vz|2y|}#2p}!O#5Z!O!P#Kk!P!Q$%S!Q![2y![!]$'{!]!^2y!^!_$)u!_!`%'{!`!a%({!a!b2y!b!cF_!c!}%){!}#R2y#R#S%AU#S#T&%m#T#o&'m#o#p&1P#p#q&1d#q#r&3[#r#s2y#s$f%a$f$g2y$g%WHx%W%o%AU%o%pHx%p&a%AU&a&bHx&b1p%AU1p4UHx4U4d%AU4d4eHx4e$IS%AU$IS$I`Hx$I`$Ib%AU$Ib$KhHx$Kh%#t%AU%#t&/xHx&/x&Et%AU&Et&FVHx&FV;'S%AU;'S;:j&5p;:j;=`&5v<%l?&rHx?&r?Ah%AU?Ah?BY&5|?BY?Mn%AU?MnO&5|$3X%ng!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V7m'`g!aP#]7[!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Va)OZ!aP!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w`)vS!``O#q)q#r;'S)q;'S;=`*S<%lO)q`*VP;=`<%l)qP*_U!aPOv*Yw!^*Y!_#o*Y#p;'S*Y;'S;=`*q<%lO*YP*tP;=`<%l*Ya*zP;=`<%l(w7l+Uc#]7[!``OX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}7[,fY#]7[OX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a7[-XP;=`<%l,a7l-_P;=`<%l*}7]-id!aP#]7[OX-bXZ*YZ[-b[^*Y^p-bpq*Yqr-brs*Ysv-bvw,awx*Yx!^-b!_!a*Y!a#S-b#S#T*Y#T#o-b#o#p,a#p;'S-b;'S;=`.w<%lO-b7].zP;=`<%l-b7m/QP;=`<%l'V$@q/bb!aP$mMh$o!LQ!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(wEV0sb!aP!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w#J{2WZ!aP$mMh$o!LQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$DR3^p!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHg5qp!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHf8Sn!p&j#U,U#]7[!``!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}2Y:]f!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`m<%l?AhpP;=`<%lvP;=`<%l7u2Z?Wi!p&j#U,U!aP!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w1yAQg!p&j#U,U!aP!oWOq*Yqr@urs*Ysv@uvw;qwx*Yx!P@u!P!Q*Y!Q![@u![!]*Y!]!^@u!^!_;q!_!a*Y!a#o@u#p#q*Y#q#s@u#s$f*Y$f;'S@u;'S;=`Bi<%l?Ah@u?Ah?BY*Y?BY?Mn@u?MnO*Y1yBlP;=`<%l@u2ZBrP;=`<%l>yHVCSo!p&j#U,U!aP#]7[!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvwy#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$FZIcweS!p&j#U,U!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nJoLcweS!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nIX! _w!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![N|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}N|!}#R5b#R#SN|#S#T>y#T#oN|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SN|;'S;=`!#x<%l?AhN|?Ah?BY!$O?BY?MnN|?MnO!$OIX!#{P;=`<%lN|8_!$Zq!aP#]7[up!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!$Ouv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!$O![!^'V!^!_)q!_!a(w!a!c'V!c!}!$O!}#R'V#R#S!$O#S#T(w#T#o!$O#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!$O;'S;=`!&b<%lO!$O8_!&eP;=`<%l!$OJo!&kP;=`<%lK|9u!&}qeS!aP#]7[up$_!b!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!&nuv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!&n![!^'V!^!_)q!_!a(w!a!c'V!c!}!&n!}#R'V#R#S!&n#S#T(w#T#o!&n#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!&n;'S;=`!)U<%lO!&n9u!)XP;=`<%l!&n$DR!)ko!p&j#U,U#]7[!``!oW!d#JkOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust!B^tw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^7u!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$3X!+se#]7[!``OX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!+lrs!-Ust*}tw!+lwx!-Ux!]!+l!]!^!/[!^!a!-U!a#S!+l#S#T!-U#T#q!+l#q#r!0p#r;'S!+l;'S;=`!2z<%lO!+l#J{!-ZZ!``Op!-Upq)qqs!-Ust)qt!]!-U!]!^!-|!^#q!-U#q#r!.a#r;'S!-U;'S;=`!/U<%lO!-U#J{!.TS!``!b#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!.dVOp!.aqs!.at!]!.a!]!^!.y!^;'S!.a;'S;=`!/O<%lO!.a#Jk!/OO!b#Jk#Jk!/RP;=`<%l!.a#J{!/XP;=`<%l!-U$3X!/ec#]7[!``!b#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!0ub#]7[OX!0pXZ!.aZ[!0p[^!.a^p!0pqr!0prs!.ast,atw!0pwx!.ax!]!0p!]!^!1}!^!a!.a!a#S!0p#S#T!.a#T;'S!0p;'S;=`!2t<%lO!0p$2w!2UY#]7[!b#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!2wP;=`<%l!0p$3X!2}P;=`<%l!+l$DR!3_o!p&j#U,U#]7[!``!oWOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust7utw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^!5`!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$DR!5on!p&j#U,U#]7[!``!b#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u!7xi!p&j#U,U!``!oWOp!-Upq)qqr!7mrs!-Ust:Qtw!7mwx!-Ux!P!7m!P!Q!-U!Q![!7m![!]!-U!]!^!9g!^!_!7m!_!a!-U!a#o!7m#o#q!-U#q#r!;Y#r#s!7m#s$f!-U$f;'S!7m;'S;=`!>O<%l?Ah!7m?Ah?BY!-U?BY?Mn!7m?MnO!-U$-u!9tf!p&j#U,U!``!b#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`RP;=`<%l!7m$Cq!>am!p&j#U,U#]7[!oWOX!0pXZ!.aZ[!0p[^!.a^p!0pqr!>Urs!.astUwx!.ax!P!>U!P!Q!0p!Q![!>U![!]!0p!]!^!@[!^!_!;Y!_!a!.a!a#S!>U#S#T!;Y#T#o!>U#o#q!0p#q#s!>U#s$f!0p$f;'S!>U;'S;=`!BQ<%l?Ah!>U?Ah?BY!0p?BY?Mn!>U?MnO!0p$Cq!@ig!p&j#U,U#]7[!b#Jk!oWOX,aZ[,a^p,aqrm<%l?AhU$DR!BZP;=`<%l!3Q$DR!Bkn!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^7u!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$3X!Dpd#]7[!``OX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Dirs!FOsw!Diwx!FOx!]!Di!]!^!G{!^!a!FO!a#S!Di#S#T!FO#T#q!Di#q#r!Ia#r;'S!Di;'S;=`!Kh<%lO!Di#J{!FTX!``Op!FOpq)qq!]!FO!]!^!Fp!^#q!FO#q#r!GT#r;'S!FO;'S;=`!Gu<%lO!FO#J{!FwS!``!c#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!GWUOp!GTq!]!GT!]!^!Gj!^;'S!GT;'S;=`!Go<%lO!GT#Jk!GoO!c#Jk#Jk!GrP;=`<%l!GT#J{!GxP;=`<%l!FO$3X!HUc#]7[!``!c#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!Ifa#]7[OX!IaXZ!GTZ[!Ia[^!GT^p!Iaqr!Iars!GTsw!Iawx!GTx!]!Ia!]!^!Jk!^!a!GT!a#S!Ia#S#T!GT#T;'S!Ia;'S;=`!Kb<%lO!Ia$2w!JrY#]7[!c#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!KeP;=`<%l!Ia$3X!KkP;=`<%l!Di$DR!K{n!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^!My!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$DR!NYn!p&j#U,U#]7[!``!c#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#rs<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u#!ch!p&j#U,U!``!oWOp!FOpq)qqr#!Wrs!FOsw#!Wwx!FOx!P#!W!P!Q!FO!Q![#!W![!]!FO!]!^##}!^!_#!W!_!a!FO!a#o#!W#o#q!FO#q#r#%p#r#s#!W#s$f!FO$f;'S#!W;'S;=`#(c<%l?Ah#!W?Ah?BY!FO?BY?Mn#!W?MnO!FO$-u#$[f!p&j#U,U!``!c#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`m<%l?Ahy#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#0lpsQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#3VptQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#5nr!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O#7x!O!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHi#8Xq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr#:`rs(wsv#:`vw#y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy#Nfq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!O5b!O!P$!m!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy$#Op!k!b!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$3g$%chcQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!`(w!`!a$&}!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Vm$'YZ!aP!``#qW#a[Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$3_$(^g$cScQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$-u$*Ug!p&j#U,U$mMh$o!LQ!``!oWOq)qqr$+mrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!b$LZ!b#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=``!a#o$`!a#q$=t#q#r$>s#r;'S$=t;'S;=`$?b<%lO$=ta$>gS!``#vPO#q)q#r;'S)q;'S;=`*S<%lO)qP$>vTO!`$>s!`!a$?V!a;'S$>s;'S;=`$?[<%lO$>sP$?[O#vPP$?_P;=`<%l$>sa$?eP;=`<%l$=t1y$?qf!p&j#U,U!oWOq$>sqr$?hrs$>ssw$?hwx$>sx!P$?h!P!Q$>s!Q![$?h![!]$>s!]!_$?h!_!`$>s!`!a$?V!a#o$?h#o#q$>s#q#s$?h#s$f$>s$f;'S$?h;'S;=`$AV<%l?Ah$?h?Ah?BY$>s?BY?Mn$?h?MnO$>s1y$AYP;=`<%l$?h2Z$A`P;=`<%l$y#T#o%y#T#o%.o#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%.o%O%W5b%W%o%.o%o%p5b%p&a%.o&a&b5b&b1p%.o1p4U%.o4U4d%.o4d4e5b4e$IS%.o$IS$I`5b$I`$Ib%.o$Ib$Je5b$Je$Jg%.o$Jg$Kh5b$Kh%#t%.o%#t&/x5b&/x&Et%.o&Et&FV5b&FV;'S%.o;'S;:j%2|;:j;=`EZ<%l?&r5b?&r?Ah%.o?Ah?BY'V?BY?Mn%.o?MnO'VHi%3PP;=`<%l%.oIZ%3g!a#kQ!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%3S![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%3S!}#R5b#R#S%3S#S#T>y#T#o%3S#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%3S%O%WN|%W%o%3S%o%pN|%p&a%3S&a&bN|&b1p%3S1p4U%3S4U4d%3S4d4eN|4e$IS%3S$IS$I`N|$I`$Ib%3S$Ib$JeN|$Je$Jg%3S$Jg$KhN|$Kh%#t%3S%#t&/xN|&/x&Et%3S&Et&FVN|&FV;'S%3S;'S;:j%7l;:j;=`!#x<%l?&rN|?&r?Ah%3S?Ah?BY!$O?BY?Mn%3S?MnO!$OIZ%7oP;=`<%l%3SJq%8Z!aeS#kQ!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%7r![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%7r!}#R5b#R#S%7r#S#T>y#T#o%7r#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%7r%O%WK|%W%o%7r%o%pK|%p&a%7r&a&bK|&b1p%7r1p4U%7r4U4d%7r4d4eK|4e$IS%7r$IS$I`K|$I`$Ib%7r$Ib$JeK|$Je$Jg%7r$Jg$KhK|$Kh%#t%7r%#t&/xK|&/x&Et%7r&Et&FVK|&FV;'S%7r;'S;:j%<`;:j;=`!&h<%l?&rK|?&r?Ah%7r?Ah?BY!&n?BY?Mn%7r?MnO!&nJq%y#T#o%y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nHi%FX!^!p&j#U,U!gQ!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O%Ev!O!P%Ev!P!Q'V!Q![%Ev![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ev!}#R5b#R#S%Ev#S#T>y#T#o%Ev#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%Ev%O%W5b%W%o%Ev%o%p5b%p&a%Ev&a&b5b&b1p%Ev1p4U%Ev4U4d%Ev4d4e5b4e$IS%Ev$IS$I`5b$I`$Ib%Ev$Ib$Je5b$Je$Jg%Ev$Jg$Kh5b$Kh%#t%Ev%#t&/x5b&/x&Et%Ev&Et&FV5b&FV;'S%Ev;'S;:j%JT;:j;=`EZ<%l?&r5b?&r?Ah%Ev?Ah?BY'V?BY?Mn%Ev?MnO'VHi%JWP;=`<%l%EvIZ%Jn!a!p&j#U,U!gQ!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%JZ![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%JZ!}#R5b#R#S%JZ#S#T>y#T#o%JZ#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%JZ%O%WN|%W%o%JZ%o%pN|%p&a%JZ&a&bN|&b1p%JZ1p4U%JZ4U4d%JZ4d4eN|4e$IS%JZ$IS$I`N|$I`$Ib%JZ$Ib$JeN|$Je$Jg%JZ$Jg$KhN|$Kh%#t%JZ%#t&/xN|&/x&Et%JZ&Et&FVN|&FV;'S%JZ;'S;:j%Ns;:j;=`!#x<%l?&rN|?&r?Ah%JZ?Ah?BY!$O?BY?Mn%JZ?MnO!$OIZ%NvP;=`<%l%JZJq& b!aeS!p&j#U,U!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ny!}#R5b#R#S%Ny#S#T>y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nJq&%jP;=`<%l%Ny$-u&&Oi!p&j#U,U!aP$mMh$o!LQ!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w$IR&([!aeS!p&j#U,U#n#t!gQ!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nMg&,z!aeS!p&j#U,U#n#t!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&n$3a&1WSb$3P!``O#q)q#r;'S)q;'S;=`*S<%lO)q$3a&1sg#TW!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$FX&3oog#f!p&j#U,U!aP#]7[$mMh$o!LQ!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvwiw[O]||-1},{term:21,get:O=>tw[O]||-1},{term:153,get:O=>ww[O]||-1},{term:77,get:O=>Qw[O]||-1},{term:69,get:O=>ew[O]||-1}],tokenPrec:1571});function Xw(O,$){let i=Object.create(null);for(let t of O.firstChild.getChildren("Attribute")){let O=t.getChild("AttributeName"),w=t.getChild("AttributeValue")||t.getChild("UnquotedAttributeValue");O&&(i[$.read(O.from,O.to)]=w?"AttributeValue"==w.name?$.read(w.from+1,w.to-1):$.read(w.from,w.to):"")}return i}function ow(O,$,i){let t;for(let w of i)if(!w.attrs||w.attrs(t||(t=Xw(O.node.parent,$))))return{parser:w.parser};return null}const Sw=R.configure({top:"SingleExpression"});function rw(O){let $=[],i=[],t=[];for(let w of O){let O="script"==w.tag?$:"style"==w.tag?i:"textarea"==w.tag?t:null;if(!O)throw new RangeError("Only script, style, and textarea tags can host nested parsers");O.push(w)}return a(((O,w)=>{let Q=O.type.id;return 13===Q||14===Q?{parser:Sw}:110===Q?ow(O,w,$):113===Q?ow(O,w,i):116===Q?ow(O,w,t):null}))}const Pw=[{tag:"script",attrs:O=>"text/typescript"===O.type||"ts"===O.lang,parser:y.parser},{tag:"script",attrs:O=>!O.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(O.type),parser:T.parser},{tag:"style",attrs:O=>(!O.lang||"css"===O.lang||"scss"===O.lang)&&(!O.type||/^(text\/)?(x-)?(stylesheet|css|scss)$/i.test(O.type)),parser:x.parser}],sw=e.define({parser:aw.configure({wrap:rw(Pw),props:[P.add({Element:O=>{let $=/^(\s*)(<\/)?/.exec(O.textAfter);return O.node.to<=O.pos+$[0].length?O.continue():O.lineIndent(O.node.from)+($[2]?0:O.unit)},Block:O=>{const $=O.node,i=O.textAfter.trim();if(i.startsWith("{/")){const t=$.name;return"IfBlock"===t&&i.startsWith("{/if")||"EachBlock"===t&&i.startsWith("{/each")||"AwaitBlock"===t&&i.startsWith("{/await")||"KeyBlock"===t&&i.startsWith("{/key")?O.lineIndent(O.node.from):null}if("IfBlock"===$.name||"EachBlock"===$.name){if(i.startsWith("{:else"))return O.lineIndent($.from)}else if("AwaitBlock"===$.name){if(i.startsWith("{:then"))return O.lineIndent($.from);if(i.startsWith("{:catch"))return O.lineIndent($.from)}let t=/^(\s*)(<\/)?/.exec(O.textAfter);return O.node.to<=O.pos+t[0].length?O.continue():O.lineIndent(O.node.from)+(t[2]?0:O.unit)},"BlockOpen BlockClose BlockInline":O=>O.column(O.node.from)+O.unit,"OpenTag CloseTag SelfClosingTag":O=>O.column(O.node.from)+O.unit,Document:O=>{if(O.pos+/\s*/.exec(O.textAfter)[0].length{const $=`${O.name}Open`,i=`${O.name}Close`,t=O.firstChild,w=O.lastChild;return t&&t.name===$?{from:t.to,to:(null==w?void 0:w.name)===i?w.from:O.to}:null},Element:O=>{let $=O.firstChild,i=O.lastChild;return $&&"OpenTag"==$.name?{from:$.to,to:"CloseTag"===i.name?i.from:O.to}:null}})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*((<\/\w+\W)|(\{:(else|then|catch))|(\{\/(if|each|await|key)))$/,wordChars:"-._",autocomplete:m}});function nw(O,$,i=O.length){if(!$)return"";let t=$.firstChild,w=t&&(t.getChild("TagName")||t.getChild("ComponentName")||t.getChild("SvelteElementName"));return w?O.sliceString(w.from,Math.min(w.to,i)):""}const Gw=h.inputHandler.of(((O,$,i,t)=>{if(O.composing||O.state.readOnly||$!=i||">"!=t&&"/"!=t||!sw.isActiveAt(O.state,$,-1))return!1;let{state:w}=O,Q=w.changeByRange(($=>{var i,Q,e;let a,{head:X}=$,o=f(w).resolveInner(X,-1);if("TagName"!==o.name&&"ComponentName"!==o.name&&"SvelteElementName"!==o.name&&"StartTag"!==o.name||(o=o.parent),">"===t&&"OpenTag"===o.name){if("CloseTag"!=(null===(Q=null===(i=o.parent)||void 0===i?void 0:i.lastChild)||void 0===Q?void 0:Q.name)&&(a=nw(w.doc,o.parent,X))){let $=">"===O.state.doc.sliceString(X,X+1),i=`${$?"":">"}`;return{range:Y.cursor(X+1),changes:{from:X+($?1:0),insert:i}}}}else if("/"===t&&"OpenTag"===o.name){let $=o.parent,i=null==$?void 0:$.parent;if($.from==X-1&&"CloseTag"!=(null===(e=i.lastChild)||void 0===e?void 0:e.name)&&(a=nw(w.doc,i,X))){let $=">"===O.state.doc.sliceString(X,X+1),i=`/${a}${$?"":">"}`,t=X+i.length+($?1:0);return{range:Y.cursor(t),changes:{from:X,insert:i}}}}return{range:$}}));return!Q.changes.empty&&(O.dispatch(Q,{userEvent:"input.type",scrollIntoView:!0}),!0)})),lw=296,qw=299,yw=123,Tw=125,xw=new O((O=>{for(let $=0;;$++)switch(O.next){case-1:return void($>0&&O.acceptToken(lw));case 34:return void($>0?O.acceptToken(lw):O.acceptToken(298,1));case yw:return void(O.peek(1)===yw?O.acceptToken(lw,2):O.acceptToken(297));case Tw:return void(O.peek(1)===Tw&&O.acceptToken(lw,2));case 92:const i=O.peek(1);if(i===yw||i===Tw)return;O.advance();default:O.advance()}})),cw=new O((O=>{for(let $=0;;$++)switch(O.next){case-1:return void($>0&&O.acceptToken(qw));case 34:return void(34===O.peek(1)?O.acceptToken(qw,2):$>0?O.acceptToken(qw):O.acceptToken(301,1));case yw:return void(O.peek(1)===yw?O.acceptToken(qw,2):O.acceptToken(300));case Tw:return void(O.peek(1)===Tw&&O.acceptToken(qw,2));default:O.advance()}})),pw={__proto__:null,extern:10,alias:12,using:16,void:626,sbyte:626,byte:626,short:626,ushort:626,int:626,uint:626,long:626,ulong:626,nint:626,nuint:626,char:626,float:626,double:626,bool:626,decimal:626,string:626,object:626,dynamic:626,global:54,static:56,namespace:58,true:662,false:662,null:664,await:112,throw:114,ref:140,in:158,out:160,scoped:162,var:164,this:168,base:170,new:174,typeof:190,sizeof:194,checked:198,unchecked:202,default:204,nameof:206,switch:210,_:215,not:231,and:233,or:235,when:246,with:250,async:252,delegate:254,readonly:264,const:272,unsafe:278,params:283,where:284,class:286,struct:288,notnull:290,unmanaged:292,if:294,else:296,case:300,while:302,do:304,for:306,foreach:310,break:314,continue:316,goto:318,return:320,try:322,catch:324,finally:328,lock:330,yield:334,fixed:336,stackalloc:342,as:364,is:366,from:387,let:389,join:391,on:393,equals:395,into:397,orderby:399,ascending:401,descending:403,select:405,group:407,by:409,public:412,protected:414,internal:416,private:418,virtual:420,sealed:422,override:424,abstract:426,volatile:428,partial:430,required:432,file:435,get:442,set:444,init:446,event:448,add:453,remove:455,operator:458,implicit:464,explicit:466,interface:470,record:476,enum:478},hw=$.deserialize({version:14,states:"&E`O#`QSOOOOQO'#Hh'#HhO#gQSO'#IyOOQO'#Hi'#HiO%kQSO'#IyO%rQSO'#NiOOQO'#If'#IfO'fQSO'#NiOOQO'#J['#J[OOQO'#JX'#JXOOQO'#Ho'#HoO*|QSO'#IyQOQSOOO+TQSO'#MaO,wQSO'#I|O-PQSO'#I|O,zQSO'#JYO-UQSO'#C}OOQO'#Ma'#MaO-ZQSO'#NiO,zQSO'#NkOOQO'#Hq'#HqO,zQSO'#J]O,zQSO'#NYO,zQSO'#N^O-cQSO'#NqOOQO-E;f-E;fO-nQSO,5?eO-uQSO,5?eOOQO-E;g-E;gOOQO-E;o-E;oO-|QSO,5DTO/mQSO,5DTO,zQSO,5DVO,zQSO,5?wO,zQSO,5CtO,zQSO,5CxO-cQSO,5D]OOQO-E[,5>[OOQO-E;n-E;nO!6sQSO,59hO!6zQSO,59hOOQO,59h,59hO!7RQSO,59hOOQO7+*z7+*zO!7YQSO7+$oOOQO,5?P,5?POOQO-EWQSO'#DeO!>hQSO'#DZOOQO'#DZ'#DZO!AnQSO'#JaO!DqQSO'#JaO!FuQSO'#JiOOQO'#Ji'#JiO!GPQTO'#DXO!G[QUO'#DuOOQO'#Jg'#JgOOQO'#Jc'#JcO!GgQSO'#JbOOQO'#Jb'#JbO#!PQSOOO#'RQSO'#GbOOQO'#MQ'#MQOOQO'#MP'#MPO#(nQSO'#GcO#(sQSO'#GcOOQO'#Ja'#JaO!>hQSO'#J`O#({QSO'#J`OOQO,59k,59kO#)QQSO,59kO!>hQSO'#DdO#)VQSO'#DZO!>hQSO'#DZOOQO'#Dy'#DyO#*sQSO'#JxO#*{QSO'#L}O#+ZQSO'#KpO#+iQSO'#GcO#+tQSO'#MTO#,PQSO'#JaO#/QQSO'#JaO#0WQSO'#JvO#0`QSO'#EUO#0qQSO'#KpO#0yQSO'#JcO#1OQSO'#JcO#1TQSO'#JcO#1YQSO'#JcOOQO7+$o7+$oOOQO'#LV'#LVO#(vQSO'#LUO-cQSO'#LUOOQO,5;x,5;xO#1_QSO,5;xO#2RQSO'#LUOOQO'#LW'#LWO#2nQSO'#LVO-cQSO'#LUO#2YQSO'#LVOOQO-ERO#6vQSO,5>QOOQO7+*}7+*}O#7OQSO'#MbOIcQSO7+*}O#7ZQSO'#MwO#7qQSO'#MwOOQO'#NZ'#NZOOQO'#Ii'#IiO#8_QSO,5=zOOQO,5=z,5=zO-cQSO'#N[OOQO7+.z7+.zOLQQSO7+.zO#8fQSO'#NeOOQO'#Nc'#NcOOQO'#Il'#IlO#8zQSO,5=|OOQO,5=|,5=|O#9RQSO'#NeO-cQSO'#NgO#9ZQSO'#NeO!#qQSO'#NaO#9iQSO'#N`OOQO'#Nb'#NbOOQO'#Na'#NaO,zQSO'#NaO#9qQSO,5CyOOQO7+/O7+/OO!!|QSO7+/OOOQO'#Hl'#HlO#9vQSO,5?pOOQO,5?p,5?pOOQO-E;i-E;iOOQO1G5W1G5WOOQO-E;k-E;kOOQO'#Cl'#ClO#:OQSO,5?oO-cQSO1G.tOOQO1G.q1G.qO#:WQSO7+/cO!(oQSO7+/cO#:`QSO<=$uOOQO<=$u<=$uO#:qQSO<=$uO#:`QSO<=$uO#:yQSO<=$uO#=`QSO<=$uO#=kQSO<=$uOOQO<=$w<=$wOI^QSO<=$wOIcQSO<hQSO'#JmO#HdQSO'#KrO#HlQSO,5;lO#HqQSO'#MRO#H|QSO,5:fO-cQSO'#KsOOQO'#Kq'#KqO#IRQSO,5=OO$#vQSO'#CeOOQO,59u,59uO$$^QSO'#DrOOQO'#Jk'#JkO$$cQSO,5@UO$$mQSO'#D|O$%QQSO,5@`O$%VQSO,5BhO$%[QSO,5@xO$%aQSO,5AZOOQO,5?},5?}OOQO,5@b,5@bO#0ZQSO,5@bO?rQSO,5?zOOQP'#Jh'#JhO!>hQSO'#JhOOQP'#Hr'#HrO$%fQTO,59sOOQO,59s,59sOOQQ'#Jl'#JlO!>hQSO'#JlOOQQ'#Ht'#HtO$%qQUO,5:aOOQO,5:a,5:aO$%|QSO,5@cO$$pQSO'#ERO$&RQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5hQSO,5?zOOQO1G/V1G/VOOQO,5:O,5:OO$-mQSO'#CeO$-tQSO'#CuO$1eQSO,59uO!;^QSO'#JnO$$yQSO'#DzO$4SQSO'#KpO$4XQSO,59uO$%VQSO,5@dOOQO,5@d,5@dO$5tQSO'#JzO$6VQSO'#GPO$6aQSO,5BiO$6fQSO,5BiO$7SQSO'#CeO$,xQSO'#FQO#(sQSO,5<}O#0qQSO,5A[O$7rQSO,5BoO$7yQSO,5BoOOQO'#MW'#MWOOQO'#MV'#MVO#,PQSO'#MUOOQO'#M]'#M]O$:bQSO'#MUO$;RQSO'#MXO$;WQSO'#MYO!>hQSO'#M^OOQO,5?{,5?{O$;cQSO'#MWO!>hQSO'#MWO!>hQSO'#M]O-cQSO'#EbO$$mQSO'#D|O$?iQSO'#E]OOQO'#KU'#KUO$?pQSO,5:pO$ExQSO,5:pO$FTQSO,5hQSO'#EdO$JwQSO'#EhO$KVQSO,5ApO#(vQSO,5ApOOQO1G1d1G1dO-cQSO,5ApO-cQSO,5ApOOQO,5Aq,5AqO$KeQSO,5AqO$KyQSO,5ApO$LOQSO,5CpO$LTQSO,5CcO-cQSO,5COO#4qQSO,5CPO-cQSO,5C_O#4bQSO,5CcO,zQSO,5CrO#4yQSO,5CQO#5XQSO,5CoOOQO'#M}'#M}O$LqQSO,5ChO$L|QSO,5CPO$MXQSO'#NRO$MrQSO'#HQO$MyQSO'#M{OOQO,5Cc,5CcOOQO'#M{'#M{O$NTQSO,5CrOOQO-EhQSO'#NXOOQO'#NX'#NXOOQO,5Co,5CoO%#YQSO1G7_O%#aQSO1G9pO,zQSO'#ImO%#aQSO1G9pO%#lQSO,5AoO%#lQSO,5AoOFXQSO'#I[OOQO1G7Y1G7YO%#tQSO,5DZO!>hQSO,5DZO#6UQSO'#InO%$PQSO,5DYO%$XQSO1G3mOOQO1G3l1G3lO%$^QSO,5B|O,zQSO'#IgO%$iQSO,5CcO-cQSO,5CvOOQO-EY,5>YOOQO-E;l-E;lOOQO7+$n7+$nO%1lQSO7+$nOOQOAN=uAN=uO%1sQSO'#ClOOQO1G5t1G5tO#0WQSO,5@ZO%:cQSO'#CeO%:vQSO'#ClOOQO1G/k1G/kO%;XQSO,5A_O$$yQSO'#HuO%;dQSO,5@XO%;lQSO,5@XO$FYQSO'#IUO%;vQSO,5A^OOQO1G1W1G1WO#(vQSO'#IcO%hQSO1G5pO%=sQSO'#JrOOQO'#Jq'#JqO%>QQSO'#JqO%>bQSO'#JpOOQO,5:h,5:hO!>hQSO'#JrO%>mQSO'#JrO%?OQSO,5:hO#GfQSO1G5zO%?TQSO1G5zO%GmQSO'#JyOOQO1G8S1G8SO&#aQSO'#EjOOQO1G6d1G6dO&#kQSO'#EWOOQO'#J|'#J|OOQO1G6u1G6uOOQO1G5|1G5|OOQO1G5f1G5fO&#vQSO,5@SOOQP-E;p-E;pOOQO1G/_1G/_O&$TQSO,5@WOOQQ-E;r-E;rOOQO1G/{1G/{O&$bQSO1G5}O&,zQSO,5:mOOQO,5qQSO'#MSOOQO1G2i1G2iOOQO'#MS'#MSO#(vQSO'#KsO'@^QSO'#MRO$,nQSO1G2iO?rQSO1G5fO'@fQSO1G5fOOQO1G6O1G6OOOQO,5@f,5@fOOQO,5hQSO'#GOOOQO1G8T1G8TO!>hQSO'#GQO#HQQSO,59YO'@tQSO1G2iOOQO1G6v1G6vO#0tQSO1G6vO$;cQSO1G8ZO'@yQSO1G8ZOOQO,5Bq,5BqO'CbQSO,5BpOOQO,5Bp,5BpO'DRQSO'#M_O'DWQSO,5BsO'D]QSO,5BtO'DdQSO,5BtO'DiQSO,5BxO'FWQSO,5BrO'FqQSO'#MZOOQO,5Br,5BrO'F{QSO,5BwO'HhQSO,5:|O'HmQSO,59YO'IpQSO'#CeO'JoQSO'#JnOOQO'#KX'#KXO'KkQSO'#KXO'KuQSO'#KWO'K}QSO,5:wO'LSQSO,5:xO'L[QSO'#EWOOQO'#J{'#J{OOQO1G0[1G0[O'LoQSO'#JUO'L|QSO1G2XO'MUQSO1G0[O((`QSO1G2XO()iQSO'#FVOOQO'#K}'#K}OOQO1G2X1G2XO()vQSO'#CeO$$yQSO'#DeO(,jQSO'#LaO(,tQSO'#JjOOQO'#Kx'#KxO(-lQSO'#LRO(.WQSO'#F[OOQO'#Kw'#KwOOQO'#L`'#L`O(.`QSO'#L`OOQO'#Lb'#LbOOQO'#Lg'#LgOOQO'#Ln'#LnOOQO'#L_'#L_OOQO'#Ku'#KuOOQO'#IV'#IVO(/cQSO,5;nOOQO,5;n,5;nO#)VQSO'#DZO(/jQSO'#DZO(/tQSO'#FTO',gQSO'#FTO(0SQSO'#FTO-cQSO'#FXO(0XQSO'#IZOOQO'#IZ'#IZO#1TQSO'#LcO#1TQSO'#LhO(0vQSO'#LiO(4_QSO'#LjO(4dQSO'#LmO(4iQSO'#DZO(4sQSO'#LoO(5OQSO'#LpO#1TQSO'#LuO(5]QSO'#LvO(5bQSO'#LxO(5jQSO'#LyO(5oQSO'#L_O#0WQSO'#JvO(5tQSO'#KyO(6[QSO'#KyO(6iQSO'#KxO#1TQSO'#LdO(6}QSO'#LnO#0tQSO'#LrO#1TQSO'#L_O(7SQSO,5:zO(7hQSO,5:zO(7mQSO,5;OO(7tQSO'#CeOOQO'#K]'#K]O(8SQSO'#K[O(8[QSO,5;SOBhQSO1G7[O!>hQSO1G7[O(8aQSO1G7[O#(vQSO1G7[O$KyQSO1G7[OOQO1G7]1G7]O(8oQSO1G7[O(8wQSO'#NVOOQO1G9[1G9[O-cQSO1G8jO$L|QSO1G8kO-cQSO1G8yO#4bQSO1G8}O$LqQSO1G9SO,zQSO1G9^O#4yQSO1G8lO#5XQSO1G9ZO#6XQSO1G8jO(9PQSO1G8kO%!WQSO1G8pO%!eQSO1G8yOOQO1G8}1G8}O(9UQSO1G9^O#4yQSO1G8lOOQO1G8l1G8lOOQO1G9Z1G9ZOOQO1G9S1G9SO(9ZQSO,5CjO-cQSO,5CmO(;PQSO'#MoO(;WQSO'#MnO(;_QSO'#MnO(;sQSO,5=lO(;xQSO'#MpO(hQSO,5CgO(<{QSO1G9^O(=QQSO'#LQO(=VQSO'#LPO(=_QSO1G8jO(=dQSO'#MiOOQO,5CS,5CSO% tQSO,5CSOOQO,5CV,5CVOOQO,5Ce,5CeO(=lQSO,5AgO!(bQSO'#IXO(=yQSO,5AfOOQO1G8k1G8kO(>UQSO'#MmO(>`QSO'#MmOOQO1G8p1G8pOBhQSO'#HYOOQO1G9O1G9OOOQO1G8m1G8mO(AvQSO'#CeO(CcQSO'#MkO(CnQSO'#MkOOQO1G8y1G8yO(CsQSO1G8yO(CxQSO,5CnO!>hQSO,5CnO(DPQSO,5CsO(DWQSO'#LZOOQO'#LY'#LYO(DoQSO'#L[OOQO'#L['#L[O(EZQSO'#LYOOQO7+,y7+,yO(ErQSO'#L]OOQO-EvOOQO,5>v,5>vO!>hQSO1G9uO(F[QSO1G9uOOQO,5?Y,5?YOOQO-EUOOQO-E;h-E;hOOQO<TOOQOG2>TG2>TO)#yQSOG2>TOOQO<aO!>hQSO,5>aOOQO-E;s-E;sO)$]QSO1G5sOOQO,5>p,5>pOOQO-E},5>}OOQO-EhQSO7+'uO'+]QSO'#EwO)BfQSO,5AVO)BmQSO'#H}O)BrQSO,5@}O)K_QSO'#KjO)KgQSO'#EoO)KlQSO'#KiOOQO,5;Y,5;YO)KtQSO,5;YOOQO'#Kf'#KfOOQO,5AO,5AOO'!^QSO,5AOOOQO,5;[,5;[OOQO,5;b,5;bO)K|QSO'#KnO)LWQSO'#KmO)L`QSO'#KmOOQO,5;e,5;eO)LnQSO,5;eO)LvQSO'#CeO)MaQSO,59YO)MoQSO'#KlO&!VQSO'#KlO)M}QSO,5;cO)NSQSO'#ElOOQO'#Ke'#KeOOQO,5;^,5;^O$+dQSO,5;^O$+dQSO,5;^OOQO,5AV,5AVO)NbQSO,5AVOOQO,5;d,5;dOOQO,5A_,5A_OOQO7+(T7+(TOOQO7++Q7++QO)NiQSO7++QOOQO1G2V1G2VO)NnQSO,5hQSO1G8`O* rQSO1G8`O!>hQSO1G8dOOQO'#M['#M[O* wQSO,5BuOOQO1G0h1G0hO*!cQSO,5@sO*!mQSO,5@`O$={QSO'#H{O*!rQSO,5@rOOQO1G0c1G0cO*!zQSO1G0dO*#PQSO'#CeO*%wQSO'#JiO*&RQSO'#KRO*&ZQSO'#E[OOQO'#KS'#KSO*&eQSO,5:uO!>hQSO'#KSO*&mQSO,5nQSO'#FnO(0vQSO,5BXO*?PQSO,59uO(4dQSO,5BXO*?^QSO,5BZO!>hQSO,5BZO*?cQSO,5B[OOQO,5B[,5B[O!>hQSO,5B[O(0vQSO,5BaO*?jQSO'#FxO(0vQSO,5BbO!>hQSO,5BdO*?}QSO,5BdO-cQSO'#F{O(0vQSO,5BeO*@SQSO,5AeOOQO,5Ae,5AeO(5yQSO'#KyOOQO,5Ad,5AdO*@eQSO,5BOOOQO,5BY,5BYO*@jQSO,5B^O,zQSO'#JWO,zQSO,59aO*@rQSO'#KZO*ATQSO'#KYO*AcQSO1G0fOOQO1G0f1G0fOOQO1G0j1G0jO$%VQSO'#H|O*AhQSO,5@vOOQO1G0n1G0nOOQO7+,v7+,vO*ApQSO7+,vOBhQSO7+,vO!>hQSO7+,vO*A}QSO7+,vO(8oQSO7+,vO#0ZQSO,5CqO#6XQSO7+.UO*B]QSO7+.VO%!WQSO7+.[O%!eQSO7+.eOOQO7+.i7+.iOOQO7+.n7+.nO*BbQSO7+.xO#4yQSO7+.WOOQO7+.W7+.WOOQO7+.u7+.uO*BgQSO7+.UOOQO7+.V7+.VOOQO7+.[7+.[OOQO7+.e7+.eO(CsQSO7+.eO*BlQSO7+.xO*BqQSO1G9WO*ByQSO1G9UO*COQSO1G9UO*CTQSO1G9WO*COQSO1G9XO$LqQSO,5CZO*CYQSO,5CZO$LqQSO,5C]O(:kQSO'#MqOOQO,5CY,5CYO(:wQSO'#MqO*CeQSO'#MoO*CqQSO'#MoOOQO1G3W1G3WOOQO,5C[,5C[OOQO,5CZ,5CZOOQO,5C],5C]OOQO1G9R1G9RO*CvQSO1G9RO#5XQSO7+.xO!>hQSO,5AlO#6XQSO'#IYO*C}QSO,5AkOOQO7+.U7+.UO*DVQSO'#CeO*DkQSO,5CTO*DsQSO,5CTOOQO,5CW,5CWOOQO,5Cf,5CfOOQO1G8n1G8nOOQO1G8q1G8qOOQO1G9P1G9PO*D{QSO'#K|OOQO'#K|'#K|OOQO1G7R1G7RO()lQSO1G7ROOQO,5>s,5>sOOQO-EhQSO,5CXO()lQSO'#MrOOQO,5CX,5CXO*EaQSO,5=tO*EfQSO'#MlO(CnQSO,5CVO*EkQSO'#HVOOQO1G9Y1G9YO*EvQSO1G9YOOQO1G9_1G9_O%!tQSO'#I^O*E}QSO,5AuOOQO,5Av,5AvO*FfQSO,5AtO*FkQSO,5AwOOQO1G4b1G4bO*FpQSO7+/aO%%VQSO7+.|O*FzQSO7+.|OOQO7+.|7+.|O*GPQSO,5CwOOQO7+/V7+/VO%%}QSO7+/YO*GXQSO7+/UO!(oQSO7+/UO*GaQSO7+/XO%&SQSO7+/UO%%}QSO7+/VO%!`QSO7+/YO%&[QSO7+/XO*GfQSO'#NfO*GqQSO,5=}O*GvQSO'#NfO*G{QSO'#NfOOQO7+/Y7+/YO*GXQSO7+/UOOQO7+/U7+/UOOQO7+/X7+/XOOQO1G3p1G3pOOQOLD3gLD3gO*HQQSOLD3gO*JgQSOLD3gO*JoQSOLD3gO*JzQSOLD/ZOOQOLD/ZLD/ZOIcQSOLD/ZO*MaQSOLD3WOOQOLD3WLD3WOLQQSOLD3WO+ vQSOLD3[OOQOLD3[LD3[O!!|QSOLD3[OOQOLD3oLD3oO+$]QSOLD3oOOQO7++a7++aO+$eQSO1G3{OOQO,5>b,5>bOOQO-E;t-E;tOOQO1G5x1G5xO!(bQSO1G5xO+$oQSO<= QOOQO,5@a,5@aOOQO-E;u-E;uO!>hQSO,5@{O+-XQSO,5@{O&!VQSO'#ITO+/aQSO,5@zOOQO1G0p1G0pO+/iQSO1G0pO+/nQSO,5@jO+/{QSO'#HxO+0TQSO,5@iO+0]QSO1G0`OOQO1G0^1G0^OOQO'#Hs'#HsO+0bQSO7++YO+0jQSO7++YO+0rQSO7++^O+0zQSO7++^O+1SQSO<i,5>iOOQO-E;{-E;{O!(bQSO'#IPO+;[QSO,5AUO&!VQSO,5;ZO!(bQSO'#IQO+;dQSO,5ATOOQO1G0t1G0tO+;lQSO1G0tOOQO1G6j1G6jO+;qQSO,5AYO'+UQSO'#ISO+hQSO'#IbO+@yQSO,5BjOOQO1G2W1G2WOOQO<hQSO7+-zO+BaQSO7+.OO+C|QSO1G8aO!>hQSO'#IdO+DhQSO1G6_O!>hQSO1G6_O+DrQSO1G5zOOQO,5>g,5>gOOQO-E;y-E;yOOQO7+&O7+&OO+DwQSO'#HzO+EUQSO,5@mO+E^QSO'#KTO+EhQSO,5:vO!>hQSO'#KTOOQO1G0a1G0aO+EmQSO1G0aO+ErQSO,5@nOOQO1G2Y1G2YOOQO<hQSO,5AxOOQO1G7w1G7wOOQO1G1Z1G1ZO+HUQSO1G1ZO+J^QSO1G7XO!(oQSO1G7XOOQO1G1_1G1_O+JiQSO1G7iOOQO1G7n1G7nO+NpQSO,5:PO#1TQSO1G7oO+N{QSO'#LlOOQO'#Lk'#LkO, WQSO,5hQSO'#DZOOQO1G7p1G7pO',gQSO,5h,5>hOOQO-E;z-E;zOBhQSO<=!bOOQO<=!b<=!bO,,mQSO<=!bO!>hQSO<=!bOOQO1G9]1G9]O,,zQSO<=#pOOQO<=#q<=#qOOQO<=#v<=#vOOQO<=$P<=$PO(CsQSO<=$PO,-PQSO<=$dOOQO<=#r<=#rOOQO<=#p<=#pO#5XQSO<=$dO#1dQSO'#H]OOQO7+.r7+.rO#1dQSO'#H[OOQO7+.p7+.pO#1dQSO'#H[OOQO7+.s7+.sOOQO1G8u1G8uO$LqQSO1G8uO$LqQSO1G8wOOQO1G8w1G8wO*C]QSO,5C]O,-UQSO,5CZOOQO7+.m7+.mOOQO<=$d<=$dO,-ZQSO1G7WOOQO,5>t,5>tOOQO-Ex,5>xOOQO-E<[-E<[OOQO1G7`1G7`OOQO1G7c1G7cO,.vQSO<=$hOOQO<=$h<=$hO,.{QSO1G9cO,/TQSO'#IjOOQO<=$t<=$tO,/YQSO<=$pOOQO<=$p<=$pO,/YQSO<=$pOOQO<=$s<=$sO!(oQSO<=$pOOQO<=$q<=$qO%%}QSO<=$tO,/bQSO<=$sO,/gQSO,5DQO,/lQSO,5DQOOQO1G3i1G3iO,/qQSO,5DQO,/|QSO,5DQOOQO!$()R!$()RO,0XQSO!$()RO,2nQSO!$()ROOQO!$($u!$($uO,2vQSO!$($uOOQO!$((r!$((rO,5]QSO!$((rOOQO!$((v!$((vO,7rQSO!$((vOOQO!$()Z!$()ZOOQO7++d7++dO,:XQSO1G6gO,;yQSO1G6gOOQO,5>o,5>oOOQO-Ed,5>dOOQO-E;v-E;vOOQO7+%z7+%zOOQO-E;q-E;qOOQP<k,5>kOOQO-E;}-E;}O,l,5>lOOQO-En,5>nO,nOOQO-EmO&!VQSO,5>mOOQO-EhQSO,5BzO,=rQSO,5>|OOQO-E<`-E<`O!>hQSO<=#fO,>PQSO<=#fOOQO-EWQSO7++yO,?VQSO'#ClOOQO7++y7++yOOQO,5>f,5>fOOQO-E;x-E;xO,?dQSO'#HyO,?nQSO,5@oOOQO1G0b1G0bO,?vQSO,5@oOOQO7+%{7+%{O,@QQSO,5>rOOQO,5>r,5>rOOQO-EhQSO7+,ROOQO7++p7++pO-!bQSOAND`O-!jQSOANDdO-!rQSO1G4XOOQO,5>j,5>jOOQO-E;|-E;|O-#QQSO1G8fO-#XQSOANGQO!>hQSOANGQOOQO1G4j1G4jO-#`QSO,5>eO!>hQSO,5>eOOQO-E;w-E;wO-#jQSO1G6ZO-#rQSO<=!_O-#rQSO<=!_O!(oQSO<=!_OOQO7+-O7+-OOOQO,5:p,5:pOOQO<=!o<=!oOOQO<=!u<=!uOOQO,5>y,5>yOOQO-E<]-E<]OOQO7+'^7+'^O-#}QSO7+'^O-$SQSO7+'^O-&UQSO7+'^O!>hQSO7+'`O-&]QSO7+'`O!>hQSO,5BgO,!bQSO'#IaO-&bQSO,5BfOOQO7+'m7+'mOOQO1G1m1G1mO-&jQSO,5BPO-&xQSO,5BPP,'PQSO'#LtOOQO1G7y1G7yO-*lQSO,5hQSO<{,5>{OOQO-E<_-E<_O-/OQSO1G7kO!>hQSO1G7kO-2rQSO'#LfO&!VQSO'#LfO-6fQSO'#LfOOQO1G7k1G7kOOQO1G1{1G1{O-6nQSO1G1{O#0tQSO7+-fOOQO7+-f7+-fOOQOLD1SLD1SO-6sQSO1G9VO#(vQSO1G9VO!>hQSO1G9VO-7OQSO7+(}OOQOLD3bLD3bO-7TQSO<=$rOOQO<=$r<=$rOOQO<=#l<=#lO-7YQSOLD2WO$;cQSOLD2WO-7vQSOG2;eOOQOAN@dAN@dO-8RQSOAN@dOOQOAN@fAN@fO-8WQSOAN@fOOQO7+-V7+-VO-8_QSO7+-VOOQO,5BQ,5BQO-8fQSO,5BQO-8tQSO,5BQOOQO7+'g7+'gOOQO<=#Q<=#QO!>hQSO7+.qO-8{QSO7+.qO-9WQSO7+.qOOQO<hQSO1G7lO-AkQSO1G7lO-ArQSO<=$]O!>hQSO<=$]OOQO!)9K^!)9K^O-A|QSO!)9K^OOQOANF]ANF]OOQO7+-W7+-WO-BRQSO7+-WO-BYQSOANGwOOQO!.K@x!.K@xO-BdQSO<=!rOOQOANF^ANF^O8gQSO'#JQO8gQSO'#JQO-FWQSO,5?lO!>hQSO'#DZO-LwQSO'#GbO.#PQSO'#GbO.&^QSO'#GbO$;cQSO'#DdO+HUQSO'#DdO!>hQSO'#DdO.)kQSO'#DdO$;cQSO'#DZO+HUQSO'#DZO.)kQSO'#DZO.+sQSO'#JaO$;cQSO'#DZO+HUQSO'#DZO.)kQSO'#DZO#0`QSO'#EUO.0oQSO'#CeO.0vQSO'#CeO.3kQSO,5@UO.3rQSO,5@UO.5}QSO,5@UO.8YQSO,5@UO.:eQSO,5nQSO1G2ZO0C]QSO1G2ZO0CgQSO1G2ZO0CqQSO1G2ZO0C{QSO1G2ZO0DVQSO1G2ZO0F|QSO1G2ZO0MSQSO1G2ZO1 gQSO1G2ZO1&UQSO1G2ZO1&`QSO1G2ZO1&jQSO1G2ZO1&tQSO1G2ZO1'OQSO1G2ZO1)xQSO1G2ZO10OQSO1G2ZO12cQSO1G2ZO17QQSO1G2ZO17XQSO1G2ZO17`QSO1G2ZO17gQSO1G2ZO17nQSO1G2ZO1:eQSO1G2ZO1@kQSO1G2ZO1COQSO1G2ZO1GmQSO1G2ZO1GtQSO1G2ZO1G{QSO1G2ZO1HSQSO1G2ZO1HZQSO1G2ZO1IuQSO1G2ZO2 xQSO1G2ZO2$rQSO1G2ZO2(zQSO1G2ZO2*aQSO'#CeO2+WQSO'#CeO21hQSO'#CeO&!VQSO'#EpO26aQSO'#EpO27ZQSO'#EpO&!VQSO'#ErO26aQSO'#ErO27ZQSO'#ErO28TQSO'#MSO29dQSO'#MSO2>SQSO'#MSO2?PQSO'#MSO/!UQSO1G2iO/!]QSO1G2iO/$hQSO1G2iO/&sQSO1G2iO2BWQSO,5BwO2CgQSO,5BwO2HVQSO,5BwO2K^QSO,5BwO3!OQSO1G2XO3#bQSO1G2XO3&PQSO,5AgO3(_QSO,5AgO3*mQSO7++[O3+|QSO7++[O30lQSO7++[O31iQSO7++[O$;cQSO7+'uO+HUQSO7+'uO+-XQSO7+'uO.)kQSO7+'uO&!VQSO,5;^O26aQSO,5;^O27ZQSO,5;^O&!VQSO,5;^O26aQSO,5;^O27ZQSO,5;^O/!UQSO7+(TO/!]QSO7+(TO/$hQSO7+(TO/&sQSO7+(TO34pQSO,5ByO35XQSO,5ByO35pQSO,5ByO36XQSO,5ByO$;cQSO1G8dO+HUQSO1G8dO.)kQSO1G8dO+-XQSO1G8dP3:eQSO7+'sO3;wQSO7+'sO+HUQSO,5AlO3>fQSO'#K|O3@wQSO'#K|O3DqQSO1G7RO3F|QSO1G7RO3IXQSO<hQSO1G1ZO48aQSO1G7WO4dQSO'#JaO4AtQSO'#JaO4CaQSO'#JaO4GTQSO'#JaO4ISQSO'#JaO4LsQSO'#JaO4N`QSO'#JaO5$VQSO'#GbO5(YQSO'#GcO5(_QSO'#GcO5(dQSO'#GcO5(iQSO'#GcO+-XQSO'#DdO5(nQSO'#DZO+-XQSO'#DZO34pQSO'#JaO35XQSO'#JaO35pQSO'#JaO36XQSO'#JaO5)zQSO,5@YO27ZQSO,5hQSO,5hQSO,5hQSO,5hQSO,5VQSO'#MUO5AyQSO'#MUO5BTQSO'#MUO!>hQSO'#M^O!>hQSO'#M^O!>hQSO'#M^O!>hQSO'#M^O5EjQSO'#KzO5F|QSO'#KzO5LaQSO,5BpO5L}QSO,5BpO6!qQSO,5BpO6!{QSO,5BpO6%aQSO'#FTO',gQSO'#FTO6%oQSO'#LPO6)vQSO'#DZ",stateData:"6+S~O'kOS'lOSPOSQOSROS~OT]OW^OcaOk_OlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mP~PcO'c'mX~PcOTbOW^OcaOk_OlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mX~P#nOTbOcaOlbO!hbO!ybO#rbO#suO#xbO$PbO$TrO$UsO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&TtO&WpO&XqO~OTbOlbO!hbO!ybO#rbO#suO#xbO$PbO$TrO$UsO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&TtO&WpO&XqO~OTbOcaOlbOm`O!hbO!ybO#rbO#siO#xbO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&ThO&WcO&XdO~O'c'mX~P)VOUxOT+TXl+TX!h+TX!y+TX#r+TX#s+TX#x+TX$P+TX$T+TX$U+TX%f+TX%g+TX%h+TX%i+TX%j+TX%k+TX%l+TX%m+TX%n+TX%o+TX%p+TX%q+TX&T+TX&W+TX&X+TX~Ol}O'oyO~OW!OO~O'o!RO~O$U!XO'oyO~O^!`O'oyO'u!^O~O'c'ma~P#nO'c'ma~P)VOTbOlbO!hbO!ybO#rbO#s!jO#xbO$PbO$T!gO$U!hO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO&T!iO&W!eO&X!fO~O$U!lO'oyO~O'o!rO~OY!xOZ!wOh!sOj!tOV'qX~Oh!sOV'qX^'qXa'qXd'qXc'qXe'qXf'qXo'qX$S'qXr'qX#p'qX~OV!yO~Ol!xO'oyO~Oh!{OT'}XV'}Xc'}Xl'}Xm'}Xo'}X!h'}X!y'}X#r'}X#s'}X#x'}X$P'}X$T'}X$U'}X%f'}X%g'}X%h'}X%i'}X%j'}X%k'}X%l'}X%m'}X%n'}X%o'}X%p'}X%q'}X&T'}X&W'}X&X'}X'c'}Xn'}X~OV#OOo!}OT'|ac'|al'|am'|a!h'|a!y'|a#r'|a#s'|a#x'|a$P'|a$T'|a$U'|a%f'|a%g'|a%h'|a%i'|a%j'|a%k'|a%l'|a%m'|a%n'|a%o'|a%p'|a%q'|a&T'|a&W'|a&X'|a'c'|an'|a~Or#QOZXX^XXaXXdXXhXXjXX~OZ!wOj!tO~P0]Oa#ROd(QX~O^#TOa(RXd(RX~Oa#WOd#VO~OZ#bO^#XOo#[Or#^O$S#]O~OV#_O~P6yOo#fOr#eO~OZ#bOo#[Or#lO$S#]O~OZ#bOo#oOr#qO$S#]O~OZ#uOo#tOr#wO$S#]O~Oc#yOe#|Of$OO~OUxO~O'c'mi~P)VO$U$UO'oyO~OV$]O~P6yOZ#bOo#[Or$fO$S#]O~OZ#bOo#oOr$jO$S#]O~OZ#uOo#tOr$nO$S#]O~OV$qO~Oh!sOV'qa^'qaa'qad'qac'qae'qaf'qao'qa$S'qar'qa#p'qa~OV$xO~Oh!{OT'}aV'}ac'}al'}am'}ao'}a!h'}a!y'}a#r'}a#s'}a#x'}a$P'}a$T'}a$U'}a%f'}a%g'}a%h'}a%i'}a%j'}a%k'}a%l'}a%m'}a%n'}a%o'}a%p'}a%q'}a&T'}a&W'}a&X'}a'c'}an'}a~On$}O~PcOV%POT'|ic'|il'|im'|i!h'|i!y'|i#r'|i#s'|i#x'|i$P'|i$T'|i$U'|i%f'|i%g'|i%h'|i%i'|i%j'|i%k'|i%l'|i%m'|i%n'|i%o'|i%p'|i%q'|i&T'|i&W'|i&X'|i'c'|in'|i~Oa#ROd(Qa~O^%ZOe%[Ol%zOv%YOw%YOx%YOy%YO|%bO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!U%tO!V%tO!Y%[O!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#n%iO#r%yO#s&QO$q%xO%X%{O'o%TO'u!^O(X%WO(Y%XO~O]%qO~P?rOd&VO~O^!`OcaO!h&^O!q&^O!r&^O!s&aO!v&_O$R&`O'oyO'u!^O~O]&ZO~PBhOV$]O^#XOo#[Or#^O$S#]O~OTbO^!`OcaOlbO!R&gO!hbO!ybO#rbO#siO#xbO#|&lO$PbO$TfO$UgO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO%x&nO&ThO&WcO&XdO'oyO'u!^O~On&kO~PCrOV$]Oo#[O~OcaO'oyO~OV$]OT,]ic,]il,]im,]i!h,]i!y,]i#r,]i#s,]i#x,]i$P,]i$T,]i$U,]i%f,]i%g,]i%h,]i%i,]i%j,]i%k,]i%l,]i%m,]i%n,]i%o,]i%p,]i%q,]i&T,]i&W,]i&X,]i'c,]in,]i^,]i!R,]i#|,]i%x,]i'o,]i'u,]i$n,]i~OV$]Oo#[Or#^O~OcaO'o&wOa,dP~Oo#fO~Oo#[O$S#]O~OV&}OT(Pic(Pil(Pim(Pi!h(Pi!y(Pi#r(Pi#s(Pi#x(Pi$P(Pi$T(Pi$U(Pi%f(Pi%g(Pi%h(Pi%i(Pi%j(Pi%k(Pi%l(Pi%m(Pi%n(Pi%o(Pi%p(Pi%q(Pi&T(Pi&W(Pi&X(Pi'c(Pin(Pi^(Pi!R(Pi#|(Pi%x(Pi'o(Pi'u(Pi$n(Pi~Oo#oO$S#]O~OTbO^!`OcaOlbO!hbO!ybO#rbO#siO#xbO#|&lO$PbO$TfO$UgO$n'WO%fbO%gbO%hbO%ibO%jbO%kbO%lbO%mbO%nbO%obO%pbO%qbO%x&nO&ThO&WcO&XdO'oyO'u!^O~On'VO~PLYOV'XOT+|ic+|il+|im+|i!h+|i!y+|i#r+|i#s+|i#x+|i$P+|i$T+|i$U+|i%f+|i%g+|i%h+|i%i+|i%j+|i%k+|i%l+|i%m+|i%n+|i%o+|i%p+|i%q+|i&T+|i&W+|i&X+|i'c+|in+|i^+|i!R+|i#|+|i%x+|i'o+|i'u+|i$n+|i~Oo#tO$S#]O~O^!`OcaO!y'bO%x'aO'oyO'u!^O~On'_O~P!#UOcaO!q'eO!r'eO'oyO~OV'iOT,Qic,Qil,Qim,Qi!h,Qi!y,Qi#r,Qi#s,Qi#x,Qi$P,Qi$T,Qi$U,Qi%f,Qi%g,Qi%h,Qi%i,Qi%j,Qi%k,Qi%l,Qi%m,Qi%n,Qi%o,Qi%p,Qi%q,Qi&T,Qi&W,Qi&X,Qi'c,Qin,Qi^,Qi!R,Qi#|,Qi%x,Qi'o,Qi'u,Qi$n,Qi~Oa'kOd'mO~Oc#yO'o'taa'tag'ta^'ta!v'ta]'tao'ta~Oe#|Of$OO%}'ta#_'ta~P!&nOe#|O'o'yXa'yXg'yX^'yX!v'yX]'yXc'yXo'yX%}'yX#_'yX~Oa'sO'o'qO~O]'tO~OZ#uO^#XO~OV'xO~P6yOZ#bOo#[Or(SO$S#]O~OZ#bOo#oOr(WO$S#]O~OZ#uOo#tOr([O$S#]O~OV'xO^#XOo#[Or#^O$S#]O~OV'xOo#[O~OV'xOT,]qc,]ql,]qm,]q!h,]q!y,]q#r,]q#s,]q#x,]q$P,]q$T,]q$U,]q%f,]q%g,]q%h,]q%i,]q%j,]q%k,]q%l,]q%m,]q%n,]q%o,]q%p,]q%q,]q&T,]q&W,]q&X,]q'c,]qn,]q^,]q!R,]q#|,]q%x,]q'o,]q'u,]q$n,]q~OV'xOo#[Or#^O~OV(_OT(Pqc(Pql(Pqm(Pq!h(Pq!y(Pq#r(Pq#s(Pq#x(Pq$P(Pq$T(Pq$U(Pq%f(Pq%g(Pq%h(Pq%i(Pq%j(Pq%k(Pq%l(Pq%m(Pq%n(Pq%o(Pq%p(Pq%q(Pq&T(Pq&W(Pq&X(Pq'c(Pqn(Pq^(Pq!R(Pq#|(Pq%x(Pq'o(Pq'u(Pq$n(Pq~OV(aOT+|qc+|ql+|qm+|q!h+|q!y+|q#r+|q#s+|q#x+|q$P+|q$T+|q$U+|q%f+|q%g+|q%h+|q%i+|q%j+|q%k+|q%l+|q%m+|q%n+|q%o+|q%p+|q%q+|q&T+|q&W+|q&X+|q'c+|qn+|q^+|q!R+|q#|+|q%x+|q'o+|q'u+|q$n+|q~OV(cOT,Qqc,Qql,Qqm,Qq!h,Qq!y,Qq#r,Qq#s,Qq#x,Qq$P,Qq$T,Qq$U,Qq%f,Qq%g,Qq%h,Qq%i,Qq%j,Qq%k,Qq%l,Qq%m,Qq%n,Qq%o,Qq%p,Qq%q,Qq&T,Qq&W,Qq&X,Qq'c,Qqn,Qq^,Qq!R,Qq#|,Qq%x,Qq'o,Qq'u,Qq$n,Qq~OZ!wOh!sOV'za^'zaa'zad'zac'zae'zaf'zao'za$S'zar'za#p'za~OZ!wOViihii^iiaiidiiciieiifiioii$Sii]iirii#pii~Oa(jOg'sX]'sX~Og(lO~OV(mO~On(oO~PcOn(oO~P#nOn(oO~P)VOa(rOd(qO~Or(sOY!lXZXXZ!lXZ!oX]!lX^!lX^!oXa!lXcXXc!lXeXXe!lXfXXf!lXg!lXhXXh!lXjXX!O!lX!P!lX!Q!lX!S!lX!T!lX!U!lX!V!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#]!lX#e!lX#n!lX#p#uX#q!lX$p!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX~OY%eX~P!7bOc#yOe#|Of$OOh(tO~Oh(vOc'qXe'qXf'qX~O^%ZOe%[Ol%zOv%YOw%YOx%YOy%YO|%bO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!U%tO!V%tO!Y%[O!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#n%iO#r%yO#s&QO$q%xO%X%{O'u!^O(X%WO(Y%XO~O!h)PO!r)PO'o(wO])eP~P!;qO'o)SO~P!;qOY)VOZ!wO^)XOf)YOg)UOh(tO!Q)^O!U)^O!V)^O![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO#])[O#q)]O$p)ZOa(TXe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX%`(TX%a(TX%[(TX%](TX~P!>oOY)VOg)UO![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VOZ(TXa(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX%`(TX%a(TX%[(TX%](TX~P!B[OZ(]Xe(]Xf(]Xg(]X!O(]X!P(]X!S(]X!T(]X!e(]X#e(]X#n(]X$x(]X$y(]X$z(]X$|(]X$}(]X%O(]X%P(]X%Q(]X%R(]X%S(]X%T(]X~Oa)aO](SX~P!E_O'd)bO'e)cO'f)fO~O'g)gO'h)hO'i)kO~Oc)mOf)lOY(UXZ(UX](UX^(UXa(UXe(UXg(UXh(UX!O(UX!P(UX!Q(UX!S(UX!T(UX!U(UX!V(UX![(UX!](UX!^(UX!_(UX!`(UX!a(UX!b(UX!c(UX!d(UX!e(UX!g(UX#](UX#e(UX#n(UX#q(UX$p(UX$x(UX$y(UX$z(UX$|(UX$}(UX%O(UX%P(UX%Q(UX%R(UX%S(UX%T(UXn(UXr(UXd(UX%d(UX$S(UX%X(UX%Y(UX%Z(UX%_(UX%b(UX%c(UX%`(UX%a(UX%^(UXV(UX%[(UXT(UXl(UX!R(UX!h(UX!y(UX#r(UX#s(UX#x(UX#|(UX$P(UX$T(UX$U(UX%f(UX%g(UX%h(UX%i(UX%j(UX%k(UX%l(UX%m(UX%n(UX%o(UX%p(UX%q(UX%x(UX&T(UX&W(UX&X(UX'o(UX'u(UX$n(UX#p(UXW(UXo(UXv(UXw(UXx(UXy(UX|(UX!Y(UX!Z(UX!j(UX!k(UX!s(UX!t(UX!v(UX!w(UX#R(UX#T(UX#V(UX#X(UX#Y(UX#Z(UX$X(UX$](UX$^(UX$_(UX$a(UX$c(UX$d(UX$e(UX$f(UX$g(UX$k(UX$m(UX$q(UX(X(UX(Y(UX%](UX$[(UX~OZ)rOe)oOf)zOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO%R)wO%S)xO%T)yO~O^%ZOv%YOw%YOx%YOy%YO|%bO!U%tO!V%tO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#s&QO$q%xO'o)SO'u!^O(X%WO(Y%XOZ%UXf%UXg%UX!e%UX#e%UX#n%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~Oe%[Ol%zO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!Y%[O!Z%uO#r%yO%X%{O]%UXa%UXn%UXr%UXd%UX%d%UX%`%UX%a%UXV%UX%[%UX%]%UX~P##gO#p*PO~O^*RO'o*QO~OY*UO~O]*VO~O^*]Ov%YOw%YOx%YOy%YO|%bO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O(X%WO(Y%XO~Oc)mOh*`O~O^!`Oc*cO'oyO'u!^O~O^*gO#s*iO'o*fO'u!^O~O^*gO'o*fO'u!^O~O^!`O'o*jO'u!^O~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%b*wO%c*sO~O^*xOZ(TXa(TXe(TXf(TXg(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TXY(TX![(TX!](TX!^(TX!_(TX!`(TX!a(TX!b(TX!c(TX!d(TX!g(TXn(TX%^(TXV(TX~O](TXr(TXd(TX%d(TX$S(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%`(TX%a(TX%[(TX#p(TX%](TX~P#,hOZ!wO^)XO~O^*yOc#yOo*zO'oyO'u!^O~O^+POo+QO~O^+TO~O^*xO~O^+UO~O^+VO~O]+YO~O^!`OcaO!h&^O!q&^O!r&^O!s&aO!v&_O'oyO'u!^O~O$R+[O~P#1dO!h&^O!q&^O!r&^O^)yX'o)yX'u)yX~O!s+^O~P#2YOZ!wO^#XOh!sOj!tOc'qXe'qXf'qX~O^!`O!R+fO#|+bO%x+dO'oyO'u!^O~P%rO^!`O!R+fO#|+bO%x+dO&Q+lO&R+lO'oyO'u!^O~P'fOo+mO#p+nO~On+sO~PCrO!v,OO'o+uO~OV,UOo+QO#p,TO$S#]O~OV,XOo+QO#p,WO~Or,ZO~O^)XOa,]OV,^ao,^a~Oa,aOg)wX~Og,bO~OcaO'o&wO~OY,dOa,cXn,cX~Oa,eOn,bX~Oa,gO~On,hOa,dX~Oa,jOo+UX$S+UX~O^!`O#|+bO$n,lO%x+dO'oyO'u!^O~P%rO^!`O#|+bO$n,lO%x+dO&Q+lO&R+lO'oyO'u!^O~P'fOn,nO~PLYO^!`OcaO!y,rO%x,qO'oyO'u!^O~On,tO~P!#UO!v,wO'o,uO~O^!`O%x,qO'oyO'u!^O~Oa,|Og,SX~Og-OO~Oa'kOd-QO~Oa-RO]'wa~OV-VO$S#]O~OV-WO^#XOo#[Or#^O$S#]O~OV-WOo#[O~OV-WOT,]yc,]yl,]ym,]y!h,]y!y,]y#r,]y#s,]y#x,]y$P,]y$T,]y$U,]y%f,]y%g,]y%h,]y%i,]y%j,]y%k,]y%l,]y%m,]y%n,]y%o,]y%p,]y%q,]y&T,]y&W,]y&X,]y'c,]yn,]y^,]y!R,]y#|,]y%x,]y'o,]y'u,]y$n,]y~OV-WOo#[Or#^O~OV-WO~P6yOV-`OT(Pyc(Pyl(Pym(Py!h(Py!y(Py#r(Py#s(Py#x(Py$P(Py$T(Py$U(Py%f(Py%g(Py%h(Py%i(Py%j(Py%k(Py%l(Py%m(Py%n(Py%o(Py%p(Py%q(Py&T(Py&W(Py&X(Py'c(Pyn(Py^(Py!R(Py#|(Py%x(Py'o(Py'u(Py$n(Py~Oo#[Or-cO$S#]O~OV-eOT+|yc+|yl+|ym+|y!h+|y!y+|y#r+|y#s+|y#x+|y$P+|y$T+|y$U+|y%f+|y%g+|y%h+|y%i+|y%j+|y%k+|y%l+|y%m+|y%n+|y%o+|y%p+|y%q+|y&T+|y&W+|y&X+|y'c+|yn+|y^+|y!R+|y#|+|y%x+|y'o+|y'u+|y$n+|y~Oo#oOr-hO$S#]O~OV-jOT,Qyc,Qyl,Qym,Qy!h,Qy!y,Qy#r,Qy#s,Qy#x,Qy$P,Qy$T,Qy$U,Qy%f,Qy%g,Qy%h,Qy%i,Qy%j,Qy%k,Qy%l,Qy%m,Qy%n,Qy%o,Qy%p,Qy%q,Qy&T,Qy&W,Qy&X,Qy'c,Qyn,Qy^,Qy!R,Qy#|,Qy%x,Qy'o,Qy'u,Qy$n,Qy~Oo#tOr-mO$S#]O~OV-qO$S#]O~Oh!sOV'zi^'zia'zid'zic'zie'zif'zio'zi$S'zir'zi#p'zi~Oa(jOg'sa]'sa~On-uO~P#nOn-uO~P)VOd-wO~O'o-xO~O'o-{O~O]#uXa#uX~P!7bO]-}O^*ROa'sO'o-|O~Oa.PO](aX~P#!POa.SO])fX~O].UO~Oa.VO]*uX#p*tX~O].XO~O].ZO~OY!lXZ!lXZ!oX]!lX^!lX^!oXa!lXc!lXe!lXf!lXg!lXh!lXjXX!O!lX!P!lX!Q!lX!S!lX!T!lX!U!lX!V!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#]!lX#e!lX#n!lX#q!lX$p!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lXn!lXr!lXd!lX%d!lX$S!lX%X!lX%Y!lX%Z!lX%_!lX%b!lX%c!lX%`!lX%a!lX%^!lXV!lX%[!lXT!lXl!lX!R!lX!h!lX!y!lX#r!lX#s!lX#x!lX#|!lX$P!lX$T!lX$U!lX%f!lX%g!lX%h!lX%i!lX%j!lX%k!lX%l!lX%m!lX%n!lX%o!lX%p!lX%q!lX%x!lX&T!lX&W!lX&X!lX'o!lX'u!lX$n!lXW!lXo!lXv!lXw!lXx!lXy!lX|!lX!Y!lX!Z!lX!j!lX!k!lX!s!lX!t!lX!v!lX!w!lX#R!lX#T!lX#V!lX#X!lX#Y!lX#Z!lX$X!lX$]!lX$^!lX$_!lX$a!lX$c!lX$d!lX$e!lX$f!lX$g!lX$k!lX$m!lX$q!lX(X!lX(Y!lX%]!lX$[!lX~OZXXcXXeXXfXXhXX#p#uX~P#IWO!e.[O~O!h.^O'o)SO~P!;qO].cO!h.dO!q.dO!r.eO'oFuO~P!;qOh.gO~O'o.iO~Oo.kO~Oo.mO~O'd)bO'e)cO'f.tO~O'g)gO'h)hO'i.wO~Oc)mO~Og.zO'o)SO~P!;qO^%ZOv%YOw%YOx%YOy%YO|%bO!U%tO!V%tO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#s&QO$q%xO'o)SO'u!^O(X%WO(Y%XOZ%Uaf%Uag%Ua!e%Ua#e%Ua#n%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~Oe%[Ol%zO!O%[O!P%[O!Q%[O!R%[O!S%[O!T%[O!Y%[O!Z%uO#r%yO%X%{O]%Uaa%Uan%Uar%Uad%Ua%d%Ua%`%Ua%a%UaV%Ua%[%Ua%]%Ua~P$&]OZ/`O^/dOc/bOg/`Oo/^Ov%YOw%YOx%YOy%YO!e/`O!t/fO#_/cO#e/`O#g/gO'o/ZO'u!^O(X%WO(Y%XO~Oo+QO'o)SO~P!;qO^!`O!h)PO!r)PO'o*fO'u!^O])eP~O#p/pO~Oa/qO](Sa~P!E_O#p!lX~P#IWOj!tO~OZ!wO^)XOf)YOh(tO#q)]O$p)ZOY}aa}ae}ag}a!O}a!P}a!S}a!T}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!e}a!g}a#e}a#n}a$x}a$y}a$z}a$|}a$}}a%O}a%P}a%Q}a%R}a%S}a%T}an}a%^}aV}aT}al}a!R}a!h}a!y}a#r}a#s}a#x}a#|}a$P}a'o}a'u}a$n}a~O!Q)^O!U)^O!V)^O#])[O]}ar}ad}a%d}a$S}a%X}a%Y}a%Z}a%_}a%b}a%c}a%`}a%a}a%[}ac}a$T}a$U}a%f}a%g}a%h}a%i}a%j}a%k}a%l}a%m}a%n}a%o}a%p}a%q}a%x}a&T}a&W}a&X}a#p}a%]}a~P$-yO#s*iO~OY}a]}aa}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}an}ar}ad}a%d}a%`}a%a}a%^}aV}a%[}a%]}a~P#!POe#|Of$OOc(nX^(nXo(nX~Od/uO'o)SO~P!;qOc/wO~Oo/yO~OZXXcXXeXXfXXhXXjXX#p#uX~O]#uXa#uX~P$6kOZXXcXXeXXfXXhXXjXX~O!q0OO~P$7^O'o0PO~OZ*xXa*xXe*xXf*xXg*xX!O*xX!P*xX!S*xX!T*xX!e*xX#e*xX#n*xX$x*xX$y*xX$z*xX$|*xX$}*xX%O*xX%P*xX%Q*xX%R*xX%S*xX%T*xXY*xX![*xX!]*xX!^*xX!_*xX!`*xX!a*xX!b*xX!c*xX!d*xX!g*xXn*xXV*xX~O%^0TO]*xXr*xXd*xX%d*xX%`*xX%a*xX%[*xX%]*xX~P$8OO'o0UO~O^!`O'o0VO'u!^O~O^%ZOeFqOlLqOv%YOw%YOx%YOy%YO|%bO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!U%tO!V%tO!YFqO!ZFmO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nFfO#rLmO#s&QO$q%xO%X%{O'o)SO'u!^O(X%WO(Y%XO~O^*]Ov%YOw%YOx%YOy%YO|%bO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o0`O'u!^O(X%WO(Y%XO~On(yP~P$={Oo0gOY!xaZ!xa]!xa^!xaa!xac!xae!xaf!xag!xah!xa!O!xa!P!xa!Q!xa!S!xa!T!xa!U!xa!V!xa![!xa!]!xa!^!xa!_!xa!`!xa!a!xa!b!xa!c!xa!d!xa!e!xa!g!xa#]!xa#e!xa#n!xa#q!xa$p!xa$x!xa$y!xa$z!xa$|!xa$}!xa%O!xa%P!xa%Q!xa%R!xa%S!xa%T!xan!xar!xad!xa%d!xa$S!xa%X!xa%Y!xa%Z!xa%_!xa%b!xa%c!xa%`!xa%a!xa%^!xaV!xa%[!xaT!xal!xa!R!xa!h!xa!y!xa#r!xa#s!xa#x!xa#|!xa$P!xa$T!xa$U!xa%f!xa%g!xa%h!xa%i!xa%j!xa%k!xa%l!xa%m!xa%n!xa%o!xa%p!xa%q!xa%x!xa&T!xa&W!xa&X!xa'o!xa'u!xa$n!xa#p!xa%]!xa~O^)XOc0jOo0gO~Oo0nO~O^!`O!h)PO!r)PO'oyO'u!^O~O])eP~P$FYOT1[OV1OOW1fO^0rOeFeOl1[Oo+QOv%YOw%YOx%YOy%YO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#Y&SO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^O(X%WO(Y%XO~On1SO~P$FrO!v1vO!w1vO'o1uO'u!^O~OY1zOa1yO])xad)xa~O!h&^O!q&^O!r&^O^)ya'o)ya'u)ya~Oc#yO~Or2QO~O^!`O!R2XO#|2SO%x2UO&Q+lO&R+lO'oyO'u!^O~P-|OV,UOo+QO#p,TO~O!v,OO%}2fO'o+uO~O%}2gO~OcaO%g2lO%h2mO%i2mO%v2pO%w2pO~O%u2nO~P$M^O!h2rO'o)SO~P!;qO^2sO~OV`XY`XZXXZ!oX^!oXa`XhXX~OjXXo%sX#p%sX~P$NYOZ!wOh2wOj!tO~OY2|OV)oXa)oX])oX~Oa2}OV)nX])nX~Oh2wO~OZ#bO^+[X~OV3PO~Oo+mO#p3QO~Oc3TO~O'o3WO~O!h3^O'o)SO~P!;qO#Y3cO$T3bO$U3cO$V3cO$W3cO'oyO~O!y3fO~P%!tOa,]OV,^io,^i~Oa,aOg)wa~OY3nOa,can,ca~Oa,eOn,ba~On3rO~Oa,jOo+Ua$S+Ua~O^!`O#|2SO$n3uO%x2UO&Q+lO&R+lO'oyO'u!^O~P-|O'o3xO~O!v3zO'o,uO~O^!`O%x4OO'oyO'u!^O~OZ!oX^!oXo%sX~Oo4PO~OZ#bO^#XO~O'o4UO~Oa,|Og,Sa~Oa-RO]'wi~O]4]O~OV4^Oo#[O~OV4^OT,]!Rc,]!Rl,]!Rm,]!R!h,]!R!y,]!R#r,]!R#s,]!R#x,]!R$P,]!R$T,]!R$U,]!R%f,]!R%g,]!R%h,]!R%i,]!R%j,]!R%k,]!R%l,]!R%m,]!R%n,]!R%o,]!R%p,]!R%q,]!R&T,]!R&W,]!R&X,]!R'c,]!Rn,]!R^,]!R!R,]!R#|,]!R%x,]!R'o,]!R'u,]!R$n,]!R~OV4^Oo#[Or#^O~OV4^O^#XOo#[Or#^O$S#]O~OV4cOT(P!Rc(P!Rl(P!Rm(P!R!h(P!R!y(P!R#r(P!R#s(P!R#x(P!R$P(P!R$T(P!R$U(P!R%f(P!R%g(P!R%h(P!R%i(P!R%j(P!R%k(P!R%l(P!R%m(P!R%n(P!R%o(P!R%p(P!R%q(P!R&T(P!R&W(P!R&X(P!R'c(P!Rn(P!R^(P!R!R(P!R#|(P!R%x(P!R'o(P!R'u(P!R$n(P!R~OV4gOT+|!Rc+|!Rl+|!Rm+|!R!h+|!R!y+|!R#r+|!R#s+|!R#x+|!R$P+|!R$T+|!R$U+|!R%f+|!R%g+|!R%h+|!R%i+|!R%j+|!R%k+|!R%l+|!R%m+|!R%n+|!R%o+|!R%p+|!R%q+|!R&T+|!R&W+|!R&X+|!R'c+|!Rn+|!R^+|!R!R+|!R#|+|!R%x+|!R'o+|!R'u+|!R$n+|!R~OV4kOT,Q!Rc,Q!Rl,Q!Rm,Q!R!h,Q!R!y,Q!R#r,Q!R#s,Q!R#x,Q!R$P,Q!R$T,Q!R$U,Q!R%f,Q!R%g,Q!R%h,Q!R%i,Q!R%j,Q!R%k,Q!R%l,Q!R%m,Q!R%n,Q!R%o,Q!R%p,Q!R%q,Q!R&T,Q!R&W,Q!R&X,Q!R'c,Q!Rn,Q!R^,Q!R!R,Q!R#|,Q!R%x,Q!R'o,Q!R'u,Q!R$n,Q!R~OV4pO$S#]O~On4rO~P)VOY`XZ`XZ!oX]`X^`X^!oXa`Xc`Xe`Xf`Xg`Xh`X!O`X!P`X!Q`X!S`X!T`X!U`X!V`X![`X!]`X!^`X!_`X!``X!a`X!b`X!c`X!d`X!e`X!g`X#]`X#e`X#n`X#q`X$p`X$x`X$y`X$z`X$|`X$}`X%O`X%P`X%Q`X%R`X%S`X%T`Xn`Xr`Xd`X%d`X$S`X%X`X%Y`X%Z`X%_`X%b`X%c`X%``X%a`X%^`XV`X%[`XT`Xl`X!R`X!h`X!y`X#r`X#s`X#x`X#|`X$P`X$T`X$U`X%f`X%g`X%h`X%i`X%j`X%k`X%l`X%m`X%n`X%o`X%p`X%q`X%x`X&T`X&W`X&X`X'o`X'u`X$n`X#p`XW`Xo`Xv`Xw`Xx`Xy`X|`X!Y`X!Z`X!j`X!k`X!s`X!t`X!v`X!w`X#R`X#T`X#V`X#X`X#Y`X#Z`X$X`X$]`X$^`X$_`X$a`X$c`X$d`X$e`X$f`X$g`X$k`X$m`X$q`X(X`X(Y`X%]`X$[`X~OZXXcXXeXXfXXhXX~P%1sO]`X]#uXa`Xa#uX#p#uX~O])gaa)ga#p*tX~Oa.PO](aa~Oa.PO](aa~P#!POa.SO])fa~Oa.VO]*ua~O](^ia(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^in(^ir(^id(^i%d(^i%`(^i%a(^i%^(^iV(^i%[(^i%](^i~P#!PO](fXa(fXd(fX~P#!PO!h.dO!q.dO!r.eO'o)SO~P!;qOa5QO](dXd(dX~O^!`O!s5XO!t5UO'o5TO'u!^O~O]5YO~OZ!wOY(hi](hi^(hia(hic(hie(hif(hig(hih(hi!O(hi!P(hi!Q(hi!S(hi!T(hi!U(hi!V(hi![(hi!](hi!^(hi!_(hi!`(hi!a(hi!b(hi!c(hi!d(hi!e(hi!g(hi#](hi#e(hi#n(hi#q(hi$p(hi$x(hi$y(hi$z(hi$|(hi$}(hi%O(hi%P(hi%Q(hi%R(hi%S(hi%T(hin(hir(hid(hi%d(hi$S(hi%X(hi%Y(hi%Z(hi%_(hi%b(hi%c(hi%`(hi%a(hi%^(hiV(hi%[(hiT(hil(hi!R(hi!h(hi!y(hi#r(hi#s(hi#x(hi#|(hi$P(hi$T(hi$U(hi%f(hi%g(hi%h(hi%i(hi%j(hi%k(hi%l(hi%m(hi%n(hi%o(hi%p(hi%q(hi%x(hi&T(hi&W(hi&X(hi'o(hi'u(hi$n(hi#p(hiW(hio(hiv(hiw(hix(hiy(hi|(hi!Y(hi!Z(hi!j(hi!k(hi!s(hi!t(hi!v(hi!w(hi#R(hi#T(hi#V(hi#X(hi#Y(hi#Z(hi$X(hi$](hi$^(hi$_(hi$a(hi$c(hi$d(hi$e(hi$f(hi$g(hi$k(hi$m(hi$q(hi(X(hi(Y(hi%](hi$[(hi~OZ!wOY(mX](mX^(mXa(mXc(mXe(mXf(mXg(mXh(mX!O(mX!P(mX!Q(mX!S(mX!T(mX!U(mX!V(mX![(mX!](mX!^(mX!_(mX!`(mX!a(mX!b(mX!c(mX!d(mX!e(mX!g(mX#](mX#e(mX#n(mX#q(mX$p(mX$x(mX$y(mX$z(mX$|(mX$}(mX%O(mX%P(mX%Q(mX%R(mX%S(mX%T(mXn(mXr(mXd(mX%d(mX$S(mX%X(mX%Y(mX%Z(mX%_(mX%b(mX%c(mX%`(mX%a(mX%^(mXV(mX%[(mXT(mXl(mX!R(mX!h(mX!y(mX#r(mX#s(mX#x(mX#|(mX$P(mX$T(mX$U(mX%f(mX%g(mX%h(mX%i(mX%j(mX%k(mX%l(mX%m(mX%n(mX%o(mX%p(mX%q(mX%x(mX&T(mX&W(mX&X(mX'o(mX'u(mX$n(mX#p(mXW(mXo(mXv(mXw(mXx(mXy(mX|(mX!Y(mX!Z(mX!j(mX!k(mX!s(mX!t(mX!v(mX!w(mX#R(mX#T(mX#V(mX#X(mX#Y(mX#Z(mX$X(mX$](mX$^(mX$_(mX$a(mX$c(mX$d(mX$e(mX$f(mX$g(mX$k(mX$m(mX$q(mX(X(mX(Y(mX%](mX$[(mX~OZIoO^/dOc/bOgIoOo/^Ov%YOw%YOx%YOy%YO!eIoO!t/fO#_/cO#eIoO#gIrO'oIlO'u!^O(X%WO(Y%XO~Oa)RPn)RP~P&!VOc)mO'o5fOa(tP~Oa5mOn5kOr5lO~P#!POa5pOn5nOr5oO~P#!POZ!wOh5[OY(ki](ki^(kia(kic(kie(kif(kig(ki!O(ki!P(ki!Q(ki!S(ki!T(ki!U(ki!V(ki![(ki!](ki!^(ki!_(ki!`(ki!a(ki!b(ki!c(ki!d(ki!e(ki!g(ki#](ki#e(ki#n(ki#q(ki$p(ki$x(ki$y(ki$z(ki$|(ki$}(ki%O(ki%P(ki%Q(ki%R(ki%S(ki%T(kin(kir(kid(ki%d(ki$S(ki%X(ki%Y(ki%Z(ki%_(ki%b(ki%c(ki%`(ki%a(ki%^(kiV(ki%[(kiT(kil(ki!R(ki!h(ki!y(ki#r(ki#s(ki#x(ki#|(ki$P(ki$T(ki$U(ki%f(ki%g(ki%h(ki%i(ki%j(ki%k(ki%l(ki%m(ki%n(ki%o(ki%p(ki%q(ki%x(ki&T(ki&W(ki&X(ki'o(ki'u(ki$n(ki#p(kiW(kio(kiv(kiw(kix(kiy(ki|(ki!Y(ki!Z(ki!j(ki!k(ki!s(ki!t(ki!v(ki!w(ki#R(ki#T(ki#V(ki#X(ki#Y(ki#Z(ki$X(ki$](ki$^(ki$_(ki$a(ki$c(ki$d(ki$e(ki$f(ki$g(ki$k(ki$m(ki$q(ki(X(ki(Y(ki%](ki$[(ki~Od5rO~Oe)oO!O)pO!P)pO#n){O$x)oO$y)oOZ$wi]$wia$wif$wi!S$wi!T$wi!e$wi#e$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~Og)nO$z)qO~P&-POZ$wi]$wia$wie$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O#n){O~P&0SOe)oO#n){O$x)oO$y)oOZ$wi]$wia$wif$wig$wi!S$wi!T$wi!e$wi#e$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O!O$wi!P$wi~P&3VOg$wi$z$wi~P&-POZ)rOe)oOg)nO!O)pO!P)pO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O]$wia$wif$wi!S$wi!T$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O%O$wi%P$wi~P&6dO%O)sO%P)sO~P&6dOZ)rOe)oOg)nO!O)pO!P)pO!S)tO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO]$wia$wif$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O!T$wi~P&9qO!T)uO~P&9qOZ)rOe)oOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO]$wia$wif$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~O%R$wi~P&<{O%R)wO~P&<{O]$wia$wif$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$win$wir$wid$wi%d$wi%`$wi%a$wi%^$wiV$wi%[$wi%]$wi~OZ)rOe)oOg)nO!O)pO!P)pO!S)tO!T)uO!e)rO#e)rO#n){O$x)oO$y)oO$z)qO$|)|O$})}O%O)sO%P)sO%Q)vO%R)wO%S)xO%T)yO~P&@VOr5sO~P#!POZ!lX]!lX^XXa!lXe!lXf!lXg!lXh!lX!O!lX!P!lX!S!lX!T!lX!e!lX#e!lX#h!lX#i!lX#n!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lXn!lXr!lXd!lX%d!lX$S!lX%X!lX%Y!lX%Z!lX%_!lX%b!lX%c!lX%`!lX%a!lX%^!lXV!lX%[!lX#p!lX%]!lX~P$7^O^5tOc#yOe#|Of$OO~Oh5vOZ)VX])VXa)VXe)VXf)VXg)VX!O)VX!P)VX!S)VX!T)VX!e)VX#e)VX#h)VX#i)VX#n)VX$x)VX$y)VX$z)VX$|)VX$})VX%O)VX%P)VX%Q)VX%R)VX%S)VX%T)VXY)VX![)VX!])VX!^)VX!_)VX!`)VX!a)VX!b)VX!c)VX!d)VX!g)VX#o)VX#p)VXd)VXn)VXr)VX%d)VX$S)VX%X)VX%Y)VX%Z)VX%_)VX%b)VX%c)VX%`)VX%a)VX%^)VXV)VX%[)VXT)VX^)VXc)VXl)VX!R)VX!h)VX!y)VX#r)VX#s)VX#x)VX#|)VX$P)VX$T)VX$U)VX%f)VX%g)VX%h)VX%i)VX%j)VX%k)VX%l)VX%m)VX%n)VX%o)VX%p)VX%q)VX%x)VX&T)VX&W)VX&X)VX'o)VX'u)VX$n)VXW)VXo)VXv)VXw)VXx)VXy)VX|)VX!Q)VX!U)VX!V)VX!Y)VX!Z)VX!j)VX!k)VX!s)VX!t)VX!v)VX!w)VX#R)VX#T)VX#V)VX#X)VX#Y)VX#Z)VX#])VX$X)VX$])VX$^)VX$_)VX$a)VX$c)VX$d)VX$e)VX$f)VX$g)VX$k)VX$m)VX$q)VX(X)VX(Y)VX%])VX$[)VX~On5{O'o'qO~Oo/^O#_5}O'o'qO~O#_5}O'o'qOZ#jX]#jXa#jXe#jXf#jXg#jX!O#jX!P#jX!S#jX!T#jX!e#jX#e#jX#h#jX#i#jX#n#jX$x#jX$y#jX$z#jX$|#jX$}#jX%O#jX%P#jX%Q#jX%R#jX%S#jX%T#jXY#jX![#jX!]#jX!^#jX!_#jX!`#jX!a#jX!b#jX!c#jX!d#jX!g#jX#o#jX#p#jXd#jXn#jXr#jX%d#jX$S#jX%X#jX%Y#jX%Z#jX%_#jX%b#jX%c#jX%`#jX%a#jX%^#jXV#jX%[#jXT#jX^#jXc#jXl#jX!R#jX!h#jX!y#jX#r#jX#s#jX#x#jX#|#jX$P#jX$T#jX$U#jX%f#jX%g#jX%h#jX%i#jX%j#jX%k#jX%l#jX%m#jX%n#jX%o#jX%p#jX%q#jX%x#jX&T#jX&W#jX&X#jX'u#jX$n#jXW#jXo#jXv#jXw#jXx#jXy#jX|#jX!Q#jX!U#jX!V#jX!Y#jX!Z#jX!j#jX!k#jX!s#jX!t#jX!v#jX!w#jX#R#jX#T#jX#V#jX#X#jX#Y#jX#Z#jX#]#jX$X#jX$]#jX$^#jX$_#jX$a#jX$c#jX$d#jX$e#jX$f#jX$g#jX$k#jX$m#jX$q#jX(X#jX(Y#jX%]#jX$[#jX~Od6VO#n6SO~P&!VOZIoO^/dOc/bOgIoOo/^Ov%YOw%YOx%YOy%YO!eIoO!t/fO#_/cO#eIoO#gIrO'o6XO'u!^O(X%WO(Y%XO~O^6^O#_5}O'o'qO~O#h6aO#i6bO#n$wi$S$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wi#p$wi~P&0SOo/^O#_5}O'o'qOZ)_X])_Xa)_Xe)_Xf)_Xg)_X!O)_X!P)_X!S)_X!T)_X!e)_X#e)_X#h)_X#i)_X#n)_X$x)_X$y)_X$z)_X$|)_X$})_X%O)_X%P)_X%Q)_X%R)_X%S)_X%T)_XY)_X![)_X!])_X!^)_X!_)_X!`)_X!a)_X!b)_X!c)_X!d)_X!g)_X#o)_X#p)_Xd)_Xn)_Xr)_X%d)_X$S)_X%X)_X%Y)_X%Z)_X%_)_X%b)_X%c)_X%`)_X%a)_X%^)_XV)_X%[)_XT)_X^)_Xc)_Xl)_X!R)_X!h)_X!y)_X#r)_X#s)_X#x)_X#|)_X$P)_X$T)_X$U)_X%f)_X%g)_X%h)_X%i)_X%j)_X%k)_X%l)_X%m)_X%n)_X%o)_X%p)_X%q)_X%x)_X&T)_X&W)_X&X)_X'u)_X$n)_XW)_Xv)_Xw)_Xx)_Xy)_X|)_X!Q)_X!U)_X!V)_X!Y)_X!Z)_X!j)_X!k)_X!s)_X!t)_X!v)_X!w)_X#R)_X#T)_X#V)_X#X)_X#Y)_X#Z)_X#])_X$X)_X$])_X$^)_X$_)_X$a)_X$c)_X$d)_X$e)_X$f)_X$g)_X$k)_X$m)_X$q)_X(X)_X(Y)_X%])_X$[)_X~O#_5}O'o'qOZ#lX]#lXa#lXe#lXf#lXg#lX!O#lX!P#lX!S#lX!T#lX!e#lX#e#lX#h#lX#i#lX#n#lX$x#lX$y#lX$z#lX$|#lX$}#lX%O#lX%P#lX%Q#lX%R#lX%S#lX%T#lXY#lX![#lX!]#lX!^#lX!_#lX!`#lX!a#lX!b#lX!c#lX!d#lX!g#lX#o#lX#p#lXd#lXn#lXr#lX%d#lX$S#lX%X#lX%Y#lX%Z#lX%_#lX%b#lX%c#lX%`#lX%a#lX%^#lXV#lX%[#lXT#lX^#lXc#lXl#lX!R#lX!h#lX!y#lX#r#lX#s#lX#x#lX#|#lX$P#lX$T#lX$U#lX%f#lX%g#lX%h#lX%i#lX%j#lX%k#lX%l#lX%m#lX%n#lX%o#lX%p#lX%q#lX%x#lX&T#lX&W#lX&X#lX'u#lX$n#lXW#lXo#lXv#lXw#lXx#lXy#lX|#lX!Q#lX!U#lX!V#lX!Y#lX!Z#lX!j#lX!k#lX!s#lX!t#lX!v#lX!w#lX#R#lX#T#lX#V#lX#X#lX#Y#lX#Z#lX#]#lX$X#lX$]#lX$^#lX$_#lX$a#lX$c#lX$d#lX$e#lX$f#lX$g#lX$k#lX$m#lX$q#lX(X#lX(Y#lX%]#lX$[#lX~O]*vXa*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vXn*vXr*vXd*vX%d*vX%`*vX%a*vX%^*vXV*vX%[*vX%]*vX~P#!POa.VO]*uX~Oa6iO~P!E_Od6jO~P#!PO#p6nO~O!q6qO~OZ*xaa*xae*xaf*xag*xa!O*xa!P*xa!S*xa!T*xa!e*xa#e*xa#n*xa$x*xa$y*xa$z*xa$|*xa$}*xa%O*xa%P*xa%Q*xa%R*xa%S*xa%T*xaY*xa![*xa!]*xa!^*xa!_*xa!`*xa!a*xa!b*xa!c*xa!d*xa!g*xan*xaV*xa~O%^0TO]*xar*xad*xa%d*xa%`*xa%a*xa%[*xa%]*xa~P'AOO'o6sO~OY6tO~O!q6uO~P$7^O'o6vO~O%d6wO~P#!POZG]OeGPOfLvOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmO%RGqO%SGuO%TGyO~O$S*za%X*za%Y*za%Z*za%_*za%b*za%c*za~P'DpO%`6xO%a6xO~P#!PO]+Paa+Pa%^+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pan+Par+Pad+Pa%d+Pa%`+Pa%a+PaV+Pa%[+Pa%]+Pa~P#!PO]6zO~O^*ROa'sO'oHeO~O^!lX^!oXc!lXf!lXh!lXjXX!Q!lX!U!lX!V!lX#]!lX#q!lX$p!lX~OY6{OZ!wOa(mXn(mX~P'HxOZ!wO^)XOh(tO!Q)^O!U)^O!V)^O#])[O#q)]O$p)ZO~Of6|O~P'JQOZ(VX^(VXc(VXf(VXh(VX!Q(VX!U(VX!V(VX#](VX#q(VX$p(VX~Oa({Xn({X~P'JvOa6}On(zX~On7PO~Oa7QOn(yX~Oc)mOo7UO!h7XO'o7ROa(tP~P!;qOa'kOd'mO'o)SO~P!;qOc#yOo0nO~Oo0gOY!xiZ!xi]!xi^!xia!xic!xie!xif!xig!xih!xi!O!xi!P!xi!Q!xi!S!xi!T!xi!U!xi!V!xi![!xi!]!xi!^!xi!_!xi!`!xi!a!xi!b!xi!c!xi!d!xi!e!xi!g!xi#]!xi#e!xi#n!xi#q!xi$p!xi$x!xi$y!xi$z!xi$|!xi$}!xi%O!xi%P!xi%Q!xi%R!xi%S!xi%T!xin!xir!xid!xi%d!xi$S!xi%X!xi%Y!xi%Z!xi%_!xi%b!xi%c!xi%`!xi%a!xi%^!xiV!xi%[!xiT!xil!xi!R!xi!h!xi!y!xi#r!xi#s!xi#x!xi#|!xi$P!xi$T!xi$U!xi%f!xi%g!xi%h!xi%i!xi%j!xi%k!xi%l!xi%m!xi%n!xi%o!xi%p!xi%q!xi%x!xi&T!xi&W!xi&X!xi'o!xi'u!xi$n!xi#p!xi%]!xi~Oc#yOY$uiZ$ui^$uia$uie$uif$uig$uih$ui!O$ui!P$ui!Q$ui!S$ui!T$ui!U$ui!V$ui![$ui!]$ui!^$ui!_$ui!`$ui!a$ui!b$ui!c$ui!d$ui!e$ui!g$ui#]$ui#e$ui#n$ui#q$ui$p$ui$x$ui$y$ui$z$ui$|$ui$}$ui%O$ui%P$ui%Q$ui%R$ui%S$ui%T$uin$ui%^$uiV$ui~Oo0nO]$uir$uid$ui%d$ui$S$ui%X$ui%Y$ui%Z$ui%_$ui%b$ui%c$ui%`$ui%a$ui%[$ui#p$ui%]$ui~P(%^On7`Oo0nO'o)SO~P!;qOr7bOY!lXZXXZ!lXZ!oXcXXeXXfXXg!lXhXX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX~P'HxOY)VOZ!wO^)XOf)YOg)UOh(tO!Q)^O![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO#])[O#q)]O$p)ZO~O!U7fO!V7fO~P(+YOY)VOg)UO![)VO!])VO!^)VO!_)VO!`)VO!a)VO!b)VO!c)VO!d)VO!g)VO~OT1[O^!`Ol1[O!h7kO#r1[O$P1[O'oyO'u!^O~Oo+QO#p7lO~OV*SXY(VXg(VX![(VX!](VX!^(VX!_(VX!`(VX!a(VX!b(VX!c(VX!d(VX!g(VXa*SX]*SX~P'JvOn7pO~P$FrOV7tO'o)SO~P!;qO^!`O!t7uO'oyO'u!^O~O'oHcO~O#s*iOT&}X^&}Xl&}X!h&}X#r&}X$P&}X'o&}X'u&}X~OV1OOW1fO^8OOeFeOo+QOv%YOw%YOx%YOy%YO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#Y&SO#Z&UO#]1nO#r*^O#s&QO$P8QO$X1]O$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o*XO'u!^O(X%WO(Y%XO~O^8RO~O^8TO~O$a8WO'o)SO~P!;qO#Y8XO$[8YO'o8XO~OV8[O!h8]O'o)SO~P!;qO^8_O~O$c8bO$f8aO~O^8cO~OV7{O~O!h8eO~O#x8fO^)mX!t)mX'o)mX'u)mX~O^!`O'oyO'u!^O~P(5yO!h8gO#x1kO^)lX!t)lX'o)lX'u)lX~OV8jO~OZ8nOh8lOj8mOc'qXe'qXf'qX~O]8qO~O]8rO~P#!POZ!wO](mXh(mXjXX~Oh8sO])OX~O]8uO~OY8yOa8xO])xid)xi~Oc#yO'o*QO~O!v8|O!w8|O~OV9YO~O^9^O~OZ9bOe9bOg9_O!O9`O!P9`O!Q9aO!R9aO!S9bO!T9bO!U9aO!V9aO!e9bO#e9bO$x9bO$y9bO$z9bO%O9bO%P9bO%Q9bO(X%WO~OcaO%g2lO%h2mO%i2mO%v9fO%w9fO~O%u9dO~P(:kOn+bX~P$M^OcaO%g2lO%h2mO%i2mO%u2nOn+bX~On9lO~O%h9mO%i9mO%u+dX%v+dX%w+dX~O%g9mO%u+dX%v+dX%w+dX~O%u9dO%v9fO%w9fO~OV9pO~P#!PO]9rO~OY9sO~Oa9tOV)sX~OV9vO~O!v9{O'o9wO~Oo0nO!h:SO'o)SO~P!;qOa2}OV)na])na~O!h:WO'o)SO~P!;qOY:XOT+aX^+aXc+aXl+aXn+aX!R+aX!h+aX!y+aX#r+aX#s+aX#x+aX#|+aX$P+aX$T+aX$U+aX%f+aX%g+aX%h+aX%i+aX%j+aX%k+aX%l+aX%m+aX%n+aX%o+aX%p+aX%q+aX%x+aX&T+aX&W+aX&X+aX'o+aX'u+aX$n+aX~OT`XY`X^`Xa`Xl`Xn`X!R`X!h`X!y`X#r`X#s`X#x`X#|`X$P`X'o`X'u`X$n`X~OZXXc`XhXXjXXo%sX$T`X$U`X%f`X%g`X%h`X%i`X%j`X%k`X%l`X%m`X%n`X%o`X%p`X%q`X%x`X&T`X&W`X&X`X~P(@oOZ!wOh:[Oj!tO~Oh:[O~Oo:^O~OV:_O~P#!POV:aO~P#!POa:bOV)}X^)}Xo)}Xr)}X$S)}X#p)}X~Of:dOV*OX^*OXa*OXo*OXr*OX$S*OX#p*OX~Oa:eOV)|X^)|Xo)|Xr)|X$S)|X#p)|X~O^:fO~Oa,]OV,^qo,^q~Oa,aOg)wi~Oa,cin,ci~P#!POV:kO~O!v:tO'o,uO~OcaO%u:xO%v:yO~OV:|O$S#]O~OV:}O~OV;POT,]!Zc,]!Zl,]!Zm,]!Z!h,]!Z!y,]!Z#r,]!Z#s,]!Z#x,]!Z$P,]!Z$T,]!Z$U,]!Z%f,]!Z%g,]!Z%h,]!Z%i,]!Z%j,]!Z%k,]!Z%l,]!Z%m,]!Z%n,]!Z%o,]!Z%p,]!Z%q,]!Z&T,]!Z&W,]!Z&X,]!Z'c,]!Zn,]!Z^,]!Z!R,]!Z#|,]!Z%x,]!Z'o,]!Z'u,]!Z$n,]!Z~OV;POo#[O~OV;POo#[Or#^O~OV;PO^#XOo#[Or#^O$S#]O~OV;UOT(P!Zc(P!Zl(P!Zm(P!Z!h(P!Z!y(P!Z#r(P!Z#s(P!Z#x(P!Z$P(P!Z$T(P!Z$U(P!Z%f(P!Z%g(P!Z%h(P!Z%i(P!Z%j(P!Z%k(P!Z%l(P!Z%m(P!Z%n(P!Z%o(P!Z%p(P!Z%q(P!Z&T(P!Z&W(P!Z&X(P!Z'c(P!Zn(P!Z^(P!Z!R(P!Z#|(P!Z%x(P!Z'o(P!Z'u(P!Z$n(P!Z~OV;XOT+|!Zc+|!Zl+|!Zm+|!Z!h+|!Z!y+|!Z#r+|!Z#s+|!Z#x+|!Z$P+|!Z$T+|!Z$U+|!Z%f+|!Z%g+|!Z%h+|!Z%i+|!Z%j+|!Z%k+|!Z%l+|!Z%m+|!Z%n+|!Z%o+|!Z%p+|!Z%q+|!Z&T+|!Z&W+|!Z&X+|!Z'c+|!Zn+|!Z^+|!Z!R+|!Z#|+|!Z%x+|!Z'o+|!Z'u+|!Z$n+|!Z~OV;[OT,Q!Zc,Q!Zl,Q!Zm,Q!Z!h,Q!Z!y,Q!Z#r,Q!Z#s,Q!Z#x,Q!Z$P,Q!Z$T,Q!Z$U,Q!Z%f,Q!Z%g,Q!Z%h,Q!Z%i,Q!Z%j,Q!Z%k,Q!Z%l,Q!Z%m,Q!Z%n,Q!Z%o,Q!Z%p,Q!Z%q,Q!Z&T,Q!Z&W,Q!Z&X,Q!Z'c,Q!Zn,Q!Z^,Q!Z!R,Q!Z#|,Q!Z%x,Q!Z'o,Q!Z'u,Q!Z$n,Q!Z~OV;^O$S#]O~O]&iaa&ia~P#!POa.PO](ai~O](^qa(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^qn(^qr(^qd(^q%d(^q%`(^q%a(^q%^(^qV(^q%[(^q%](^q~P#!POa5QO](dad(da~O](faa(fad(fa~P#!PO]`Xa`Xd`X~P$7^O^!`O!t5UO'oyO'u!^O~OZ!wOY(hq](hq^(hqa(hqc(hqe(hqf(hqg(hqh(hq!O(hq!P(hq!Q(hq!S(hq!T(hq!U(hq!V(hq![(hq!](hq!^(hq!_(hq!`(hq!a(hq!b(hq!c(hq!d(hq!e(hq!g(hq#](hq#e(hq#n(hq#q(hq$p(hq$x(hq$y(hq$z(hq$|(hq$}(hq%O(hq%P(hq%Q(hq%R(hq%S(hq%T(hqn(hqr(hqd(hq%d(hq$S(hq%X(hq%Y(hq%Z(hq%_(hq%b(hq%c(hq%`(hq%a(hq%^(hqV(hq%[(hqT(hql(hq!R(hq!h(hq!y(hq#r(hq#s(hq#x(hq#|(hq$P(hq$T(hq$U(hq%f(hq%g(hq%h(hq%i(hq%j(hq%k(hq%l(hq%m(hq%n(hq%o(hq%p(hq%q(hq%x(hq&T(hq&W(hq&X(hq'o(hq'u(hq$n(hq#p(hqW(hqo(hqv(hqw(hqx(hqy(hq|(hq!Y(hq!Z(hq!j(hq!k(hq!s(hq!t(hq!v(hq!w(hq#R(hq#T(hq#V(hq#X(hq#Y(hq#Z(hq$X(hq$](hq$^(hq$_(hq$a(hq$c(hq$d(hq$e(hq$f(hq$g(hq$k(hq$m(hq$q(hq(X(hq(Y(hq%](hq$[(hq~O#hJ_O#iJbO#o;jO#p;iO~Oa;kOn)SX~Oa;nOn;mO~OY;oO~Oa;pOn(qX~Oa;rO~On;sOa(tX~O'o;tO~Ov%YOw%YOx%YOy%YO(X%WO(Y%XO~OZ!wOh5[OY(kq](kq^(kqa(kqc(kqe(kqf(kqg(kq!O(kq!P(kq!Q(kq!S(kq!T(kq!U(kq!V(kq![(kq!](kq!^(kq!_(kq!`(kq!a(kq!b(kq!c(kq!d(kq!e(kq!g(kq#](kq#e(kq#n(kq#q(kq$p(kq$x(kq$y(kq$z(kq$|(kq$}(kq%O(kq%P(kq%Q(kq%R(kq%S(kq%T(kqn(kqr(kqd(kq%d(kq$S(kq%X(kq%Y(kq%Z(kq%_(kq%b(kq%c(kq%`(kq%a(kq%^(kqV(kq%[(kqT(kql(kq!R(kq!h(kq!y(kq#r(kq#s(kq#x(kq#|(kq$P(kq$T(kq$U(kq%f(kq%g(kq%h(kq%i(kq%j(kq%k(kq%l(kq%m(kq%n(kq%o(kq%p(kq%q(kq%x(kq&T(kq&W(kq&X(kq'o(kq'u(kq$n(kq#p(kqW(kqo(kqv(kqw(kqx(kqy(kq|(kq!Y(kq!Z(kq!j(kq!k(kq!s(kq!t(kq!v(kq!w(kq#R(kq#T(kq#V(kq#X(kq#Y(kq#Z(kq$X(kq$](kq$^(kq$_(kq$a(kq$c(kq$d(kq$e(kq$f(kq$g(kq$k(kq$m(kq$q(kq(X(kq(Y(kq%](kq$[(kq~O#_5}O'o'qOZ)_a])_aa)_ae)_af)_ag)_a!O)_a!P)_a!S)_a!T)_a!e)_a#e)_a#h)_a#i)_a#n)_a$x)_a$y)_a$z)_a$|)_a$})_a%O)_a%P)_a%Q)_a%R)_a%S)_a%T)_aY)_a![)_a!])_a!^)_a!_)_a!`)_a!a)_a!b)_a!c)_a!d)_a!g)_a#o)_a#p)_ad)_an)_ar)_a%d)_a$S)_a%X)_a%Y)_a%Z)_a%_)_a%b)_a%c)_a%`)_a%a)_a%^)_aV)_a%[)_aT)_a^)_ac)_al)_a!R)_a!h)_a!y)_a#r)_a#s)_a#x)_a#|)_a$P)_a$T)_a$U)_a%f)_a%g)_a%h)_a%i)_a%j)_a%k)_a%l)_a%m)_a%n)_a%o)_a%p)_a%q)_a%x)_a&T)_a&W)_a&X)_a'u)_a$n)_aW)_av)_aw)_ax)_ay)_a|)_a!Q)_a!U)_a!V)_a!Y)_a!Z)_a!j)_a!k)_a!s)_a!t)_a!v)_a!w)_a#R)_a#T)_a#V)_a#X)_a#Y)_a#Z)_a#])_a$X)_a$])_a$^)_a$_)_a$a)_a$c)_a$d)_a$e)_a$f)_a$g)_a$k)_a$m)_a$q)_a(X)_a(Y)_a%])_a$[)_a~Oo/^O~P)9|O'o;|O~Oh5vOZ)Va])Vaa)Vae)Vaf)Vag)Va!O)Va!P)Va!S)Va!T)Va!e)Va#e)Va#h)Va#i)Va#n)Va$x)Va$y)Va$z)Va$|)Va$})Va%O)Va%P)Va%Q)Va%R)Va%S)Va%T)VaY)Va![)Va!])Va!^)Va!_)Va!`)Va!a)Va!b)Va!c)Va!d)Va!g)Va#o)Va#p)Vad)Van)Var)Va%d)Va$S)Va%X)Va%Y)Va%Z)Va%_)Va%b)Va%c)Va%`)Va%a)Va%^)VaV)Va%[)VaT)Va^)Vac)Val)Va!R)Va!h)Va!y)Va#r)Va#s)Va#x)Va#|)Va$P)Va$T)Va$U)Va%f)Va%g)Va%h)Va%i)Va%j)Va%k)Va%l)Va%m)Va%n)Va%o)Va%p)Va%q)Va%x)Va&T)Va&W)Va&X)Va'o)Va'u)Va$n)VaW)Vao)Vav)Vaw)Vax)Vay)Va|)Va!Q)Va!U)Va!V)Va!Y)Va!Z)Va!j)Va!k)Va!s)Va!t)Va!v)Va!w)Va#R)Va#T)Va#V)Va#X)Va#Y)Va#Z)Va#])Va$X)Va$])Va$^)Va$_)Va$a)Va$c)Va$d)Va$e)Va$f)Va$g)Va$k)Va$m)Va$q)Va(X)Va(Y)Va%])Va$[)Va~OhTO~O#x>WO^)ma!t)ma'o)ma'u)ma~Oo>XO~O$h>]O$j>_O~O^!`Oa'kOg>cO'oyO'u!^O~OZ>dOh>eOj>eO](|X~O]>gO~Oh8sO])Oa~Oa>jO])xqd)xq~P#!POY>mOa>jO])xqd)xq~OV>pO~O^>tO~OV>vO~O]>wO~O^>xOg.zO~O^>zO~O^>|O~O^>xO~O%u?PO%v?QO%w?QO~OcaO%g2lO%h2mO%i2mO%u9dO~OV?UO~P#!POa9tOV)sa~OZXXZ!oX^!oXhXXo%sX#p%sX~OZ!wOh2wO~OZ#bO^+]a~OV)pXa)pX])pX~P#!POV?`O~P#!POd?cO~O'o?dO~OcaO%z?jO%{?kO~OV?lO~P#!POa:bOV)}a^)}ao)}ar)}a$S)}a#p)}a~O!y3fO~O]?pO~Oa,cqn,cq~P#!POV?rO~Oa?tOV,Pa~OV?wO$S#]O~OV?yO~OcaO%u@OO%v@PO~On@QO~OV@RO~OV@SO~OV@TOT,]!cc,]!cl,]!cm,]!c!h,]!c!y,]!c#r,]!c#s,]!c#x,]!c$P,]!c$T,]!c$U,]!c%f,]!c%g,]!c%h,]!c%i,]!c%j,]!c%k,]!c%l,]!c%m,]!c%n,]!c%o,]!c%p,]!c%q,]!c&T,]!c&W,]!c&X,]!c'c,]!cn,]!c^,]!c!R,]!c#|,]!c%x,]!c'o,]!c'u,]!c$n,]!c~OV@TOo#[O~OV@TOo#[Or#^O~OV@WOT(P!cc(P!cl(P!cm(P!c!h(P!c!y(P!c#r(P!c#s(P!c#x(P!c$P(P!c$T(P!c$U(P!c%f(P!c%g(P!c%h(P!c%i(P!c%j(P!c%k(P!c%l(P!c%m(P!c%n(P!c%o(P!c%p(P!c%q(P!c&T(P!c&W(P!c&X(P!c'c(P!cn(P!c^(P!c!R(P!c#|(P!c%x(P!c'o(P!c'u(P!c$n(P!c~OV@YOT+|!cc+|!cl+|!cm+|!c!h+|!c!y+|!c#r+|!c#s+|!c#x+|!c$P+|!c$T+|!c$U+|!c%f+|!c%g+|!c%h+|!c%i+|!c%j+|!c%k+|!c%l+|!c%m+|!c%n+|!c%o+|!c%p+|!c%q+|!c&T+|!c&W+|!c&X+|!c'c+|!cn+|!c^+|!c!R+|!c#|+|!c%x+|!c'o+|!c'u+|!c$n+|!c~OV@[OT,Q!cc,Q!cl,Q!cm,Q!c!h,Q!c!y,Q!c#r,Q!c#s,Q!c#x,Q!c$P,Q!c$T,Q!c$U,Q!c%f,Q!c%g,Q!c%h,Q!c%i,Q!c%j,Q!c%k,Q!c%l,Q!c%m,Q!c%n,Q!c%o,Q!c%p,Q!c%q,Q!c&T,Q!c&W,Q!c&X,Q!c'c,Q!cn,Q!c^,Q!c!R,Q!c#|,Q!c%x,Q!c'o,Q!c'u,Q!c$n,Q!c~OV@^O$S#]O~O]&iia&ii~P#!POZ!wOY(hy](hy^(hya(hyc(hye(hyf(hyg(hyh(hy!O(hy!P(hy!Q(hy!S(hy!T(hy!U(hy!V(hy![(hy!](hy!^(hy!_(hy!`(hy!a(hy!b(hy!c(hy!d(hy!e(hy!g(hy#](hy#e(hy#n(hy#q(hy$p(hy$x(hy$y(hy$z(hy$|(hy$}(hy%O(hy%P(hy%Q(hy%R(hy%S(hy%T(hyn(hyr(hyd(hy%d(hy$S(hy%X(hy%Y(hy%Z(hy%_(hy%b(hy%c(hy%`(hy%a(hy%^(hyV(hy%[(hyT(hyl(hy!R(hy!h(hy!y(hy#r(hy#s(hy#x(hy#|(hy$P(hy$T(hy$U(hy%f(hy%g(hy%h(hy%i(hy%j(hy%k(hy%l(hy%m(hy%n(hy%o(hy%p(hy%q(hy%x(hy&T(hy&W(hy&X(hy'o(hy'u(hy$n(hy#p(hyW(hyo(hyv(hyw(hyx(hyy(hy|(hy!Y(hy!Z(hy!j(hy!k(hy!s(hy!t(hy!v(hy!w(hy#R(hy#T(hy#V(hy#X(hy#Y(hy#Z(hy$X(hy$](hy$^(hy$_(hy$a(hy$c(hy$d(hy$e(hy$f(hy$g(hy$k(hy$m(hy$q(hy(X(hy(Y(hy%](hy$[(hy~O^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OOa;kOn)Sa~On@dO~Oo0gO!h@hO'o)SO~P!;qOc)mO'o5fO~Oa;pOn(qa~On@kO~On@mO'o;tO~On@mOr@nO~On@oO'o;tO~On@oOr@pO~O]$wya$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wyn$wyr$wyd$wy%d$wy%`$wy%a$wy%^$wyV$wy%[$wy%]$wy~P#!PO#_5}O'o'qOZ)_i])_ia)_ie)_if)_ig)_i!O)_i!P)_i!S)_i!T)_i!e)_i#e)_i#h)_i#i)_i#n)_i$x)_i$y)_i$z)_i$|)_i$})_i%O)_i%P)_i%Q)_i%R)_i%S)_i%T)_iY)_i![)_i!])_i!^)_i!_)_i!`)_i!a)_i!b)_i!c)_i!d)_i!g)_i#o)_i#p)_id)_in)_ir)_i%d)_i$S)_i%X)_i%Y)_i%Z)_i%_)_i%b)_i%c)_i%`)_i%a)_i%^)_iV)_i%[)_iT)_i^)_ic)_il)_i!R)_i!h)_i!y)_i#r)_i#s)_i#x)_i#|)_i$P)_i$T)_i$U)_i%f)_i%g)_i%h)_i%i)_i%j)_i%k)_i%l)_i%m)_i%n)_i%o)_i%p)_i%q)_i%x)_i&T)_i&W)_i&X)_i'u)_i$n)_iW)_io)_iv)_iw)_ix)_iy)_i|)_i!Q)_i!U)_i!V)_i!Y)_i!Z)_i!j)_i!k)_i!s)_i!t)_i!v)_i!w)_i#R)_i#T)_i#V)_i#X)_i#Y)_i#Z)_i#])_i$X)_i$])_i$^)_i$_)_i$a)_i$c)_i$d)_i$e)_i$f)_i$g)_i$k)_i$m)_i$q)_i(X)_i(Y)_i%])_i$[)_i~OheOc'zae'zaf'za~OZ8nOj>eOciieiifiihii~Oa'kOgBaO~Oa'kOg>cO~OaBdO])xyd)xy~P#!POVBfO~O]BhO~O%u?PO~OV)tia)ti~P#!POVBuO~P#!POVBvO~OZXXhXXo%sX~OZ!wOh:[O~OcaO%zBxO%{ByO~OcaO%{?kO~OcaO%z?jO~OnB}O~OVCQO~Oa?tOV,Pi~O'oCSO~OVCTO$S#]O~OVCXO~OVCYO~OVCZO~OcaO%vC]On,Ya~OcaO%uC]On,Ya~OVC_OT,]!kc,]!kl,]!km,]!k!h,]!k!y,]!k#r,]!k#s,]!k#x,]!k$P,]!k$T,]!k$U,]!k%f,]!k%g,]!k%h,]!k%i,]!k%j,]!k%k,]!k%l,]!k%m,]!k%n,]!k%o,]!k%p,]!k%q,]!k&T,]!k&W,]!k&X,]!k'c,]!kn,]!k^,]!k!R,]!k#|,]!k%x,]!k'o,]!k'u,]!k$n,]!k~OVC_Oo#[O~OVCaOT(P!kc(P!kl(P!km(P!k!h(P!k!y(P!k#r(P!k#s(P!k#x(P!k$P(P!k$T(P!k$U(P!k%f(P!k%g(P!k%h(P!k%i(P!k%j(P!k%k(P!k%l(P!k%m(P!k%n(P!k%o(P!k%p(P!k%q(P!k&T(P!k&W(P!k&X(P!k'c(P!kn(P!k^(P!k!R(P!k#|(P!k%x(P!k'o(P!k'u(P!k$n(P!k~OVCbOT+|!kc+|!kl+|!km+|!k!h+|!k!y+|!k#r+|!k#s+|!k#x+|!k$P+|!k$T+|!k$U+|!k%f+|!k%g+|!k%h+|!k%i+|!k%j+|!k%k+|!k%l+|!k%m+|!k%n+|!k%o+|!k%p+|!k%q+|!k&T+|!k&W+|!k&X+|!k'c+|!kn+|!k^+|!k!R+|!k#|+|!k%x+|!k'o+|!k'u+|!k$n+|!k~OVCcOT,Q!kc,Q!kl,Q!km,Q!k!h,Q!k!y,Q!k#r,Q!k#s,Q!k#x,Q!k$P,Q!k$T,Q!k$U,Q!k%f,Q!k%g,Q!k%h,Q!k%i,Q!k%j,Q!k%k,Q!k%l,Q!k%m,Q!k%n,Q!k%o,Q!k%p,Q!k%q,Q!k&T,Q!k&W,Q!k&X,Q!k'c,Q!kn,Q!k^,Q!k!R,Q!k#|,Q!k%x,Q!k'o,Q!k'u,Q!k$n,Q!k~Oa)Tin)Ti~P#!POZG_OeGROfLxOgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoO%RGsO%SGwO%TG{O~O#pCdO~P,:cOa(sXn(sX~P!E_Oo0gO'o)SO~P!;qO#hJ_O#iJbOa#cin#ci~O#hJ_O#iJbOa&vad&va~O#hJ_O#iJbO]&uaa&ua~Oa<^O])`i~OaAQO])[a~Oa'Uan'Uad'Ua~P#!PO%[CmO~P#!POa({qn({q~P#!PO^`X^!oXc`Xf`Xh`X!Q`X!U`X!V`X#]`X#q`X$p`X~OZ!wOa(mXn(mX~P,>bO!hCpO'o)SO~P!;qOaAaOn(wa~OaAaOn(wa~P#!POa&zan&za~P#!PO$S#]Oo)uq#p)uq~OVCvO~P#!POZG^OeGQOfLwOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnO%RGrO%SGvO%TGzO~OT#wqV#wqW#wq^#wql#wqn#wqo#wqv#wqw#wqx#wqy#wq|#wq!Q#wq!R#wq!U#wq!V#wq!Y#wq!Z#wq!h#wq!j#wq!k#wq!s#wq!t#wq!v#wq!w#wq!y#wq#R#wq#T#wq#V#wq#X#wq#Y#wq#Z#wq#]#wq#r#wq#s#wq#x#wq#|#wq$P#wq$X#wq$]#wq$^#wq$_#wq$a#wq$c#wq$d#wq$e#wq$f#wq$g#wq$k#wq$m#wq$n#wq$q#wq'o#wq'u#wq(X#wq(Y#wq$[#wq~P,@nOVCyO~O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOaAsOV*`a]*`a~O]C|O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOVDOO~P#!POVDOO'o)SO~P!;qO!qDQO~OYDSO~OaDTO]*nX~O]DVO~OnDWO~OrDYO~Oo+QO#oD_O~OZ>dOh>eOj>eO~OaDcO])x!Rd)x!R~P#!POaDhO~O]DiOaDhO~O]DiO~OcaO%{ByO~OcaO%zBxO~OVDmO$S#]O~OcaO%vDpOn,Yi~OcaO%uDpOn,Yi~OcaO%vDpO~OVDrO~OcaO%uDpO~OVDsOT,]!sc,]!sl,]!sm,]!s!h,]!s!y,]!s#r,]!s#s,]!s#x,]!s$P,]!s$T,]!s$U,]!s%f,]!s%g,]!s%h,]!s%i,]!s%j,]!s%k,]!s%l,]!s%m,]!s%n,]!s%o,]!s%p,]!s%q,]!s&T,]!s&W,]!s&X,]!s'c,]!sn,]!s^,]!s!R,]!s#|,]!s%x,]!s'o,]!s'u,]!s$n,]!s~OnDuO'o;tO~OnDvO'o;tO~O#hJ_O#iJbO]&uia&ui~OaDwO~P!E_O%]DxO~P#!POa&man&ma~P#!POaAaOn(wi~O$S#]Oo)uy#p)uy~O]D}O~O]D}O^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OOVEPO~P#!PO!qERO~OaDTO]*na~OrEVO#hJ_O#iJbO#oEWO~OT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xa~P)1OO]E]O'o'qO~OYEdOa+sa]+sa~OVEfO$S#]O~OcaO%vEgO~OVEhO~OcaO%uEgO~Oa)Tyn)Ty~P#!PO%]EkO~P#!POa&min&mi~P#!PO$S#]Oo)u!R#p)u!R~O]EmO~O]EmO^8OOeFeO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y=rO!Z%uO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO]EoO~P#!PO]*oia*oi~P#!POT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xi~P)1OOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*YX~P)1OO^*xOrEuO~O]EvO~OYExOa+si]+si~O]E{O~OVE|O~O%^E}O$S*|!c%X*|!c%Y*|!c%Z*|!c%_*|!c%b*|!c%c*|!c~P'DpO$S#]Oo)u!Z#p)u!Z~O]FPO~O]FQO~P#!POrFRO~P#!POrFSO#hJ_O#iJbO#oFTO~On*Ya~P$FrOYFWOa+sq]+sq~Oa+sq]+sq~P#!PO'oFXO~O%^FYO$S*|!k%X*|!k%Y*|!k%Z*|!k%_*|!k%b*|!k%c*|!k~P'DpOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Xy~P)1OOT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Yi~P)1OOn*Yi~P$FrOa+sy]+sy~P#!PO'oF_O~OrF`O~P#!POa+s!R]+s!R~P#!POT1[OV1OOW1fO^0rOeFeOl1[Oo+QO|%bO!OFeO!PFeO!QFeO!RFeO!SFeO!TFeO!U1TO!V1TO!Y1bO!Z1UO!h1lO!j%cO!k%cO!s1mO!t1WO!v%eO!w%wO!y&PO#R&RO#T&SO#V1qO#X1qO#YEZO#Z&UO#]1nO#r1ZO#s&QO#x1kO#|1YO$P1[O$X1]O$[EYO$]1^O$^1_O$_1`O$a1aO$c1oO$d1oO$e1cO$f1dO$g1pO$k1eO$m1gO$n1hO$q%xO'o0qO'u!^On*Yy~P)1OOZ'tae'taf'ta!O'ta!P'ta!S'ta!T'ta!e'ta#e'ta#n'ta$x'ta$y'ta$z'ta$|'ta$}'ta%O'ta%P'ta%Q'ta%R'ta%S'ta%T'taY'ta!['ta!]'ta!^'ta!_'ta!`'ta!a'ta!b'ta!c'ta!d'ta!g'tan'tar'tad'ta%d'ta$S'ta%X'ta%Y'ta%Z'ta%_'ta%b'ta%c'ta%`'ta%a'ta%^'taV'ta%['ta#p'taT'taW'tal'tav'taw'tax'tay'ta|'ta!Q'ta!R'ta!U'ta!V'ta!Y'ta!Z'ta!h'ta!j'ta!k'ta!s'ta!t'ta!w'ta!y'ta#R'ta#T'ta#V'ta#X'ta#Y'ta#Z'ta#]'ta#r'ta#s'ta#x'ta#|'ta$P'ta$X'ta$]'ta$^'ta$_'ta$a'ta$c'ta$d'ta$e'ta$f'ta$g'ta$k'ta$m'ta$n'ta$q'ta'u'ta(X'ta(Y'ta%]'ta$['ta~P!&nOeFqOlLqO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!YFqO!ZFmO#rLmO$S%UX%X%UX%Y%UX%Z%UX%_%UX%b%UX%c%UX~P##gO%X%{OT%UXZ%UX^%UXa%UXf%UXg%UXl%UXn%UX!e%UX!h%UX#e%UX#n%UX#r%UX#s%UX#x%UX#|%UX$P%UX$n%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UX'o%UX'u%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~OeFrO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!yFtOV%UXW%UXo%UXv%UXw%UXx%UXy%UX|%UX!Z%UX!j%UX!k%UX!s%UX!t%UX!v%UX!w%UX#R%UX#T%UX#V%UX#X%UX#Y%UX#Z%UX#]%UX$X%UX$]%UX$^%UX$_%UX$a%UX$c%UX$d%UX$e%UX$f%UX$g%UX$k%UX$m%UX$q%UX(X%UX(Y%UX$[%UX~P-NTOeFsOv%YOw%YOx%YOy%YO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO$q%xO(X%WO(Y%XOc%UX$T%UX$U%UX%f%UX%g%UX%h%UX%i%UX%j%UX%k%UX%l%UX%m%UX%n%UX%o%UX%p%UX%q%UX%x%UX&T%UX&W%UX&X%UX~P-NTO^%ZOeFsOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOT(TX^(TXc(TXl(TX!R(TX!h(TX!y(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TXW(TXo(TXv(TXw(TXx(TXy(TX|(TX!Q(TX!U(TX!V(TX!Y(TX!Z(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#](TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$q(TX(X(TX(Y(TX$[(TX~P#,hOd!lX~P!7bOY!lXZXXZ!lXZ!oXcXXeXXe!lXfXXg!lXhXX!O!lX!P!lX!S!lX!T!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!e!lX!g!lX#e!lX#n!lX#p!lX#p#uX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX%^!lX~P'HxO!hHjO~P$;cO^%ZOeFrOlLrO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!hHkO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!hHlO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!hHmO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOg.zO~P$;cO^%ZOeFrOg.zOlLrO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOg.zOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOg.zOlLtO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOeFqOlLqO!OFqO!PFqO!QFqO!RFqO!SFqO!TFqO!YFqO!ZFmO#rLmO$S%Ua%X%Ua%Y%Ua%Z%Ua%_%Ua%b%Ua%c%Ua~P$&]O%X%{OT%UaZ%Ua^%Uaa%Uaf%Uag%Ual%Uan%Ua!e%Ua!h%Ua#e%Ua#n%Ua#r%Ua#s%Ua#x%Ua#|%Ua$P%Ua$n%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%Ua'o%Ua'u%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~OeFrO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!yFtOV%UaW%Uao%Uav%Uaw%Uax%Uay%Ua|%Ua!Z%Ua!j%Ua!k%Ua!s%Ua!t%Ua!v%Ua!w%Ua#R%Ua#T%Ua#V%Ua#X%Ua#Y%Ua#Z%Ua#]%Ua$X%Ua$]%Ua$^%Ua$_%Ua$a%Ua$c%Ua$d%Ua$e%Ua$f%Ua$g%Ua$k%Ua$m%Ua$q%Ua(X%Ua(Y%Ua$[%Ua~P.BkO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^OZ%Uaf%Uag%Ua!e%Ua#e%Ua#n%Ua#p%Ua$x%Ua$y%Ua$z%Ua$|%Ua$}%Ua%O%Ua%P%Ua%Q%Ua%R%Ua%S%Ua%T%UaY%Ua![%Ua!]%Ua!^%Ua!_%Ua!`%Ua!a%Ua!b%Ua!c%Ua!d%Ua!g%Ua%^%Ua~P)1OOeFsOv%YOw%YOx%YOy%YO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO$q%xO(X%WO(Y%XOc%Ua$T%Ua$U%Ua%f%Ua%g%Ua%h%Ua%i%Ua%j%Ua%k%Ua%l%Ua%m%Ua%n%Ua%o%Ua%p%Ua%q%Ua%x%Ua&T%Ua&W%Ua&X%Ua~P.BkOo+QO~P$;cO^%ZOeFrOlLrOo+QO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeKWOlLsOo+QO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#nKaO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^O~P)1OO^%ZOeFsOlLtOo+QO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OOW}ao}av}aw}ax}ay}a|}a!Q}a!U}a!V}a!Y}a!Z}a!j}a!k}a!s}a!t}a!v}a!w}a#R}a#T}a#V}a#X}a#Y}a#Z}a#]}a$X}a$]}a$^}a$_}a$a}a$c}a$d}a$e}a$f}a$g}a$k}a$m}a$q}a(X}a(Y}a$[}a~P$-yOY}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a$S}a%X}a%Y}a%Z}a%_}a%b}a%c}a%^}a~P'DpOT}aV}aW}aY}a^}aa}al}an}ao}av}aw}ax}ay}a|}a!Q}a!R}a!U}a!V}a!Y}a!Z}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a!h}a!j}a!k}a!s}a!t}a!v}a!w}a!y}a#R}a#T}a#V}a#X}a#Y}a#Z}a#]}a#r}a#s}a#x}a#|}a$P}a$X}a$]}a$^}a$_}a$a}a$c}a$d}a$e}a$f}a$g}a$k}a$m}a$n}a$q}a'o}a'u}a(X}a(Y}a%^}a$[}a~P,@nOY}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a#p}a%^}a~P,:cOZG`OeGSOfLyOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpO%RGtO%SGxO%TG|O~OT}aY}a^}aa}ac}al}an}a!R}a![}a!]}a!^}a!_}a!`}a!a}a!b}a!c}a!d}a!g}a!h}a!y}a#r}a#s}a#x}a#|}a$P}a$T}a$U}a%f}a%g}a%h}a%i}a%j}a%k}a%l}a%m}a%n}a%o}a%p}a%q}a%x}a&T}a&W}a&X}a'o}a'u}a$n}a%^}a~P/2oOV`XW`XZ!oX^!oXe`Xo`Xv`Xw`Xx`Xy`X|`X!O`X!P`X!Q`X!S`X!T`X!U`X!V`X!Y`X!Z`X!j`X!k`X!s`X!t`X!v`X!w`X#R`X#T`X#V`X#X`X#Y`X#Z`X#]`X$X`X$]`X$^`X$_`X$a`X$c`X$d`X$e`X$f`X$g`X$k`X$m`X$q`X(X`X(Y`X$[`X~P(@oOY`XZXXZ`XZ!oXcXXeXXfXXg`XhXX![`X!]`X!^`X!_`X!``X!a`X!b`X!c`X!d`X!g`X~P,>bO]`Xa`X#p#uXY`X~O$S(^i%X(^i%Y(^i%Z(^i%_(^i%b(^i%c(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P'DpOT(^iV(^iW(^i^(^ia(^il(^in(^io(^iv(^iw(^ix(^iy(^i|(^i!Q(^i!R(^i!U(^i!V(^i!Y(^i!Z(^i!h(^i!j(^i!k(^i!s(^i!t(^i!v(^i!w(^i!y(^i#R(^i#T(^i#V(^i#X(^i#Y(^i#Z(^i#](^i#r(^i#s(^i#x(^i#|(^i$P(^i$X(^i$](^i$^(^i$_(^i$a(^i$c(^i$d(^i$e(^i$f(^i$g(^i$k(^i$m(^i$n(^i$q(^i'o(^i'u(^i(X(^i(Y(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i$[(^i~P,@nO#p(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P,:cOT(^i^(^ia(^ic(^il(^in(^i!R(^i!h(^i!y(^i#r(^i#s(^i#x(^i#|(^i$P(^i$T(^i$U(^i%f(^i%g(^i%h(^i%i(^i%j(^i%k(^i%l(^i%m(^i%n(^i%o(^i%p(^i%q(^i%x(^i&T(^i&W(^i&X(^i'o(^i'u(^i$n(^iY(^i![(^i!](^i!^(^i!_(^i!`(^i!a(^i!b(^i!c(^i!d(^i!g(^i%^(^i~P/2oOeGPO!OGTO!PGTO#nG}O$xGPO$yGPOZ$wif$wi!S$wi!T$wi!e$wi#e$wi$S$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgF{O$zGXO~P/F]OeGQO!OGUO!PGUO#nHOO$xGQO$yGQOT$wiV$wiW$wiZ$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~OgF|O$zGYO~P/ISOeGRO!OGVO!PGVO#nHPO$xGRO$yGROZ$wif$wi!S$wi!T$wi!e$wi#e$wi#p$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgF}O$zGZO~P0 YOeGSO!OGWO!PGWO#nHQO$xGSO$yGSOT$wiZ$wi^$wia$wic$wif$wil$win$wi!R$wi!S$wi!T$wi!e$wi!h$wi!y$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OgGOO$zG[O~P0#mO#nG}OZ$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$S$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~Oe$wi$x$wi$y$wi~P0([OT$wiV$wiW$wiZ$wi^$wia$wie$wif$wig$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!O$wi!P$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O#nHOO~P0+ROZ$wie$wif$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O#nHPO#p$wi~P01XO#nHQOT$wi^$wia$wic$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wi~P01XOeGPO$xGPO$yGPO~P0([OeGQO#nHOO$xGQO$yGQOT$wiV$wiW$wiZ$wi^$wia$wif$wig$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!e$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#e$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O!O$wi!P$wi~P06_OeGRO#nHPO$xGRO$yGROZ$wif$wig$wi!S$wi!T$wi!e$wi#e$wi#p$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!O$wi!P$wi~P0xOg$wi$z$wi~P/F]Og$wi$z$wi~P/ISOg$wi$z$wi~P0 YOg$wi$z$wi~P0#mOZG]OeGPOgF{O!OGTO!PGTO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}Of$wi!S$wi!T$wi$S$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P0DaOZG^OeGQOgF|O!OGUO!PGUO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!S$wi!T$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O%O$wi%P$wi~P0GWOZG_OeGROgF}O!OGVO!PGVO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}Of$wi!S$wi!T$wi#p$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P0M^OZG`OeGSOgGOO!OGWO!PGWO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnOT$wi^$wia$wic$wif$wil$win$wi!R$wi!S$wi!T$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%O$wi%P$wi~P1 qO%OGaO%PGaO~P0DaO%OGbO%PGbO~P0GWO%OGcO%PGcO~P0M^O%OGdO%PGdO~P1 qOZG]OeGPOgF{O!OGTO!PGTO!SGeO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaOf$wi$S$wi%Q$wi%R$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P1'YOZG^OeGQOgF|O!OGUO!PGUO!SGfO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%Q$wi%R$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O!T$wi~P1*POZG_OeGROgF}O!OGVO!PGVO!SGgO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcOf$wi#p$wi%Q$wi%R$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P10VOZG`OeGSOgGOO!OGWO!PGWO!SGhO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdOT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%Q$wi%R$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O!T$wi~P12jO!TGiO~P1'YO!TGjO~P1*PO!TGkO~P10VO!TGlO~P12jOZG]OeGPOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmOf$wi$S$wi%S$wi%T$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P17uOZG^OeGQOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi%S$wi%T$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~O%R$wi~P1:lOZG_OeGROgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoOf$wi#p$wi%S$wi%T$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P1@rOZG`OeGSOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpOT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%S$wi%T$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~O%R$wi~P1CVO%RGqO~P17uO%RGrO~P1:lO%RGsO~P1@rO%RGtO~P1CVOZG]OeGPOgF{O!OGTO!PGTO!SGeO!TGiO!eG]O#eG]O#nG}O$xGPO$yGPO$zGXO$|)|O$})}O%OGaO%PGaO%QGmO%RGqO%SGuO%TGyO~Of$wi$S$wi%X$wi%Y$wi%Z$wi%_$wi%b$wi%c$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~P1HbOT$wiV$wiW$wi^$wia$wif$wil$win$wio$wiv$wiw$wix$wiy$wi|$wi!Q$wi!R$wi!U$wi!V$wi!Y$wi!Z$wi!h$wi!j$wi!k$wi!s$wi!t$wi!v$wi!w$wi!y$wi#R$wi#T$wi#V$wi#X$wi#Y$wi#Z$wi#]$wi#r$wi#s$wi#x$wi#|$wi$P$wi$X$wi$]$wi$^$wi$_$wi$a$wi$c$wi$d$wi$e$wi$f$wi$g$wi$k$wi$m$wi$n$wi$q$wi'o$wi'u$wi(X$wi(Y$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi$[$wi~OZG^OeGQOgF|O!OGUO!PGUO!SGfO!TGjO!eG^O#eG^O#nHOO$xGQO$yGQO$zGYO$|)|O$}KoO%OGbO%PGbO%QGnO%RGrO%SGvO%TGzO~P1KXOZG_OeGROgF}O!OGVO!PGVO!SGgO!TGkO!eG_O#eG_O#nHPO$xGRO$yGRO$zGZO$|)|O$})}O%OGcO%PGcO%QGoO%RGsO%SGwO%TG{O~Of$wi#p$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~P2#_OT$wi^$wia$wic$wif$wil$win$wi!R$wi!h$wi!y$wi#r$wi#s$wi#x$wi#|$wi$P$wi$T$wi$U$wi%f$wi%g$wi%h$wi%i$wi%j$wi%k$wi%l$wi%m$wi%n$wi%o$wi%p$wi%q$wi%x$wi&T$wi&W$wi&X$wi'o$wi'u$wi$n$wiY$wi![$wi!]$wi!^$wi!_$wi!`$wi!a$wi!b$wi!c$wi!d$wi!g$wi%^$wi~OZG`OeGSOgGOO!OGWO!PGWO!SGhO!TGlO!eG`O#eG`O#nHQO$xGSO$yGSO$zG[O$|HRO$}KnO%OGdO%PGdO%QGpO%RGtO%SGxO%TG|O~P2%rO^XXh!lX#h!lX#i!lX#o!lX#p!lXa!lXd!lX]!lXn!lXr!lX~P$7^OT!lXV!lXW!lXZ!lX^XX^!lXa!lXe!lXf!lXg!lXh!lXl!lXn!lXo!lXv!lXw!lXx!lXy!lX|!lX!O!lX!P!lX!Q!lX!R!lX!S!lX!T!lX!U!lX!V!lX!Y!lX!Z!lX!e!lX!h!lX!j!lX!k!lX!s!lX!t!lX!v!lX!w!lX!y!lX#R!lX#T!lX#V!lX#X!lX#Y!lX#Z!lX#]!lX#e!lX#h!lX#i!lX#n!lX#r!lX#s!lX#x!lX#|!lX$P!lX$X!lX$]!lX$^!lX$_!lX$a!lX$c!lX$d!lX$e!lX$f!lX$g!lX$k!lX$m!lX$n!lX$q!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX'o!lX'u!lX(X!lX(Y!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX%^!lX$[!lX~P$7^OT!lXZ!lX^XX^!lXa!lXc!lXe!lXf!lXg!lXh!lXl!lXn!lX!O!lX!P!lX!R!lX!S!lX!T!lX!e!lX!h!lX!y!lX#e!lX#h!lX#i!lX#n!lX#r!lX#s!lX#x!lX#|!lX$P!lX$T!lX$U!lX$x!lX$y!lX$z!lX$|!lX$}!lX%O!lX%P!lX%Q!lX%R!lX%S!lX%T!lX%f!lX%g!lX%h!lX%i!lX%j!lX%k!lX%l!lX%m!lX%n!lX%o!lX%p!lX%q!lX%x!lX&T!lX&W!lX&X!lX'o!lX'u!lX$n!lXY!lX![!lX!]!lX!^!lX!_!lX!`!lX!a!lX!b!lX!c!lX!d!lX!g!lX%^!lX~P$7^OZIpO^/dOc/bOgIpOo/^O!eIpO!t/fO#_/cO#eIpO#gIsO'oImO'u!^O~P)1OOZIqO^/dOc/bOgIqOo/^O!eIqO!t/fO#_/cO#eIqO#gItO'oInO'u!^O~P)1OO$S*vX%X*vX%Y*vX%Z*vX%_*vX%b*vX%c*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P'DpOT*vXV*vXW*vX^*vXa*vXl*vXn*vXo*vXv*vXw*vXx*vXy*vX|*vX!Q*vX!R*vX!U*vX!V*vX!Y*vX!Z*vX!h*vX!j*vX!k*vX!s*vX!t*vX!v*vX!w*vX!y*vX#R*vX#T*vX#V*vX#X*vX#Y*vX#Z*vX#]*vX#r*vX#s*vX#x*vX#|*vX$P*vX$X*vX$]*vX$^*vX$_*vX$a*vX$c*vX$d*vX$e*vX$f*vX$g*vX$k*vX$m*vX$n*vX$q*vX'o*vX'u*vX(X*vX(Y*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX$[*vX~P,@nO#p*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P,:cOT*vX^*vXa*vXc*vXl*vXn*vX!R*vX!h*vX!y*vX#r*vX#s*vX#x*vX#|*vX$P*vX$T*vX$U*vX%f*vX%g*vX%h*vX%i*vX%j*vX%k*vX%l*vX%m*vX%n*vX%o*vX%p*vX%q*vX%x*vX&T*vX&W*vX&X*vX'o*vX'u*vX$n*vXY*vX![*vX!]*vX!^*vX!_*vX!`*vX!a*vX!b*vX!c*vX!d*vX!g*vX%^*vX~P/2oO$S+Pa%X+Pa%Y+Pa%Z+Pa%^+Pa%_+Pa%b+Pa%c+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P'DpOT+PaV+PaW+Pa^+Paa+Pal+Pan+Pao+Pav+Paw+Pax+Pay+Pa|+Pa!Q+Pa!R+Pa!U+Pa!V+Pa!Y+Pa!Z+Pa!h+Pa!j+Pa!k+Pa!s+Pa!t+Pa!v+Pa!w+Pa!y+Pa#R+Pa#T+Pa#V+Pa#X+Pa#Y+Pa#Z+Pa#]+Pa#r+Pa#s+Pa#x+Pa#|+Pa$P+Pa$X+Pa$]+Pa$^+Pa$_+Pa$a+Pa$c+Pa$d+Pa$e+Pa$f+Pa$g+Pa$k+Pa$m+Pa$n+Pa$q+Pa%^+Pa'o+Pa'u+Pa(X+Pa(Y+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa$[+Pa~P,@nOT+Pa^+Paa+Pac+Pal+Pan+Pa!R+Pa!h+Pa!y+Pa#r+Pa#s+Pa#x+Pa#|+Pa$P+Pa$T+Pa$U+Pa%^+Pa%f+Pa%g+Pa%h+Pa%i+Pa%j+Pa%k+Pa%l+Pa%m+Pa%n+Pa%o+Pa%p+Pa%q+Pa%x+Pa&T+Pa&W+Pa&X+Pa'o+Pa'u+Pa$n+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P/2oO#p+Pa%^+PaY+Pa![+Pa!]+Pa!^+Pa!_+Pa!`+Pa!a+Pa!b+Pa!c+Pa!d+Pa!g+Pa~P,:cOT$uiY$uiZ$ui^$uia$uie$uif$uig$uih$uil$uin$ui!O$ui!P$ui!Q$ui!R$ui!S$ui!T$ui!U$ui!V$ui![$ui!]$ui!^$ui!_$ui!`$ui!a$ui!b$ui!c$ui!d$ui!e$ui!g$ui!h$ui!y$ui#]$ui#e$ui#n$ui#q$ui#r$ui#s$ui#x$ui#|$ui$P$ui$p$ui$x$ui$y$ui$z$ui$|$ui$}$ui%O$ui%P$ui%Q$ui%R$ui%S$ui%T$ui'o$ui'u$ui$n$ui%^$ui~Oo0nOc$ui$T$ui$U$ui%f$ui%g$ui%h$ui%i$ui%j$ui%k$ui%l$ui%m$ui%n$ui%o$ui%p$ui%q$ui%x$ui&T$ui&W$ui&X$ui~P2LZOc#yOV$uiW$uio$uiv$uiw$uix$uiy$ui|$ui!Y$ui!Z$ui!j$ui!k$ui!s$ui!t$ui!v$ui!w$ui#R$ui#T$ui#V$ui#X$ui#Y$ui#Z$ui$X$ui$]$ui$^$ui$_$ui$a$ui$c$ui$d$ui$e$ui$f$ui$g$ui$k$ui$m$ui$q$ui(X$ui(Y$ui$[$ui~P2LZO^%ZOeFsOlLtOo0nO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!hJvO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeFrOlLrOo0nO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!hJwO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO$S(^q%X(^q%Y(^q%Z(^q%_(^q%b(^q%c(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P'DpOT(^qV(^qW(^q^(^qa(^ql(^qn(^qo(^qv(^qw(^qx(^qy(^q|(^q!Q(^q!R(^q!U(^q!V(^q!Y(^q!Z(^q!h(^q!j(^q!k(^q!s(^q!t(^q!v(^q!w(^q!y(^q#R(^q#T(^q#V(^q#X(^q#Y(^q#Z(^q#](^q#r(^q#s(^q#x(^q#|(^q$P(^q$X(^q$](^q$^(^q$_(^q$a(^q$c(^q$d(^q$e(^q$f(^q$g(^q$k(^q$m(^q$n(^q$q(^q'o(^q'u(^q(X(^q(Y(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q$[(^q~P,@nO#p(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P,:cOT(^q^(^qa(^qc(^ql(^qn(^q!R(^q!h(^q!y(^q#r(^q#s(^q#x(^q#|(^q$P(^q$T(^q$U(^q%f(^q%g(^q%h(^q%i(^q%j(^q%k(^q%l(^q%m(^q%n(^q%o(^q%p(^q%q(^q%x(^q&T(^q&W(^q&X(^q'o(^q'u(^q$n(^qY(^q![(^q!](^q!^(^q!_(^q!`(^q!a(^q!b(^q!c(^q!d(^q!g(^q%^(^q~P/2oO$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH^O%cMSO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH_O%cMTO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bHaO%cMVO~O$S*uO%X%{O%Y*qO%Z*rO%_*vO%bH`O%cMUO~OT$uqY$uqZ$uq^$uqa$uqe$uqf$uqg$uqh$uql$uqn$uq!O$uq!P$uq!Q$uq!R$uq!S$uq!T$uq!U$uq!V$uq![$uq!]$uq!^$uq!_$uq!`$uq!a$uq!b$uq!c$uq!d$uq!e$uq!g$uq!h$uq!y$uq#]$uq#e$uq#n$uq#q$uq#r$uq#s$uq#x$uq#|$uq$P$uq$p$uq$x$uq$y$uq$z$uq$|$uq$}$uq%O$uq%P$uq%Q$uq%R$uq%S$uq%T$uq'o$uq'u$uq$n$uq%^$uq~Oo0nOc$uq$T$uq$U$uq%f$uq%g$uq%h$uq%i$uq%j$uq%k$uq%l$uq%m$uq%n$uq%o$uq%p$uq%q$uq%x$uq&T$uq&W$uq&X$uq~P36pOc#yOV$uqW$uqo$uqv$uqw$uqx$uqy$uq|$uq!Y$uq!Z$uq!j$uq!k$uq!s$uq!t$uq!v$uq!w$uq#R$uq#T$uq#V$uq#X$uq#Y$uq#Z$uq$X$uq$]$uq$^$uq$_$uq$a$uq$c$uq$d$uq$e$uq$f$uq$g$uq$k$uq$m$uq$q$uq(X$uq(Y$uq$[$uq~P36pOT)pX^)pXa)pXc)pXl)pXn)pX!R)pX!h)pX!y)pX#r)pX#s)pX#x)pX#|)pX$P)pX$T)pX$U)pX%f)pX%g)pX%h)pX%i)pX%j)pX%k)pX%l)pX%m)pX%n)pX%o)pX%p)pX%q)pX%x)pX&T)pX&W)pX&X)pX'o)pX'u)pX$n)pX~P/2oOT)pXV)pXW)pX^)pXa)pXl)pXn)pXo)pXv)pXw)pXx)pXy)pX|)pX!Q)pX!R)pX!U)pX!V)pX!Y)pX!Z)pX!h)pX!j)pX!k)pX!s)pX!t)pX!v)pX!w)pX!y)pX#R)pX#T)pX#V)pX#X)pX#Y)pX#Z)pX#])pX#r)pX#s)pX#x)pX#|)pX$P)pX$X)pX$])pX$^)pX$_)pX$a)pX$c)pX$d)pX$e)pX$f)pX$g)pX$k)pX$m)pX$n)pX$q)pX'o)pX'u)pX(X)pX(Y)pX$[)pX~P,@nO^%ZOeFsOlLtOo0nO|%bO!OFsO!PFsO!QFsO!RFsO!SFsO!TFsO!UMaO!VMaO!YFsO!ZFoO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFhO#rLpO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO^%ZOeFrOlLrOo0nO|%bO!OFrO!PFrO!QFrO!RFrO!SFrO!TFrO!UKgO!VKgO!YFrO!ZFnO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#YFpO#Z&UO#nFgO#rLnO#s&QO$q%xO%X%{O'o)SO'u!^O~P)1OO$S$wy%X$wy%Y$wy%Z$wy%_$wy%b$wy%c$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P'DpOT$wyV$wyW$wy^$wya$wyl$wyn$wyo$wyv$wyw$wyx$wyy$wy|$wy!Q$wy!R$wy!U$wy!V$wy!Y$wy!Z$wy!h$wy!j$wy!k$wy!s$wy!t$wy!v$wy!w$wy!y$wy#R$wy#T$wy#V$wy#X$wy#Y$wy#Z$wy#]$wy#r$wy#s$wy#x$wy#|$wy$P$wy$X$wy$]$wy$^$wy$_$wy$a$wy$c$wy$d$wy$e$wy$f$wy$g$wy$k$wy$m$wy$n$wy$q$wy'o$wy'u$wy(X$wy(Y$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy$[$wy~P,@nO#p$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P,:cOT$wy^$wya$wyc$wyl$wyn$wy!R$wy!h$wy!y$wy#r$wy#s$wy#x$wy#|$wy$P$wy$T$wy$U$wy%f$wy%g$wy%h$wy%i$wy%j$wy%k$wy%l$wy%m$wy%n$wy%o$wy%p$wy%q$wy%x$wy&T$wy&W$wy&X$wy'o$wy'u$wy$n$wyY$wy![$wy!]$wy!^$wy!_$wy!`$wy!a$wy!b$wy!c$wy!d$wy!g$wy%^$wy~P/2oO#hJ_O#i#fi#o#fi#p#fia#fid#fi]#fin#fir#fi~O#hJ`OT#fiW#fi^#fil#fio#fiv#fiw#fix#fiy#fi|#fi!Q#fi!R#fi!U#fi!V#fi!Y#fi!Z#fi!h#fi!j#fi!k#fi!s#fi!t#fi!v#fi!w#fi!y#fi#R#fi#T#fi#V#fi#X#fi#Y#fi#Z#fi#]#fi#r#fi#s#fi#x#fi#|#fi$P#fi$X#fi$]#fi$^#fi$_#fi$a#fi$c#fi$d#fi$e#fi$f#fi$g#fi$k#fi$m#fi$n#fi$q#fi'o#fi'u#fi(X#fi(Y#fi$[#fi~P+=RO#hJaOT#fiZ#fi^#fia#fic#fie#fif#fig#fil#fin#fi!O#fi!P#fi!R#fi!S#fi!T#fi!e#fi!h#fi!y#fi#e#fi#i#fi#n#fi#r#fi#s#fi#x#fi#|#fi$P#fi$T#fi$U#fi$x#fi$y#fi$z#fi$|#fi$}#fi%O#fi%P#fi%Q#fi%R#fi%S#fi%T#fi%f#fi%g#fi%h#fi%i#fi%j#fi%k#fi%l#fi%m#fi%n#fi%o#fi%p#fi%q#fi%x#fi&T#fi&W#fi&X#fi'o#fi'u#fi$n#fiY#fi![#fi!]#fi!^#fi!_#fi!`#fi!a#fi!b#fi!c#fi!d#fi!g#fi%^#fi~O$S+Qq%X+Qq%Y+Qq%Z+Qq%^+Qq%_+Qq%b+Qq%c+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P'DpOT+QqV+QqW+Qq^+Qqa+Qql+Qqn+Qqo+Qqv+Qqw+Qqx+Qqy+Qq|+Qq!Q+Qq!R+Qq!U+Qq!V+Qq!Y+Qq!Z+Qq!h+Qq!j+Qq!k+Qq!s+Qq!t+Qq!v+Qq!w+Qq!y+Qq#R+Qq#T+Qq#V+Qq#X+Qq#Y+Qq#Z+Qq#]+Qq#r+Qq#s+Qq#x+Qq#|+Qq$P+Qq$X+Qq$]+Qq$^+Qq$_+Qq$a+Qq$c+Qq$d+Qq$e+Qq$f+Qq$g+Qq$k+Qq$m+Qq$n+Qq$q+Qq%^+Qq'o+Qq'u+Qq(X+Qq(Y+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq$[+Qq~P,@nOT+Qq^+Qqa+Qqc+Qql+Qqn+Qq!R+Qq!h+Qq!y+Qq#r+Qq#s+Qq#x+Qq#|+Qq$P+Qq$T+Qq$U+Qq%^+Qq%f+Qq%g+Qq%h+Qq%i+Qq%j+Qq%k+Qq%l+Qq%m+Qq%n+Qq%o+Qq%p+Qq%q+Qq%x+Qq&T+Qq&W+Qq&X+Qq'o+Qq'u+Qq$n+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P/2oO#p+Qq%^+QqY+Qq![+Qq!]+Qq!^+Qq!_+Qq!`+Qq!a+Qq!b+Qq!c+Qq!d+Qq!g+Qq~P,:cOT)tiV)tiW)ti^)tia)til)tin)tio)tiv)tiw)tix)tiy)ti|)ti!Q)ti!R)ti!U)ti!V)ti!Y)ti!Z)ti!h)ti!j)ti!k)ti!s)ti!t)ti!v)ti!w)ti!y)ti#R)ti#T)ti#V)ti#X)ti#Y)ti#Z)ti#])ti#r)ti#s)ti#x)ti#|)ti$P)ti$X)ti$])ti$^)ti$_)ti$a)ti$c)ti$d)ti$e)ti$f)ti$g)ti$k)ti$m)ti$n)ti$q)ti'o)ti'u)ti(X)ti(Y)ti$[)ti~P,@nOV#wq]#wq~P#!PO!U)^O!V)^Oe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$S(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%^(TX~P(+YOT(TXW(TXl(TXo(TXv(TXw(TXx(TXy(TX|(TX!R(TX!Y(TX!Z(TX!h(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX!y(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#r(TX#s(TX#x(TX#|(TX$P(TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$n(TX$q(TX'o(TX'u(TX(X(TX(Y(TX$[(TX~P!>oO!U)^O!V)^Oe(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX#p(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%^(TX~P(+YO!U)^O!V)^OT(TXa(TXc(TXe(TXl(TXn(TX!O(TX!P(TX!R(TX!S(TX!T(TX!e(TX!h(TX!y(TX#e(TX#n(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TX%^(TX~P(+YOZ(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX$S(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%X(TX%Y(TX%Z(TX%_(TX%b(TX%c(TX%^(TX~P(,tOT(TXW(TX^(TXl(TXo(TXv(TXw(TXx(TXy(TX|(TX!Q(TX!R(TX!U(TX!V(TX!Y(TX!Z(TX!h(TX!j(TX!k(TX!s(TX!t(TX!v(TX!w(TX!y(TX#R(TX#T(TX#V(TX#X(TX#Y(TX#Z(TX#](TX#r(TX#s(TX#x(TX#|(TX$P(TX$X(TX$](TX$^(TX$_(TX$a(TX$c(TX$d(TX$e(TX$f(TX$g(TX$k(TX$m(TX$n(TX$q(TX'o(TX'u(TX(X(TX(Y(TX$[(TX~P!B[OZ(TXe(TXf(TX!O(TX!P(TX!S(TX!T(TX!e(TX#e(TX#n(TX#p(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%^(TX~P(,tOT(TXZ(TX^(TXa(TXc(TXe(TXf(TXl(TXn(TX!O(TX!P(TX!R(TX!S(TX!T(TX!e(TX!h(TX!y(TX#e(TX#n(TX#r(TX#s(TX#x(TX#|(TX$P(TX$T(TX$U(TX$x(TX$y(TX$z(TX$|(TX$}(TX%O(TX%P(TX%Q(TX%R(TX%S(TX%T(TX%f(TX%g(TX%h(TX%i(TX%j(TX%k(TX%l(TX%m(TX%n(TX%o(TX%p(TX%q(TX%x(TX&T(TX&W(TX&X(TX'o(TX'u(TX$n(TX%^(TX~P(,tO^%ZOeKWOlLsO|%bO!OKWO!PKWO!QKWO!RKWO!SKWO!TKWO!U%tO!V%tO!YKWO!ZKhO!j%cO!k%cO!v%eO!w%wO!y&PO#R&RO#T&SO#V&TO#X&TO#Y%}O#Z&UO#rLoO#s&QO$q%xO%X%{O'oFvO'u!^OZ%UXf%UXg%UX!e%UX#e%UX#n%UX#p%UX$x%UX$y%UX$z%UX$|%UX$}%UX%O%UX%P%UX%Q%UX%R%UX%S%UX%T%UXY%UX![%UX!]%UX!^%UX!_%UX!`%UX!a%UX!b%UX!c%UX!d%UX!g%UX%^%UX~P)1OO#pHSO~O#pHTO~O#pHUO~O#pHVO~O^*]O|%bO!j%cO!k%cO!v%eO!w%wO!yFtO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO'oHdO~O#pIyO~O#pIzO~O#pI{O~O#pI|O~OT)oX^)oXa)oXl)oXn)oX!R)oX!h)oX!y)oX#r)oX#s)oX#x)oX#|)oX$P)oX'o)oX'u)oX$n)oX~OYJTOc)oX$T)oX$U)oX%f)oX%g)oX%h)oX%i)oX%j)oX%k)oX%l)oX%m)oX%n)oX%o)oX%p)oX%q)oX%x)oX&T)oX&W)oX&X)oX~P5*eOYJUO~P*7sOrJZO~P#!POrJ[O~P#!POrJ]O~P#!POrJ^O~P#!PO#hJaO#iJdOZ$wie$wig$wi!O$wi!P$wi!S$wi!T$wi!e$wi#e$wi#n$wi$x$wi$y$wi$z$wi$|$wi$}$wi%O$wi%P$wi%Q$wi%R$wi%S$wi%T$wi~P2%rO#hJ`O#iJcO#n$wi~P0+RO#pJeO~O#pJfO~O#pJgO~O#pJhO~O'oJiO~O'oJjO~O'oJkO~O'oJlO~O%dJmO~P#!PO%dJnO~P#!PO%dJoO~P#!PO%dJpO~P#!POYJsO~OT)na^)nal)nan)na!R)na!h)na!y)na#r)na#s)na#x)na#|)na$P)na'o)na'u)na$n)na~OaL`Oc)na$T)na$U)na%f)na%g)na%h)na%i)na%j)na%k)na%l)na%m)na%n)na%o)na%p)na%q)na%x)na&T)na&W)na&X)na~P51VOaLaOV)naW)nae)nao)nav)naw)nax)nay)na|)na!O)na!P)na!Q)na!S)na!T)na!U)na!V)na!Y)na!Z)na!j)na!k)na!s)na!t)na!v)na!w)na#R)na#T)na#V)na#X)na#Y)na#Z)na#])na$X)na$])na$^)na$_)na$a)na$c)na$d)na$e)na$f)na$g)na$k)na$m)na$q)na(X)na(Y)na$[)na~P51VOYKTO~OaLfOT)saV)saW)sa^)sae)sal)san)sao)sav)saw)sax)say)sa|)sa!O)sa!P)sa!Q)sa!R)sa!S)sa!T)sa!U)sa!V)sa!Y)sa!Z)sa!h)sa!j)sa!k)sa!s)sa!t)sa!v)sa!w)sa!y)sa#R)sa#T)sa#V)sa#X)sa#Y)sa#Z)sa#])sa#r)sa#s)sa#x)sa#|)sa$P)sa$X)sa$])sa$^)sa$_)sa$a)sa$c)sa$d)sa$e)sa$f)sa$g)sa$k)sa$m)sa$n)sa$q)sa'o)sa'u)sa(X)sa(Y)sa$[)sa~OhKmOc'qXe'qXf'qX~OZ*xXe*xXf*xXg*xX!O*xX!P*xX!S*xX!T*xX!e*xX#e*xX#n*xX$x*xX$y*xX$z*xX$|*xX$}*xX%O*xX%P*xX%Q*xX%R*xX%S*xX%T*xXY*xX![*xX!]*xX!^*xX!_*xX!`*xX!a*xX!b*xX!c*xX!d*xX!g*xX~O%^LVO$S*xX%X*xX%Y*xX%Z*xX%_*xX%b*xX%c*xX~P5;`O%^LWOT*xXW*xX^*xXl*xXo*xXv*xXw*xXx*xXy*xX|*xX!Q*xX!R*xX!U*xX!V*xX!Y*xX!Z*xX!h*xX!j*xX!k*xX!s*xX!t*xX!v*xX!w*xX!y*xX#R*xX#T*xX#V*xX#X*xX#Y*xX#Z*xX#]*xX#r*xX#s*xX#x*xX#|*xX$P*xX$X*xX$]*xX$^*xX$_*xX$a*xX$c*xX$d*xX$e*xX$f*xX$g*xX$k*xX$m*xX$n*xX$q*xX'o*xX'u*xX(X*xX(Y*xX$[*xX~P$8OO%^LXO#p*xX~P5;`O%^LYOT*xX^*xXa*xXc*xXl*xXn*xX!R*xX!h*xX!y*xX#r*xX#s*xX#x*xX#|*xX$P*xX$T*xX$U*xX%f*xX%g*xX%h*xX%i*xX%j*xX%k*xX%l*xX%m*xX%n*xX%o*xX%p*xX%q*xX%x*xX&T*xX&W*xX&X*xX'o*xX'u*xX$n*xX~P5;`OT)nX^)nXl)nXn)nX!R)nX!h)nX!y)nX#r)nX#s)nX#x)nX#|)nX$P)nX'o)nX'u)nX$n)nX~OaL`Oc)nX$T)nX$U)nX%f)nX%g)nX%h)nX%i)nX%j)nX%k)nX%l)nX%m)nX%n)nX%o)nX%p)nX%q)nX%x)nX&T)nX&W)nX&X)nX~P5DiOaLaOV)nXW)nXe)nXo)nXv)nXw)nXx)nXy)nX|)nX!O)nX!P)nX!Q)nX!S)nX!T)nX!U)nX!V)nX!Y)nX!Z)nX!j)nX!k)nX!s)nX!t)nX!v)nX!w)nX#R)nX#T)nX#V)nX#X)nX#Y)nX#Z)nX#])nX$X)nX$])nX$^)nX$_)nX$a)nX$c)nX$d)nX$e)nX$f)nX$g)nX$k)nX$m)nX$q)nX(X)nX(Y)nX$[)nX~P5DiOZ*xae*xaf*xag*xa!O*xa!P*xa!S*xa!T*xa!e*xa#e*xa#n*xa$x*xa$y*xa$z*xa$|*xa$}*xa%O*xa%P*xa%Q*xa%R*xa%S*xa%T*xaY*xa![*xa!]*xa!^*xa!_*xa!`*xa!a*xa!b*xa!c*xa!d*xa!g*xa~O%^LVO$S*xa%X*xa%Y*xa%Z*xa%_*xa%b*xa%c*xa~P5JWO%^LWOT*xaW*xa^*xal*xao*xav*xaw*xax*xay*xa|*xa!Q*xa!R*xa!U*xa!V*xa!Y*xa!Z*xa!h*xa!j*xa!k*xa!s*xa!t*xa!v*xa!w*xa!y*xa#R*xa#T*xa#V*xa#X*xa#Y*xa#Z*xa#]*xa#r*xa#s*xa#x*xa#|*xa$P*xa$X*xa$]*xa$^*xa$_*xa$a*xa$c*xa$d*xa$e*xa$f*xa$g*xa$k*xa$m*xa$n*xa$q*xa'o*xa'u*xa(X*xa(Y*xa$[*xa~P'AOO%^LXO#p*xa~P5JWO%^LYOT*xa^*xaa*xac*xal*xan*xa!R*xa!h*xa!y*xa#r*xa#s*xa#x*xa#|*xa$P*xa$T*xa$U*xa%f*xa%g*xa%h*xa%i*xa%j*xa%k*xa%l*xa%m*xa%n*xa%o*xa%p*xa%q*xa%x*xa&T*xa&W*xa&X*xa'o*xa'u*xa$n*xa~P5JWO^!`O!tLdO'oyO'u!^O~OaLfOT)sXV)sXW)sX^)sXe)sXl)sXn)sXo)sXv)sXw)sXx)sXy)sX|)sX!O)sX!P)sX!Q)sX!R)sX!S)sX!T)sX!U)sX!V)sX!Y)sX!Z)sX!h)sX!j)sX!k)sX!s)sX!t)sX!v)sX!w)sX!y)sX#R)sX#T)sX#V)sX#X)sX#Y)sX#Z)sX#])sX#r)sX#s)sX#x)sX#|)sX$P)sX$X)sX$])sX$^)sX$_)sX$a)sX$c)sX$d)sX$e)sX$f)sX$g)sX$k)sX$m)sX$n)sX$q)sX'o)sX'u)sX(X)sX(Y)sX$[)sX~O^*]O|%bO!j%cO!k%cO!v%eO!w%wO!yLuO#R&RO#T&SO#V&TO#X&TO#Y&SO#Z&UO#r*^O#s&QO$q%xO'o*XO'u!^O~P)1OO",goto:"(=d,fPPPPPPPPP,gPP8mPPAgIiPAgPPPPPPK_PPPPPP!&t!&wP!(b!(e!)QPPPP!/n!6XP!VPPPPPPPPPPPP$CsPPPPPPPPPPPP$C|$Eh$FOPPPP$FYPP$FcP$Fo$FvPP$F{P$Gk$HZPP$Hm$Hm$Hu$IP$Ic$Ii$J`$Jl$Jz$KQ$Kn$Kt$NZ$Na$Ns$Ny% T% Z% i% o% y%!P%!V%!]%!c%!i%!o%!u%#P%#W%#^%#d%#n%#u%$T%$_%$o%$y%(j%(p%(v%(|%)S%)Y%)a%)g%)m%*h%*n%*t%*z%+Q%+W%+^%+hPPPPPPPPPP%+n%+qP%+w%,R%5[%6i%6pP%Ah%Ip%Ix%Jd%Jq%KU%Kf%Kv%Ky%Lc%Lw%L}%MU%M_&$t&+P&0xPP&7i&=`&=d&Jc'!W'!n'!r'!x'(s')_')f')n')w'*T'/|'*T'*T'0U'5}'6b'6t'7R'7_'7c'7j'7p'7t'7w'7}'8Q'8V'8Y'8]'8c'8n'8u'8x'*T'8{'9O'9R'9X#Cj#Cj':u';[';|'O'>a'>s'?c'?|'@Z'@v'@y'AV'Ac'Ap'Bx'B{'Cb'Cw'D_'F`'Fc'Ff'Fl'Fr'Fu'Gr' j'Hd'H{'H{'Id'Ig'Hd'Iy'Iy'Iy'Jb'Je'Iy'Hd'Jq'Jq'Jq'Hd'KY'K]'Hd'Hd'Ka'Hd'Hd'Kd'Kg'*T&7i'Km'Ks(#}()k()p(*V(/u(0T(0i(0|(0|(1_(1b(1h(2](2n(2|(3S(3q(4g%LZ%LZ%LZ(4k(4{(5R%LZ(5`(5s(6V(6`(6c(6i(6{(7R%LZ(7U(7X(7_%LZ(7e(7u(7{(8Y%LZ(8c(8k(8q(8k(8k(8}%LZ(9u(:V(:Y(:^%Lc(:p%L_(:t%Lc(:}(;a(;d(;j(;q(;u(;u(;y(;u(;u%Lc(;|%Lc(j>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFtFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHRHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLuLvLwLxLyMSMTMUMVM^Q!WcQ!YdQ!ZfQ![gQ!]hS!kp!XQ!mqQ!nrQ!osQ!ptQ$S!bS$T!e!lQ$V!fQ$W!gQ$X!hQ$Y!iQ$p!qU$r!s(vKmQ$s!tQ$y!{d&c#[#o&d&e&j'Q'R'U+a,kQ&q#]Q&t#bS'f#u,|Q'}$UQ(^$Zz*Y%t*z+V1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMaQ+q&gW+v&m+c+k2TQ,_&sS,z'c'gQ1r+TQ2a+fU3X,R2_9QQ3m,aQ4W,{Q9T2XQ9x2wQ:g3lQ>`8lQ>a8mQ?e:[RBb>e$p!_iu!`!j!w#X#[#o#t%y%z%{&Y&]&d&e&j&l&n'Q'R'U'W'Z'^'a'b's(j)P*R*g*r*x+P+T+Z+a+b+d,k,l,q,r-R.S.e0v1V1Y1l1y2S2U2g3T3u4O5X7k8T8c8n8x=u>j>x>z>|BYBdBjBlDcDfDhLmLnLoLpLqLrLsLtM^+j%U#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l8O8R8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDYDxEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVQ&v#ex*[%t*z1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMa[*b%x&P&`+[FtLu!b/[)}.k/`/b/d/g5t6S6[6a6b;kj>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFtFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHRHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLuLvLwLxLyMSMTMUMVM^Y'r$Q(x/z0_7c`+w&m+c+k2T2}=q>QLdU-y(t(vKmQ5V.eS5Z.gj>x>z>|@}BUBYBdBjBlDcDfDhEYFtHRIoIpIqIrIsItJ_J`JaJbJcJdKnKoLmLnLoLpLqLrLsLtLuM^+Q%V#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVx*[%t*z1T1_6}7|7}8S8U8^8`8d=wAqAsAuDOEPKgMaW+y&m+c+k2TQ1v+VU3Y,R2_9QiLh+Q1R7b8RDYEVEXEuFRFSFUF`R#P!Q$PeOQSTZkl!d!}#X#[#b#f#o#t#u${$|%O&]&d&j&s&x'Q'U'Z'^'c(n(p+m,a,e,|-v1y2h2i2j3T3l4P8x9g9j:^:v>j>x>z>|?f?g?h@R@SBdBjBzB|CYCZC[C^DcDhDoDqR#U!UU%o#T)a/qW(z%Z*]0r8OW.a)X)m*y5QQ4v.PS6[/d5tR@}<^.O%Y#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d.k/`/b/d/g/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5m5p5s5t6S6[6a6b6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;k;om@h@}ATAWAaAqAsAuAwBUCdCmCpDODQDSDYDxEPEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhKnKoLvLwLxLyMSMTMUMVMaR9a2f.P%Y#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d.k/`/b/d/g/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5m5p5s5t6S6[6a6b6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;k;om@h@}ATAWAaAqAsAuAwBUCdCmCpDODQDSDYDxEPEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhKnKoLvLwLxLyMSMTMUMVMa,i%d#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa&^%_#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV!U0t+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`!`K]*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm![K^=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UK_;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XK`FhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJv,X%]#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV&^%s#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV!`Fi*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WFj=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!UFk+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`!SFlFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJv!VKf;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKhi)V%^%_0s0tKXKYKZK[K]K^K_K`,d%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!b/])}.k/`/b/d/g5t6S6[6a6b;km@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa,e%v#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa+^&O#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1T1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaW+z&m+c+k2TQ,x'`[-z(t(v.g5[n8|RCwFtQ)^%fQ*a%wQ.x)lV5f.m0g;p+f%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1T1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!V0z+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`a.n)]*|*}0l;o@hHbKxV5g.m0g;p_0h*|*}0l;o@hHbKxT7V0g<}V*{&PFtLuR)^&RX)^%}&SEZFpS)^&T1qQ7|1]Q7}1^Q8^1eQ8i1nQAr=lQD`B[RE_D_R)^&UR.l)[_6_/f1W6^=tAQAyM_!b/a)}.k/`/b/d/g5t6S6[6a6b;kQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVQ+S&QR/}*i,Q%j#T%[%i%m%o%s%u%y%z(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVQ(}%ZQ+W&XQ.O(xS/o*R*gQ1{+XQ4{.VQ4}.YS6f/n/zQ8v2PQ8z1|Q>k8{QDgBkQEbDeREyEcQ+R&Ql,U&o+g+j,S2W2Y2b2n2p9U9d9f?P?Q[,X&p+h2Z9r>wBhn/m*P/p6nHSHTHUHVIyIzI{I|JeJfJgJhS/|*i+Sz1O+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`Q6o/}Q7n0wQ8k1pQCO?jQCP?kQD^BZQDjBxQDkByQE`D`REwE_f0x+Q1R7bDYEVEXEuFRFSFUF`Q=n8RR=}8_o0o+O0k0m0n2|7]:S:X=XJRJTJUJqJvJwg0x+Q1R7bDYEVEXEuFRFSFUF`S&y#f,eQ,c&xW2t+t2[8}9tTL_7zLfQ#d!WU$a!k#Z#aQ'u$SU'|$T$[$_S(e$p'vQ+`&cU-Z'w'z'}S-n(^(fQ3V,QQ4S,xS4a-[-]Q4q-oS:o3{4TQ;S4bQ=f7yS?x:p:rSAj=_=gQCV?zSCtAkAlRD|CuR>Y8iR8S1`Q8U1aR=w8WVBZ>]BXDZR8`1fR8d1hQ/x*dQ:l3xRDlCSR*e%xR/x*e,m%g#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaQ0m*}QJRKxRJSHb+Z%n#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV$v)q%h(y*_.R.]._.r.u.{/P/Q/R/S/T/U/V/W/k/v0X0Z0]1t2q3]3_3o4u5O5S6k6l7^7s8Z8w9q:P:V:`:h;a;yO>S>l?W?a@`AUAXAZA[AdAfAnAvBeClCoDPDtDyDzEQESEpErEzFVF]F^KVK{K|K}LOLZL[L]L^Q9b2fzGX0Y6pm@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV,V%j#T%Z%[%i%m%o%s%u%y%z(x(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVU%p#T)a/qTr9]RBg>sQ3U,PQ4R,wQ:n3zR?|:tS>{9`9aR>}9cV>y9_9`9bQ#p![U$i!o#n#rW(V$X$h$k'YU-d(U(X(bS4i-f-gS;W4h4jR@Z;YQ#v!]U$m!p#s#xW(Z$Y$l$o'jU-i(Y(](dS4m-k-lS;Z4l4nR@];]Q4Q,vQ:m3yQ:z4RQ?u:nQ?{:sRCW?|]#g!Y!m#i$V$c(PQQOSjQ${R${!}QSOQkQWmSk$|(nQ$|!}R(n${Q-S'rR4[-SU#{!_%U/[Q$PFc^'n#{0k2P7]8{FdJrU0k*}HbKxQ2P+_Q7]0mQ8{1}QFdFbRJrJSS'l#y0jS-P'l>bT>b8n>dY#}!_#{%U*b/[S$OFbFcR'p#}Q(k$uR-t(kQZOSlQS[wZl!d%O(p-vQ!dkQ%O!}S(p${$|R-v(nQ!|!PR$z!|lTOQSZkl!d!}${$|%O(n(p-vznT&]&d&s&x'Q'Z'c2h3l9g9j:v?fBjBzB|C[C^DoDq^&]#X1y3T8x>jBdDcS&d#[&jQ&s#bS&x#f,eS'Q#o'US'Z#t'^S'c#u,|Q2h+mQ3l,aQ9g2iQ9j2jQ:v4PQ?f:^WBj>x>z>|DhQBz?gQB|?hQC[@RQC^@SQDoCYRDqCZQ)e%bR.s)eQ;u5lQ;w5oW@l;u;wCfCgQCf@nRCg@pQ)j%cR.v)jQ.Q(yS4w.Q4xR4x.RQ5R.bR;c5RQ5_.hQ5q.xQ;f5ZV;h5_5q;fQ;q5hR@j;qQAb=PSCqAbCrRCrAdQ=O7TRA`=OQ7O0dR<{7OQ8t1wR>i8tQ5w/]R[8kRBW>[QDUBQREUDUQj>m>x>z>|@hATAWAaAwBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLmLnLoLpLqLrLsLtLvLwLxLyMSMTMUMVM^S!z}!OQ$w!xQ&r#^Q&v#eh'O#l#q#w$f$j$n(S(W([-c-h-m[*b%x&P&`+[FtLu!b/[)}.k/`/b/d/g5t6S6[6a6b;k`S(i$s>ad)`%^&O*Z0a7rHXKXKYKZK[Q2y+vQ4t-z[5`.h.x5Z5_5q;fW5a.i0`1uA]S7h0s1jQ:]3XQ?[9xRBw?eS$v!w8nR-T'sQ!biQ!quQ$Q!`Q$Z!jU$u!w's8n&S%m#T%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8Y8]8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV^&X#X1y3T8x>jBdDcW&m#[#o&j'US'`#t'^Q(x%ZS*h%y%zQ*k%{S+X&Y&]S+c&d'QS+k&e'RQ+t&lQ,R&nQ,o'WS,p'Z'bQ,y'aQ-s(jQ.Y)PS/Y)|HR!`/_)}.k/`/b/g5t6S6[6a6b;kQ8_Q>U8cWBk>x>z>|DhQD]BYSDeBjBlQEcDfQLdM^!`Li*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WLj=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!ULk;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!SLlFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJvSLzLmLqSL{LnLrSL|LoLsTL}LpLt0n!_iu!`!j!w#T#X#[#o#t%Z%[%i%o%s%u%y%z%{&Y&]&d&e&j&l&n'Q'R'U'W'Z'^'a'b's(j(z)P)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)}*P*R*U*]*c*g*r*s*u*v*w*x*y+P+Q+T+U+Z+a+b+d+n,T,W,d,k,l,q,r-R.P.S.^.a.d.e.k/`/b/d/g/p/q/w/y0O0g0j0n0r0v1R1U1V1Y1b1d1l1y1z2S2U2g2r2|3Q3T3^3n3u4O4v5Q5X5s5t6S6[6a6b6n6q6t6u6w6{7U7X7b7k7l8O8R8T8Y8]8_8a8c8n8x8y9s:S:W:X;i;j;k;oj>m>x>z>|@h@}ATAWAaAwBUBYBdBjBlCdCmCpDQDSDYDcDfDhDxEREVEWEXEYEdEkEuExFRFSFTFUFWF`FeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIoIpIqIrIsItIyIzI{I|JTJUJZJ[J]J^J_J`JaJbJcJdJeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhKnKoLmLnLoLpLqLrLsLtLvLwLxLyMSMTMUMVM^[*b%x&P&`+[FtLuQFb)|RFcHR]$R!`%Z*g*y/d0rv#z!_#{%U*}+_/[0k0m1}2P7]8{FbFcFdHbJSJrKxV+O&PFtLuY$P!_%U/[FbFcQ'o#{R/t*b^!uz{!S%V&c1rLhQ$t!vS(g$r>`R-r(hmYOQSZkl!d!}${$|%O(n(p-vmXOQSZkl!d!}${$|%O(n(p-vR!Q`lXOQSZkl!d!}${$|%O(n(p-vS&h#[&jT'S#o'UuWOQSZkl!d!}#[#o${$|%O&j'U(n(p-vQ!VaR%Q#QS!Ta#QR%R#RQ%r#TQ.q)aR6h/qU%`#T)a/q*r%a%Z%[%i%s%u(z)W)X)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/w/y0O0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7l8O8Y8]8_8a8y9s:S:W:X;i;jmAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMVQ*T%oQ/r*US7S0g<}Q=U7XS@e;o@hRCkAT&^%^#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMVS*Z%tMaS0a*z6}!U0s+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`Q7r1TQHXKg!`KX*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm![KY=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UKZ;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XK[FhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJv,m%f#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa,h%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa!b/c)}.k/`/b/d/g5t6S6[6a6b;km@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT)d%b)ef%h#T%o)a*U/q0g7X;o<}@hATW(y%Z*]0r8OY)T%[FqFrFsKWY*O%iFfFgFhKaY*W%sFiFjFlKfQ*_%uQ.R(zQ.])WY._)X)m*y.a5QQ.r)cQ.u)hS.{)n)rQ.|)oQ.})pQ/O)qQ/P)sQ/Q)tQ/R)uQ/S)vQ/T)wQ/U)xQ/V)yQ/W)zY/X){G}HOHPHQU/k*P/p6nQ/v*cQ0X*sQ0Y*uQ0Z*vQ0]*wQ1t+UQ2q+nQ3],TQ3_,WQ3o,dQ4u.PQ5O.^Q5S.dQ6k/wS6l/y0jQ6p0OQ7^0nQ7dFeQ7qFkQ7s1US8V1b=rQ8Z1dQ8w1zQ9q2rU:P2|:S:XQ:V3QQ:`3^Q:h3nQ;a4vQ;y5sQO8_Q>S8aQ>l8yQ?W9sQ?a:WQ@`;iQ@a;jQAUmQClAWQCoAaQDPAwQDtCdQDyCmQDzCpQEQDQQESDSQEjDxQEpERQErEWQEzEdQFOEkQFVExQF]FTQF^FWQHYFmQHZFnQH[KhQH]FoQHfFwQHgFxQHhFyQHiFzSHnF{G]SHoF|G^SHpF}G_SHqGOG`QHrGPQHsGQQHtGRQHuGSQHvGTQHwGUQHxGVQHyGWQHzGXQH{GYQH|GZQH}G[QIOGaQIPGbQIQGcQIRGdQISGeQITGfQIUGgQIVGhQIWGiQIXGjQIYGkQIZGlQI[GmQI]GnQI^GoQI_GpQI`GqQIaGrQIbGsQIcGtQIdGuQIeGvQIfGwQIgGxQIhGyQIiGzQIjG{QIkG|UIuHSIyJeUIvHTIzJfUIwHUI{JgUIxHVI|JhQI}H^QJOH_QJPH`QJQHaQJVHjQJWHkQJXHlQJYHmSJtJTJvSJuJUJwQJxJZQJyJ[QJzJ]QJ{J^QKPJmQKQJnQKRJoQKSJpQKUJsQKVKTQK{LvQK|LwQK}LxQLOLyQLZMSQL[MTQL]MURL^MV+Y%a#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;j;om@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLvLwLxLyMSMTMUMV!V0y+Q1R1_7b7|7}8R8S8U8^8`8d=wAqAsAuDODYEPEVEXEuFRFSFUF`W)W%^%_0s0tSFwKXK]SFxKYK^SFyKZK_TFzK[K`T)i%c)jX)O%Z*]0r8O,h%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT0c*z6}j(u%U%V%^*Z*[0a7rHXKXKYKZK[LhS.h)Y6|S5].x5qR7e0sS.f)X*yR.y)mU.b)X)m*yR;b5QW.`)X)m*y5QR5P.aQ5W.eQ;e5XQ=t8TRAy=u,m%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y*z+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{6}7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFgFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HOHPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMa]5^.h.x5Z5_5q;f,d%e#T%Z%[%i%o%s%t%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*u*v*w*y+Q+U+n,T,W,d.P.^.a.d/p/q/w/y0O0g0j0n0r1R1T1U1_1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7b7l7|7}8O8R8S8U8Y8]8^8_8`8a8d8y9s:S:W:X;i;j;om@hATAWAaAqAsAuAwCdCmCpDODQDSDYDxEPEREVEWEXEdEkEuExFRFSFTFUFWF`FeFfFhFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHQHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKgKhLvLwLxLyMSMTMUMVMaT0c*z6}Q.j)ZQ/s*`S0b*z6}Q1v+VQ>h8sRA^f8oVB`>`>aBbZ8o1r8o>`>aBbR1x+VR1w+VR5d.kR5e.kQ5c.kR@b;kQ/h)}S5b.k;kW6Q/`IoIpIqQ6U/bS6Z/d5tW6`/gIrIsItQ]QB_>_QD[BXRDaB^W1Q+Q1REuFUQ=]7b]EXDYEVEXFRFSF`g1P+Q1R7bDYEVEXEuFRFSFUF`f1V+Q1R7bDYEVEXEuFRFSFUF`TM^8R8_j0u+Q1R7b8R8_DYEVEXEuFRFSFUF`R8h1mQ+|&mS2]+c+kQ3Z,RY7x1W1X=q>QM_Q9O2TQ9[2_S=d7uLdR>r9Q`+x&m+c+k2T=q>QLdM_U:T2}L`LaUMW,R2_9QVMX1W1X7uU:R2|JTJUU?_:SJvJwR?b:XQ0p+OU7Z0k0mJRQ7_0n^:Q2|:S:XJTJUJvJwS=W7]JqRAg=XR7a0nQ2v+tQ9X2[Q=h7zR>o8}U2u+t2[8}S?X9tLfRM`7zg0w+Q1R7bDYEVEXEuFRFSFUF`Q#a!WQ#m!ZQ#r![Q$_!kQ$g!nQ$k!oQ'z$TQ(T$WQ(X$XQ-]'}Q2x+zQ4T,xQ:p3{Q=g7yQ?Z9yQ?z:rQAk=_RCuAlR&u#bQ&[#XQ8v1yQ:Z3TQ>k8xQBc>jQDbBdREaDc^&Y#X1y3T8x>jBdDcQ+Z&]WBl>x>z>|DhRDfBjj&W#X&]1y3T8x>j>x>z>|BdBjDcDhS+]&_&aR2O+^$}#Y!W!Z![!]!k!n!o!p#Z#a#j#m#n#r#s#x$T$W$X$Y$[$_$d$g$h$k$l$o&o'P'Y'j'u'w'z'}(Q(T(U(X(Y(](`(b(d(e+g,S-U-[-]-a-b-f-g-k-l-n-p2Y2b4S4b4d4f4h4j4l4n4o4q9U:o:{;V;Y;];_=f?v?xAjApCUCVCsCtDnD{D|ElR3e,ZR3d,ZQ3`,ZR?m:bQ3a,ZR?o:eR7m0wf1P+Q1R7bDYEVEXEuFRFSFUF`Q8P1_Q=i7|Q=j7}Q=s8SQ=v8UQ=|8^Q>R8`Q>V8dQAz=wRCxAqz1i+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`W=m8RAuDOEPRCzAs{1O+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`{0{+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`RBT>XQE[DYQEqEVQEsEXQFZFRQF[FSRFaF`{0|+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`R=p8RQ=n8RQC}AuQEODOREnEP{0}+Q1R1_7b7|7}8S8U8^8`8d=wAqDYEVEXEuFRFSFUF`R>^8kT>Z8k>[R>P8_RBR>UQBQ>URETDTQ6m/yR7Y0j&^%l#T%Z%[%i%o%s%u(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*s*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6u6w6{7U7X7l8O8Y8]8_8a8y9s:S:W:X;i;om@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMV`*S%m%y%z(x0_7c=k>QQ/{*h!`Kb*u0O6q6tDxEkFfFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyG}HSH^HjIyJZJeJm!WKc=eFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHTH_HkIzJUJ[JfJnJsJw!UKd;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!SKeFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HVH`HmI|JTJ^JhJoJvUKpLiLmLqUKqLjLnLrUKrLkLoLsUKsLlLpLtQLRLzQLSL{QLTL|RLUL},V%k#T%Z%[%i%m%o%s%u%y%z(x(z)W)X)a)c)h)m)n)o)p)q)r)s)t)u)v)w)x)y)z){*P*U*]*c*h*s*u*v*w*y+U+n,T,W,d.P.^.a.d/p/q/w/y0O0_0g0j0n0r1U1b1d1z2r2|3Q3^3n4v5Q5s6n6q6t6u6w6{7U7X7c7l8O8Y8]8_8a8y9s:S:W:X;i;j;oQ>m@hATAWAaAwCdCmCpDQDSDxEREWEdEkExFTFWFeFfFiFjFkFlFmFnFoFqFrFsFwFxFyFzF{F|F}GOGPGQGRGSGTGUGVGWGXGYGZG[G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}HPHSHTHUHVH^H_H`HaHjHkHlHmIyIzI{I|JTJUJZJ[J]J^JeJfJgJhJmJnJoJpJsJvJwKTKWKaKfKhLiLjLkLlLmLnLoLpLqLrLsLtLvLwLxLyLzL{L|L}MSMTMUMVV)R%Z*R*gY/l*PHSHTHUHVY6g/pIyIzI{I|Zm@hATAWAaAwCdCmCpDQDSEREWEdExFTFWFeFkKTLvLwLxLyMSMTMUMVn*l%|*n6sJiJjJkJlKiKjKkKlKtKuKvKw![Ki*u0O6q6tDxEkFiFmFqFwF{GPGTGXG]GaGeGiGmGqGuGyHSH^HjIyJZJeJm![Kj=eFgFjFnFrFxF|GQGUGYG^GbGfGjGnGrGvGzHOHTH_HkIzJUJ[JfJnJsJw!UKk;jFyF}GRGVGZG_GcGgGkGoGsGwG{HPHUHaHlI{J]JgJpKWKaKfKh!XKlFhFlFoFsFzGOGSGWG[G`GdGhGlGpGtGxG|HQHVH`HmI|JTJ^JhJoJvY*t%|KiKjKkKlZs9QW2z+v+y3X3YS9}2y:]S?]9x?eTBs?[BwQ3S+}Q9Z2^R>q9PR2k+mQ2i+mR9h2jQ2o+mQ9e2hQ9i2iQ9k2jQ?S9gR?T9jQ2j+mR9h2iR:Y3RR?i:^Q?g:^RB{?hQ?h:^RB{?gW&f#[#o&j'UW+e&d&e'Q'RT2V+a,kX,P&m+c+k2TS2{+v+yQ:O2yQ?^9xRBt?[Q+o&fQ2`+eR9R2VS+j&e'RT2W+a,kX+i&e'R+a,kQBm>xQBn>zQBo>|REeDhQ,V&oS2c+g,SQ2e+jQ9S2WS9V2Y2bQ9n2nQ9o2pQ>u9UQ?O9dQ?R9fQBp?PRBq?QW&p#[#o&j'UW+h&d&e'Q'RT2Z+a,kR2R+`T&h#[&jQ,Y&pQ2d+hQ9W2ZQ?V9rQBi>wRDdBhT'T#o'UQ3w,oQ:j3vR?q:iQ#x!]Q$o!pQ'v$SQ(]$YQ(f$pR-o(^R'h#uQ'd#uR4X,|S'g#u,|R,{'cT']#t'^T'[#t'^R:w4PQ#`!WW$^!k#Z#a#dW'y$T$[$_$aW-X'w'z'|'}U4`-Z-[-]S;R4a4bR@V;SQ#i!YQ$c!mR(P$VQ#h!YS$b!m#iS(O$V$cR-^(PR&|#fQ&z#fR3p,eR&{#f",nodeNames:'⚠ LineComment BlockComment PP_Directive Program Keyword Keyword ; Keyword TypeIdentifier = < SimpleType ) ( Delim VarName , Delim [ ] Astrisk ? > . QualifiedAliasMember :: Keyword Keyword Keyword } { Delim Delim : Delim ArgumentName BooleanLiteral IntegerLiteral RealLiteral CharacterLiteral StringLiteral NullLiteral InterpolatedRegularString $" UnaryExpr + - Not ~ & ^ ++ -- Cast Delim Keyword Keyword += -= *= SlashEq %= &= |= ^= <<= >= RightShiftAssignment ??= Keyword InterpolatedVerbatimString $@" @$" Ident ParenOrTupleExpr Delim MethodName Delim Keyword Keyword Keyword Keyword Delim Keyword Keyword ObjectCreationExpr Keyword Delim InitializerTarget Delim Delim Delim Delim Delim Keyword Delim Keyword Delim Keyword Delim Keyword Keyword Keyword Delim Keyword Delim ContextualKeyword Delim PropertyPatternFields Delim PropertyPatternField RelationalPattern <= LogicalPattern ContextualKeyword ContextualKeyword ContextualKeyword PropertyPattern Delim ListPattern Delim .. Keyword => Keyword Keyword Keyword Delim ParamName Delim LocalVarDecl Keyword Delim Delim LocalConstDecl Keyword ConstName LocalFuncDecl Keyword Delim ContextualKeyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Delim Keyword Keyword Keyword Keyword Delim Keyword Delim Keyword Keyword Keyword Keyword Keyword Keyword Delim Keyword Keyword Delim Keyword Keyword Delim -> Keyword Delim Delim Delim ArrayCreationExpr Delim BinaryExpr Slash % << RightShift Keyword Keyword == NotEq | && || ?? RangeExpr LambdaExpr Delim ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword ContextualKeyword AttrsNamedArg Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword Keyword ContextualKeyword Delim PropertyName Delim Keyword Keyword Keyword Keyword Delim ContextualKeyword ContextualKeyword Delim Keyword Delim Delim Keyword Keyword Delim Keyword Delim Delim Keyword Keyword Delim Delim',maxTerm:527,nodeProps:[["openedBy",13,"(",20,"[",30,"{"],["closedBy",14,")",19,"]",31,"}"]],skippedNodes:[0,1,2,3],repeatNodeCount:53,tokenData:"!$e~R!RXY$[YZ$aZ[$[[]$[]^$fpq$[qr$nrs${st-Ttu:yuv;dvw;qwxT#O#PWR!Q![>a!c!i>a#T#Z>a~>dR!Q![>m!c!i>m#T#Z>m~>pR!Q![>y!c!i>y#T#Z>y~>|R!Q![?V!c!i?V#T#Z?V~?YR!Q![?c!c!i?c#T#Z?c~?fR!Q![?o!c!i?o#T#Z?o~?rR!Q![?{!c!i?{#T#Z?{~@OR!Q![pw[O]||-1}],tokenPrec:0}),fw=e.define({parser:hw.configure({props:[P.add({Delim:n({except:/^\s*(?:case\b|default:)/})}),S.add({Delim:r}),Q({"Keyword ContextualKeyword SimpleType":w.keyword,"NullLiteral BooleanLiteral":w.bool,IntegerLiteral:w.integer,RealLiteral:w.float,'StringLiteral CharacterLiteral InterpolatedRegularString InterpolatedVerbatimString $" @$" $@"':w.string,"LineComment BlockComment":w.comment,". .. : Astrisk Slash % + - ++ -- Not ~ << & | ^ && || < > <= >= == NotEq = += -= *= SlashEq %= &= |= ^= ? ?? ??= =>":w.operator,PP_Directive:w.keyword,TypeIdentifier:w.typeName,"ArgumentName AttrsNamedArg":w.variableName,ConstName:w.constant(w.variableName),MethodName:w.function(w.variableName),ParamName:[w.emphasis,w.variableName],VarName:w.variableName,"FieldName PropertyName":w.propertyName,"( )":w.paren,"{ }":w.brace,"[ ]":w.squareBracket})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{",'"',"'"]},indentOnInput:/^\s*((\)|\]|\})$|(else|else\s+if|catch|finally|case)\b|default:)/}});const Yw={pragma:!0,solidity:!0,import:!0,as:!0,from:!0,contract:!0,constructor:!0,is:!0,function:!0,modifier:!0,pure:!0,view:!0,payable:!0,constant:!0,anonymous:!0,indexed:!0,returns:!0,return:!0,event:!0,struct:!0,mapping:!0,interface:!0,using:!0,library:!0,storage:!0,memory:!0,calldata:!0,public:!0,private:!0,external:!0,internal:!0,emit:!0,assembly:!0,abstract:!0,after:!0,catch:!0,final:!0,in:!0,inline:!0,let:!0,match:!0,null:!0,of:!0,relocatable:!0,static:!0,try:!0,typeof:!0,var:!0},mw={pragma:!0,returns:!0,address:!0,contract:!0,function:!0,struct:!0},Rw={wei:!0,szabo:!0,finney:!0,ether:!0},bw={seconds:!0,minutes:!0,hours:!0,days:!0,weeks:!0},kw={block:["coinbase","difficulty","gaslimit","number","timestamp"],msg:["data","sender","sig","value"],tx:["gasprice","origin"]},jw={now:!0,gasleft:!0,blockhash:!0},dw={assert:!0,require:!0,revert:!0,throw:!0},uw={addmod:!0,mulmod:!0,keccak256:!0,sha256:!0,ripemd160:!0,ecrecover:!0},Uw={this:!0,selfdestruct:!0,super:!0},Zw={type:!0},vw={},_w={if:!0,else:!0,while:!0,do:!0,for:!0,break:!0,continue:!0,switch:!0,case:!0,default:!0},gw={bool:!0,byte:!0,string:!0,enum:!0,address:!0},Ww={alias:!0,apply:!0,auto:!0,copyof:!0,define:!0,immutable:!0,implements:!0,macro:!0,mutable:!0,override:!0,partial:!0,promise:!0,reference:!0,sealed:!0,sizeof:!0,supports:!0,typedef:!0,unchecked:!0},Fw={abi:["decode","encodePacked","encodeWithSelector","encodeWithSignature","encode"]},Hw=["transfer","send","balance","call","delegatecall","staticcall"],zw=["title","author","notice","dev","param","return"],Vw={delete:!0,new:!0,true:!0,false:!0},Ew=/[+\-*&^%:=<>!|/~]/,Dw=/[-]/;let Nw;function Jw(O,$){let i=O.next();if('"'===i||"'"===i||"`"===i)return $.tokenize=(t=i,function(O,$){let i,w=!1,Q=!1;for(i=O.next();null!=i;){if(i===t&&!w){Q=!0;break}w=!w&&"`"!==t&&"\\"===i,i=O.next()}return(Q||!w&&"`"!==t)&&($.tokenize=Jw),"string"}),$.tokenize(O,$);var t;if(function(O,$){if("pragma solidity"===$.lastToken)return $.lastToken=null,!$.startOfLine&&(O.match(/[\^{0}][0-9.]+/)||O.match(/[>=]+?[\s]*[0-9.]+[\s]*[<]?[\s]*[0-9.]+/))}(O,$))return"version";if("."===i&&Hw.some((function($){return O.match(`${$}`)})))return"addressFunction";if("string"==typeof i&&Bw(i,O))return"number";if("string"==typeof i&&/[[\]{}(),;:.]/.test(i))return function(O,$){","===O&&"functionName(variable"===$.para&&($.para="functionName(");null!=$.para&&$.para.startsWith("functionName")&&(")"===O?$.para.endsWith("(")&&($.para=$.para.substr(0,$.para.length-1),"functionName"===$.para&&($.grammar="")):"("===O&&($.para+=O));"("===O&&"functionName"===$.lastToken?$.lastToken+=O:")"===O&&"functionName("===$.lastToken?$.lastToken=null:"("===O&&"returns"===$.lastToken?$.lastToken+=O:")"!==O||"returns("!==$.lastToken&&"returns(variable"!==$.lastToken||($.lastToken=null);"("===O&&"address"===$.lastToken&&($.lastToken+=O);return Nw=O,null}(i,$);if("/"===i){if(O.eat("*"))return $.tokenize=Cw,Cw(O,$);if(O.match(/\/{2}/)){for(i=O.next();i;){if("@"===i){O.backUp(1),$.grammar="doc";break}i=O.next()}return"doc"}if(O.eat("/"))return O.skipToEnd(),"comment"}if("string"==typeof i&&Dw.test(i)){const $=O.peek();return"string"==typeof $&&Bw($,O)?"number":"operator"}if("string"==typeof i&&Ew.test(i))return O.eatWhile(Ew),"operator";O.eatWhile(/[\w$_\xa1-\uffff]/);const w=O.current();if("doc"===$.grammar)return zw.some((function(O){return w===`@${O}`}))?"docReserve":"doc";if("solidity"===w&&"pragma"===$.lastToken&&($.lastToken=$.lastToken+" "+w),Object.prototype.propertyIsEnumerable.call(Yw,w))return"case"!==w&&"default"!==w||(Nw="case"),Object.prototype.propertyIsEnumerable.call(mw,w)&&($.lastToken=w),"keyword";if(Object.prototype.propertyIsEnumerable.call(Rw,w))return"etherUnit";if(Object.prototype.propertyIsEnumerable.call(Uw,w))return"contractRelated";if(Object.prototype.propertyIsEnumerable.call(_w,w)||Object.prototype.propertyIsEnumerable.call(Zw,w)||Object.prototype.propertyIsEnumerable.call(Ww,w))return"keyword";if(Object.prototype.propertyIsEnumerable.call(gw,w)||Object.prototype.propertyIsEnumerable.call(bw,w)||function(O){if(O.match(/^[u]?int/)){if(O.indexOf("t")+1===O.length)return!0;const $=Number(O.substr(O.indexOf("t")+1,O.length));return $%8==0&&$<=256}}(w)||function(O){if(O.match(/^bytes/)){if(O.indexOf("s")+1===O.length)return!0;const $=O.substr(O.indexOf("s")+1,O.length);return Number($)<=32}}(w)||function(O){if(O.match(/^[u]?fixed([0-9]+x[0-9]+)?/)){if(O.indexOf("d")+1===O.length)return!0;const $=O.substr(O.indexOf("d")+1,O.length).split("x").map(Number);return $[0]%8==0&&$[0]<=256&&$[1]<=80}}(w))return $.lastToken+="variable","keyword";if(Object.prototype.propertyIsEnumerable.call(Vw,w))return"atom";if(Object.prototype.propertyIsEnumerable.call(dw,w))return"errorHandling";if(Object.prototype.propertyIsEnumerable.call(uw,w))return"mathematicalAndCryptographic";if(Object.prototype.propertyIsEnumerable.call(jw,w)||Object.prototype.propertyIsEnumerable.call(kw,w)&&kw[w].some((function($){return O.match(`.${$}`)})))return"variable-2";if("abi"===w&&Fw[w].some((function($){return O.match(`.${$}`)})))return"abi";const Q=function(O,$){if(O.match(/^hex/)&&'"'===$.peek()){let O,i=!1,t="",w="";for(O=$.next();O;){if(w+=O,'"'===O&&i){if(t=w.substring(1,w.length-1),t.match(/^[0-9a-fA-F]+$/))return"number";$.backUp(w.length);break}i=i||'"'===O,O=$.next()}}}(w,O);return null!=Q?Q:"functionName("!==$.lastToken&&"returns("!==$.lastToken||!Object.prototype.propertyIsEnumerable.call(vw,w)?"function"===$.lastToken?($.lastToken="functionName",null==$.para&&($.grammar="function",$.para=""),$.para+="functionName","functionName"):"functionName(variable"===$.lastToken?($.lastToken="functionName(","parameterValue"):"returns(variable"===$.lastToken?($.lastToken="returns(","parameterValue"):("address"===$.lastToken&&"payable"===w&&($.lastToken="address payable"),"contract"!==$.lastToken&&"struct"!==$.lastToken||(vw[w]=!0,$.lastToken=null),"function"===$.grammar?"parameterValue":"variable"):($.lastToken+="variable","variable")}function Cw(O,$){let i=!1,t=O.next();for(;t;){if("/"===t&&i){$.tokenize=Jw;break}i="*"===t,t=O.next()}return"comment"}function Bw(O,$){if(/[\d.]/.test(O))return"."===O?$.match(/^[0-9]+([eE][-+]?[0-9]+)?/):"0"===O?$.match(/^[xX][0-9a-fA-F]+/)||$.match(/^0[0-7]+/):$.match(/^[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?/),!0}let Kw=class{constructor(O,$,i,t,w){this.indented=O,this.column=$,this.type=i,this.align=t,this.prev=w}};function Lw(O,$,i){return O.context=new Kw(O.indented,$,i,null,O.context),O.context}function Iw(O){if(!O.context.prev)return;const $=O.context.type;return")"!==$&&"]"!==$&&"}"!==$||(O.indented=O.context.indented),O.context=O.context.prev}const Aw={startState:O=>({tokenize:null,context:new Kw(0-O,0,"top",!1,null),indented:0,startOfLine:!0,grammar:null,lastToken:null,para:null}),token(O,$){const i=$.context;if(O.sol()&&(null==i.align&&(i.align=!1),$.indented=O.indentation(),$.startOfLine=!0,"case"===i.type&&(i.type="}"),"doc"===$.grammar&&($.grammar=null)),O.eatSpace())return null;Nw=null;const t=($.tokenize||Jw)(O,$);return"comment"===t||(null==i.align&&(i.align=!0),"{"===Nw?Lw($,O.column(),"}"):"["===Nw?Lw($,O.column(),"]"):"("===Nw?Lw($,O.column(),")"):"case"===Nw?i.type="case":("}"===Nw&&"}"===i.type||Nw===i.type)&&Iw($),$.startOfLine=!1),t},indent(O,$,i){if(O.tokenize!==Jw&&null!=O.tokenize)return null;const t=O.context,w=$&&$.charAt(0);if("case"===t.type&&/^(?:case|default)\b/.test($))return O.context.type="}",t.indented;const Q=w===t.type;return t.align?t.column+(Q?0:1):t.indented+(Q?0:i.unit)},electricChars:"{}):",closeBrackets:"()[]{}''\"\"``",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"},Mw=new X(b.define(Aw));let OQ=()=>new k({deserialize:O=>!0});const $Q=OQ(),iQ=OQ(),tQ=OQ(),wQ=OQ(),QQ=OQ();var eQ=Object.freeze({__proto__:null,coll:$Q,prefixColl:iQ,prefixEdge:tQ,sameEdge:wQ,prefixContainer:QQ});const aQ={__proto__:null,true:136,false:136,nil:138,def:147,defn:147,"defn-":147,defmacro:147,definline:147,defonce:147,deftest:147,defcard:147,ns:155},XQ=$.deserialize({version:14,states:"-zQ]QPOOP!pOPOOOOQO'#C`'#C`OOQO'#Cb'#CbO]QPO'#CcO]QPO'#CeO]QPO'#CgO]QPO'#CiO]QPO'#CkO]OPO'#CtO]OPO'#CvO!uOQO'#C|OOQO'#Dm'#DmQ]QPOOO$hQPO'#CqO$oQPO'#DUO$vQPO'#DXO$}OSO'#DZO%cOPO'#D]O%hOPO'#D`O%mOPO'#DbO%uOWO'#DdO]QPO'#DgO]QPO'#DhO%zQPO'#DjOOQO'#Dq'#DqP&SQPO'#C^POOO)C?e)C?eOOQO,58},58}OOQO,59P,59POOQO,59R,59ROOQO,59T,59TOOQO,59V,59VOOQO,59`,59`OOQO,59b,59bOOQO,59h,59hO'gOPO,59hOOQO-E7k-E7kOOQO'#Cr'#CrO!}QPO'#CsOOQO'#Dv'#DvO'lQPO'#D|O'sQPO'#DuOOQO'#DO'#DOOOQO'#Dz'#DzO'sQPO'#DyOOQO'#DQ'#DQOOQO'#D}'#D}O'lQPO'#D|OOQO'#Dt'#DtO(OQPO,59]O(TQPO,59pOOQO,59p,59pO([QPO,59sOOQO,59s,59sOOQO,59u,59uOOOO,59x,59xOOQO,59y,59yOOQO,5:Q,5:QOOQO,5:T,5:TOOQO,5:V,5:VOOQO,59w,59wOOQO,59z,59zOOQO,59|,59|OOQO,5:O,5:OOOQO,5:R,5:ROOQO,5:S,5:SOOQO,5:U,5:UPOOO,58x,58xOOQO1G/S1G/SOOQO,59_,59_OOQO,59k,59kOOQO,59m,59mOOQO'#Cx'#CxO'sQPO'#CyOOQO'#Dx'#DxO(cQPO,5:aO(jQPO,5:eO(qQPO,5:hOOQO1G.w1G.wOOQO1G/[1G/[OOQO1G/_1G/_OOQO,59e,59eO(xQPO'#CzO*`QPO1G/{O]QPO1G/{OOQO'#Cz'#CzO*gQPO1G0PO*gQPO1G0PO*nQPO7+%gO*uQPO7+%kP&SQPO'#CcP&SQPO'#CeP&SQPO'#CgP&SQPO'#CiP&SQPO'#CkP*|OPO'#DbP&SQPO'#DgP&SQPO'#Dh",stateData:"+[~O!dOSPOSRPQ~OTiOWSOYTO[UO^VO`WOaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!VdO!XeO!fQO!gRO~ORjO~OosOqtO~OT!OOWSOYTO[UO^VO`WOaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!VdO!XeO!fQO!gRO!kvO!o{O~Oc!pP~P!}Ov!UO~P]Oy!WO~P]Od^OoZOz`O!r!YO!t!]O!u!^O~Oz`O~OT!`O~OWSOd^O~O!s!bO~Ow_Oz`O~OTiOW!}OY#OO[#PO^#QO`#ROaiObiOd^OiXOkYOoZOw_Oz`O|iO!OaO!TcO!V#SO!XeO!fQO!gRO~Oo!gO~Oc!pX~P]OT!kOiXOkYO~Oc!qO~Ov!rO~P]Oy!sO~P]Oc!ia~P]Oc!ma~P]Oc!pa~P]OTnXWnXYnX[nX^nX`nXanXbnXc!eXdnXinXknXonXwnXznX|nX!OnX!TnX!VnX!XnX!fnX!gnX~Oc!ii~P]Oc!mi~P]Oc!iq~P]Oc!mq~P]OW!}Od^O~Oa!u!tT!t~",goto:"/]!rPP!sP!vP!v#nP!vP!vP!vP!vPPPPP$j%i%i%mP%mP&n&n&sP&yP'x'x'|'|PP(QPP({P!vP!v)|!v!vP!vP!vP!v!v!v*t!v+nP,fPPP-^PP.j.m.pP.v.m/PP.m/VRkP!kiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#U!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UT!ad#S!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ![aT!ad#STx^w!UfOSTUVWXY]_`fgy!Q!T!V!n!o!p!v!w!y!z!{!|Sw^wU!lz}!la#Tj!}#O#P#Q#R#T#UV!mz}!lQ!w!nR!z!o!fiOSTUVWXY]^_`fgjwy!Q!T!V!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ!ZaQ!u!nR!x!oT|^wT!P^w!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UR!eh!jiOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ!XaQ!_bR!eh!kbOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#U!YgOSTUVWXY]^_`fgwy!Q!T!V!n!o!p!v!w!y!z!{!|a#Uj!}#O#P#Q#R#T#U!khOSTUVWXY]^_`fgjwy!Q!T!V!n!o!p!v!w!y!z!{!|!}#O#P#Q#R#T#UQ]Obu]y!T!V!p!v!y!{!|Qy^Q!T_Q!V`Q!p!QQ!v!nQ!y!oQ!{!wR!|!zt[O]^_`y!Q!T!V!n!o!p!v!w!y!z!{!|SlS!}SmT#OSnU#PSoV#QSpW#RQqXQrYU!cfw#TS!dg#UR!fjR!S^R!R^Qz^R!hwQ!nzQ!o}R!t!lQ}^R!iwQ!Q^R!jw",nodeNames:"⚠ LineComment Discard #_ Boolean Symbol Nil Deref @ Quote ' SyntaxQuote ` Unquote ~ UnquoteSplice ~@ Number Keyword ) ( List DefLike Meta Metadata ^ ReaderMetadata #^ VarName Meta DocString \" String StringContent NS Meta Operator Meta ] [ Vector } { Map Character Set # NamespacedMap KeywordPrefix RegExp Var #' ReaderConditional #? SymbolicValue ## AnonymousFunction Meta TaggedLiteral ReaderTag ConstructorCall ConstructorPrefix Program",maxTerm:83,nodeProps:[[tQ,-14,3,8,10,12,14,16,25,27,46,48,51,53,55,61,""],[iQ,-13,7,9,11,13,15,24,26,45,47,49,50,52,56,""],["openedBy",19,"(",31,'"',38,"[",41,"{"],["closedBy",20,")",31,'"',39,"]",42,"}"],[$Q,-3,21,40,43,""],[QQ,-7,23,29,35,37,57,58,60,""],[wQ,31,""]],skippedNodes:[0,1,2,3],repeatNodeCount:1,tokenData:"#6x~R![OX$wX^%n^p$wpq%nqr'grs,Tst,Ytu/Yuv'gvw'gwx6Vxy6jyz6}z{'g{|7b|}%n}!O7b!O!P9t!P!Q)v!Q!R!8[!R![!>t![!]!Cp!]!^!J]!^!_'g!_!`'g!`!a'g!a!b'g!b!c!Kr!c!}/Y!}#O!LV#O#P!Lj#P#Q#3w#Q#R#4[#R#S/Y#S#T#4o#T#o/Y#o#p#5S#p#q$w#q#r#5g#r#s#5z#s#y$w#y#z%n#z$f$w$f$g%n$g##l/Y##l#BY$w#BY#BZ%n#BZ$IS$w$IS$I_%n$I_$I|$w$I|$JO%n$JO$JT$w$JT$JU%n$JU$KV$w$KV$KW%n$KW&FU$w&FU&FV%n&FV~$wQ$|SqQOr$ws#O$w#O#P%Y#P~$wQ%_TqQOr$wrs$ws#O$w#O#P%Y#P~$wR%ujqQ!dPOX$wX^%n^p$wpq%nqr$ws|$w|}%n}#O$w#O#P%Y#P#y$w#y#z%n#z$f$w$f$g%n$g#BY$w#BY#BZ%n#BZ$IS$w$IS$I_%n$I_$I|$w$I|$JO%n$JO$JT$w$JT$JU%n$JU$KV$w$KV$KW%n$KW&FU$w&FU&FV%n&FV~$w_'rpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q!['g![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$wZ*PpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$w~,YOo~R,a[!OPqQOr$wst-Vtw$wwx-jx!a$w!a!b-}!b#O$w#O#P%Y#P#Q$w#Q#R.b#R#S.u#S~$wR-^S!XPqQOr$ws#O$w#O#P%Y#P~$wR-qS!TPqQOr$ws#O$w#O#P%Y#P~$wR.US!VPqQOr$ws#O$w#O#P%Y#P~$wR.iSkPqQOr$ws#O$w#O#P%Y#P~$wR.|SRPqQOr$ws#O$w#O#P%Y#P~$w_/epqQ!sW!tSTPOq$wqr'gst)vtu/Yuv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P1i!P!Q'g!Q![/Y![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}/Y!}#O$w#O#P%Y#P#R$w#R#S/Y#S#T$w#T#o/Y#o$g$w$g##l/Y##l~$w_1rpqQ!sWTPOq$wqr)vst)vtu3vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!}3v!}#O$w#O#P%Y#P#R$w#R#S3v#S#T$w#T#o3v#o$g$w$g##l3v##l~$w_4RpqQ!sW!uSTPOq$wqr)vst)vtu3vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P1i!P!Q)v!Q![3v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!}3v!}#O$w#O#P%Y#P#R$w#R#S3v#S#T$w#T#o3v#o$g$w$g##l3v##l~$wR6^SYPqQOr$ws#O$w#O#P%Y#P~$wV6qSdTqQOr$ws#O$w#O#P%Y#P~$wR7UScPqQOr$ws#O$w#O#P%Y#P~$w_7mqqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P9t!P!Q'g!Q!RHO!R![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$wZ9}pqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![n!h!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$wZ>wpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|@{|}$w}!O@{!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZAUpqQ!sWTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZCerqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![CY![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!o)v!o!pEo!p!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$wZEzpqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#o)v#o$g$w$g##l)v##l~$w_H]yqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!PJ|!P!Q!![!Q![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!g'g!g!h!)t!h!o'g!o!p!0{!p!q!0{!q!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#X'g#X#Y!)t#Y#l'g#l#m!3^#m#o'g#o$g$w$g##l'g##l~$wZKXvqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![J|![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!g)v!g!h>n!h!o)v!o!pMo!p!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$wZMztqQ!sWaPTPOq$wqr)vst)vtu)vuv)vvw)vwx)vxz$wz{)v{|)v|}$w}!O)v!O!P)v!P!Q)v!Q![)v![!])v!]!^$w!^!_)v!_!`)v!`!a)v!a!b)v!b!c$w!c!g)v!g!h>n!h!})v!}#O$w#O#P%Y#P#R$w#R#S)v#S#T$w#T#X)v#X#Y>n#Y#o)v#o$g$w$g##l)v##l~$w_!!gpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!$k![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!$xpqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!$k![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!'ZwqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!PJ|!P!Q!![!Q![!&|![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!g'g!g!h!)t!h!o'g!o!p!0{!p!q!0{!q!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#X'g#X#Y!)t#Y#o'g#o$g$w$g##l'g##l~$w_!*PpqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|!,T|}$w}!O!,T!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!,`pqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!.qrqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!.d![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!o'g!o!p!0{!p!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!1YpqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q!['g![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#o'g#o$g$w$g##l'g##l~$w_!3irqQ!sW!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!5s![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!i!5s!i!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#Z!5s#Z#o'g#o$g$w$g##l'g##l~$w_!6QrqQ!sWaP!tSTPOq$wqr'gst)vtu'guv'gvw'gwx)vxz$wz{'g{|'g|}$w}!O'g!O!P)v!P!Q'g!Q![!5s![!])v!]!^$w!^!_'g!_!`'g!`!a'g!a!b'g!b!c$w!c!i!5s!i!}'g!}#O$w#O#P%Y#P#R$w#R#S'g#S#T$w#T#Z!5s#Z#o'g#o$g$w$g##l'g##l~$wR!8ceqQaPOr$ws!O$w!O!P!9t!P!Q!=r!Q![!>t![!g$w!g!h!:q!h!o$w!o!p!Z![#O$w#O#P%Y#P~$wR!>bUqQaPOr$ws!Q$w!Q![!>Z![#O$w#O#P%Y#P~$wR!>{_qQaPOr$ws!O$w!O!P!9t!P!Q!=r!Q![!>t![!g$w!g!h!:q!h!o$w!o!p!aQ[O]||-1}],tokenPrec:466}),{coll:oQ}=eQ,SQ=e.define({parser:XQ.configure({props:[Q({NS:w.keyword,DefLike:w.keyword,"Operator/Symbol":w.keyword,"VarName/Symbol":w.definition(w.variableName),Boolean:w.atom,"DocString/...":w.emphasis,"Discard!":w.comment,Number:w.number,StringContent:w.string,'"\\""':w.string,Keyword:w.atom,Nil:w.null,LineComment:w.lineComment,RegExp:w.regexp}),P.add((O=>$=>{let{pos:i,unit:t,node:w,state:Q,baseIndent:e,textAfter:a}=$;if(O.prop(oQ)){let i=$.column(w.firstChild.to);return"List"==O.name&&["NS","DefLike","Operator"].includes(w.firstChild.nextSibling.type.name)?i+1:i}return 0})),S.add({"Vector Map List":r})]}),languageData:{commentTokens:{line:";;"}}});var rQ,PQ={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},sQ={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},nQ=/[+\-*&^%:=<>!|\/]/;function GQ(O,$){var i,t=O.next();if('"'==t||"'"==t||"`"==t)return $.tokenize=(i=t,function(O,$){for(var t,w=!1,Q=!1;null!=(t=O.next());){if(t==i&&!w){Q=!0;break}w=!w&&"`"!=i&&"\\"==t}return(Q||!w&&"`"!=i)&&($.tokenize=GQ),"string"}),$.tokenize(O,$);if(/[\d\.]/.test(t))return"."==t?O.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==t?O.match(/^[xX][0-9a-fA-F]+/)||O.match(/^0[0-7]+/):O.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(t))return rQ=t,null;if("/"==t){if(O.eat("*"))return $.tokenize=lQ,lQ(O,$);if(O.eat("/"))return O.skipToEnd(),"comment"}if(nQ.test(t))return O.eatWhile(nQ),"operator";O.eatWhile(/[\w\$_\xa1-\uffff]/);var w=O.current();return PQ.propertyIsEnumerable(w)?("case"!=w&&"default"!=w||(rQ="case"),"keyword"):sQ.propertyIsEnumerable(w)?"atom":"variable"}function lQ(O,$){for(var i,t=!1;i=O.next();){if("/"==i&&t){$.tokenize=GQ;break}t="*"==i}return"comment"}function qQ(O,$,i,t,w){this.indented=O,this.column=$,this.type=i,this.align=t,this.prev=w}function yQ(O,$,i){return O.context=new qQ(O.indented,$,i,null,O.context)}function TQ(O){if(O.context.prev){var $=O.context.type;return")"!=$&&"]"!=$&&"}"!=$||(O.indented=O.context.indented),O.context=O.context.prev}}const xQ={name:"go",startState:function(O){return{tokenize:null,context:new qQ(-O,0,"top",!1),indented:0,startOfLine:!0}},token:function(O,$){var i=$.context;if(O.sol()&&(null==i.align&&(i.align=!1),$.indented=O.indentation(),$.startOfLine=!0,"case"==i.type&&(i.type="}")),O.eatSpace())return null;rQ=null;var t=($.tokenize||GQ)(O,$);return"comment"==t||(null==i.align&&(i.align=!0),"{"==rQ?yQ($,O.column(),"}"):"["==rQ?yQ($,O.column(),"]"):"("==rQ?yQ($,O.column(),")"):"case"==rQ?i.type="case":("}"==rQ&&"}"==i.type||rQ==i.type)&&TQ($),$.startOfLine=!1),t},indent:function(O,$,i){if(O.tokenize!=GQ&&null!=O.tokenize)return null;var t=O.context,w=$&&$.charAt(0);if("case"==t.type&&/^(?:case|default)\b/.test($))return t.indented;var Q=w==t.type;return t.align?t.column+(Q?0:1):t.indented+(Q?0:i.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};var cQ=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i");const pQ={name:"yaml",token:function(O,$){var i=O.peek(),t=$.escaped;if($.escaped=!1,"#"==i&&(0==O.pos||/\s/.test(O.string.charAt(O.pos-1))))return O.skipToEnd(),"comment";if(O.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if($.literal&&O.indentation()>$.keyCol)return O.skipToEnd(),"string";if($.literal&&($.literal=!1),O.sol()){if($.keyCol=0,$.pair=!1,$.pairStart=!1,O.match("---"))return"def";if(O.match("..."))return"def";if(O.match(/^\s*-\s+/))return"meta"}if(O.match(/^(\{|\}|\[|\])/))return"{"==i?$.inlinePairs++:"}"==i?$.inlinePairs--:"["==i?$.inlineList++:$.inlineList--,"meta";if($.inlineList>0&&!t&&","==i)return O.next(),"meta";if($.inlinePairs>0&&!t&&","==i)return $.keyCol=0,$.pair=!1,$.pairStart=!1,O.next(),"meta";if($.pairStart){if(O.match(/^\s*(\||\>)\s*/))return $.literal=!0,"meta";if(O.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(0==$.inlinePairs&&O.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if($.inlinePairs>0&&O.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(O.match(cQ))return"keyword"}return!$.pair&&O.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?($.pair=!0,$.keyCol=O.indentation(),"atom"):$.pair&&O.match(/^:\s*/)?($.pairStart=!0,"meta"):($.pairStart=!1,$.escaped="\\"==i,O.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}};var hQ={apl:()=>b.define($O),asciiArmor:()=>b.define(iO),asterisk:()=>b.define(tO),c:()=>b.define(QO),csharp:()=>new X(fw),scala:()=>b.define(eO),solidity:()=>Mw,kotlin:()=>b.define(aO),shader:()=>b.define(XO),nesC:()=>b.define(oO),objectiveC:()=>b.define(SO),objectiveCpp:()=>b.define(rO),squirrel:()=>b.define(PO),ceylon:()=>b.define(sO),dart:()=>b.define(nO),cmake:()=>b.define(GO),cobol:()=>b.define(lO),commonLisp:()=>b.define(yO),crystal:()=>b.define(TO),cypher:()=>b.define(xO),d:()=>b.define(cO),diff:()=>b.define(pO),dtd:()=>b.define(fO),dylan:()=>b.define(YO),ebnf:()=>b.define(mO),ecl:()=>b.define(RO),eiffel:()=>b.define(bO),elm:()=>b.define(kO),factor:()=>b.define(dO),fcl:()=>b.define(uO),forth:()=>b.define(UO),fortran:()=>b.define(ZO),gas:()=>b.define(vO),gherkin:()=>b.define(_O),groovy:()=>b.define(gO),haskell:()=>b.define(WO),haxe:()=>b.define(FO),http:()=>b.define(HO),idl:()=>b.define(zO),jinja2:()=>b.define(VO),mathematica:()=>b.define(JO),mbox:()=>b.define(CO),mirc:()=>b.define(BO),modelica:()=>b.define(KO),mscgen:()=>b.define(LO),mumps:()=>b.define(IO),nsis:()=>b.define(MO),ntriples:()=>b.define(O$),octave:()=>b.define($$),oz:()=>b.define(i$),pig:()=>b.define(Q$),properties:()=>b.define(a$),protobuf:()=>b.define(X$),puppet:()=>b.define(o$),q:()=>b.define(S$),sas:()=>b.define(s$),sass:()=>D(),liquid:()=>I(),mermaid:()=>qt(),nix:()=>new X(Rt,Rt.data.of({autocomplete:G(["LineComment","BlockComment","String","IndentedString"],l(bt))})),svelte:()=>new X(sw,[c().support,p().support,Gw]),sieve:()=>b.define(l$),smalltalk:()=>b.define(q$),solr:()=>b.define(y$),sparql:()=>b.define(T$),spreadsheet:()=>b.define(x$),stex:()=>b.define(c$),textile:()=>b.define(Y$),tiddlyWiki:()=>b.define(m$),tiki:()=>b.define(R$),troff:()=>b.define(k$),ttcn:()=>b.define(j$),turtle:()=>b.define(d$),velocity:()=>b.define(Z$),verilog:()=>b.define(v$),vhdl:()=>b.define(_$),webIDL:()=>b.define(g$),xQuery:()=>b.define(W$),yacas:()=>b.define(F$),z80:()=>b.define(H$),wast:A,javascript:c,jsx:()=>c({jsx:!0}),typescript:()=>c({typescript:!0}),tsx:()=>c({jsx:!0,typescript:!0}),vue:()=>M(),angular:()=>OO(),json:N,html:j,css:p,python:d,markdown:()=>u({base:_,codeLanguages:g}),xml:J,sql:U,mysql:()=>U({dialect:Z}),pgsql:()=>U({dialect:v}),java:C,rust:B,cpp:K,lezer:function(){return new X(pt)},php:L,go:()=>b.define(xQ),shell:()=>b.define(G$),lua:()=>b.define(NO),swift:()=>b.define(h$),tcl:()=>b.define(f$),yaml:()=>b.define(pQ),vb:()=>b.define(u$),powershell:()=>b.define(e$),brainfuck:()=>b.define(wO),stylus:()=>b.define(p$),erlang:()=>b.define(jO),nginx:()=>b.define(AO),perl:()=>b.define(w$),ruby:()=>b.define(P$),pascal:()=>b.define(t$),livescript:()=>b.define(DO),less:()=>E(),scheme:()=>b.define(n$),toml:()=>b.define(b$),vbscript:()=>b.define(U$),clojure:()=>new X(SQ),coffeescript:()=>b.define(qO),julia:()=>b.define(EO),dockerfile:()=>b.define(hO),r:()=>b.define(r$)};const fQ=O=>{const $=W.c(20);let i,t,w,Q;$[0]!==O?(({language:i,extensions:w,...t}=O),$[0]=O,$[1]=i,$[2]=t,$[3]=w):(i=$[1],t=$[2],w=$[3]),$[4]!==w?(Q=void 0===w?[]:w,$[4]=w,$[5]=Q):Q=$[5];const e=Q,a=i&&!(i in hQ);let X;a&&F.warn(`Language ${i} not found in CodeMirror.`);O:{if(!i){X=e;break O}const O=i;let t,w;$[6]!==O?(t=hQ[o=O]?hQ[o]():null,$[6]=O,$[7]=t):t=$[7],$[8]!==e||$[9]!==t?(w=[t,...e].filter(Boolean),$[8]=e,$[9]=t,$[10]=w):w=$[10],X=w}var o;const S=X;let r,P,s;return $[11]!==a||$[12]!==i?(r=a&&H.jsx(z,{className:"mb-1 rounded-sm",error:`Language ${i} not supported. \n\nSupported languages are: ${Object.keys(hQ).join(", ")}`}),$[11]=a,$[12]=i,$[13]=r):r=$[13],$[14]!==S||$[15]!==t?(P=H.jsx(V,{...t,extensions:S}),$[14]=S,$[15]=t,$[16]=P):P=$[16],$[17]!==r||$[18]!==P?(s=H.jsxs(H.Fragment,{children:[r,P]}),$[17]=r,$[18]=P,$[19]=s):s=$[19],s};export{fQ as default}; diff --git a/public/examples/ui/assets/apl-CXdQSnD-.js b/public/examples/ui/assets/apl-CXdQSnD-.js new file mode 100644 index 0000000..3247810 --- /dev/null +++ b/public/examples/ui/assets/apl-CXdQSnD-.js @@ -0,0 +1 @@ +var e={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},n=/[\.\/⌿⍀¨⍣]/,t=/⍬/,l=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,a=/←/,r=/[⍝#].*$/;const i={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(i,u){var o,s,c;return i.eatSpace()?null:'"'===(o=i.next())||"'"===o?(i.eatWhile((s=o,c=!1,function(e){return c=e,e!==s||"\\"===c})),i.next(),u.prev=!0,"string"):/[\[{\(]/.test(o)?(u.prev=!1,null):/[\]}\)]/.test(o)?(u.prev=!0,null):t.test(o)?(u.prev=!1,"atom"):/[¯\d]/.test(o)?(u.func?(u.func=!1,u.prev=!1):u.prev=!0,i.eatWhile(/[\w\.]/),"number"):n.test(o)||a.test(o)?"operator":l.test(o)?(u.func=!0,u.prev=!1,e[o]?"variableName.function.standard":"variableName.function"):r.test(o)?(i.skipToEnd(),"comment"):"∘"===o&&"."===i.peek()?(i.next(),"variableName.function"):(i.eatWhile(/[\w\$_]/),u.prev=!0,"keyword")}};export{i as apl}; diff --git a/public/examples/ui/assets/arc-BTlVLyGF.js b/public/examples/ui/assets/arc-BTlVLyGF.js new file mode 100644 index 0000000..1fb4729 --- /dev/null +++ b/public/examples/ui/assets/arc-BTlVLyGF.js @@ -0,0 +1 @@ +import{w as n,p as t,c as r,s as c,a as e,h as a,e as u,t as i,b as o,m as y,d as l,f,g as s,i as p,j as x}from"./step-CaHXtLdi.js";function h(n){return n.innerRadius}function v(n){return n.outerRadius}function g(n){return n.startAngle}function d(n){return n.endAngle}function m(n){return n&&n.padAngle}function T(n,t,r,c,e,a,u){var i=n-r,y=t-c,l=(u?a:-a)/o(i*i+y*y),f=l*y,s=-l*i,p=n+f,h=t+s,v=r+f,g=c+s,d=(p+v)/2,m=(h+g)/2,T=v-p,A=g-h,R=T*T+A*A,j=e-a,b=p*g-v*h,w=(A<0?-1:1)*o(x(0,j*j*R-b*b)),P=(b*A-T*w)/R,k=(-b*T-A*w)/R,q=(b*A+T*w)/R,z=(-b*T+A*w)/R,B=P-d,C=k-m,D=q-d,E=z-m;return B*B+C*C>D*D+E*E&&(P=q,k=z),{cx:P,cy:k,x01:-f,y01:-s,x11:P*(e/j-1),y11:k*(e/j-1)}}function A(){var x=h,A=v,R=e(0),j=null,b=g,w=d,P=m,k=null,q=n(z);function z(){var n,e,h=+x.apply(this,arguments),v=+A.apply(this,arguments),g=b.apply(this,arguments)-a,d=w.apply(this,arguments)-a,m=l(d-g),z=d>g;if(k||(k=n=q()),vu)if(m>i-u)k.moveTo(v*r(g),v*c(g)),k.arc(0,0,v,g,d,!z),h>u&&(k.moveTo(h*r(d),h*c(d)),k.arc(0,0,h,d,g,z));else{var B,C,D=g,E=d,F=g,G=d,H=m,I=m,J=P.apply(this,arguments)/2,K=J>u&&(j?+j.apply(this,arguments):o(h*h+v*v)),L=y(l(v-h)/2,+R.apply(this,arguments)),M=L,N=L;if(K>u){var O=s(K/h*c(J)),Q=s(K/v*c(J));(H-=2*O)>u?(F+=O*=z?1:-1,G-=O):(H=0,F=G=(g+d)/2),(I-=2*Q)>u?(D+=Q*=z?1:-1,E-=Q):(I=0,D=E=(g+d)/2)}var S=v*r(D),U=v*c(D),V=h*r(G),W=h*c(G);if(L>u){var X,Y=v*r(E),Z=v*c(E),$=h*r(F),_=h*c(F);if(mu?N>u?(B=T($,_,S,U,v,N,z),C=T(Y,Z,V,W,v,N,z),k.moveTo(B.cx+B.x01,B.cy+B.y01),Nu&&H>u?M>u?(B=T(V,W,Y,Z,h,-M,z),C=T(S,U,$,_,h,-M,z),k.lineTo(B.cx+B.x01,B.cy+B.y01),Me?(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)):"right"==this.labelPosHorizontal&&this.setWidth(e+this.labelWidth)),this.labelHeight&&("top"==this.labelPosVertical?(this.rect.y-=this.labelHeight,this.setHeight(i+this.labelHeight)):"center"==this.labelPosVertical&&this.labelHeight>i?(this.rect.y-=(this.labelHeight-i)/2,this.setHeight(this.labelHeight)):"bottom"==this.labelPosVertical&&this.setHeight(i+this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==r.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>a.WORLD_BOUNDARY?e=a.WORLD_BOUNDARY:e<-a.WORLD_BOUNDARY&&(e=-a.WORLD_BOUNDARY);var i=this.rect.y;i>a.WORLD_BOUNDARY?i=a.WORLD_BOUNDARY:i<-a.WORLD_BOUNDARY&&(i=-a.WORLD_BOUNDARY);var n=new h(e,i),r=t.inverseTransformPoint(n);this.setLocation(r.x,r.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,i){var n=i(0);function r(){}for(var o in n)r[o]=n[o];r.MAX_ITERATIONS=2500,r.DEFAULT_EDGE_LENGTH=50,r.DEFAULT_SPRING_STRENGTH=.45,r.DEFAULT_REPULSION_STRENGTH=4500,r.DEFAULT_GRAVITY_STRENGTH=.4,r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,r.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,r.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,r.COOLING_ADAPTATION_FACTOR=.33,r.ADAPTATION_LOWER_NODE_LIMIT=1e3,r.ADAPTATION_UPPER_NODE_LIMIT=5e3,r.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,r.MAX_NODE_DISPLACEMENT=3*r.MAX_NODE_DISPLACEMENT_INCREMENTAL,r.MIN_REPULSION_DIST=r.DEFAULT_EDGE_LENGTH/10,r.CONVERGENCE_CHECK_PERIOD=100,r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,r.MIN_EDGE_LENGTH=1,r.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=r},function(t,e,i){function n(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(t){this.x=t},n.prototype.setY=function(t){this.y=t},n.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=n},function(t,e,i){var n=i(2),r=i(10),o=i(0),a=i(7),s=i(3),h=i(1),l=i(13),d=i(12),c=i(11);function g(t,e,i){n.call(this,i),this.estimatedSize=r.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof a?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var u in g.prototype=Object.create(n.prototype),n)g[u]=n[u];g.prototype.getNodes=function(){return this.nodes},g.prototype.getEdges=function(){return this.edges},g.prototype.getGraphManager=function(){return this.graphManager},g.prototype.getParent=function(){return this.parent},g.prototype.getLeft=function(){return this.left},g.prototype.getRight=function(){return this.right},g.prototype.getTop=function(){return this.top},g.prototype.getBottom=function(){return this.bottom},g.prototype.isConnected=function(){return this.isConnected},g.prototype.add=function(t,e,i){if(null==e&&null==i){var n=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(n)>-1)throw"Node already in graph!";return n.owner=this,this.getNodes().push(n),n}var r=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(i)>-1))throw"Source or target not in graph!";if(e.owner!=i.owner||e.owner!=this)throw"Both owners must be this graph!";return e.owner!=i.owner?null:(r.source=e,r.target=i,r.isInterGraph=!1,this.getEdges().push(r),e.edges.push(r),i!=e&&i.edges.push(r),r)},g.prototype.remove=function(t){var e=t;if(t instanceof s){if(null==e)throw"Node is null!";if(null==e.owner||e.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var i=e.edges.slice(),n=i.length,r=0;r-1&&d>-1))throw"Source and/or target doesn't know this edge!";if(o.source.edges.splice(l,1),o.target!=o.source&&o.target.edges.splice(d,1),-1==(a=o.source.owner.getEdges().indexOf(o)))throw"Not in owner's edge list!";o.source.owner.getEdges().splice(a,1)}},g.prototype.updateLeftTop=function(){for(var t,e,i,n=r.MAX_VALUE,o=r.MAX_VALUE,a=this.getNodes(),s=a.length,h=0;h(t=l.getTop())&&(n=t),o>(e=l.getLeft())&&(o=e)}return n==r.MAX_VALUE?null:(i=null!=a[0].getParent().paddingLeft?a[0].getParent().paddingLeft:this.margin,this.left=o-i,this.top=n-i,new d(this.left,this.top))},g.prototype.updateBounds=function(t){for(var e,i,n,o,a,s=r.MAX_VALUE,h=-r.MAX_VALUE,d=r.MAX_VALUE,c=-r.MAX_VALUE,g=this.nodes,u=g.length,p=0;p(e=f.getLeft())&&(s=e),h<(i=f.getRight())&&(h=i),d>(n=f.getTop())&&(d=n),c<(o=f.getBottom())&&(c=o)}var m=new l(s,d,h-s,c-d);s==r.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),a=null!=g[0].getParent().paddingLeft?g[0].getParent().paddingLeft:this.margin,this.left=m.x-a,this.right=m.x+m.width+a,this.top=m.y-a,this.bottom=m.y+m.height+a},g.calculateBounds=function(t){for(var e,i,n,o,a=r.MAX_VALUE,s=-r.MAX_VALUE,h=r.MAX_VALUE,d=-r.MAX_VALUE,c=t.length,g=0;g(e=u.getLeft())&&(a=e),s<(i=u.getRight())&&(s=i),h>(n=u.getTop())&&(h=n),d<(o=u.getBottom())&&(d=o)}return new l(a,h,s-a,d-h)},g.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},g.prototype.getEstimatedSize=function(){if(this.estimatedSize==r.MIN_VALUE)throw"assert failed";return this.estimatedSize},g.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,i=e.length,n=0;n=this.nodes.length){var h=0;r.forEach((function(e){e.owner==t&&h++})),h==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},t.exports=g},function(t,e,i){var n,r=i(1);function o(t){n=i(6),this.layout=t,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),i=this.add(t,e);return this.setRootGraph(i),this.rootGraph},o.prototype.add=function(t,e,i,n,r){if(null==i&&null==n&&null==r){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}r=i,i=t;var o=(n=e).getOwner(),a=r.getOwner();if(null==o||o.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==a||a.getGraphManager()!=this)throw"Target not in this graph mgr!";if(o==a)return i.isInterGraph=!1,o.add(i,n,r);if(i.isInterGraph=!0,i.source=n,i.target=r,this.edges.indexOf(i)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(i),null==i.source||null==i.target)throw"Edge source and/or target is null!";if(-1!=i.source.edges.indexOf(i)||-1!=i.target.edges.indexOf(i))throw"Edge already in source and/or target incidency list!";return i.source.edges.push(i),i.target.edges.push(i),i},o.prototype.remove=function(t){if(t instanceof n){var e=t;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(e!=this.rootGraph&&(null==e.parent||e.parent.graphManager!=this))throw"Invalid parent node!";for(var i,o=[],a=(o=o.concat(e.getEdges())).length,s=0;s=e.getRight()?i[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(i[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?i[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(i[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(o=1);var a=o*i[0],s=i[1]/o;i[0]a)return i[0]=n,i[1]=h,i[2]=o,i[3]=E,!1;if(ro)return i[0]=s,i[1]=r,i[2]=v,i[3]=a,!1;if(no?(i[0]=d,i[1]=c,w=!0):(i[0]=l,i[1]=h,w=!0):I===C&&(n>o?(i[0]=s,i[1]=h,w=!0):(i[0]=g,i[1]=c,w=!0)),-_===C?o>n?(i[2]=y,i[3]=E,L=!0):(i[2]=v,i[3]=m,L=!0):_===C&&(o>n?(i[2]=f,i[3]=m,L=!0):(i[2]=N,i[3]=E,L=!0)),w&&L)return!1;if(n>o?r>a?(M=this.getCardinalDirection(I,C,4),x=this.getCardinalDirection(_,C,2)):(M=this.getCardinalDirection(-I,C,3),x=this.getCardinalDirection(-_,C,1)):r>a?(M=this.getCardinalDirection(-I,C,1),x=this.getCardinalDirection(-_,C,3)):(M=this.getCardinalDirection(I,C,2),x=this.getCardinalDirection(_,C,4)),!w)switch(M){case 1:D=h,O=n+-p/C,i[0]=O,i[1]=D;break;case 2:O=g,D=r+u*C,i[0]=O,i[1]=D;break;case 3:D=c,O=n+p/C,i[0]=O,i[1]=D;break;case 4:O=d,D=r+-u*C,i[0]=O,i[1]=D}if(!L)switch(x){case 1:b=m,R=o+-A/C,i[2]=R,i[3]=b;break;case 2:R=N,b=a+T*C,i[2]=R,i[3]=b;break;case 3:b=E,R=o+A/C,i[2]=R,i[3]=b;break;case 4:R=y,b=a+-T*C,i[2]=R,i[3]=b}}return!1},r.getCardinalDirection=function(t,e,i){return t>e?i:1+i%4},r.getIntersection=function(t,e,i,r){if(null==r)return this.getIntersection2(t,e,i);var o,a,s,h,l,d,c,g=t.x,u=t.y,p=e.x,f=e.y,m=i.x,v=i.y,y=r.x,E=r.y;return 0==(c=(o=f-u)*(h=m-y)-(a=E-v)*(s=g-p))?null:new n((s*(d=y*v-m*E)-h*(l=p*u-g*f))/c,(a*l-o*d)/c)},r.angleOfVector=function(t,e,i,n){var r=void 0;return t!==i?(r=Math.atan((n-e)/(i-t)),i=0){var d=(-h+Math.sqrt(h*h-4*s*l))/(2*s),c=(-h-Math.sqrt(h*h-4*s*l))/(2*s);return d>=0&&d<=1?[d]:c>=0&&c<=1?[c]:null}return null},r.HALF_PI=.5*Math.PI,r.ONE_AND_HALF_PI=1.5*Math.PI,r.TWO_PI=2*Math.PI,r.THREE_PI=3*Math.PI,t.exports=r},function(t,e,i){function n(){}n.sign=function(t){return t>0?1:t<0?-1:0},n.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},n.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=n},function(t,e,i){function n(){}n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,i){var n=function(){function t(t,e){for(var i=0;i0&&e;){for(s.push(l[0]);s.length>0&&e;){var d=s[0];s.splice(0,1),a.add(d);var c=d.getEdges();for(o=0;o-1&&l.splice(f,1)}a=new Set,h=new Map}else t=[]}return t},g.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],i=t.source,n=this.graphManager.calcLowestCommonAncestor(t.source,t.target),r=0;r0){for(var r=this.edgeToDummyNodes.get(i),o=0;o=0&&e.splice(c,1),d.getNeighborsList().forEach((function(t){if(i.indexOf(t)<0){var e=n.get(t)-1;1==e&&h.push(t),n.set(t,e)}}))}i=i.concat(h),1!=e.length&&2!=e.length||(r=!0,o=e[0])}return o},g.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=g},function(t,e,i){function n(){}n.seed=1,n.x=0,n.nextDouble=function(){return n.x=1e4*Math.sin(n.seed++),n.x-Math.floor(n.x)},t.exports=n},function(t,e,i){var n=i(5);function r(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}r.prototype.getWorldOrgX=function(){return this.lworldOrgX},r.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},r.prototype.getWorldOrgY=function(){return this.lworldOrgY},r.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},r.prototype.getWorldExtX=function(){return this.lworldExtX},r.prototype.setWorldExtX=function(t){this.lworldExtX=t},r.prototype.getWorldExtY=function(){return this.lworldExtY},r.prototype.setWorldExtY=function(t){this.lworldExtY=t},r.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},r.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},r.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},r.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},r.prototype.getDeviceExtX=function(){return this.ldeviceExtX},r.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},r.prototype.getDeviceExtY=function(){return this.ldeviceExtY},r.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},r.prototype.transformX=function(t){var e=0,i=this.lworldExtX;return 0!=i&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/i),e},r.prototype.transformY=function(t){var e=0,i=this.lworldExtY;return 0!=i&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/i),e},r.prototype.inverseTransformX=function(t){var e=0,i=this.ldeviceExtX;return 0!=i&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/i),e},r.prototype.inverseTransformY=function(t){var e=0,i=this.ldeviceExtY;return 0!=i&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/i),e},r.prototype.inverseTransformPoint=function(t){return new n(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=r},function(t,e,i){var n=i(15),r=i(4),o=i(0),a=i(8),s=i(9);function h(){n.call(this),this.useSmartIdealEdgeLengthCalculation=r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=r.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=r.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=r.MAX_ITERATIONS}for(var l in h.prototype=Object.create(n.prototype),n)h[l]=n[l];h.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var t,e,i,n,a,s,h,l=this.getGraphManager().getAllEdges(),d=0;dr.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*r.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-r.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>r.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(r.COOLING_ADAPTATION_FACTOR,1-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*(1-r.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),i=0;i0&&void 0!==arguments[0])||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&a&&this.updateGrid(),o=new Set,t=0;t(h=e.getEstimatedSize()*this.gravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*r,t.gravitationForceY=-this.gravityConstant*o):(a>(h=e.getEstimatedSize()*this.compoundGravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*r*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant)},h.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=s.length||l>=s[0].length))for(var d=0;dt}}]),t}();t.exports=o},function(t,e,i){function n(){}n.svd=function(t){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=t.length,this.n=t[0].length;var e=Math.min(this.m,this.n);this.s=function(t){for(var e=[];t-- >0;)e.push(0);return e}(Math.min(this.m+1,this.n)),this.U=function t(e){if(0==e.length)return 0;for(var i=[],n=0;n0;)e.push(0);return e}(this.n),r=function(t){for(var e=[];t-- >0;)e.push(0);return e}(this.m),o=Math.min(this.m-1,this.n),a=Math.max(0,Math.min(this.n-2,this.m)),s=0;s=0;C--)if(0!==this.s[C]){for(var M=C+1;M=0;F--){if(function(t,e){return t&&e}(F0;){var B=void 0,V=void 0;for(B=L-2;B>=-1&&-1!==B;B--)if(Math.abs(i[B])<=z+X*(Math.abs(this.s[B])+Math.abs(this.s[B+1]))){i[B]=0;break}if(B===L-2)V=4;else{var W=void 0;for(W=L-1;W>=B&&W!==B;W--){var j=(W!==L?Math.abs(i[W]):0)+(W!==B+1?Math.abs(i[W-1]):0);if(Math.abs(this.s[W])<=z+X*j){this.s[W]=0;break}}W===B?V=3:W===L-1?V=1:(V=2,B=W)}switch(B++,V){case 1:var q=i[L-2];i[L-2]=0;for(var $=L-2;$>=B;$--){var Z=n.hypot(this.s[$],q),J=this.s[$]/Z,Q=q/Z;this.s[$]=Z,$!==B&&(q=-Q*i[$-1],i[$-1]=J*i[$-1]);for(var K=0;K=this.s[B+1]);){var Lt=this.s[B];if(this.s[B]=this.s[B+1],this.s[B+1]=Lt,BMath.abs(e)?(i=e/t,i=Math.abs(t)*Math.sqrt(1+i*i)):0!=e?(i=t/e,i=Math.abs(e)*Math.sqrt(1+i*i)):i=0,i},t.exports=n},function(t,e,i){var n=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.sequence1=e,this.sequence2=i,this.match_score=n,this.mismatch_penalty=r,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=i.length+1,this.grid=new Array(this.iMax);for(var a=0;a=0;i--){var n=this.listeners[i];n.event===t&&n.callback===e&&this.listeners.splice(i,1)}},r.emit=function(t,e){for(var i=0;i{var n={};n.layoutBase=i(551),n.CoSEConstants=i(806),n.CoSEEdge=i(767),n.CoSEGraph=i(880),n.CoSEGraphManager=i(578),n.CoSELayout=i(765),n.CoSENode=i(991),n.ConstraintHandler=i(902),t.exports=n},806:(t,e,i)=>{var n=i(551).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_SEPARATION=n.DEFAULT_EDGE_LENGTH,r.DEFAULT_COMPONENT_SEPERATION=60,r.TILE=!0,r.TILING_PADDING_VERTICAL=10,r.TILING_PADDING_HORIZONTAL=10,r.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,r.ENFORCE_CONSTRAINTS=!0,r.APPLY_LAYOUT=!0,r.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,r.TREE_REDUCTION_ON_INCREMENTAL=!0,r.PURE_INCREMENTAL=r.DEFAULT_INCREMENTAL,t.exports=r},767:(t,e,i)=>{var n=i(551).FDLayoutEdge;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},880:(t,e,i)=>{var n=i(551).LGraph;function r(t,e,i){n.call(this,t,e,i)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},578:(t,e,i)=>{var n=i(551).LGraphManager;function r(t){n.call(this,t)}for(var o in r.prototype=Object.create(n.prototype),n)r[o]=n[o];t.exports=r},765:(t,e,i)=>{var n=i(551).FDLayout,r=i(578),o=i(880),a=i(991),s=i(767),h=i(806),l=i(902),d=i(551).FDLayoutConstants,c=i(551).LayoutConstants,g=i(551).Point,u=i(551).PointD,p=i(551).DimensionD,f=i(551).Layout,m=i(551).Integer,v=i(551).IGeometry,y=i(551).LGraph,E=i(551).Transform,N=i(551).LinkedList;function T(){n.call(this),this.toBeTiled={},this.constraints={}}for(var A in T.prototype=Object.create(n.prototype),n)T[A]=n[A];T.prototype.newGraphManager=function(){var t=new r(this);return this.graphManager=t,t},T.prototype.newGraph=function(t){return new o(null,this.graphManager,t)},T.prototype.newNode=function(t){return new a(this.graphManager,t)},T.prototype.newEdge=function(t){return new s(null,null,t)},T.prototype.initParameters=function(){n.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},T.prototype.initSpringEmbedder=function(){n.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},T.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},T.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)h.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),i=this.nodesWithGravity.filter((function(t){return e.has(t)})),this.graphManager.setAllNodesToApplyGravitation(i));else{var t=this.getFlatForest();if(t.length>0)this.positionNodesRadially(t);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),i=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(i),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(l.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var i=!this.isTreeGrowing&&!this.isGrowthFinished,n=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(i,n),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},i=0;i0&&this.updateDisplacements(),e=0;e0&&(n.fixedNodeWeight=o)}if(this.constraints.relativePlacementConstraint){var a=new Map,s=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach((function(e){t.fixedNodesOnHorizontal.add(e),t.fixedNodesOnVertical.add(e)})),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){var l=this.constraints.alignmentConstraint.vertical;for(i=0;i=2*t.length/3;n--)e=Math.floor(Math.random()*(n+1)),i=t[n],t[n]=t[e],t[e]=i;return t},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach((function(e){if(e.left){var i=a.has(e.left)?a.get(e.left):e.left,n=a.has(e.right)?a.get(e.right):e.right;t.nodesInRelativeHorizontal.includes(i)||(t.nodesInRelativeHorizontal.push(i),t.nodeToRelativeConstraintMapHorizontal.set(i,[]),t.dummyToNodeForVerticalAlignment.has(i)?t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(i)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(i).getCenterX())),t.nodesInRelativeHorizontal.includes(n)||(t.nodesInRelativeHorizontal.push(n),t.nodeToRelativeConstraintMapHorizontal.set(n,[]),t.dummyToNodeForVerticalAlignment.has(n)?t.nodeToTempPositionMapHorizontal.set(n,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(n)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(n,t.idToNodeMap.get(n).getCenterX())),t.nodeToRelativeConstraintMapHorizontal.get(i).push({right:n,gap:e.gap}),t.nodeToRelativeConstraintMapHorizontal.get(n).push({left:i,gap:e.gap})}else{var r=s.has(e.top)?s.get(e.top):e.top,o=s.has(e.bottom)?s.get(e.bottom):e.bottom;t.nodesInRelativeVertical.includes(r)||(t.nodesInRelativeVertical.push(r),t.nodeToRelativeConstraintMapVertical.set(r,[]),t.dummyToNodeForHorizontalAlignment.has(r)?t.nodeToTempPositionMapVertical.set(r,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(r)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(r,t.idToNodeMap.get(r).getCenterY())),t.nodesInRelativeVertical.includes(o)||(t.nodesInRelativeVertical.push(o),t.nodeToRelativeConstraintMapVertical.set(o,[]),t.dummyToNodeForHorizontalAlignment.has(o)?t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(o)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(o).getCenterY())),t.nodeToRelativeConstraintMapVertical.get(r).push({bottom:o,gap:e.gap}),t.nodeToRelativeConstraintMapVertical.get(o).push({top:r,gap:e.gap})}}));else{var c=new Map,g=new Map;this.constraints.relativePlacementConstraint.forEach((function(t){if(t.left){var e=a.has(t.left)?a.get(t.left):t.left,i=a.has(t.right)?a.get(t.right):t.right;c.has(e)?c.get(e).push(i):c.set(e,[i]),c.has(i)?c.get(i).push(e):c.set(i,[e])}else{var n=s.has(t.top)?s.get(t.top):t.top,r=s.has(t.bottom)?s.get(t.bottom):t.bottom;g.has(n)?g.get(n).push(r):g.set(n,[r]),g.has(r)?g.get(r).push(n):g.set(r,[n])}}));var u=function(t,e){var i=[],n=[],r=new N,o=new Set,a=0;return t.forEach((function(s,h){if(!o.has(h)){i[a]=[],n[a]=!1;var l=h;for(r.push(l),o.add(l),i[a].push(l);0!=r.length;)l=r.shift(),e.has(l)&&(n[a]=!0),t.get(l).forEach((function(t){o.has(t)||(r.push(t),o.add(t),i[a].push(t))}));a++}})),{components:i,isFixed:n}},p=u(c,t.fixedNodesOnHorizontal);this.componentsOnHorizontal=p.components,this.fixedComponentsOnHorizontal=p.isFixed;var f=u(g,t.fixedNodesOnVertical);this.componentsOnVertical=f.components,this.fixedComponentsOnVertical=f.isFixed}}},T.prototype.updateDisplacements=function(){var t=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach((function(e){var i=t.idToNodeMap.get(e.nodeId);i.displacementX=0,i.displacementY=0})),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var e=this.constraints.alignmentConstraint.vertical,i=0;i1)for(s=0;sn&&(n=Math.floor(a.y)),o=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new u(c.WORLD_CENTER_X-a.x/2,c.WORLD_CENTER_Y-a.y/2))},T.radialLayout=function(t,e,i){var n=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(e,null,0,359,0,n);var r=y.calculateBounds(t),o=new E;o.setDeviceOrgX(r.getMinX()),o.setDeviceOrgY(r.getMinY()),o.setWorldOrgX(i.x),o.setWorldOrgY(i.y);for(var a=0;a1;){var m=f[0];f.splice(0,1);var y=d.indexOf(m);y>=0&&d.splice(y,1),p--,c--}g=null!=e?(d.indexOf(f[0])+1)%p:0;for(var E=Math.abs(n-i)/c,N=g;u!=c;N=++N%p){var A=d[N].getOtherEnd(t);if(A!=e){var w=(i+u*E)%360,L=(w+E)%360;T.branchRadialLayout(A,t,w,L,r+o,o),u++}}},T.maxDiagonalInTree=function(t){for(var e=m.MIN_VALUE,i=0;ie&&(e=n)}return e},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var i=[],n=this.graphManager.getAllNodes(),r=0;r1){var n="DummyCompound_"+i;t.memberGroups[n]=e[i];var r=e[i][0].getParent(),o=new a(t.graphManager);o.id=n,o.paddingLeft=r.paddingLeft||0,o.paddingRight=r.paddingRight||0,o.paddingBottom=r.paddingBottom||0,o.paddingTop=r.paddingTop||0,t.idToDummyNode[n]=o;var s=t.getGraphManager().add(t.newGraph(),o),h=r.getChild();h.add(o);for(var l=0;lr?(n.rect.x-=(n.labelWidth-r)/2,n.setWidth(n.labelWidth),n.labelMarginLeft=(n.labelWidth-r)/2):"right"==n.labelPosHorizontal&&n.setWidth(r+n.labelWidth)),n.labelHeight&&("top"==n.labelPosVertical?(n.rect.y-=n.labelHeight,n.setHeight(o+n.labelHeight),n.labelMarginTop=n.labelHeight):"center"==n.labelPosVertical&&n.labelHeight>o?(n.rect.y-=(n.labelHeight-o)/2,n.setHeight(n.labelHeight),n.labelMarginTop=(n.labelHeight-o)/2):"bottom"==n.labelPosVertical&&n.setHeight(o+n.labelHeight))}}))},T.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],i=e.id,n=e.paddingLeft,r=e.paddingTop,o=e.labelMarginLeft,a=e.labelMarginTop;this.adjustLocations(this.tiledMemberPack[i],e.rect.x,e.rect.y,n,r,o,a)}},T.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(i){var n=t.idToDummyNode[i],r=n.paddingLeft,o=n.paddingTop,a=n.labelMarginLeft,s=n.labelMarginTop;t.adjustLocations(e[i],n.rect.x,n.rect.y,r,o,a,s)}))},T.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var i=t.getChild();if(null==i)return this.toBeTiled[e]=!1,!1;for(var n=i.getNodes(),r=0;r0)return this.toBeTiled[e]=!1,!1;if(null!=o.getChild()){if(!this.getToBeTiled(o))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[o.id]=!1}return this.toBeTiled[e]=!0,!0},T.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),i=0,n=0;nd&&(d=g.rect.height)}i+=d+t.verticalPadding}},T.prototype.tileCompoundMembers=function(t,e){var i=this;this.tiledMemberPack=[],Object.keys(t).forEach((function(n){var r=e[n];if(i.tiledMemberPack[n]=i.tileNodes(t[n],r.paddingLeft+r.paddingRight),r.rect.width=i.tiledMemberPack[n].width,r.rect.height=i.tiledMemberPack[n].height,r.setCenter(i.tiledMemberPack[n].centerX,i.tiledMemberPack[n].centerY),r.labelMarginLeft=0,r.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var o=r.rect.width,a=r.rect.height;r.labelWidth&&("left"==r.labelPosHorizontal?(r.rect.x-=r.labelWidth,r.setWidth(o+r.labelWidth),r.labelMarginLeft=r.labelWidth):"center"==r.labelPosHorizontal&&r.labelWidth>o?(r.rect.x-=(r.labelWidth-o)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-o)/2):"right"==r.labelPosHorizontal&&r.setWidth(o+r.labelWidth)),r.labelHeight&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(a+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>a?(r.rect.y-=(r.labelHeight-a)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-a)/2):"bottom"==r.labelPosVertical&&r.setHeight(a+r.labelHeight))}}))},T.prototype.tileNodes=function(t,e){var i=this.tileNodesByFavoringDim(t,e,!0),n=this.tileNodesByFavoringDim(t,e,!1),r=this.getOrgRatio(i);return this.getOrgRatio(n)s&&(s=t.getWidth())}));var l,d=o/r,c=a/r,g=Math.pow(i-n,2)+4*(d+n)*(c+i)*r,u=(n-i+Math.sqrt(g))/(2*(d+n));e?(l=Math.ceil(u))==u&&l++:l=Math.floor(u);var p=l*(d+n)-n;return s>p&&(p=s),p+=2*n},T.prototype.tileNodesByFavoringDim=function(t,e,i){var n=h.TILING_PADDING_VERTICAL,r=h.TILING_PADDING_HORIZONTAL,o=h.TILING_COMPARE_BY,a={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:n,horizontalPadding:r,centerX:0,centerY:0};o&&(a.idealRowWidth=this.calcIdealRowWidth(t,i));var s=function(t){return t.rect.width*t.rect.height},l=function(t,e){return s(e)-s(t)};t.sort((function(t,e){var i=l;return a.idealRowWidth?(i=o)(t.id,e.id):i(t,e)}));for(var d=0,c=0,g=0;g0&&(o+=t.horizontalPadding),t.rowWidth[i]=o,t.width0&&(a+=t.verticalPadding);var s=0;a>t.rowHeight[i]&&(s=t.rowHeight[i],t.rowHeight[i]=a,s=t.rowHeight[i]-s),t.height+=s,t.rows[i].push(e)},T.prototype.getShortestRowIndex=function(t){for(var e=-1,i=Number.MAX_VALUE,n=0;ni&&(e=n,i=t.rowWidth[n]);return e},T.prototype.canAddHorizontal=function(t,e,i){if(t.idealRowWidth){var n=t.rows.length-1;return t.rowWidth[n]+e+t.horizontalPadding<=t.idealRowWidth}var r=this.getShortestRowIndex(t);if(r<0)return!0;var o=t.rowWidth[r];if(o+t.horizontalPadding+e<=t.width)return!0;var a,s,h=0;return t.rowHeight[r]0&&(h=i+t.verticalPadding-t.rowHeight[r]),a=t.width-o>=e+t.horizontalPadding?(t.height+h)/(o+e+t.horizontalPadding):(t.height+h)/t.width,h=i+t.verticalPadding,(s=t.widtho&&e!=i){n.splice(-1,1),t.rows[i].push(r),t.rowWidth[e]=t.rowWidth[e]-o,t.rowWidth[i]=t.rowWidth[i]+o,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var a=Number.MIN_VALUE,s=0;sa&&(a=n[s].height);e>0&&(a+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[i];t.rowHeight[e]=a,t.rowHeight[i]0)for(var c=r;c<=o;c++)l[0]+=this.grid[c][a-1].length+this.grid[c][a].length-1;if(o0)for(c=a;c<=s;c++)l[3]+=this.grid[r-1][c].length+this.grid[r][c].length-1;for(var g,u,p=m.MAX_VALUE,f=0;f{var n=i(551).FDLayoutNode,r=i(551).IMath;function o(t,e,i,r){n.call(this,t,e,i,r)}for(var a in o.prototype=Object.create(n.prototype),n)o[a]=n[a];o.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();null!=this.getChild()&&this.fixedNodeWeight?(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*r.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},o.prototype.propogateDisplacementToChildren=function(t,e){for(var i,n=this.getChild().getNodes(),r=0;r{function n(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e0){var o=0;n.forEach((function(t){"horizontal"==e?(c.set(t,h.has(t)?l[h.get(t)]:r.get(t)),o+=c.get(t)):(c.set(t,h.has(t)?d[h.get(t)]:r.get(t)),o+=c.get(t))})),o/=n.length,t.forEach((function(t){i.has(t)||c.set(t,o)}))}else{var a=0;t.forEach((function(t){a+="horizontal"==e?h.has(t)?l[h.get(t)]:r.get(t):h.has(t)?d[h.get(t)]:r.get(t)})),a/=t.length,t.forEach((function(t){c.set(t,a)}))}}));for(var p=function(){var n=u.shift();t.get(n).forEach((function(t){if(c.get(t.id)a&&(a=y),Es&&(s=E)}}catch(C){u=!0,p=C}finally{try{!g&&m.return&&m.return()}finally{if(u)throw p}}var N=(n+a)/2-(o+s)/2,T=!0,A=!1,w=void 0;try{for(var L,I=t[Symbol.iterator]();!(T=(L=I.next()).done);T=!0){var _=L.value;c.set(_,c.get(_)+N)}}catch(C){A=!0,w=C}finally{try{!T&&I.return&&I.return()}finally{if(A)throw w}}}))}return c},v=function(t){var e=0,i=0,n=0,r=0;if(t.forEach((function(t){t.left?l[h.get(t.left)]-l[h.get(t.right)]>=0?e++:i++:d[h.get(t.top)]-d[h.get(t.bottom)]>=0?n++:r++})),e>i&&n>r)for(var o=0;oi)for(var a=0;ar)for(var s=0;s1)e.fixedNodeConstraint.forEach((function(t,e){T[e]=[t.position.x,t.position.y],A[e]=[l[h.get(t.nodeId)],d[h.get(t.nodeId)]]})),w=!0;else if(e.alignmentConstraint)!function(){var t=0;if(e.alignmentConstraint.vertical){for(var i=e.alignmentConstraint.vertical,r=function(e){var r=new Set;i[e].forEach((function(t){r.add(t)}));var o=new Set([].concat(n(r)).filter((function(t){return I.has(t)}))),a=void 0;a=o.size>0?l[h.get(o.values().next().value)]:f(r).x,i[e].forEach((function(e){T[t]=[a,d[h.get(e)]],A[t]=[l[h.get(e)],d[h.get(e)]],t++}))},o=0;o0?l[h.get(r.values().next().value)]:f(i).y,a[e].forEach((function(e){T[t]=[l[h.get(e)],o],A[t]=[l[h.get(e)],d[h.get(e)]],t++}))},c=0;cx&&(x=M[D].length,O=D);if(x0){var j={x:0,y:0};e.fixedNodeConstraint.forEach((function(t,e){var i,n,r={x:l[h.get(t.nodeId)],y:d[h.get(t.nodeId)]},o=t.position,a=(n=r,{x:(i=o).x-n.x,y:i.y-n.y});j.x+=a.x,j.y+=a.y})),j.x/=e.fixedNodeConstraint.length,j.y/=e.fixedNodeConstraint.length,l.forEach((function(t,e){l[e]+=j.x})),d.forEach((function(t,e){d[e]+=j.y})),e.fixedNodeConstraint.forEach((function(t){l[h.get(t.nodeId)]=t.position.x,d[h.get(t.nodeId)]=t.position.y}))}if(e.alignmentConstraint){if(e.alignmentConstraint.vertical)for(var q=e.alignmentConstraint.vertical,$=function(t){var e=new Set;q[t].forEach((function(t){e.add(t)}));var i=new Set([].concat(n(e)).filter((function(t){return I.has(t)}))),r=void 0;r=i.size>0?l[h.get(i.values().next().value)]:f(e).x,e.forEach((function(t){I.has(t)||(l[h.get(t)]=r)}))},Z=0;Z0?d[h.get(i.values().next().value)]:f(e).y,e.forEach((function(t){I.has(t)||(d[h.get(t)]=r)}))},K=0;K{e.exports=t}},i={},function t(n){var r=i[n];if(void 0!==r)return r.exports;var o=i[n]={exports:{}};return e[n](o,o.exports,t),o.exports}(45);var e,i},C.exports=t(x()));var t}const D=A(_.exports=function(t){return e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n{var n=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var i=[],n=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(n=(a=s.next()).done)&&(i.push(a.value),!e||i.length!==e);n=!0);}catch(h){r=!0,o=h}finally{try{!n&&s.return&&s.return()}finally{if(r)throw o}}return i}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=i(140).layoutBase.LinkedList,o={getTopMostNodes:function(t){for(var e={},i=0;i0&&l.merge(t)}));for(var d=0;d1){l=s[0],d=l.connectedEdges().length,s.forEach((function(t){t.connectedEdges().length0&&n.set("dummy"+(n.size+1),u),p},relocateComponent:function(t,e,i){if(!i.fixedNodeConstraint){var r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;if("draft"==i.quality){var h=!0,l=!1,d=void 0;try{for(var c,g=e.nodeIndexes[Symbol.iterator]();!(h=(c=g.next()).done);h=!0){var u=c.value,p=n(u,2),f=p[0],m=p[1],v=i.cy.getElementById(f);if(v){var y=v.boundingBox(),E=e.xCoords[m]-y.w/2,N=e.xCoords[m]+y.w/2,T=e.yCoords[m]-y.h/2,A=e.yCoords[m]+y.h/2;Eo&&(o=N),Ts&&(s=A)}}}catch(C){l=!0,d=C}finally{try{!h&&g.return&&g.return()}finally{if(l)throw d}}var w=t.x-(o+r)/2,L=t.y-(s+a)/2;e.xCoords=e.xCoords.map((function(t){return t+w})),e.yCoords=e.yCoords.map((function(t){return t+L}))}else{Object.keys(e).forEach((function(t){var i=e[t],n=i.getRect().x,h=i.getRect().x+i.getRect().width,l=i.getRect().y,d=i.getRect().y+i.getRect().height;no&&(o=h),ls&&(s=d)}));var I=t.x-(o+r)/2,_=t.y-(s+a)/2;Object.keys(e).forEach((function(t){var i=e[t];i.setCenter(i.getCenterX()+I,i.getCenterY()+_)}))}}},calcBoundingBox:function(t,e,i,n){for(var r=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,h=void 0,l=void 0,d=void 0,c=void 0,g=t.descendants().not(":parent"),u=g.length,p=0;p(h=e[n.get(f.id())]-f.width()/2)&&(r=h),o<(l=e[n.get(f.id())]+f.width()/2)&&(o=l),a>(d=i[n.get(f.id())]-f.height()/2)&&(a=d),s<(c=i[n.get(f.id())]+f.height()/2)&&(s=c)}var m={};return m.topLeftX=r,m.topLeftY=a,m.width=o-r,m.height=s-a,m},calcParentsWithoutChildren:function(t,e){var i=t.collection();return e.nodes(":parent").forEach((function(t){var e=!1;t.children().forEach((function(t){"none"!=t.css("display")&&(e=!0)})),e||i.merge(t)})),i}};t.exports=o},816:(t,e,i)=>{var n=i(548),r=i(140).CoSELayout,o=i(140).CoSENode,a=i(140).layoutBase.PointD,s=i(140).layoutBase.DimensionD,h=i(140).layoutBase.LayoutConstants,l=i(140).layoutBase.FDLayoutConstants,d=i(140).CoSEConstants;t.exports={coseLayout:function(t,e){var i=t.cy,c=t.eles,g=c.nodes(),u=c.edges(),p=void 0,f=void 0,m=void 0,v={};t.randomize&&(p=e.nodeIndexes,f=e.xCoords,m=e.yCoords);var y=function(t){return"function"==typeof t},E=function(t,e){return y(t)?t(e):t},N=n.calcParentsWithoutChildren(i,c);null!=t.nestingFactor&&(d.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(d.DEFAULT_GRAVITY_STRENGTH=l.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(d.MAX_ITERATIONS=l.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(d.DEFAULT_GRAVITY_RANGE_FACTOR=l.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(d.DEFAULT_COMPOUND_GRAVITY_STRENGTH=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(d.DEFAULT_COOLING_FACTOR_INCREMENTAL=l.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),null!=t.tilingCompareBy&&(d.TILING_COMPARE_BY=t.tilingCompareBy),"proof"==t.quality?h.QUALITY=2:h.QUALITY=0,d.NODE_DIMENSIONS_INCLUDE_LABELS=l.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!t.randomize,d.ANIMATE=l.ANIMATE=h.ANIMATE=t.animate,d.TILE=t.tile,d.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,d.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,d.PURE_INCREMENTAL=!t.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=t.uniformNodeDimensions,"transformed"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!1),"enforced"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!1),"cose"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!0),"all"==t.step&&(t.randomize?d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!0),t.fixedNodeConstraint||t.alignmentConstraint||t.relativePlacementConstraint?d.TREE_REDUCTION_ON_INCREMENTAL=!1:d.TREE_REDUCTION_ON_INCREMENTAL=!0;var T,A,w=new r,L=w.newGraphManager();return function t(e,i,r,h){for(var l=i.length,d=0;d0&&t(r.getGraphManager().add(r.newGraph(),u),g,r,h)}}(L.addRoot(),n.getTopMostNodes(g),w,t),function(e,i,n){for(var r=0,o=0,a=0;a0?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=r/o:y(t.idealEdgeLength)?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=50:d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=t.idealEdgeLength,d.MIN_REPULSION_DIST=l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,d.DEFAULT_RADIAL_SEPARATION=l.DEFAULT_EDGE_LENGTH)}(w,L,u),T=w,(A=t).fixedNodeConstraint&&(T.constraints.fixedNodeConstraint=A.fixedNodeConstraint),A.alignmentConstraint&&(T.constraints.alignmentConstraint=A.alignmentConstraint),A.relativePlacementConstraint&&(T.constraints.relativePlacementConstraint=A.relativePlacementConstraint),w.runLayout(),v}}},212:(t,e,i)=>{var n=function(){function t(t,e){for(var i=0;i0)if(c){var g=o.getTopMostNodes(t.eles.nodes());if((h=o.connectComponents(e,t.eles,g)).forEach((function(t){var e=t.boundingBox();l.push({x:e.x1+e.w/2,y:e.y1+e.h/2})})),t.randomize&&h.forEach((function(e){t.eles=e,n.push(a(t))})),"default"==t.quality||"proof"==t.quality){var u=e.collection();if(t.tile){var p=0,f={nodeIndexes:new Map,xCoords:[],yCoords:[]},m=[];if(h.forEach((function(t,e){0==t.edges().length&&(t.nodes().forEach((function(e,i){u.merge(t.nodes()[i]),e.isParent()||(f.nodeIndexes.set(t.nodes()[i].id(),p++),f.xCoords.push(t.nodes()[0].position().x),f.yCoords.push(t.nodes()[0].position().y))})),m.push(e))})),u.length>1){var v=u.boundingBox();l.push({x:v.x1+v.w/2,y:v.y1+v.h/2}),h.push(u),n.push(f);for(var y=m.length-1;y>=0;y--)h.splice(m[y],1),n.splice(m[y],1),l.splice(m[y],1)}}h.forEach((function(e,i){t.eles=e,r.push(s(t,n[i])),o.relocateComponent(l[i],r[i],t)}))}else h.forEach((function(e,i){o.relocateComponent(l[i],n[i],t)}));var E=new Set;if(h.length>1){var N=[],T=i.filter((function(t){return"none"==t.css("display")}));h.forEach((function(e,i){var a=void 0;if("draft"==t.quality&&(a=n[i].nodeIndexes),e.nodes().not(T).length>0){var s={edges:[],nodes:[]},h=void 0;e.nodes().not(T).forEach((function(e){if("draft"==t.quality)if(e.isParent()){var l=o.calcBoundingBox(e,n[i].xCoords,n[i].yCoords,a);s.nodes.push({x:l.topLeftX,y:l.topLeftY,width:l.width,height:l.height})}else h=a.get(e.id()),s.nodes.push({x:n[i].xCoords[h]-e.boundingbox().w/2,y:n[i].yCoords[h]-e.boundingbox().h/2,width:e.boundingbox().w,height:e.boundingbox().h});else r[i][e.id()]&&s.nodes.push({x:r[i][e.id()].getLeft(),y:r[i][e.id()].getTop(),width:r[i][e.id()].getWidth(),height:r[i][e.id()].getHeight()})})),e.edges().forEach((function(e){var h=e.source(),l=e.target();if("none"!=h.css("display")&&"none"!=l.css("display"))if("draft"==t.quality){var d=a.get(h.id()),c=a.get(l.id()),g=[],u=[];if(h.isParent()){var p=o.calcBoundingBox(h,n[i].xCoords,n[i].yCoords,a);g.push(p.topLeftX+p.width/2),g.push(p.topLeftY+p.height/2)}else g.push(n[i].xCoords[d]),g.push(n[i].yCoords[d]);if(l.isParent()){var f=o.calcBoundingBox(l,n[i].xCoords,n[i].yCoords,a);u.push(f.topLeftX+f.width/2),u.push(f.topLeftY+f.height/2)}else u.push(n[i].xCoords[c]),u.push(n[i].yCoords[c]);s.edges.push({startX:g[0],startY:g[1],endX:u[0],endY:u[1]})}else r[i][h.id()]&&r[i][l.id()]&&s.edges.push({startX:r[i][h.id()].getCenterX(),startY:r[i][h.id()].getCenterY(),endX:r[i][l.id()].getCenterX(),endY:r[i][l.id()].getCenterY()})})),s.nodes.length>0&&(N.push(s),E.add(i))}}));var A=d.packComponents(N,t.randomize).shifts;if("draft"==t.quality)n.forEach((function(t,e){var i=t.xCoords.map((function(t){return t+A[e].dx})),n=t.yCoords.map((function(t){return t+A[e].dy}));t.xCoords=i,t.yCoords=n}));else{var w=0;E.forEach((function(t){Object.keys(r[t]).forEach((function(e){var i=r[t][e];i.setCenter(i.getCenterX()+A[w].dx,i.getCenterY()+A[w].dy)})),w++}))}}}else{var L=t.eles.boundingBox();if(l.push({x:L.x1+L.w/2,y:L.y1+L.h/2}),t.randomize){var I=a(t);n.push(I)}"default"==t.quality||"proof"==t.quality?(r.push(s(t,n[0])),o.relocateComponent(l[0],r[0],t)):o.relocateComponent(l[0],n[0],t)}var _=function(e,i){if("default"==t.quality||"proof"==t.quality){"number"==typeof e&&(e=i);var o=void 0,a=void 0,s=e.data("id");return r.forEach((function(t){s in t&&(o={x:t[s].getRect().getCenterX(),y:t[s].getRect().getCenterY()},a=t[s])})),t.nodeDimensionsIncludeLabels&&(a.labelWidth&&("left"==a.labelPosHorizontal?o.x+=a.labelWidth/2:"right"==a.labelPosHorizontal&&(o.x-=a.labelWidth/2)),a.labelHeight&&("top"==a.labelPosVertical?o.y+=a.labelHeight/2:"bottom"==a.labelPosVertical&&(o.y-=a.labelHeight/2))),null==o&&(o={x:e.position("x"),y:e.position("y")}),{x:o.x,y:o.y}}var h=void 0;return n.forEach((function(t){var i=t.nodeIndexes.get(e.id());null!=i&&(h={x:t.xCoords[i],y:t.yCoords[i]})})),null==h&&(h={x:e.position("x"),y:e.position("y")}),{x:h.x,y:h.y}};if("default"==t.quality||"proof"==t.quality||t.randomize){var C=o.calcParentsWithoutChildren(e,i),M=i.filter((function(t){return"none"==t.css("display")}));t.eles=i.not(M),i.nodes().not(":parent").not(M).layoutPositions(this,t,_),C.length>0&&C.forEach((function(t){t.position(_(t))}))}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),t}();t.exports=l},657:(t,e,i)=>{var n=i(548),r=i(140).layoutBase.Matrix,o=i(140).layoutBase.SVD;t.exports={spectralLayout:function(t){var e=t.cy,i=t.eles,a=i.nodes(),s=i.nodes(":parent"),h=new Map,l=new Map,d=new Map,c=[],g=[],u=[],p=[],f=[],m=[],v=[],y=[],E=void 0,N=1e8,T=1e-9,A=t.piTol,w=t.samplingType,L=t.nodeSeparation,I=void 0,_=function(t,e,i){for(var n=[],r=0,o=0,a=0,s=void 0,h=[],d=0,g=1,u=0;u=r;){a=n[r++];for(var p=c[a],v=0;vd&&(d=f[T],g=T)}return g};n.connectComponents(e,i,n.getTopMostNodes(a),h),s.forEach((function(t){n.connectComponents(e,i,n.getTopMostNodes(t.descendants().intersection(i)),h)}));for(var C=0,M=0;M0&&(n.isParent()?c[e].push(d.get(n.id())):c[e].push(n.id()))}))}));var S=function(t){var i=l.get(t),n=void 0;h.get(t).forEach((function(r){n=e.getElementById(r).isParent()?d.get(r):r,c[i].push(n),c[l.get(n)].push(t)}))},P=!0,U=!1,Y=void 0;try{for(var k,H=h.keys()[Symbol.iterator]();!(P=(k=H.next()).done);P=!0)S(k.value)}catch(Z){U=!0,Y=Z}finally{try{!P&&H.return&&H.return()}finally{if(U)throw Y}}var X=void 0;if((E=l.size)>2){I=E=1)break;l=h}for(var p=0;p=1)break;l=h}for(var v=0;v{var n=i(212),r=function(t){t&&t("layout","fcose",n)};"undefined"!=typeof cytoscape&&r(cytoscape),t.exports=r},140:e=>{e.exports=t}},i={},function t(n){var r=i[n];if(void 0!==r)return r.exports;var o=i[n]={exports:{}};return e[n](o,o.exports,t),o.exports}(579);var e,i}(O()));var R={L:"left",R:"right",T:"top",B:"bottom"},b={L:e((t=>`${t},${t/2} 0,${t} 0,0`),"L"),R:e((t=>`0,${t/2} ${t},0 ${t},${t}`),"R"),T:e((t=>`0,0 ${t},0 ${t/2},${t}`),"T"),B:e((t=>`${t/2},0 ${t},${t} 0,${t}`),"B")},G={L:e(((t,e)=>t-e+2),"L"),R:e(((t,e)=>t-2),"R"),T:e(((t,e)=>t-e+2),"T"),B:e(((t,e)=>t-2),"B")},F=e((function(t){return P(t)?"L"===t?"R":"L":"T"===t?"B":"T"}),"getOppositeArchitectureDirection"),S=e((function(t){return"L"===t||"R"===t||"T"===t||"B"===t}),"isArchitectureDirection"),P=e((function(t){return"L"===t||"R"===t}),"isArchitectureDirectionX"),U=e((function(t){return"T"===t||"B"===t}),"isArchitectureDirectionY"),Y=e((function(t,e){const i=P(t)&&U(e),n=U(t)&&P(e);return i||n}),"isArchitectureDirectionXY"),k=e((function(t){const e=t[0],i=t[1],n=P(e)&&U(i),r=U(e)&&P(i);return n||r}),"isArchitecturePairXY"),H=e((function(t){return"LL"!==t&&"RR"!==t&&"TT"!==t&&"BB"!==t}),"isValidArchitectureDirectionPair"),X=e((function(t,e){const i=`${t}${e}`;return H(i)?i:void 0}),"getArchitectureDirectionPair"),z=e((function([t,e],i){const n=i[0],r=i[1];return P(n)?U(r)?[t+("L"===n?-1:1),e+("T"===r?1:-1)]:[t+("L"===n?-1:1),e]:P(r)?[t+("L"===r?1:-1),e+("T"===n?1:-1)]:[t,e+("T"===n?1:-1)]}),"shiftPositionByArchitectureDirectionPair"),B=e((function(t){return"LT"===t||"TL"===t?[1,1]:"BL"===t||"LB"===t?[1,-1]:"BR"===t||"RB"===t?[-1,-1]:[-1,1]}),"getArchitectureDirectionXYFactors"),V=e((function(t){return"service"===t.type}),"isArchitectureService"),W=e((function(t){return"junction"===t.type}),"isArchitectureJunction"),j=e((t=>t.data()),"edgeData"),q=e((t=>t.data()),"nodeData"),$=t.architecture,Z=new y((()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:$,dataStructures:void 0,elements:{}}))),J=e((()=>{Z.reset(),g()}),"clear"),Q=e((function({id:t,icon:e,in:i,title:n,iconText:r}){if(void 0!==Z.records.registeredIds[t])throw new Error(`The service id [${t}] is already in use by another ${Z.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw new Error(`The service [${t}] cannot be placed within itself`);if(void 0===Z.records.registeredIds[i])throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if("node"===Z.records.registeredIds[i])throw new Error(`The service [${t}]'s parent is not a group`)}Z.records.registeredIds[t]="node",Z.records.nodes[t]={id:t,type:"service",icon:e,iconText:r,title:n,edges:[],in:i}}),"addService"),K=e((()=>Object.values(Z.records.nodes).filter(V)),"getServices"),tt=e((function({id:t,in:e}){Z.records.registeredIds[t]="node",Z.records.nodes[t]={id:t,type:"junction",edges:[],in:e}}),"addJunction"),et=e((()=>Object.values(Z.records.nodes).filter(W)),"getJunctions"),it=e((()=>Object.values(Z.records.nodes)),"getNodes"),nt=e((t=>Z.records.nodes[t]),"getNode"),rt=e((function({id:t,icon:e,in:i,title:n}){if(void 0!==Z.records.registeredIds[t])throw new Error(`The group id [${t}] is already in use by another ${Z.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw new Error(`The group [${t}] cannot be placed within itself`);if(void 0===Z.records.registeredIds[i])throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if("node"===Z.records.registeredIds[i])throw new Error(`The group [${t}]'s parent is not a group`)}Z.records.registeredIds[t]="group",Z.records.groups[t]={id:t,icon:e,title:n,in:i}}),"addGroup"),ot=e((()=>Object.values(Z.records.groups)),"getGroups"),at=e((function({lhsId:t,rhsId:e,lhsDir:i,rhsDir:n,lhsInto:r,rhsInto:o,lhsGroup:a,rhsGroup:s,title:h}){if(!S(i))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${i}`);if(!S(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(void 0===Z.records.nodes[t]&&void 0===Z.records.groups[t])throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(void 0===Z.records.nodes[e]&&void 0===Z.records.groups[t])throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);const l=Z.records.nodes[t].in,d=Z.records.nodes[e].in;if(a&&l&&d&&l==d)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(s&&l&&d&&l==d)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const c={lhsId:t,lhsDir:i,lhsInto:r,lhsGroup:a,rhsId:e,rhsDir:n,rhsInto:o,rhsGroup:s,title:h};Z.records.edges.push(c),Z.records.nodes[t]&&Z.records.nodes[e]&&(Z.records.nodes[t].edges.push(Z.records.edges[Z.records.edges.length-1]),Z.records.nodes[e].edges.push(Z.records.edges[Z.records.edges.length-1]))}),"addEdge"),st=e((()=>Z.records.edges),"getEdges"),ht=e((()=>{if(void 0===Z.records.dataStructures){const t=Object.entries(Z.records.nodes).reduce(((t,[e,i])=>(t[e]=i.edges.reduce(((t,i)=>{if(i.lhsId===e){const e=X(i.lhsDir,i.rhsDir);e&&(t[e]=i.rhsId)}else{const e=X(i.rhsDir,i.lhsDir);e&&(t[e]=i.lhsId)}return t}),{}),t)),{}),i=Object.keys(t)[0],n={[i]:1},r=Object.keys(t).reduce(((t,e)=>e===i?t:{...t,[e]:1}),{}),o=e((e=>{const i={[e]:[0,0]},o=[e];for(;o.length>0;){const e=o.shift();if(e){n[e]=1,delete r[e];const a=t[e],[s,h]=i[e];Object.entries(a).forEach((([t,e])=>{n[e]||(i[e]=z([s,h],t),o.push(e))}))}}return i}),"BFS"),a=[o(i)];for(;Object.keys(r).length>0;)a.push(o(Object.keys(r)[0]));Z.records.dataStructures={adjList:t,spatialMaps:a}}return Z.records.dataStructures}),"getDataStructures"),lt={clear:J,setDiagramTitle:r,getDiagramTitle:o,setAccTitle:a,getAccTitle:s,setAccDescription:h,getAccDescription:l,addService:Q,getServices:K,addJunction:tt,getJunctions:et,getNodes:it,getNode:nt,addGroup:rt,getGroups:ot,addEdge:at,getEdges:st,setElementForId:e(((t,e)=>{Z.records.elements[t]=e}),"setElementForId"),getElementById:e((t=>Z.records.elements[t]),"getElementById"),getDataStructures:ht};function dt(t){const e=d().architecture;return(null==e?void 0:e[t])?e[t]:$[t]}e(dt,"getConfigField");var ct=e(((t,e)=>{v(t,e),t.groups.map(e.addGroup),t.services.map((t=>e.addService({...t,type:"service"}))),t.junctions.map((t=>e.addJunction({...t,type:"junction"}))),t.edges.map(e.addEdge)}),"populateDb"),gt={parse:e((async t=>{const e=await E("architecture",t);c.debug(e),ct(e,lt)}),"parse")},ut=e((t=>`\n .edge {\n stroke-width: ${t.archEdgeWidth};\n stroke: ${t.archEdgeColor};\n fill: none;\n }\n\n .arrow {\n fill: ${t.archEdgeArrowColor};\n }\n\n .node-bkg {\n fill: none;\n stroke: ${t.archGroupBorderColor};\n stroke-width: ${t.archGroupBorderWidth};\n stroke-dasharray: 8;\n }\n .node-icon-text {\n display: flex; \n align-items: center;\n }\n \n .node-icon-text > div {\n color: #fff;\n margin: 1px;\n height: fit-content;\n text-align: center;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n }\n`),"getStyles"),pt=e((t=>`${t}`),"wrapIcon"),ft={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:pt('')},server:{body:pt('')},disk:{body:pt('')},internet:{body:pt('')},cloud:{body:pt('')},unknown:i,blank:{body:pt("")}}},mt=e((async function(t,e){const i=dt("padding"),n=dt("iconSize"),r=n/2,o=n/6,a=o/2;await Promise.all(e.edges().map((async e=>{var n,s;const{source:h,sourceDir:l,sourceArrow:c,sourceGroup:g,target:u,targetDir:p,targetArrow:m,targetGroup:v,label:y}=j(e);let{x:E,y:N}=e[0].sourceEndpoint();const{x:T,y:A}=e[0].midpoint();let{x:w,y:L}=e[0].targetEndpoint();const I=i+4;if(g&&(P(l)?E+="L"===l?-I:I:N+="T"===l?-I:I+18),v&&(P(p)?w+="L"===p?-I:I:L+="T"===p?-I:I+18),g||"junction"!==(null==(n=lt.getNode(h))?void 0:n.type)||(P(l)?E+="L"===l?r:-r:N+="T"===l?r:-r),v||"junction"!==(null==(s=lt.getNode(u))?void 0:s.type)||(P(p)?w+="L"===p?r:-r:L+="T"===p?r:-r),e[0]._private.rscratch){const e=t.insert("g");if(e.insert("path").attr("d",`M ${E},${N} L ${T},${A} L${w},${L} `).attr("class","edge"),c){const t=P(l)?G[l](E,o):E-a,i=U(l)?G[l](N,o):N-a;e.insert("polygon").attr("points",b[l](o)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(m){const t=P(p)?G[p](w,o):w-a,i=U(p)?G[p](L,o):L-a;e.insert("polygon").attr("points",b[p](o)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(y){const t=Y(l,p)?"XY":P(l)?"X":"Y";let i=0;i="X"===t?Math.abs(E-w):"Y"===t?Math.abs(N-L)/1.5:Math.abs(E-w)/2;const n=e.append("g");if(await f(n,y,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},d()),n.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),"X"===t)n.attr("transform","translate("+T+", "+A+")");else if("Y"===t)n.attr("transform","translate("+T+", "+A+") rotate(-90)");else if("XY"===t){const t=X(l,p);if(t&&k(t)){const e=n.node().getBoundingClientRect(),[i,r]=B(t);n.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*i*r*45})`);const o=n.node().getBoundingClientRect();n.attr("transform",`\n translate(${T}, ${A-e.height/2})\n translate(${i*o.width/2}, ${r*o.height/2})\n rotate(${-1*i*r*45}, 0, ${e.height/2})\n `)}}}}})))}),"drawEdges"),vt=e((async function(t,e){const i=.75*dt("padding"),n=dt("fontSize"),r=dt("iconSize")/2;await Promise.all(e.nodes().map((async e=>{const o=q(e);if("group"===o.type){const{h:a,w:s,x1:h,y1:l}=e.boundingBox();t.append("rect").attr("x",h+r).attr("y",l+r).attr("width",s).attr("height",a).attr("class","node-bkg");const c=t.append("g");let g=h,u=l;if(o.icon){const t=c.append("g");t.html(`${await m(o.icon,{height:i,width:i,fallbackPrefix:ft.prefix})}`),t.attr("transform","translate("+(g+r+1)+", "+(u+r+1)+")"),g+=i,u+=n/2-1-2}if(o.label){const t=c.append("g");await f(t,o.label,{useHtmlLabels:!1,width:s,classes:"architecture-service-label"},d()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(g+r+4)+", "+(u+r+2)+")")}}})))}),"drawGroups"),yt=e((async function(t,e,i){for(const n of i){const i=e.append("g"),r=dt("iconSize");if(n.title){const t=i.append("g");await f(t,n.title,{useHtmlLabels:!1,width:1.5*r,classes:"architecture-service-label"},d()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+r/2+", "+r+")")}const o=i.append("g");if(n.icon)o.html(`${await m(n.icon,{height:r,width:r,fallbackPrefix:ft.prefix})}`);else if(n.iconText){o.html(`${await m("blank",{height:r,width:r,fallbackPrefix:ft.prefix})}`);const t=o.append("g").append("foreignObject").attr("width",r).attr("height",r).append("div").attr("class","node-icon-text").attr("style",`height: ${r}px;`).append("div").html(n.iconText),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((r-2)/e)};`)}else o.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${r} v${-r} q0,-5 5,-5 h${r} q5,0 5,5 v${r} H0 Z`);i.attr("class","architecture-service");const{width:a,height:s}=i._groups[0][0].getBBox();n.width=a,n.height=s,t.setElementForId(n.id,i)}return 0}),"drawServices"),Et=e((function(t,e,i){i.forEach((i=>{const n=e.append("g"),r=dt("iconSize");n.append("g").append("rect").attr("id","node-"+i.id).attr("fill-opacity","0").attr("width",r).attr("height",r),n.attr("class","architecture-junction");const{width:o,height:a}=n._groups[0][0].getBBox();n.width=o,n.height=a,t.setElementForId(i.id,n)}))}),"drawJunctions");function Nt(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:dt("iconSize"),height:dt("iconSize")},classes:"node-service"})}))}function Tt(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:dt("iconSize"),height:dt("iconSize")},classes:"node-junction"})}))}function At(t,e){e.nodes().map((e=>{const i=q(e);if("group"===i.type)return;i.x=e.position().x,i.y=e.position().y;t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")")}))}function wt(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})}))}function Lt(t,e){t.forEach((t=>{const{lhsId:i,rhsId:n,lhsInto:r,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:d}=t,c=Y(t.lhsDir,t.rhsDir)?"segments":"straight",g={id:`${i}-${n}`,label:d,source:i,sourceDir:s,sourceArrow:r,sourceGroup:o,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:n,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:g,classes:c})}))}function It(t){const e=t.map((t=>{const e={},i={};return Object.entries(t).forEach((([t,[n,r]])=>{e[r]||(e[r]=[]),i[n]||(i[n]=[]),e[r].push(t),i[n].push(t)})),{horiz:Object.values(e).filter((t=>t.length>1)),vert:Object.values(i).filter((t=>t.length>1))}})),[i,n]=e.reduce((([t,e],{horiz:i,vert:n})=>[[...t,...i],[...e,...n]]),[[],[]]);return{horizontal:i,vertical:n}}function _t(t){const i=[],n=e((t=>`${t[0]},${t[1]}`),"posToStr"),r=e((t=>t.split(",").map((t=>parseInt(t)))),"strToPos");return t.forEach((t=>{const e=Object.fromEntries(Object.entries(t).map((([t,e])=>[n(e),t]))),o=[n([0,0])],a={},s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;o.length>0;){const t=o.shift();if(t){a[t]=1;const h=e[t];if(h){const l=r(t);Object.entries(s).forEach((([t,r])=>{const s=n([l[0]+r[0],l[1]+r[1]]),d=e[s];d&&!a[s]&&(o.push(s),i.push({[R[t]]:d,[R[F(t)]]:h,gap:1.5*dt("iconSize")}))}))}}}})),i}function Ct(t,i,n,r,{spatialMaps:o}){return new Promise((a=>{const s=w("body").append("div").attr("id","cy").attr("style","display:none"),h=N({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${dt("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${dt("padding")}px`}}]});s.remove(),wt(n,h),Nt(t,h),Tt(i,h),Lt(r,h);const l=It(o),d=_t(o),g=h.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){const[e,i]=t.connectedNodes(),{parent:n}=q(e),{parent:r}=q(i);return n===r?1.5*dt("iconSize"):.5*dt("iconSize")},edgeElasticity(t){const[e,i]=t.connectedNodes(),{parent:n}=q(e),{parent:r}=q(i);return n===r?.45:.001},alignmentConstraint:l,relativePlacementConstraint:d});g.one("layoutstop",(()=>{var t;function i(t,e,i,n){let r,o;const{x:a,y:s}=t,{x:h,y:l}=e;o=(n-s+(a-i)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2)),r=Math.sqrt(Math.pow(n-s,2)+Math.pow(i-a,2)-Math.pow(o,2));r/=Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));let d=(h-a)*(n-s)-(l-s)*(i-a);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let c=(h-a)*(i-a)+(l-s)*(n-s);switch(!0){case c>=0:c=1;break;case c<0:c=-1}return o=Math.abs(o)*d,r*=c,{distances:o,weights:r}}e(i,"getSegmentWeights"),h.startBatch();for(const e of Object.values(h.edges()))if(null==(t=e.data)?void 0:t.call(e)){const{x:t,y:n}=e.source().position(),{x:r,y:o}=e.target().position();if(t!==r&&n!==o){const t=e.sourceEndpoint(),n=e.targetEndpoint(),{sourceDir:r}=j(e),[o,a]=U(r)?[t.x,n.y]:[n.x,t.y],{weights:s,distances:h}=i(t,n,o,a);e.style("segment-distances",h),e.style("segment-weights",s)}}h.endBatch(),g.run()})),g.run(),h.ready((t=>{c.info("Ready",t),a(h)}))}))}n([{name:ft.prefix,icons:ft}]),N.use(D),e(Nt,"addServices"),e(Tt,"addJunctions"),e(At,"positionNodes"),e(wt,"addGroups"),e(Lt,"addEdges"),e(It,"getAlignments"),e(_t,"getRelativeConstraints"),e(Ct,"layoutArchitecture");var Mt={parser:gt,db:lt,renderer:{draw:e((async(t,e,i,n)=>{const r=n.db,o=r.getServices(),a=r.getJunctions(),s=r.getGroups(),h=r.getEdges(),l=r.getDataStructures(),d=u(e),c=d.append("g");c.attr("class","architecture-edges");const g=d.append("g");g.attr("class","architecture-services");const f=d.append("g");f.attr("class","architecture-groups"),await yt(r,g,o),Et(r,g,a);const m=await Ct(o,a,s,h,l);await mt(c,m),await vt(f,m),At(r,m),p(void 0,d,dt("padding"),dt("useMaxWidth"))}),"draw")},styles:ut};export{Mt as diagram}; diff --git a/public/examples/ui/assets/asciiarmor-D5V0T9Cu.js b/public/examples/ui/assets/asciiarmor-D5V0T9Cu.js new file mode 100644 index 0000000..c83f396 --- /dev/null +++ b/public/examples/ui/assets/asciiarmor-D5V0T9Cu.js @@ -0,0 +1 @@ +function t(t){var e=t.match(/^\s*\S/);return t.skipToEnd(),e?"error":null}const e={name:"asciiarmor",token:function(e,a){var r;if("top"==a.state)return e.sol()&&(r=e.match(/^-----BEGIN (.*)?-----\s*$/))?(a.state="headers",a.type=r[1],"tag"):t(e);if("headers"==a.state){if(e.sol()&&e.match(/^\w+:/))return a.state="header","atom";var s=t(e);return s&&(a.state="body"),s}return"header"==a.state?(e.skipToEnd(),a.state="headers","string"):"body"==a.state?e.sol()&&(r=e.match(/^-----END (.*)?-----\s*$/))?r[1]!=a.type?"error":(a.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error"):"end"==a.state?t(e):void 0},blankLine:function(t){"headers"==t.state&&(t.state="body")},startState:function(){return{state:"top",type:null}}};export{e as asciiArmor}; diff --git a/public/examples/ui/assets/asn1-BhA3SgW2.js b/public/examples/ui/assets/asn1-BhA3SgW2.js new file mode 100644 index 0000000..ae7cbdc --- /dev/null +++ b/public/examples/ui/assets/asn1-BhA3SgW2.js @@ -0,0 +1 @@ +function e(e){for(var t={},n=e.split(" "),r=0;r?$/.test(r)?(i.extenExten=!0,i.extenStart=!1,"strong"):(i.extenStart=!1,a.skipToEnd(),"error")):i.extenExten?(i.extenExten=!1,i.extenPriority=!0,a.eatWhile(/[^,]/),i.extenInclude&&(a.skipToEnd(),i.extenPriority=!1,i.extenInclude=!1),i.extenSame&&(i.extenPriority=!1,i.extenSame=!1,i.extenApplication=!0),"tag"):i.extenPriority?(i.extenPriority=!1,i.extenApplication=!0,a.next(),i.extenSame?null:(a.eatWhile(/[^,]/),"number")):i.extenApplication?(a.eatWhile(/,/),","===(r=a.current())?null:(a.eatWhile(/\w/),r=a.current().toLowerCase(),i.extenApplication=!1,-1!==n.indexOf(r)?"def":null)):function(n,a){var i="",r=n.next();if(a.blockComment)return"-"==r&&n.match("-;",!0)?a.blockComment=!1:n.skipTo("--;")?(n.next(),n.next(),n.next(),a.blockComment=!1):n.skipToEnd(),"comment";if(";"==r)return n.match("--",!0)&&!n.match("-",!1)?(a.blockComment=!0,"comment"):(n.skipToEnd(),"comment");if("["==r)return n.skipTo("]"),n.eat("]"),"header";if('"'==r)return n.skipTo('"'),"string";if("'"==r)return n.skipTo("'"),"string.special";if("#"==r&&(n.eatWhile(/\w/),i=n.current(),-1!==t.indexOf(i)))return n.skipToEnd(),"strong";if("$"==r&&"{"==n.peek())return n.skipTo("}"),n.eat("}"),"variableName.special";if(n.eatWhile(/\w/),i=n.current(),-1!==e.indexOf(i)){switch(a.extenStart=!0,i){case"same":a.extenSame=!0;break;case"include":case"switch":case"ignorepat":a.extenInclude=!0}return"atom"}}(a,i)},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}};export{a as asterisk}; diff --git a/public/examples/ui/assets/blockDiagram-ZHA2E4KO-B7x1sU6L.js b/public/examples/ui/assets/blockDiagram-ZHA2E4KO-B7x1sU6L.js new file mode 100644 index 0000000..d63af1d --- /dev/null +++ b/public/examples/ui/assets/blockDiagram-ZHA2E4KO-B7x1sU6L.js @@ -0,0 +1 @@ +var t,e;import{_ as r,d as a,l as i,a1 as s,E as n,a2 as o,a3 as l,a4 as c,u as d,a5 as h,j as g,v as u,A as y,a6 as p,a7 as x,e as b,i as f}from"./mermaid-BlcZebEZ.js";import{c as m}from"./clone-DpSr3FgE.js";import{s as w}from"./transform-D6ULhE8R.js";import{G as k}from"./graph-CSbEHVjp.js";import{c as L}from"./channel-BLTxHfqb.js";import{l as S,k as _}from"./step-CaHXtLdi.js";import"./index-BnyyrSDd.js";import"./_baseUniq-CwCKmIJb.js";import"./_baseEach-BXuth7T0.js";var v=function(){var t=r((function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r}),"o"),e=[1,7],a=[1,13],i=[1,14],s=[1,15],n=[1,19],o=[1,16],l=[1,17],c=[1,18],d=[8,30],h=[8,21,28,29,30,31,32,40,44,47],g=[1,23],u=[1,24],y=[8,15,16,21,28,29,30,31,32,40,44,47],p=[8,15,16,21,27,28,29,30,31,32,40,44,47],x=[1,49],b={trace:r((function(){}),"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:r((function(t,e,r,a,i,s,n){var o=s.length-1;switch(i){case 4:a.getLogger().debug("Rule: separator (NL) ");break;case 5:a.getLogger().debug("Rule: separator (Space) ");break;case 6:a.getLogger().debug("Rule: separator (EOF) ");break;case 7:a.getLogger().debug("Rule: hierarchy: ",s[o-1]),a.setHierarchy(s[o-1]);break;case 8:a.getLogger().debug("Stop NL ");break;case 9:a.getLogger().debug("Stop EOF ");break;case 10:a.getLogger().debug("Stop NL2 ");break;case 11:a.getLogger().debug("Stop EOF2 ");break;case 12:a.getLogger().debug("Rule: statement: ",s[o]),"number"==typeof s[o].length?this.$=s[o]:this.$=[s[o]];break;case 13:a.getLogger().debug("Rule: statement #2: ",s[o-1]),this.$=[s[o-1]].concat(s[o]);break;case 14:a.getLogger().debug("Rule: link: ",s[o],t),this.$={edgeTypeStr:s[o],label:""};break;case 15:a.getLogger().debug("Rule: LABEL link: ",s[o-3],s[o-1],s[o]),this.$={edgeTypeStr:s[o],label:s[o-1]};break;case 18:const e=parseInt(s[o]),r=a.generateId();this.$={id:r,type:"space",label:"",width:e,children:[]};break;case 23:a.getLogger().debug("Rule: (nodeStatement link node) ",s[o-2],s[o-1],s[o]," typestr: ",s[o-1].edgeTypeStr);const i=a.edgeStrToEdgeData(s[o-1].edgeTypeStr);this.$=[{id:s[o-2].id,label:s[o-2].label,type:s[o-2].type,directions:s[o-2].directions},{id:s[o-2].id+"-"+s[o].id,start:s[o-2].id,end:s[o].id,label:s[o-1].label,type:"edge",directions:s[o].directions,arrowTypeEnd:i,arrowTypeStart:"arrow_open"},{id:s[o].id,label:s[o].label,type:a.typeStr2Type(s[o].typeStr),directions:s[o].directions}];break;case 24:a.getLogger().debug("Rule: nodeStatement (abc88 node size) ",s[o-1],s[o]),this.$={id:s[o-1].id,label:s[o-1].label,type:a.typeStr2Type(s[o-1].typeStr),directions:s[o-1].directions,widthInColumns:parseInt(s[o],10)};break;case 25:a.getLogger().debug("Rule: nodeStatement (node) ",s[o]),this.$={id:s[o].id,label:s[o].label,type:a.typeStr2Type(s[o].typeStr),directions:s[o].directions,widthInColumns:1};break;case 26:a.getLogger().debug("APA123",this?this:"na"),a.getLogger().debug("COLUMNS: ",s[o]),this.$={type:"column-setting",columns:"auto"===s[o]?-1:parseInt(s[o])};break;case 27:a.getLogger().debug("Rule: id-block statement : ",s[o-2],s[o-1]),a.generateId(),this.$={...s[o-2],type:"composite",children:s[o-1]};break;case 28:a.getLogger().debug("Rule: blockStatement : ",s[o-2],s[o-1],s[o]);const n=a.generateId();this.$={id:n,type:"composite",label:"",children:s[o-1]};break;case 29:a.getLogger().debug("Rule: node (NODE_ID separator): ",s[o]),this.$={id:s[o]};break;case 30:a.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",s[o-1],s[o]),this.$={id:s[o-1],label:s[o].label,typeStr:s[o].typeStr,directions:s[o].directions};break;case 31:a.getLogger().debug("Rule: dirList: ",s[o]),this.$=[s[o]];break;case 32:a.getLogger().debug("Rule: dirList: ",s[o-1],s[o]),this.$=[s[o-1]].concat(s[o]);break;case 33:a.getLogger().debug("Rule: nodeShapeNLabel: ",s[o-2],s[o-1],s[o]),this.$={typeStr:s[o-2]+s[o],label:s[o-1]};break;case 34:a.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",s[o-3],s[o-2]," #3:",s[o-1],s[o]),this.$={typeStr:s[o-3]+s[o],label:s[o-2],directions:s[o-1]};break;case 35:case 36:this.$={type:"classDef",id:s[o-1].trim(),css:s[o].trim()};break;case 37:this.$={type:"applyClass",id:s[o-1].trim(),styleClass:s[o].trim()};break;case 38:this.$={type:"applyStyles",id:s[o-1].trim(),stylesStr:s[o].trim()}}}),"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:a,29:i,31:s,32:n,40:o,44:l,47:c},{8:[1,20]},t(d,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:a,29:i,31:s,32:n,40:o,44:l,47:c}),t(h,[2,16],{14:22,15:g,16:u}),t(h,[2,17]),t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),t(h,[2,21]),t(h,[2,22]),t(y,[2,25],{27:[1,25]}),t(h,[2,26]),{19:26,26:12,32:n},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:a,29:i,31:s,32:n,40:o,44:l,47:c},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(p,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(d,[2,13]),{26:35,32:n},{32:[2,14]},{17:[1,36]},t(y,[2,24]),{11:37,13:4,14:22,15:g,16:u,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:a,29:i,31:s,32:n,40:o,44:l,47:c},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(p,[2,30]),{18:[1,43]},{18:[1,44]},t(y,[2,23]),{18:[1,45]},{30:[1,46]},t(h,[2,28]),t(h,[2,35]),t(h,[2,36]),t(h,[2,37]),t(h,[2,38]),{37:[1,47]},{34:48,35:x},{15:[1,50]},t(h,[2,27]),t(p,[2,33]),{39:[1,51]},{34:52,35:x,39:[2,31]},{32:[2,15]},t(p,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:r((function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)}),"parseError"),parse:r((function(t){var e=this,a=[0],i=[],s=[null],n=[],o=this.table,l="",c=0,d=0,h=n.slice.call(arguments,1),g=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);g.setInput(t,u.yy),u.yy.lexer=g,u.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var p=g.yylloc;n.push(p);var x=g.options&&g.options.ranges;function b(){var t;return"number"!=typeof(t=i.pop()||g.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,r((function(t){a.length=a.length-2*t,s.length=s.length-t,n.length=n.length-t}),"popStack"),r(b,"lex");for(var f,m,w,k,L,S,_,v,E={};;){if(m=a[a.length-1],this.defaultActions[m]?w=this.defaultActions[m]:(null==f&&(f=b()),w=o[m]&&o[m][f]),void 0===w||!w.length||!w[0]){var D="";for(L in v=[],o[m])this.terminals_[L]&&L>2&&v.push("'"+this.terminals_[L]+"'");D=g.showPosition?"Parse error on line "+(c+1)+":\n"+g.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(D,{text:g.match,token:this.terminals_[f]||f,line:g.yylineno,loc:p,expected:v})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(w[0]){case 1:a.push(f),s.push(g.yytext),n.push(g.yylloc),a.push(w[1]),f=null,d=g.yyleng,l=g.yytext,c=g.yylineno,p=g.yylloc;break;case 2:if(S=this.productions_[w[1]][1],E.$=s[s.length-S],E._$={first_line:n[n.length-(S||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(S||1)].first_column,last_column:n[n.length-1].last_column},x&&(E._$.range=[n[n.length-(S||1)].range[0],n[n.length-1].range[1]]),void 0!==(k=this.performAction.apply(E,[l,d,c,u.yy,w[1],s,n].concat(h))))return k;S&&(a=a.slice(0,-1*S*2),s=s.slice(0,-1*S),n=n.slice(0,-1*S)),a.push(this.productions_[w[1]][0]),s.push(E.$),n.push(E._$),_=o[a[a.length-2]][a[a.length-1]],a.push(_);break;case 3:return!0}}return!0}),"parse")},f=function(){return{EOF:1,parseError:r((function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)}),"parseError"),setInput:r((function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}),"setInput"),input:r((function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t}),"input"),unput:r((function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===a.length?this.yylloc.first_column:0)+a[a.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this}),"unput"),more:r((function(){return this._more=!0,this}),"more"),reject:r((function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"reject"),less:r((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:r((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:r((function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:r((function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:r((function(t,e){var r,a,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1}),"test_match"),next:r((function(){if(this.done)return this.EOF;var t,e,r,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;se[0].length)){if(e=r,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"next"),lex:r((function(){var t=this.next();return t||this.lex()}),"lex"),begin:r((function(t){this.conditionStack.push(t)}),"begin"),popState:r((function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]}),"popState"),_currentRules:r((function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules}),"_currentRules"),topState:r((function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"}),"topState"),pushState:r((function(t){this.begin(t)}),"pushState"),stateStackSize:r((function(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:r((function(t,e,r,a){switch(r){case 0:return 10;case 1:return t.getLogger().debug("Found space-block"),31;case 2:return t.getLogger().debug("Found nl-block"),31;case 3:return t.getLogger().debug("Found space-block"),29;case 4:t.getLogger().debug(".",e.yytext);break;case 5:t.getLogger().debug("_",e.yytext);break;case 6:return 5;case 7:return e.yytext=-1,28;case 8:return e.yytext=e.yytext.replace(/columns\s+/,""),t.getLogger().debug("COLUMNS (LEX)",e.yytext),28;case 9:case 77:case 78:case 100:this.pushState("md_string");break;case 10:return"MD_STR";case 11:case 35:case 80:this.popState();break;case 12:this.pushState("string");break;case 13:t.getLogger().debug("LEX: POPPING STR:",e.yytext),this.popState();break;case 14:return t.getLogger().debug("LEX: STR end:",e.yytext),"STR";case 15:return e.yytext=e.yytext.replace(/space\:/,""),t.getLogger().debug("SPACE NUM (LEX)",e.yytext),21;case 16:return e.yytext="1",t.getLogger().debug("COLUMNS (LEX)",e.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:case 39:case 41:case 42:case 45:return this.popState(),t.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),t.getLogger().debug("Lex: ))"),"NODE_DEND";case 43:return this.popState(),t.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),t.getLogger().debug("Lex: -)"),"NODE_DEND";case 46:return this.popState(),t.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),t.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),t.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:case 50:return this.popState(),t.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),t.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),t.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),t.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),t.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return t.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return t.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return t.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:case 60:case 61:case 62:case 65:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return t.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 63:return t.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return t.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 66:case 67:case 68:case 69:case 70:case 71:case 72:return this.pushState("NODE"),36;case 73:return t.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),t.getLogger().debug("LEX ARR START"),38;case 75:return t.getLogger().debug("Lex: NODE_ID",e.yytext),32;case 76:return t.getLogger().debug("Lex: EOF",e.yytext),8;case 79:return"NODE_DESCR";case 81:t.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:t.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return t.getLogger().debug("LEX: NODE_DESCR:",e.yytext),"NODE_DESCR";case 84:t.getLogger().debug("LEX POPPING"),this.popState();break;case 85:t.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (right): dir:",e.yytext),"DIR";case 87:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (left):",e.yytext),"DIR";case 88:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (x):",e.yytext),"DIR";case 89:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (y):",e.yytext),"DIR";case 90:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (up):",e.yytext),"DIR";case 91:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (down):",e.yytext),"DIR";case 92:return e.yytext="]>",t.getLogger().debug("Lex (ARROW_DIR end):",e.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 94:case 95:case 96:return t.getLogger().debug("Lex: LINK",e.yytext),15;case 97:case 98:case 99:return t.getLogger().debug("Lex: START_LINK",e.yytext),this.pushState("LLABEL"),16;case 101:return t.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 103:case 104:return this.popState(),t.getLogger().debug("Lex: LINK",e.yytext),15;case 105:return t.getLogger().debug("Lex: COLON",e.yytext),e.yytext=e.yytext.slice(1),27}}),"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}}}();function m(){this.yy={}}return b.lexer=f,r(m,"Parser"),m.prototype=b,b.Parser=m,new m}();v.parser=v;var E=v,D=new Map,$=[],T=new Map,C="color",N="fill",I=a(),B=new Map,z=r((t=>b.sanitizeText(t,I)),"sanitizeText"),R=r((function(t,e=""){let r=B.get(t);r||(r={id:t,styles:[],textStyles:[]},B.set(t,r)),null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(C).exec(t)){const t=e.replace(N,"bgFill").replace(C,N);r.textStyles.push(t)}r.styles.push(e)}))}),"addStyleClass"),O=r((function(t,e=""){const r=D.get(t);null!=e&&(r.styles=e.split(","))}),"addStyle2Node"),A=r((function(t,e){t.split(",").forEach((function(t){let r=D.get(t);if(void 0===r){const e=t.trim();r={id:e,type:"na",children:[]},D.set(e,r)}r.classes||(r.classes=[]),r.classes.push(e)}))}),"setCssClass"),M=r(((t,e)=>{const r=t.flat(),a=[];for(const i of r)if(i.label&&(i.label=z(i.label)),"classDef"!==i.type)if("applyClass"!==i.type)if("applyStyles"!==i.type)if("column-setting"===i.type)e.columns=i.columns??-1;else if("edge"===i.type){const t=(T.get(i.id)??0)+1;T.set(i.id,t),i.id=t+"-"+i.id,$.push(i)}else{i.label||("composite"===i.type?i.label="":i.label=i.id);const t=D.get(i.id);if(void 0===t?D.set(i.id,i):("na"!==i.type&&(t.type=i.type),i.label!==i.id&&(t.label=i.label)),i.children&&M(i.children,i),"space"===i.type){const t=i.width??1;for(let e=0;e{i.debug("Clear called"),u(),Y={id:"root",type:"composite",children:[],columns:-1},D=new Map([["root",Y]]),P=[],B=new Map,$=[],T=new Map}),"clear");function W(t){switch(i.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return i.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function F(t){return i.debug("typeStr2Type",t),"=="===t?"thick":"normal"}function j(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}r(W,"typeStr2Type"),r(F,"edgeTypeStr2Type"),r(j,"edgeStrToEdgeData");var H=0,U=r((()=>(H++,"id-"+Math.random().toString(36).substr(2,12)+"-"+H)),"generateId"),K=r((t=>{Y.children=t,M(t,Y),P=Y.children}),"setHierarchy"),q=r((t=>{const e=D.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1}),"getColumns"),Z=r((()=>[...D.values()]),"getBlocksFlat"),G=r((()=>P||[]),"getBlocks"),J=r((()=>$),"getEdges"),V=r((t=>D.get(t)),"getBlock"),Q=r((t=>{D.set(t.id,t)}),"setBlock"),tt=r((()=>console),"getLogger"),et=r((function(){return B}),"getClasses"),rt={getConfig:r((()=>n().block),"getConfig"),typeStr2Type:W,edgeTypeStr2Type:F,edgeStrToEdgeData:j,getLogger:tt,getBlocksFlat:Z,getBlocks:G,getEdges:J,setHierarchy:K,getBlock:V,setBlock:Q,getColumns:q,getClasses:et,clear:X,generateId:U},at=r(((t,e)=>{const r=L,a=r(t,"r"),i=r(t,"g"),s=r(t,"b");return y(a,i,s,e)}),"fade"),it=r((t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span,p {\n color: ${t.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${at(t.edgeLabelBackground,.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${at(t.mainBkg,.5)};\n fill: ${at(t.clusterBkg,.5)};\n stroke: ${at(t.clusterBorder,.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span,p {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`),"getStyles"),st=r(((t,e,r,a)=>{e.forEach((e=>{nt[e](t,r,a)}))}),"insertMarkers"),nt={extension:r(((t,e,r)=>{i.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")}),"extension"),composition:r(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"composition"),aggregation:r(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"aggregation"),dependency:r(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"dependency"),lollipop:r(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)}),"lollipop"),point:r(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"point"),circle:r(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"circle"),cross:r(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")}),"cross"),barb:r(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}),"barb")},ot=st,lt=(null==(e=null==(t=a())?void 0:t.block)?void 0:e.padding)??8;function ct(t,e){if(0===t||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(1===t)return{px:0,py:e};return{px:e%t,py:Math.floor(e/t)}}r(ct,"calculateBlockPosition");var dt=r((t=>{let e=0,r=0;for(const a of t.children){const{width:s,height:n,x:o,y:l}=a.size??{width:0,height:0,x:0,y:0};i.debug("getMaxChildSize abc95 child:",a.id,"width:",s,"height:",n,"x:",o,"y:",l,a.type),"space"!==a.type&&(s>e&&(e=s/(t.widthInColumns??1)),n>r&&(r=n))}return{width:e,height:r}}),"getMaxChildSize");function ht(t,e,r=0,a=0){var s,n,o,l,c,d,h,g,u,y,p;i.debug("setBlockSizes abc95 (start)",t.id,null==(s=null==t?void 0:t.size)?void 0:s.x,"block width =",null==t?void 0:t.size,"sieblingWidth",r),(null==(n=null==t?void 0:t.size)?void 0:n.width)||(t.size={width:r,height:a,x:0,y:0});let x=0,b=0;if((null==(o=t.children)?void 0:o.length)>0){for(const r of t.children)ht(r,e);const s=dt(t);x=s.width,b=s.height,i.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",x,b);for(const e of t.children)e.size&&(i.debug(`abc95 Setting size of children of ${t.id} id=${e.id} ${x} ${b} ${JSON.stringify(e.size)}`),e.size.width=x*(e.widthInColumns??1)+lt*((e.widthInColumns??1)-1),e.size.height=b,e.size.x=0,e.size.y=0,i.debug(`abc95 updating size of ${t.id} children child:${e.id} maxWidth:${x} maxHeight:${b}`));for(const r of t.children)ht(r,e,x,b);const n=t.columns??-1;let o=0;for(const e of t.children)o+=e.widthInColumns??1;let g=t.children.length;n>0&&n0?Math.min(t.children.length,n):t.children.length;if(e>0){const r=(y-e*lt-lt)/e;i.debug("abc95 (growing to fit) width",t.id,y,null==(h=t.size)?void 0:h.width,r);for(const e of t.children)e.size&&(e.size.width=r)}}t.size={width:y,height:p,x:0,y:0}}i.debug("setBlockSizes abc94 (done)",t.id,null==(g=null==t?void 0:t.size)?void 0:g.x,null==(u=null==t?void 0:t.size)?void 0:u.width,null==(y=null==t?void 0:t.size)?void 0:y.y,null==(p=null==t?void 0:t.size)?void 0:p.height)}function gt(t,e){var r,a,s,n,o,l,c,d,h,g,u,y,p,x,b,f,m;i.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${null==(r=null==t?void 0:t.size)?void 0:r.x} y: ${null==(a=null==t?void 0:t.size)?void 0:a.y} width: ${null==(s=null==t?void 0:t.size)?void 0:s.width}`);const w=t.columns??-1;if(i.debug("layoutBlocks columns abc95",t.id,"=>",w,t),t.children&&t.children.length>0){const e=(null==(o=null==(n=null==t?void 0:t.children[0])?void 0:n.size)?void 0:o.width)??0,r=t.children.length*e+(t.children.length-1)*lt;i.debug("widthOfChildren 88",r,"posX");let a=0;i.debug("abc91 block?.size?.x",t.id,null==(l=null==t?void 0:t.size)?void 0:l.x);let s=(null==(c=null==t?void 0:t.size)?void 0:c.x)?(null==(d=null==t?void 0:t.size)?void 0:d.x)+(-(null==(h=null==t?void 0:t.size)?void 0:h.width)/2||0):-lt,b=0;for(const n of t.children){const e=t;if(!n.size)continue;const{width:r,height:o}=n.size,{px:l,py:c}=ct(w,a);if(c!=b&&(b=c,s=(null==(g=null==t?void 0:t.size)?void 0:g.x)?(null==(u=null==t?void 0:t.size)?void 0:u.x)+(-(null==(y=null==t?void 0:t.size)?void 0:y.width)/2||0):-lt,i.debug("New row in layout for block",t.id," and child ",n.id,b)),i.debug(`abc89 layout blocks (child) id: ${n.id} Pos: ${a} (px, py) ${l},${c} (${null==(p=null==e?void 0:e.size)?void 0:p.x},${null==(x=null==e?void 0:e.size)?void 0:x.y}) parent: ${e.id} width: ${r}${lt}`),e.size){const t=r/2;n.size.x=s+lt+t,i.debug(`abc91 layout blocks (calc) px, pyid:${n.id} startingPos=X${s} new startingPosX${n.size.x} ${t} padding=${lt} width=${r} halfWidth=${t} => x:${n.size.x} y:${n.size.y} ${n.widthInColumns} (width * (child?.w || 1)) / 2 ${r*((null==n?void 0:n.widthInColumns)??1)/2}`),s=n.size.x+t,n.size.y=e.size.y-e.size.height/2+c*(o+lt)+o/2+lt,i.debug(`abc88 layout blocks (calc) px, pyid:${n.id}startingPosX${s}${lt}${t}=>x:${n.size.x}y:${n.size.y}${n.widthInColumns}(width * (child?.w || 1)) / 2${r*((null==n?void 0:n.widthInColumns)??1)/2}`)}n.children&>(n),a+=(null==n?void 0:n.widthInColumns)??1,i.debug("abc88 columnsPos",n,a)}}i.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${null==(b=null==t?void 0:t.size)?void 0:b.x} y: ${null==(f=null==t?void 0:t.size)?void 0:f.y} width: ${null==(m=null==t?void 0:t.size)?void 0:m.width}`)}function ut(t,{minX:e,minY:r,maxX:a,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&"root"!==t.id){const{x:s,y:n,width:o,height:l}=t.size;s-o/2a&&(a=s+o/2),n+l/2>i&&(i=n+l/2)}if(t.children)for(const s of t.children)({minX:e,minY:r,maxX:a,maxY:i}=ut(s,{minX:e,minY:r,maxX:a,maxY:i}));return{minX:e,minY:r,maxX:a,maxY:i}}function yt(t){const e=t.getBlock("root");if(!e)return;ht(e,t,0,0),gt(e),i.debug("getBlocks",JSON.stringify(e,null,2));const{minX:r,minY:a,maxX:s,maxY:n}=ut(e);return{x:r,y:a,width:s-r,height:n-a}}function pt(t,e){e&&t.attr("style",e)}function xt(t){const e=w(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,i=t.isNode?"nodeLabel":"edgeLabel",s=r.append("span");return s.html(a),pt(s,t.labelStyle),s.attr("class",i),pt(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}r(ht,"setBlockSizes"),r(gt,"layoutBlocks"),r(ut,"findBounds"),r(yt,"layout"),r(pt,"applyStyle"),r(xt,"addHtmlLabel");var bt=r(((t,e,r,s)=>{let n=t||"";if("object"==typeof n&&(n=n[0]),o(a().flowchart.htmlLabels)){n=n.replace(/\\n|\n/g,"
"),i.debug("vertexText"+n);return xt({isNode:s,label:p(x(n)),labelStyle:e.replace("fill:","color:")})}{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let a=[];a="string"==typeof n?n.split(/\\n|\n|/gi):Array.isArray(n)?n:[];for(const e of a){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}}),"createLabel"),ft=r(((t,e,r,a,i)=>{e.arrowTypeStart&&wt(t,"start",e.arrowTypeStart,r,a,i),e.arrowTypeEnd&&wt(t,"end",e.arrowTypeEnd,r,a,i)}),"addEdgeMarkers"),mt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},wt=r(((t,e,r,a,s,n)=>{const o=mt[r];if(!o)return void i.warn(`Unknown arrow type: ${r}`);const l="start"===e?"Start":"End";t.attr(`marker-${e}`,`url(${a}#${s}_${n}-${o}${l})`)}),"addEdgeMarker"),kt={},Lt={},St=r(((t,e)=>{const r=a(),i=o(r.flowchart.htmlLabels),s="markdown"===e.labelType?l(t,e.label,{style:e.labelStyle,useHtmlLabels:i,addSvgBackground:!0},r):bt(e.label,e.labelStyle),n=t.insert("g").attr("class","edgeLabel"),c=n.insert("g").attr("class","label");c.node().appendChild(s);let d,h=s.getBBox();if(i){const t=s.children[0],e=w(s);h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}if(c.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),kt[e.id]=n,e.width=h.width,e.height=h.height,e.startLabelLeft){const r=bt(e.startLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),i=a.insert("g").attr("class","inner");d=i.node().appendChild(r);const s=r.getBBox();i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),Lt[e.id]||(Lt[e.id]={}),Lt[e.id].startLeft=a,_t(d,e.startLabelLeft)}if(e.startLabelRight){const r=bt(e.startLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),i=a.insert("g").attr("class","inner");d=a.node().appendChild(r),i.node().appendChild(r);const s=r.getBBox();i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),Lt[e.id]||(Lt[e.id]={}),Lt[e.id].startRight=a,_t(d,e.startLabelRight)}if(e.endLabelLeft){const r=bt(e.endLabelLeft,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),i=a.insert("g").attr("class","inner");d=i.node().appendChild(r);const s=r.getBBox();i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(r),Lt[e.id]||(Lt[e.id]={}),Lt[e.id].endLeft=a,_t(d,e.endLabelLeft)}if(e.endLabelRight){const r=bt(e.endLabelRight,e.labelStyle),a=t.insert("g").attr("class","edgeTerminals"),i=a.insert("g").attr("class","inner");d=i.node().appendChild(r);const s=r.getBBox();i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(r),Lt[e.id]||(Lt[e.id]={}),Lt[e.id].endRight=a,_t(d,e.endLabelRight)}return s}),"insertEdgeLabel");function _t(t,e){a().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}r(_t,"setTerminalWidth");var vt=r(((t,e)=>{i.debug("Moving label abc88 ",t.id,t.label,kt[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath;const s=a(),{subGraphTitleTotalMargin:n}=c(s);if(t.label){const a=kt[t.id];let s=t.x,o=t.y;if(r){const a=d.calcLabelPosition(r);i.debug("Moving label "+t.label+" from (",s,",",o,") to (",a.x,",",a.y,") abc88"),e.updatedPath&&(s=a.x,o=a.y)}a.attr("transform",`translate(${s}, ${o+n/2})`)}if(t.startLabelLeft){const e=Lt[t.id].startLeft;let a=t.x,i=t.y;if(r){const e=d.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.startLabelRight){const e=Lt[t.id].startRight;let a=t.x,i=t.y;if(r){const e=d.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.endLabelLeft){const e=Lt[t.id].endLeft;let a=t.x,i=t.y;if(r){const e=d.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.endLabelRight){const e=Lt[t.id].endRight;let a=t.x,i=t.y;if(r){const e=d.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}}),"positionEdgeLabel"),Et=r(((t,e)=>{const r=t.x,a=t.y,i=Math.abs(e.x-r),s=Math.abs(e.y-a),n=t.width/2,o=t.height/2;return i>=n||s>=o}),"outsideNode"),Dt=r(((t,e,r)=>{i.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const a=t.x,s=t.y,n=Math.abs(a-r.x),o=t.width/2;let l=r.xMath.abs(a-e.x)*c){let t=r.y{i.debug("abc88 cutPathAtIntersect",t,e);let r=[],a=t[0],s=!1;return t.forEach((t=>{if(Et(e,t)||s)a=t,s||r.push(t);else{const i=Dt(e,a,t);let n=!1;r.forEach((t=>{n=n||t.x===i.x&&t.y===i.y})),r.some((t=>t.x===i.x&&t.y===i.y))||r.push(i),s=!0}})),r}),"cutPathAtIntersect"),Tt=r((function(t,e,r,s,n,o,l){let c=r.points;i.debug("abc88 InsertEdge: edge=",r,"e=",e);let d=!1;const g=o.node(e.v);var u=o.node(e.w);(null==u?void 0:u.intersect)&&(null==g?void 0:g.intersect)&&(c=c.slice(1,r.points.length-1),c.unshift(g.intersect(c[0])),c.push(u.intersect(c[c.length-1]))),r.toCluster&&(i.debug("to cluster abc88",s[r.toCluster]),c=$t(r.points,s[r.toCluster].node),d=!0),r.fromCluster&&(i.debug("from cluster abc88",s[r.fromCluster]),c=$t(c.reverse(),s[r.fromCluster].node).reverse(),d=!0);const y=c.filter((t=>!Number.isNaN(t.y)));let p=_;!r.curve||"graph"!==n&&"flowchart"!==n||(p=r.curve);const{x:x,y:b}=h(r),f=S().x(x).y(b).curve(p);let m;switch(r.thickness){case"normal":m="edge-thickness-normal";break;case"thick":case"invisible":m="edge-thickness-thick";break;default:m=""}switch(r.pattern){case"solid":m+=" edge-pattern-solid";break;case"dotted":m+=" edge-pattern-dotted";break;case"dashed":m+=" edge-pattern-dashed"}const w=t.append("path").attr("d",f(y)).attr("id",r.id).attr("class"," "+m+(r.classes?" "+r.classes:"")).attr("style",r.style);let k="";(a().flowchart.arrowMarkerAbsolute||a().state.arrowMarkerAbsolute)&&(k=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,k=k.replace(/\(/g,"\\("),k=k.replace(/\)/g,"\\)")),ft(w,r,k,l,n);let L={};return d&&(L.updatedPath=c),L.originalPath=r.points,L}),"insertEdge"),Ct=r((t=>{const e=new Set;for(const r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r)}return e}),"expandAndDeduplicateDirections"),Nt=r(((t,e,r)=>{const a=Ct(t),i=e.height+2*r.padding,s=i/2,n=e.width+2*s+r.padding,o=r.padding/2;return a.has("right")&&a.has("left")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*o},{x:n-s,y:0},{x:n,y:0},{x:n,y:-i/3},{x:n+2*o,y:-i/2},{x:n,y:-2*i/3},{x:n,y:-i},{x:n-s,y:-i},{x:n/2,y:-i-2*o},{x:s,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*o,y:-i/2},{x:0,y:-i/3}]:a.has("right")&&a.has("left")&&a.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}]:a.has("right")&&a.has("left")&&a.has("down")?[{x:0,y:0},{x:s,y:-i},{x:n-s,y:-i},{x:n,y:0}]:a.has("right")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-i+s},{x:0,y:-i}]:a.has("left")&&a.has("up")&&a.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-i+s},{x:n,y:-i}]:a.has("right")&&a.has("left")?[{x:s,y:0},{x:s,y:-o},{x:n-s,y:-o},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:n-s,y:-i+o},{x:s,y:-i+o},{x:s,y:-i},{x:0,y:-i/2}]:a.has("up")&&a.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:s,y:-o},{x:s,y:-i+o},{x:0,y:-i+o},{x:n/2,y:-i},{x:n,y:-i+o},{x:n-s,y:-i+o},{x:n-s,y:-o},{x:n,y:-o}]:a.has("right")&&a.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-i}]:a.has("right")&&a.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-i}]:a.has("left")&&a.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-i}]:a.has("left")&&a.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-i}]:a.has("right")?[{x:s,y:-o},{x:s,y:-o},{x:n-s,y:-o},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:n-s,y:-i+o},{x:s,y:-i+o},{x:s,y:-i+o}]:a.has("left")?[{x:s,y:0},{x:s,y:-o},{x:n-s,y:-o},{x:n-s,y:-i+o},{x:s,y:-i+o},{x:s,y:-i},{x:0,y:-i/2}]:a.has("up")?[{x:s,y:-o},{x:s,y:-i+o},{x:0,y:-i+o},{x:n/2,y:-i},{x:n,y:-i+o},{x:n-s,y:-i+o},{x:n-s,y:-o}]:a.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:s,y:-o},{x:s,y:-i+o},{x:n-s,y:-i+o},{x:n-s,y:-o},{x:n,y:-o}]:[{x:0,y:0}]}),"getArrowPoints");function It(t,e){return t.intersect(e)}r(It,"intersectNode");var Bt=It;function zt(t,e,r,a){var i=t.x,s=t.y,n=i-a.x,o=s-a.y,l=Math.sqrt(e*e*o*o+r*r*n*n),c=Math.abs(e*r*n/l);a.x0}r(Mt,"intersectLine"),r(Pt,"sameSign");var Yt=Mt,Xt=Wt;function Wt(t,e,r){var a=t.x,i=t.y,s=[],n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){n=Math.min(n,t.x),o=Math.min(o,t.y)})):(n=Math.min(n,e.x),o=Math.min(o,e.y));for(var l=a-t.width/2-n,c=i-t.height/2-o,d=0;d1&&s.sort((function(t,e){var a=t.x-r.x,i=t.y-r.y,s=Math.sqrt(a*a+i*i),n=e.x-r.x,o=e.y-r.y,l=Math.sqrt(n*n+o*o);return s{var r,a,i=t.x,s=t.y,n=e.x-i,o=e.y-s,l=t.width/2,c=t.height/2;return Math.abs(o)*l>Math.abs(n)*c?(o<0&&(c=-c),r=0===o?0:c*n/o,a=c):(n<0&&(l=-l),r=l,a=0===n?0:l*o/n),{x:i+r,y:s+a}}),"intersectRect")},jt=r((async(t,e,i,s)=>{const n=a();let c;const d=e.useHtmlLabels||o(n.flowchart.htmlLabels);c=i||"node default";const h=t.insert("g").attr("class",c).attr("id",e.domId||e.id),g=h.insert("g").attr("class","label").attr("style",e.labelStyle);let u;u=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const y=g.node();let p;p="markdown"===e.labelType?l(g,f(x(u),n),{useHtmlLabels:d,width:e.width||n.flowchart.wrappingWidth,classes:"markdown-node-label"},n):y.appendChild(bt(f(x(u),n),e.labelStyle,!1,s));let b=p.getBBox();const m=e.padding/2;if(o(n.flowchart.htmlLabels)){const t=p.children[0],e=w(p),a=t.getElementsByTagName("img");if(a){const t=""===u.replace(/]*>/g,"").trim();await Promise.all([...a].map((e=>new Promise((a=>{function i(){if(e.style.display="flex",e.style.flexDirection="column",t){const t=n.fontSize?n.fontSize:window.getComputedStyle(document.body).fontSize,r=5,a=parseInt(t,10)*r+"px";e.style.minWidth=a,e.style.maxWidth=a}else e.style.width="100%";a(e)}r(i,"setupImage"),setTimeout((()=>{e.complete&&i()})),e.addEventListener("error",i),e.addEventListener("load",i)})))))}b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}return d?g.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"):g.attr("transform","translate(0, "+-b.height/2+")"),e.centerLabel&&g.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),g.insert("rect",":first-child"),{shapeSvg:h,bbox:b,halfPadding:m,label:g}}),"labelHelper"),Ht=r(((t,e)=>{const r=e.node().getBBox();t.width=r.width,t.height=r.height}),"updateNodeBounds");function Ut(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}r(Ut,"insertPolygonShape");var Kt=r((async(t,e)=>{e.useHtmlLabels||a().flowchart.htmlLabels||(e.centerLabel=!0);const{shapeSvg:r,bbox:s,halfPadding:n}=await jt(t,e,"node "+e.classes,!0);i.info("Classes = ",e.classes);const o=r.insert("rect",":first-child");return o.attr("rx",e.rx).attr("ry",e.ry).attr("x",-s.width/2-n).attr("y",-s.height/2-n).attr("width",s.width+e.padding).attr("height",s.height+e.padding),Ht(e,o),e.intersect=function(t){return Ft.rect(e,t)},r}),"note"),qt=r((t=>t?" "+t:""),"formatClass"),Zt=r(((t,e)=>`${e||"node default"}${qt(t.classes)} ${qt(t.class)}`),"getClassesFromNode"),Gt=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),s=a.width+e.padding+(a.height+e.padding),n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];i.info("Question main (Circle)");const o=Ut(r,s,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return i.warn("Intersect called"),Ft.polygon(e,n,t)},r}),"question"),Jt=r(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return r.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return Ft.circle(e,14,t)},r}),"choice"),Vt=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.height+e.padding,s=i/4,n=a.width+2*s+e.padding,o=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}],l=Ut(r,n,i,o);return l.attr("style",e.style),Ht(e,l),e.intersect=function(t){return Ft.polygon(e,o,t)},r}),"hexagon"),Qt=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,void 0,!0),i=a.height+2*e.padding,s=i/2,n=a.width+2*s+e.padding,o=Nt(e.directions,a,e),l=Ut(r,n,i,o);return l.attr("style",e.style),Ht(e,l),e.intersect=function(t){return Ft.polygon(e,o,t)},r}),"block_arrow"),te=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-s/2,y:0},{x:i,y:0},{x:i,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return Ut(r,i,s,n).attr("style",e.style),e.width=i+s,e.height=s,e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"rect_left_inv_arrow"),ee=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-2*s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:s/6,y:-s}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"lean_right"),re=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:2*s/6,y:0},{x:i+s/6,y:0},{x:i-2*s/6,y:-s},{x:-s/6,y:-s}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"lean_left"),ae=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-2*s/6,y:0},{x:i+2*s/6,y:0},{x:i-s/6,y:-s},{x:s/6,y:-s}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"trapezoid"),ie=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:-2*s/6,y:-s}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"inv_trapezoid"),se=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:0,y:0},{x:i+s/2,y:0},{x:i,y:-s/2},{x:i+s/2,y:-s},{x:0,y:-s}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"rect_right_inv_arrow"),ne=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=i/2,n=s/(2.5+i/50),o=a.height+n+e.padding,l="M 0,"+n+" a "+s+","+n+" 0,0,0 "+i+" 0 a "+s+","+n+" 0,0,0 "+-i+" 0 l 0,"+o+" a "+s+","+n+" 0,0,0 "+i+" 0 l 0,"+-o,c=r.attr("label-offset-y",n).insert("path",":first-child").attr("style",e.style).attr("d",l).attr("transform","translate("+-i/2+","+-(o/2+n)+")");return Ht(e,c),e.intersect=function(t){const r=Ft.rect(e,t),a=r.x-e.x;if(0!=s&&(Math.abs(a)e.height/2-n)){let i=n*n*(1-a*a/(s*s));0!=i&&(i=Math.sqrt(i)),i=n-i,t.y-e.y>0&&(i=-i),r.y+=i}return r},r}),"cylinder"),oe=r((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await jt(t,e,"node "+e.classes+" "+e.class,!0),n=r.insert("rect",":first-child"),o=e.positioned?e.width:a.width+e.padding,l=e.positioned?e.height:a.height+e.padding,c=e.positioned?-o/2:-a.width/2-s,d=e.positioned?-l/2:-a.height/2-s;if(n.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",d).attr("width",o).attr("height",l),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(de(n,e.props.borders,o,l),t.delete("borders")),t.forEach((t=>{i.warn(`Unknown node property ${t}`)}))}return Ht(e,n),e.intersect=function(t){return Ft.rect(e,t)},r}),"rect"),le=r((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await jt(t,e,"node "+e.classes,!0),n=r.insert("rect",":first-child"),o=e.positioned?e.width:a.width+e.padding,l=e.positioned?e.height:a.height+e.padding,c=e.positioned?-o/2:-a.width/2-s,d=e.positioned?-l/2:-a.height/2-s;if(n.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",d).attr("width",o).attr("height",l),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(de(n,e.props.borders,o,l),t.delete("borders")),t.forEach((t=>{i.warn(`Unknown node property ${t}`)}))}return Ht(e,n),e.intersect=function(t){return Ft.rect(e,t)},r}),"composite"),ce=r((async(t,e)=>{const{shapeSvg:r}=await jt(t,e,"label",!0);i.trace("Classes = ",e.class);const a=r.insert("rect",":first-child");if(a.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(de(a,e.props.borders,0,0),t.delete("borders")),t.forEach((t=>{i.warn(`Unknown node property ${t}`)}))}return Ht(e,a),e.intersect=function(t){return Ft.rect(e,t)},r}),"labelRect");function de(t,e,a,s){const n=[],o=r((t=>{n.push(t,0)}),"addBorder"),l=r((t=>{n.push(0,t)}),"skipBorder");e.includes("t")?(i.debug("add top border"),o(a)):l(a),e.includes("r")?(i.debug("add right border"),o(s)):l(s),e.includes("b")?(i.debug("add bottom border"),o(a)):l(a),e.includes("l")?(i.debug("add left border"),o(s)):l(s),t.attr("stroke-dasharray",n.join(" "))}r(de,"applyNodePropertyBorders");var he=r(((t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";const s=t.insert("g").attr("class",r).attr("id",e.domId||e.id),n=s.insert("rect",":first-child"),l=s.insert("line"),c=s.insert("g").attr("class","label"),d=e.labelText.flat?e.labelText.flat():e.labelText;let h="";h="object"==typeof d?d[0]:d,i.info("Label text abc79",h,d,"object"==typeof d);const g=c.node().appendChild(bt(h,e.labelStyle,!0,!0));let u={width:0,height:0};if(o(a().flowchart.htmlLabels)){const t=g.children[0],e=w(g);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}i.info("Text 2",d);const y=d.slice(1,d.length);let p=g.getBBox();const x=c.node().appendChild(bt(y.join?y.join("
"):y,e.labelStyle,!0,!0));if(o(a().flowchart.htmlLabels)){const t=x.children[0],e=w(x);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}const b=e.padding/2;return w(x).attr("transform","translate( "+(u.width>p.width?0:(p.width-u.width)/2)+", "+(p.height+b+5)+")"),w(g).attr("transform","translate( "+(u.width{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.height+e.padding,s=a.width+i/4+e.padding,n=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-s/2).attr("y",-i/2).attr("width",s).attr("height",i);return Ht(e,n),e.intersect=function(t){return Ft.rect(e,t)},r}),"stadium"),ue=r((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await jt(t,e,Zt(e,void 0),!0),n=r.insert("circle",":first-child");return n.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding),i.info("Circle main"),Ht(e,n),e.intersect=function(t){return i.info("Circle intersect",e,a.width/2+s,t),Ft.circle(e,a.width/2+s,t)},r}),"circle"),ye=r((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await jt(t,e,Zt(e,void 0),!0),n=r.insert("g",":first-child"),o=n.insert("circle"),l=n.insert("circle");return n.attr("class",e.class),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s+5).attr("width",a.width+e.padding+10).attr("height",a.height+e.padding+10),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding),i.info("DoubleCircle main"),Ht(e,o),e.intersect=function(t){return i.info("DoubleCircle intersect",e,a.width/2+s+5,t),Ft.circle(e,a.width/2+s+5,t)},r}),"doublecircle"),pe=r((async(t,e)=>{const{shapeSvg:r,bbox:a}=await jt(t,e,Zt(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:0,y:0},{x:i,y:0},{x:i,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],o=Ut(r,i,s,n);return o.attr("style",e.style),Ht(e,o),e.intersect=function(t){return Ft.polygon(e,n,t)},r}),"subroutine"),xe=r(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Ht(e,a),e.intersect=function(t){return Ft.circle(e,7,t)},r}),"start"),be=r(((t,e,r)=>{const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let i=70,s=10;"LR"===r&&(i=10,s=70);const n=a.append("rect").attr("x",-1*i/2).attr("y",-1*s/2).attr("width",i).attr("height",s).attr("class","fork-join");return Ht(e,n),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return Ft.rect(e,t)},a}),"forkJoin"),fe={rhombus:Gt,composite:le,question:Gt,rect:oe,labelRect:ce,rectWithTitle:he,choice:Jt,circle:ue,doublecircle:ye,stadium:ge,hexagon:Vt,block_arrow:Qt,rect_left_inv_arrow:te,lean_right:ee,lean_left:re,trapezoid:ae,inv_trapezoid:ie,rect_right_inv_arrow:se,cylinder:ne,start:xe,end:r(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Ht(e,i),e.intersect=function(t){return Ft.circle(e,7,t)},r}),"end"),note:Kt,subroutine:pe,fork:be,join:be,class_box:r(((t,e)=>{var r;const i=e.padding/2;let s;s=e.classes?"node "+e.classes:"node default";const n=t.insert("g").attr("class",s).attr("id",e.domId||e.id),l=n.insert("rect",":first-child"),c=n.insert("line"),d=n.insert("line");let h=0,g=4;const u=n.insert("g").attr("class","label");let y=0;const p=null==(r=e.classData.annotations)?void 0:r[0],x=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"",b=u.node().appendChild(bt(x,e.labelStyle,!0,!0));let f=b.getBBox();if(o(a().flowchart.htmlLabels)){const t=b.children[0],e=w(b);f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}e.classData.annotations[0]&&(g+=f.height+4,h+=f.width);let m=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&(a().flowchart.htmlLabels?m+="<"+e.classData.type+">":m+="<"+e.classData.type+">");const k=u.node().appendChild(bt(m,e.labelStyle,!0,!0));w(k).attr("class","classTitle");let L=k.getBBox();if(o(a().flowchart.htmlLabels)){const t=k.children[0],e=w(k);L=t.getBoundingClientRect(),e.attr("width",L.width),e.attr("height",L.height)}g+=L.height+4,L.width>h&&(h=L.width);const S=[];e.classData.members.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;a().flowchart.htmlLabels&&(i=i.replace(//g,">"));const s=u.node().appendChild(bt(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let n=s.getBBox();if(o(a().flowchart.htmlLabels)){const t=s.children[0],e=w(s);n=t.getBoundingClientRect(),e.attr("width",n.width),e.attr("height",n.height)}n.width>h&&(h=n.width),g+=n.height+4,S.push(s)})),g+=8;const _=[];if(e.classData.methods.forEach((t=>{const r=t.getDisplayDetails();let i=r.displayText;a().flowchart.htmlLabels&&(i=i.replace(//g,">"));const s=u.node().appendChild(bt(i,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0));let n=s.getBBox();if(o(a().flowchart.htmlLabels)){const t=s.children[0],e=w(s);n=t.getBoundingClientRect(),e.attr("width",n.width),e.attr("height",n.height)}n.width>h&&(h=n.width),g+=n.height+4,_.push(s)})),g+=8,p){let t=(h-f.width)/2;w(b).attr("transform","translate( "+(-1*h/2+t)+", "+-1*g/2+")"),y=f.height+4}let v=(h-L.width)/2;return w(k).attr("transform","translate( "+(-1*h/2+v)+", "+(-1*g/2+y)+")"),y+=L.height+4,c.attr("class","divider").attr("x1",-h/2-i).attr("x2",h/2+i).attr("y1",-g/2-i+8+y).attr("y2",-g/2-i+8+y),y+=8,S.forEach((t=>{w(t).attr("transform","translate( "+-h/2+", "+(-1*g/2+y+4)+")");const e=null==t?void 0:t.getBBox();y+=((null==e?void 0:e.height)??0)+4})),y+=8,d.attr("class","divider").attr("x1",-h/2-i).attr("x2",h/2+i).attr("y1",-g/2-i+8+y).attr("y2",-g/2-i+8+y),y+=8,_.forEach((t=>{w(t).attr("transform","translate( "+-h/2+", "+(-1*g/2+y)+")");const e=null==t?void 0:t.getBBox();y+=((null==e?void 0:e.height)??0)+4})),l.attr("style",e.style).attr("class","outer title-state").attr("x",-h/2-i).attr("y",-g/2-i).attr("width",h+e.padding).attr("height",g+e.padding),Ht(e,l),e.intersect=function(t){return Ft.rect(e,t)},n}),"class_box")},me={},we=r((async(t,e,r)=>{let i,s;if(e.link){let n;"sandbox"===a().securityLevel?n="_top":e.linkTarget&&(n=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",n),s=await fe[e.shape](i,e,r)}else s=await fe[e.shape](t,e,r),i=s;return e.tooltip&&s.attr("title",e.tooltip),e.class&&s.attr("class","node default "+e.class),me[e.id]=i,e.haveCallback&&me[e.id].attr("class",me[e.id].attr("class")+" clickable"),i}),"insertNode"),ke=r((t=>{const e=me[t.id];i.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r}),"positionNode");function Le(t,e,r=!1){var a,i,o;const l=t;let c="default";((null==(a=null==l?void 0:l.classes)?void 0:a.length)||0)>0&&(c=((null==l?void 0:l.classes)??[]).join(" ")),c+=" flowchart-label";let d,h=0,g="";switch(l.type){case"round":h=5,g="rect";break;case"composite":h=0,g="composite",d=0;break;case"square":case"group":default:g="rect";break;case"diamond":g="question";break;case"hexagon":g="hexagon";break;case"block_arrow":g="block_arrow";break;case"odd":case"rect_left_inv_arrow":g="rect_left_inv_arrow";break;case"lean_right":g="lean_right";break;case"lean_left":g="lean_left";break;case"trapezoid":g="trapezoid";break;case"inv_trapezoid":g="inv_trapezoid";break;case"circle":g="circle";break;case"ellipse":g="ellipse";break;case"stadium":g="stadium";break;case"subroutine":g="subroutine";break;case"cylinder":g="cylinder";break;case"doublecircle":g="doublecircle"}const u=s((null==l?void 0:l.styles)??[]),y=l.label,p=l.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:g,labelText:y,rx:h,ry:h,class:c,style:u.style,id:l.id,directions:l.directions,width:p.width,height:p.height,x:p.x,y:p.y,positioned:r,intersect:void 0,type:l.type,padding:d??(null==(o=null==(i=n())?void 0:i.block)?void 0:o.padding)??0}}async function Se(t,e,r){const a=Le(e,0,!1);if("group"===a.type)return;const i=n(),s=await we(t,a,{config:i}),o=s.node().getBBox(),l=r.getBlock(a.id);l.size={width:o.width,height:o.height,x:0,y:0,node:s},r.setBlock(l),s.remove()}async function _e(t,e,r){const a=Le(e,0,!0);if("space"!==r.getBlock(a.id).type){const r=n();await we(t,a,{config:r}),e.intersect=null==a?void 0:a.intersect,ke(a)}}async function ve(t,e,r,a){for(const i of e)await a(t,i,r),i.children&&await ve(t,i.children,r,a)}async function Ee(t,e,r){await ve(t,e,r,Se)}async function De(t,e,r){await ve(t,e,r,_e)}async function $e(t,e,r,a,i){const s=new k({multigraph:!0,compound:!0});s.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const n of r)n.size&&s.setNode(n.id,{width:n.size.width,height:n.size.height,intersect:n.intersect});for(const n of e)if(n.start&&n.end){const e=a.getBlock(n.start),r=a.getBlock(n.end);if((null==e?void 0:e.size)&&(null==r?void 0:r.size)){const a=e.size,o=r.size,l=[{x:a.x,y:a.y},{x:a.x+(o.x-a.x)/2,y:a.y+(o.y-a.y)/2},{x:o.x,y:o.y}];Tt(t,{v:n.start,w:n.end,name:n.id},{...n,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",s,i),n.label&&(await St(t,{...n,label:n.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),vt({...n,x:l[1].x,y:l[1].y},{originalPath:l}))}}}r(Le,"getNodeFromBlock"),r(Se,"calculateBlockSize"),r(_e,"insertBlockPositioned"),r(ve,"performOperations"),r(Ee,"calculateBlockSizes"),r(De,"insertBlocks"),r($e,"insertEdges");var Te=r((function(t,e){return e.db.getClasses()}),"getClasses"),Ce={parser:E,db:rt,renderer:{draw:r((async function(t,e,r,a){const{securityLevel:s,block:o}=n(),l=a.db;let c;"sandbox"===s&&(c=w("#i"+e));const d=w("sandbox"===s?c.nodes()[0].contentDocument.body:"body"),h="sandbox"===s?d.select(`[id="${e}"]`):w(`[id="${e}"]`);ot(h,["point","circle","cross"],a.type,e);const u=l.getBlocks(),y=l.getBlocksFlat(),p=l.getEdges(),x=h.insert("g").attr("class","block");await Ee(x,u,l);const b=yt(l);if(await De(x,u,l),await $e(x,p,y,l,e),b){const t=b,e=Math.max(1,Math.round(t.width/t.height*.125)),r=t.height+e+10,a=t.width+10,{useMaxWidth:s}=o;g(h,r,a,!!s),i.debug("Here Bounds",b,t),h.attr("viewBox",`${t.x-5} ${t.y-5} ${t.width+10} ${t.height+10}`)}}),"draw"),getClasses:Te},styles:it};export{Ce as diagram}; diff --git a/public/examples/ui/assets/brainfuck-CtZaYBKt.js b/public/examples/ui/assets/brainfuck-CtZaYBKt.js new file mode 100644 index 0000000..6b1f74a --- /dev/null +++ b/public/examples/ui/assets/brainfuck-CtZaYBKt.js @@ -0,0 +1 @@ +var e="><+-.,[]".split("");const t={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(t,n){if(t.eatSpace())return null;t.sol()&&(n.commentLine=!1);var o=t.next().toString();return-1===e.indexOf(o)?(n.commentLine=!0,t.eol()&&(n.commentLine=!1),"comment"):!0===n.commentLine?(t.eol()&&(n.commentLine=!1),"comment"):"]"===o||"["===o?("["===o?n.left++:n.right++,"bracket"):"+"===o||"-"===o?"keyword":"<"===o||">"===o?"atom":"."===o||","===o?"def":void(t.eol()&&(n.commentLine=!1))}};export{t as brainfuck}; diff --git a/public/examples/ui/assets/c4Diagram-6F5ED5ID-CWeSFbB5.js b/public/examples/ui/assets/c4Diagram-6F5ED5ID-CWeSFbB5.js new file mode 100644 index 0000000..db88860 --- /dev/null +++ b/public/examples/ui/assets/c4Diagram-6F5ED5ID-CWeSFbB5.js @@ -0,0 +1 @@ +var t,e;import{d as n,g as a}from"./chunk-ASOPGD6M-D6xyJYp8.js";import{_ as i,a as s,s as r,g as l,b as o,c as h,d,w as u,e as p,f as y,h as f,i as g,l as b,j as _,k as m}from"./mermaid-BlcZebEZ.js";import{s as x}from"./transform-D6ULhE8R.js";import"./index-BnyyrSDd.js";import"./step-CaHXtLdi.js";var E=function(){var t=i((function(t,e,n,a){for(n=n||{},a=t.length;a--;n[t[a]]=e);return n}),"o"),e=[1,24],n=[1,25],a=[1,26],s=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],f=[1,29],g=[1,30],b=[1,31],_=[1,32],m=[1,33],x=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[1,38],w=[1,39],O=[1,40],k=[1,41],T=[1,42],v=[1,43],R=[1,44],D=[1,45],N=[1,46],P=[1,47],B=[1,48],j=[1,50],M=[1,51],I=[1,52],Y=[1,53],L=[1,54],U=[1,55],F=[1,56],X=[1,57],z=[1,58],W=[1,59],Q=[1,60],$=[14,42],H=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],V=[1,82],G=[1,83],K=[1,84],J=[1,85],Z=[12,14,42],tt=[12,14,33,42],et=[12,14,33,42,76,77,79,80],nt=[12,33],at=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],it={trace:i((function(){}),"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:i((function(t,e,n,a,i,s,r){var l=s.length-1;switch(i){case 3:a.setDirection("TB");break;case 4:a.setDirection("BT");break;case 5:a.setDirection("RL");break;case 6:a.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:a.setC4Type(s[l-3]);break;case 19:a.setTitle(s[l].substring(6)),this.$=s[l].substring(6);break;case 20:a.setAccDescription(s[l].substring(15)),this.$=s[l].substring(15);break;case 21:this.$=s[l].trim(),a.setTitle(this.$);break;case 22:case 23:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 28:s[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 29:s[l].splice(2,0,"SYSTEM"),a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 30:a.addPersonOrSystemBoundary(...s[l]),this.$=s[l];break;case 31:s[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...s[l]),this.$=s[l];break;case 32:a.addDeploymentNode("node",...s[l]),this.$=s[l];break;case 33:a.addDeploymentNode("nodeL",...s[l]),this.$=s[l];break;case 34:a.addDeploymentNode("nodeR",...s[l]),this.$=s[l];break;case 35:a.popBoundaryParseStack();break;case 39:a.addPersonOrSystem("person",...s[l]),this.$=s[l];break;case 40:a.addPersonOrSystem("external_person",...s[l]),this.$=s[l];break;case 41:a.addPersonOrSystem("system",...s[l]),this.$=s[l];break;case 42:a.addPersonOrSystem("system_db",...s[l]),this.$=s[l];break;case 43:a.addPersonOrSystem("system_queue",...s[l]),this.$=s[l];break;case 44:a.addPersonOrSystem("external_system",...s[l]),this.$=s[l];break;case 45:a.addPersonOrSystem("external_system_db",...s[l]),this.$=s[l];break;case 46:a.addPersonOrSystem("external_system_queue",...s[l]),this.$=s[l];break;case 47:a.addContainer("container",...s[l]),this.$=s[l];break;case 48:a.addContainer("container_db",...s[l]),this.$=s[l];break;case 49:a.addContainer("container_queue",...s[l]),this.$=s[l];break;case 50:a.addContainer("external_container",...s[l]),this.$=s[l];break;case 51:a.addContainer("external_container_db",...s[l]),this.$=s[l];break;case 52:a.addContainer("external_container_queue",...s[l]),this.$=s[l];break;case 53:a.addComponent("component",...s[l]),this.$=s[l];break;case 54:a.addComponent("component_db",...s[l]),this.$=s[l];break;case 55:a.addComponent("component_queue",...s[l]),this.$=s[l];break;case 56:a.addComponent("external_component",...s[l]),this.$=s[l];break;case 57:a.addComponent("external_component_db",...s[l]),this.$=s[l];break;case 58:a.addComponent("external_component_queue",...s[l]),this.$=s[l];break;case 60:a.addRel("rel",...s[l]),this.$=s[l];break;case 61:a.addRel("birel",...s[l]),this.$=s[l];break;case 62:a.addRel("rel_u",...s[l]),this.$=s[l];break;case 63:a.addRel("rel_d",...s[l]),this.$=s[l];break;case 64:a.addRel("rel_l",...s[l]),this.$=s[l];break;case 65:a.addRel("rel_r",...s[l]),this.$=s[l];break;case 66:a.addRel("rel_b",...s[l]),this.$=s[l];break;case 67:s[l].splice(0,1),a.addRel("rel",...s[l]),this.$=s[l];break;case 68:a.updateElStyle("update_el_style",...s[l]),this.$=s[l];break;case 69:a.updateRelStyle("update_rel_style",...s[l]),this.$=s[l];break;case 70:a.updateLayoutConfig("update_layout_config",...s[l]),this.$=s[l];break;case 71:this.$=[s[l]];break;case 72:s[l].unshift(s[l-1]),this.$=s[l];break;case 73:case 75:this.$=s[l].trim();break;case 74:let t={};t[s[l-1].trim()]=s[l].trim(),this.$=t;break;case 76:this.$=""}}),"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:n,24:a,26:s,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{13:70,19:20,20:21,21:22,22:e,23:n,24:a,26:s,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{13:71,19:20,20:21,21:22,22:e,23:n,24:a,26:s,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{13:72,19:20,20:21,21:22,22:e,23:n,24:a,26:s,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{13:73,19:20,20:21,21:22,22:e,23:n,24:a,26:s,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{14:[1,74]},t($,[2,13],{43:23,29:49,30:61,32:62,20:75,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q}),t($,[2,14]),t(H,[2,16],{12:[1,76]}),t($,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:V,77:G,79:K,80:J},{35:86,75:81,76:V,77:G,79:K,80:J},{35:87,75:81,76:V,77:G,79:K,80:J},{35:88,75:81,76:V,77:G,79:K,80:J},{35:89,75:81,76:V,77:G,79:K,80:J},{35:90,75:81,76:V,77:G,79:K,80:J},{35:91,75:81,76:V,77:G,79:K,80:J},{35:92,75:81,76:V,77:G,79:K,80:J},{35:93,75:81,76:V,77:G,79:K,80:J},{35:94,75:81,76:V,77:G,79:K,80:J},{35:95,75:81,76:V,77:G,79:K,80:J},{35:96,75:81,76:V,77:G,79:K,80:J},{35:97,75:81,76:V,77:G,79:K,80:J},{35:98,75:81,76:V,77:G,79:K,80:J},{35:99,75:81,76:V,77:G,79:K,80:J},{35:100,75:81,76:V,77:G,79:K,80:J},{35:101,75:81,76:V,77:G,79:K,80:J},{35:102,75:81,76:V,77:G,79:K,80:J},{35:103,75:81,76:V,77:G,79:K,80:J},{35:104,75:81,76:V,77:G,79:K,80:J},t(Z,[2,59]),{35:105,75:81,76:V,77:G,79:K,80:J},{35:106,75:81,76:V,77:G,79:K,80:J},{35:107,75:81,76:V,77:G,79:K,80:J},{35:108,75:81,76:V,77:G,79:K,80:J},{35:109,75:81,76:V,77:G,79:K,80:J},{35:110,75:81,76:V,77:G,79:K,80:J},{35:111,75:81,76:V,77:G,79:K,80:J},{35:112,75:81,76:V,77:G,79:K,80:J},{35:113,75:81,76:V,77:G,79:K,80:J},{35:114,75:81,76:V,77:G,79:K,80:J},{35:115,75:81,76:V,77:G,79:K,80:J},{20:116,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q},{12:[1,118],33:[1,117]},{35:119,75:81,76:V,77:G,79:K,80:J},{35:120,75:81,76:V,77:G,79:K,80:J},{35:121,75:81,76:V,77:G,79:K,80:J},{35:122,75:81,76:V,77:G,79:K,80:J},{35:123,75:81,76:V,77:G,79:K,80:J},{35:124,75:81,76:V,77:G,79:K,80:J},{35:125,75:81,76:V,77:G,79:K,80:J},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t($,[2,15]),t(H,[2,17],{21:22,19:130,22:e,23:n,24:a,26:s,28:r}),t($,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:n,24:a,26:s,28:r,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:f,45:g,46:b,47:_,48:m,49:x,50:E,51:S,52:A,53:C,54:w,55:O,56:k,57:T,58:v,59:R,60:D,61:N,62:P,63:B,64:j,65:M,66:I,67:Y,68:L,69:U,70:F,71:X,72:z,73:W,74:Q}),t(q,[2,21]),t(q,[2,22]),t(Z,[2,39]),t(tt,[2,71],{75:81,35:132,76:V,77:G,79:K,80:J}),t(et,[2,73]),{78:[1,133]},t(et,[2,75]),t(et,[2,76]),t(Z,[2,40]),t(Z,[2,41]),t(Z,[2,42]),t(Z,[2,43]),t(Z,[2,44]),t(Z,[2,45]),t(Z,[2,46]),t(Z,[2,47]),t(Z,[2,48]),t(Z,[2,49]),t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),t(Z,[2,57]),t(Z,[2,58]),t(Z,[2,60]),t(Z,[2,61]),t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,64]),t(Z,[2,65]),t(Z,[2,66]),t(Z,[2,67]),t(Z,[2,68]),t(Z,[2,69]),t(Z,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(nt,[2,28]),t(nt,[2,29]),t(nt,[2,30]),t(nt,[2,31]),t(nt,[2,32]),t(nt,[2,33]),t(nt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(H,[2,18]),t($,[2,38]),t(tt,[2,72]),t(et,[2,74]),t(Z,[2,24]),t(Z,[2,35]),t(at,[2,25]),t(at,[2,26],{12:[1,138]}),t(at,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:i((function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)}),"parseError"),parse:i((function(t){var e=this,n=[0],a=[],s=[null],r=[],l=this.table,o="",c=0,h=0,d=r.slice.call(arguments,1),u=Object.create(this.lexer),p={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p.yy[y]=this.yy[y]);u.setInput(t,p.yy),p.yy.lexer=u,p.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var f=u.yylloc;r.push(f);var g=u.options&&u.options.ranges;function b(){var t;return"number"!=typeof(t=a.pop()||u.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,i((function(t){n.length=n.length-2*t,s.length=s.length-t,r.length=r.length-t}),"popStack"),i(b,"lex");for(var _,m,x,E,S,A,C,w,O={};;){if(m=n[n.length-1],this.defaultActions[m]?x=this.defaultActions[m]:(null==_&&(_=b()),x=l[m]&&l[m][_]),void 0===x||!x.length||!x[0]){var k="";for(S in w=[],l[m])this.terminals_[S]&&S>2&&w.push("'"+this.terminals_[S]+"'");k=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(k,{text:u.match,token:this.terminals_[_]||_,line:u.yylineno,loc:f,expected:w})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+_);switch(x[0]){case 1:n.push(_),s.push(u.yytext),r.push(u.yylloc),n.push(x[1]),_=null,h=u.yyleng,o=u.yytext,c=u.yylineno,f=u.yylloc;break;case 2:if(A=this.productions_[x[1]][1],O.$=s[s.length-A],O._$={first_line:r[r.length-(A||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(A||1)].first_column,last_column:r[r.length-1].last_column},g&&(O._$.range=[r[r.length-(A||1)].range[0],r[r.length-1].range[1]]),void 0!==(E=this.performAction.apply(O,[o,h,c,p.yy,x[1],s,r].concat(d))))return E;A&&(n=n.slice(0,-1*A*2),s=s.slice(0,-1*A),r=r.slice(0,-1*A)),n.push(this.productions_[x[1]][0]),s.push(O.$),r.push(O._$),C=l[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0}),"parse")},st=function(){return{EOF:1,parseError:i((function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)}),"parseError"),setInput:i((function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}),"setInput"),input:i((function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t}),"input"),unput:i((function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===a.length?this.yylloc.first_column:0)+a[a.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this}),"unput"),more:i((function(){return this._more=!0,this}),"more"),reject:i((function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"reject"),less:i((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:i((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:i((function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:i((function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:i((function(t,e){var n,a,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in i)this[s]=i[s];return!1}return!1}),"test_match"),next:i((function(){if(this.done)return this.EOF;var t,e,n,a;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),s=0;se[0].length)){if(e=n,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[s])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"next"),lex:i((function(){var t=this.next();return t||this.lex()}),"lex"),begin:i((function(t){this.conditionStack.push(t)}),"begin"),popState:i((function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]}),"popState"),_currentRules:i((function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules}),"_currentRules"),topState:i((function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"}),"topState"),pushState:i((function(t){this.begin(t)}),"pushState"),stateStackSize:i((function(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:i((function(t,e,n,a){switch(n){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}}),"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}}}();function rt(){this.yy={}}return it.lexer=st,i(rt,"Parser"),rt.prototype=it,it.Parser=rt,new rt}();E.parser=E;var S,A=E,C=[],w=[""],O="global",k="",T=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],v=[],R="",D=!1,N=4,P=2,B=i((function(){return S}),"getC4Type"),j=i((function(t){let e=g(t,d());S=e}),"setC4Type"),M=i((function(t,e,n,a,i,s,r,l,o){if(null==t||null==e||null==n||null==a)return;let c={};const h=v.find((t=>t.from===e&&t.to===n));if(h?c=h:v.push(c),c.type=t,c.from=e,c.to=n,c.label={text:a},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==s)c.descr={text:""};else if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]={text:e}}else c.descr={text:s};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];c[t]=e}else c.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.link=o;c.wrap=st()}),"addRel"),I=i((function(t,e,n,a,i,s,r){if(null===e||null===n)return;let l={};const o=C.find((t=>t.alias===e));if(o&&e===o.alias?l=o:(l.alias=e,C.push(l)),l.label=null==n?{text:""}:{text:n},null==a)l.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.descr={text:a};if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.sprite=i;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.link=r;l.typeC4Shape={text:t},l.parentBoundary=O,l.wrap=st()}),"addPersonOrSystem"),Y=i((function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=C.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,C.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=st(),o.typeC4Shape={text:t},o.parentBoundary=O}),"addContainer"),L=i((function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=C.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,C.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.sprite=s;if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=st(),o.typeC4Shape={text:t},o.parentBoundary=O}),"addComponent"),U=i((function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=T.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,T.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=O,s.wrap=st(),k=O,O=t,w.push(k)}),"addPersonOrSystemBoundary"),F=i((function(t,e,n,a,i){if(null===t||null===e)return;let s={};const r=T.find((e=>e.alias===t));if(r&&t===r.alias?s=r:(s.alias=t,T.push(s)),s.label=null==e?{text:""}:{text:e},null==n)s.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];s[t]={text:e}}else s.type={text:n};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.tags=a;if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.link=i;s.parentBoundary=O,s.wrap=st(),k=O,O=t,w.push(k)}),"addContainerBoundary"),X=i((function(t,e,n,a,i,s,r,l){if(null===e||null===n)return;let o={};const c=T.find((t=>t.alias===e));if(c&&e===c.alias?o=c:(o.alias=e,T.push(o)),o.label=null==n?{text:""}:{text:n},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.type={text:a};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.tags=r;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=O,o.wrap=st(),k=O,O=e,w.push(k)}),"addDeploymentNode"),z=i((function(){O=k,w.pop(),k=w.pop(),w.push(k)}),"popBoundaryParseStack"),W=i((function(t,e,n,a,i,s,r,l,o,c,h){let d=C.find((t=>t.alias===e));if(void 0!==d||(d=T.find((t=>t.alias===e)),void 0!==d)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.fontColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.borderColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.shadowing=s;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.shape=r;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.sprite=l;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.techn=o;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];d[t]=e}else d.legendText=c;if(null!=h)if("object"==typeof h){let[t,e]=Object.entries(h)[0];d[t]=e}else d.legendSprite=h}}),"updateElStyle"),Q=i((function(t,e,n,a,i,s,r){const l=v.find((t=>t.from===e&&t.to===n));if(void 0!==l){if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.lineColor=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(s);if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(r)}}),"updateRelStyle"),$=i((function(t,e,n){let a=N,i=P;if("object"==typeof e){const t=Object.values(e)[0];a=parseInt(t)}else a=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];i=parseInt(t)}else i=parseInt(n);a>=1&&(N=a),i>=1&&(P=i)}),"updateLayoutConfig"),H=i((function(){return N}),"getC4ShapeInRow"),q=i((function(){return P}),"getC4BoundaryInRow"),V=i((function(){return O}),"getCurrentBoundaryParse"),G=i((function(){return k}),"getParentBoundaryParse"),K=i((function(t){return null==t?C:C.filter((e=>e.parentBoundary===t))}),"getC4ShapeArray"),J=i((function(t){return C.find((e=>e.alias===t))}),"getC4Shape"),Z=i((function(t){return Object.keys(K(t))}),"getC4ShapeKeys"),tt=i((function(t){return null==t?T:T.filter((e=>e.parentBoundary===t))}),"getBoundaries"),et=tt,nt=i((function(){return v}),"getRels"),at=i((function(){return R}),"getTitle"),it=i((function(t){D=t}),"setWrap"),st=i((function(){return D}),"autoWrap"),rt=i((function(){C=[],T=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],k="",O="global",w=[""],v=[],w=[""],R="",D=!1,N=4,P=2}),"clear"),lt=i((function(t){let e=g(t,d());R=e}),"setTitle"),ot={addPersonOrSystem:I,addPersonOrSystemBoundary:U,addContainer:Y,addContainerBoundary:F,addComponent:L,addDeploymentNode:X,popBoundaryParseStack:z,addRel:M,updateElStyle:W,updateRelStyle:Q,updateLayoutConfig:$,autoWrap:st,setWrap:it,getC4ShapeArray:K,getC4Shape:J,getC4ShapeKeys:Z,getBoundaries:tt,getBoundarys:et,getCurrentBoundaryParse:V,getParentBoundaryParse:G,getRels:nt,getTitle:at,getC4Type:B,getC4ShapeInRow:H,getC4BoundaryInRow:q,setAccTitle:r,getAccTitle:l,getAccDescription:o,setAccDescription:h,getConfig:i((()=>d().c4),"getConfig"),clear:rt,LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:lt,setC4Type:j},ct=i((function(t,e){return n(t,e)}),"drawRect"),ht=i((function(t,e,n,a,i,s){const r=t.append("image");r.attr("width",e),r.attr("height",n),r.attr("x",a),r.attr("y",i);let l=s.startsWith("data:image/png;base64")?s:m(s);r.attr("xlink:href",l)}),"drawImage"),dt=i(((t,e,n)=>{const a=t.append("g");let i=0;for(let s of e){let t=s.textColor?s.textColor:"#444444",e=s.lineColor?s.lineColor:"#444444",r=s.offsetX?parseInt(s.offsetX):0,l=s.offsetY?parseInt(s.offsetY):0,o="";if(0===i){let t=a.append("line");t.attr("x1",s.startPoint.x),t.attr("y1",s.startPoint.y),t.attr("x2",s.endPoint.x),t.attr("y2",s.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)"),i=-1}else{let t=a.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",s.startPoint.x).replaceAll("starty",s.startPoint.y).replaceAll("controlx",s.startPoint.x+(s.endPoint.x-s.startPoint.x)/2-(s.endPoint.x-s.startPoint.x)/4).replaceAll("controly",s.startPoint.y+(s.endPoint.y-s.startPoint.y)/2).replaceAll("stopx",s.endPoint.x).replaceAll("stopy",s.endPoint.y)),"rel_b"!==s.type&&t.attr("marker-end","url("+o+"#arrowhead)"),"birel"!==s.type&&"rel_b"!==s.type||t.attr("marker-start","url("+o+"#arrowend)")}let c=n.messageFont();At(n)(s.label.text,a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+l,s.label.width,s.label.height,{fill:t},c),s.techn&&""!==s.techn.text&&(c=n.messageFont(),At(n)("["+s.techn.text+"]",a,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+r,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+n.messageFontSize+5+l,Math.max(s.label.width,s.techn.width),s.techn.height,{fill:t,"font-style":"italic"},c))}}),"drawRels"),ut=i((function(t,e,n){const a=t.append("g");let i=e.bgColor?e.bgColor:"none",s=e.borderColor?e.borderColor:"#444444",r=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let o={x:e.x,y:e.y,fill:i,stroke:s,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};ct(a,o);let c=n.boundaryFont();c.fontWeight="bold",c.fontSize=c.fontSize+2,c.fontColor=r,At(n)(e.label.text,a,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},c),e.type&&""!==e.type.text&&(c=n.boundaryFont(),c.fontColor=r,At(n)(e.type.text,a,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},c)),e.descr&&""!==e.descr.text&&(c=n.boundaryFont(),c.fontSize=c.fontSize-2,c.fontColor=r,At(n)(e.descr.text,a,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},c))}),"drawBoundary"),pt=i((function(t,e,n){var i;let s=e.bgColor?e.bgColor:n[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:n[e.typeC4Shape.text+"_border_color"],l=e.fontColor?e.fontColor:"#FFFFFF",o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}const c=t.append("g");c.attr("class","person-man");const h=a();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=e.x,h.y=e.y,h.fill=s,h.width=e.width,h.height=e.height,h.stroke=r,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},ct(c,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":c.append("path").attr("fill",s).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":c.append("path").attr("fill",s).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let d=St(n,e.typeC4Shape.text);switch(c.append("text").attr("fill",l).attr("font-family",d.fontFamily).attr("font-size",d.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":ht(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,o)}let u=n[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=l,At(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:l},u),u=n[e.typeC4Shape.text+"Font"](),u.fontColor=l,e.techn&&""!==(null==(i=e.techn)?void 0:i.text)?At(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:l,"font-style":"italic"},u):e.type&&""!==e.type.text&&At(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:l,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&(u=n.personFont(),u.fontColor=l,At(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:l},u)),e.height}),"drawC4Shape"),yt=i((function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")}),"insertDatabaseIcon"),ft=i((function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")}),"insertComputerIcon"),gt=i((function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")}),"insertClockIcon"),bt=i((function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")}),"insertArrowHead"),_t=i((function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")}),"insertArrowEnd"),mt=i((function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"insertArrowFilledHead"),xt=i((function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)}),"insertDynamicNumber"),Et=i((function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")}),"insertArrowCrossHead"),St=i(((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]})),"getC4ShapeFont"),At=function(){function t(t,e,n,i,s,r,l){a(e.append("text").attr("x",n+s/2).attr("y",i+r/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,n,i,s,r,l,o){const{fontSize:c,fontFamily:h,fontWeight:d}=o,u=t.split(p.lineBreakRegex);for(let p=0;p=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>kt)&&(e=this.nextData.startx+t.margin+vt.nextLinePaddingX,a=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=a+t.height,this.nextData.cnt=1),t.x=e,t.y=a,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",a,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",a,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},Dt(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},"Bounds"),t),Dt=i((function(t){s(vt,t),t.fontFamily&&(vt.personFontFamily=vt.systemFontFamily=vt.messageFontFamily=t.fontFamily),t.fontSize&&(vt.personFontSize=vt.systemFontSize=vt.messageFontSize=t.fontSize),t.fontWeight&&(vt.personFontWeight=vt.systemFontWeight=vt.messageFontWeight=t.fontWeight)}),"setConf"),Nt=i(((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]})),"c4ShapeFont"),Pt=i((t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight})),"boundaryFont"),Bt=i((t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight})),"messageFont");function jt(t,e,n,a,i){if(!e[t].width)if(n)e[t].text=u(e[t].text,i,a),e[t].textLines=e[t].text.split(p.lineBreakRegex).length,e[t].width=i,e[t].height=y(e[t].text,a);else{let n=e[t].text.split(p.lineBreakRegex);e[t].textLines=n.length;let i=0;e[t].height=0,e[t].width=0;for(const s of n)e[t].width=Math.max(f(s,a),e[t].width),i=y(s,a),e[t].height=e[t].height+i}}i(jt,"calcC4ShapeTextWH");var Mt=i((function(t,e,n){e.x=n.data.startx,e.y=n.data.starty,e.width=n.data.stopx-n.data.startx,e.height=n.data.stopy-n.data.starty,e.label.y=vt.c4ShapeMargin-35;let a=e.wrap&&vt.wrap,i=Pt(vt);i.fontSize=i.fontSize+2,i.fontWeight="bold",jt("label",e,a,i,f(e.label.text,i)),Ct.drawBoundary(t,e,vt)}),"drawBoundary"),It=i((function(t,e,n,a){let i=0;for(const s of a){i=0;const a=n[s];let r=Nt(vt,a.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,a.typeC4Shape.width=f("«"+a.typeC4Shape.text+"»",r),a.typeC4Shape.height=r.fontSize+2,a.typeC4Shape.Y=vt.c4ShapePadding,i=a.typeC4Shape.Y+a.typeC4Shape.height-4,a.image={width:0,height:0,Y:0},a.typeC4Shape.text){case"person":case"external_person":a.image.width=48,a.image.height=48,a.image.Y=i,i=a.image.Y+a.image.height}a.sprite&&(a.image.width=48,a.image.height=48,a.image.Y=i,i=a.image.Y+a.image.height);let l=a.wrap&&vt.wrap,o=vt.width-2*vt.c4ShapePadding,c=Nt(vt,a.typeC4Shape.text);if(c.fontSize=c.fontSize+2,c.fontWeight="bold",jt("label",a,l,c,o),a.label.Y=i+8,i=a.label.Y+a.label.height,a.type&&""!==a.type.text){a.type.text="["+a.type.text+"]",jt("type",a,l,Nt(vt,a.typeC4Shape.text),o),a.type.Y=i+5,i=a.type.Y+a.type.height}else if(a.techn&&""!==a.techn.text){a.techn.text="["+a.techn.text+"]",jt("techn",a,l,Nt(vt,a.techn.text),o),a.techn.Y=i+5,i=a.techn.Y+a.techn.height}let h=i,d=a.label.width;if(a.descr&&""!==a.descr.text){jt("descr",a,l,Nt(vt,a.typeC4Shape.text),o),a.descr.Y=i+20,i=a.descr.Y+a.descr.height,d=Math.max(a.label.width,a.descr.width),h=i-5*a.descr.textLines}d+=vt.c4ShapePadding,a.width=Math.max(a.width||vt.width,d,vt.width),a.height=Math.max(a.height||vt.height,h,vt.height),a.margin=a.margin||vt.c4ShapeMargin,t.insert(a),Ct.drawC4Shape(e,a,vt)}t.bumpLastMargin(vt.c4ShapeMargin)}),"drawC4ShapeArray"),Yt=(i(e=class{constructor(t,e){this.x=t,this.y=e}},"Point"),e),Lt=i((function(t,e){let n=t.x,a=t.y,i=e.x,s=e.y,r=n+t.width/2,l=a+t.height/2,o=Math.abs(n-i),c=Math.abs(a-s),h=c/o,d=t.height/t.width,u=null;return a==s&&ni?u=new Yt(n,l):n==i&&as&&(u=new Yt(r,a)),n>i&&a=h?new Yt(n,l+h*t.width/2):new Yt(r-o/c*t.height/2,a+t.height):n=h?new Yt(n+t.width,l+h*t.width/2):new Yt(r+o/c*t.height/2,a+t.height):ns?u=d>=h?new Yt(n+t.width,l-h*t.width/2):new Yt(r+t.height/2*o/c,a):n>i&&a>s&&(u=d>=h?new Yt(n,l-t.width/2*h):new Yt(r-t.height/2*o/c,a)),u}),"getIntersectPoint"),Ut=i((function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let a=Lt(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:a,endPoint:Lt(e,n)}}),"getIntersectPoints"),Ft=i((function(t,e,n,a){let i=0;for(let s of e){i+=1;let t=s.wrap&&vt.wrap,e=Bt(vt);"C4Dynamic"===a.db.getC4Type()&&(s.label.text=i+": "+s.label.text);let r=f(s.label.text,e);jt("label",s,t,e,r),s.techn&&""!==s.techn.text&&(r=f(s.techn.text,e),jt("techn",s,t,e,r)),s.descr&&""!==s.descr.text&&(r=f(s.descr.text,e),jt("descr",s,t,e,r));let l=n(s.from),o=n(s.to),c=Ut(l,o);s.startPoint=c.startPoint,s.endPoint=c.endPoint}Ct.drawRels(t,e,vt)}),"drawRels");function Xt(t,e,n,a,i){let s=new Rt(i);s.data.widthLimit=n.data.widthLimit/Math.min(Tt,a.length);for(let[r,l]of a.entries()){let a=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=a,a=l.image.Y+l.image.height);let o=l.wrap&&vt.wrap,c=Pt(vt);if(c.fontSize=c.fontSize+2,c.fontWeight="bold",jt("label",l,o,c,s.data.widthLimit),l.label.Y=a+8,a=l.label.Y+l.label.height,l.type&&""!==l.type.text){l.type.text="["+l.type.text+"]",jt("type",l,o,Pt(vt),s.data.widthLimit),l.type.Y=a+5,a=l.type.Y+l.type.height}if(l.descr&&""!==l.descr.text){let t=Pt(vt);t.fontSize=t.fontSize-2,jt("descr",l,o,t,s.data.widthLimit),l.descr.Y=a+20,a=l.descr.Y+l.descr.height}if(0==r||r%Tt==0){let t=n.data.startx+vt.diagramMarginX,e=n.data.stopy+vt.diagramMarginY+a;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+vt.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=l.alias;let h=i.db.getC4ShapeArray(l.alias),d=i.db.getC4ShapeKeys(l.alias);d.length>0&&It(s,t,h,d),e=l.alias;let u=i.db.getBoundarys(e);u.length>0&&Xt(t,e,s,u,i),"global"!==l.alias&&Mt(t,l,s),n.data.stopy=Math.max(s.data.stopy+vt.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(s.data.stopx+vt.c4ShapeMargin,n.data.stopx),wt=Math.max(wt,n.data.stopx),Ot=Math.max(Ot,n.data.stopy)}}i(Xt,"drawInsideBoundary");var zt={drawPersonOrSystemArray:It,drawBoundary:Mt,setConf:Dt,draw:i((function(t,e,n,a){vt=d().c4;const i=d().securityLevel;let s;"sandbox"===i&&(s=x("#i"+e));const r=x("sandbox"===i?s.nodes()[0].contentDocument.body:"body");let l=a.db;a.db.setWrap(vt.wrap),kt=l.getC4ShapeInRow(),Tt=l.getC4BoundaryInRow(),b.debug(`C:${JSON.stringify(vt,null,2)}`);const o="sandbox"===i?r.select(`[id="${e}"]`):x(`[id="${e}"]`);Ct.insertComputerIcon(o),Ct.insertDatabaseIcon(o),Ct.insertClockIcon(o);let c=new Rt(a);c.setData(vt.diagramMarginX,vt.diagramMarginX,vt.diagramMarginY,vt.diagramMarginY),c.data.widthLimit=screen.availWidth,wt=vt.diagramMarginX,Ot=vt.diagramMarginY;const h=a.db.getTitle();Xt(o,"",c,a.db.getBoundarys(""),a),Ct.insertArrowHead(o),Ct.insertArrowEnd(o),Ct.insertArrowCrossHead(o),Ct.insertArrowFilledHead(o),Ft(o,a.db.getRels(),a.db.getC4Shape,a),c.data.stopx=wt,c.data.stopy=Ot;const u=c.data;let p=u.stopy-u.starty+2*vt.diagramMarginY;const y=u.stopx-u.startx+2*vt.diagramMarginX;h&&o.append("text").text(h).attr("x",(u.stopx-u.startx)/2-4*vt.diagramMarginX).attr("y",u.starty+vt.diagramMarginY),_(o,p,y,vt.useMaxWidth);const f=h?60:0;o.attr("viewBox",u.startx-vt.diagramMarginX+" -"+(vt.diagramMarginY+f)+" "+y+" "+(p+f)),b.debug("models:",u)}),"draw")},Wt={parser:A,db:ot,renderer:zt,styles:i((t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`),"getStyles"),init:i((({c4:t,wrap:e})=>{zt.setConf(t),ot.setWrap(e)}),"init")};export{Wt as diagram}; diff --git a/public/examples/ui/assets/channel-BLTxHfqb.js b/public/examples/ui/assets/channel-BLTxHfqb.js new file mode 100644 index 0000000..952d98c --- /dev/null +++ b/public/examples/ui/assets/channel-BLTxHfqb.js @@ -0,0 +1 @@ +import{U as a,C as r}from"./mermaid-BlcZebEZ.js";const s=(s,o)=>a.lang.round(r.parse(s)[o]);export{s as c}; diff --git a/public/examples/ui/assets/chunk-5HRBRIJM-DEysg7ZQ.js b/public/examples/ui/assets/chunk-5HRBRIJM-DEysg7ZQ.js new file mode 100644 index 0000000..fc640af --- /dev/null +++ b/public/examples/ui/assets/chunk-5HRBRIJM-DEysg7ZQ.js @@ -0,0 +1 @@ +import{_ as t,j as e,l as i}from"./mermaid-BlcZebEZ.js";import{s as o}from"./transform-D6ULhE8R.js";var s=t(((t,e)=>{let i;"sandbox"===e&&(i=o("#i"+t));return o("sandbox"===e?i.nodes()[0].contentDocument.body:"body").select(`[id="${t}"]`)}),"getDiagramElement"),a=t(((t,o,s,a)=>{t.attr("class",s);const{width:d,height:h,x:g,y:c}=r(t,o);e(t,h,d,a);const m=n(g,c,d,h,o);t.attr("viewBox",m),i.debug(`viewBox configured: ${m} with padding: ${o}`)}),"setupViewPortForSVG"),r=t(((t,e)=>{var i;const o=(null==(i=t.node())?void 0:i.getBBox())||{width:0,height:0,x:0,y:0};return{width:o.width+2*e,height:o.height+2*e,x:o.x,y:o.y}}),"calculateDimensionsWithPadding"),n=t(((t,e,i,o,s)=>`${t-s} ${e-s} ${i} ${o}`),"createViewBox");export{s as g,a as s}; diff --git a/public/examples/ui/assets/chunk-7U56Z5CX-Cjxu3lm5.js b/public/examples/ui/assets/chunk-7U56Z5CX-Cjxu3lm5.js new file mode 100644 index 0000000..a74a95d --- /dev/null +++ b/public/examples/ui/assets/chunk-7U56Z5CX-Cjxu3lm5.js @@ -0,0 +1 @@ +import{g as t,s as e}from"./chunk-5HRBRIJM-DEysg7ZQ.js";import{_ as s,e as i,d as n,g as r,s as o,b as a,c as l,p as c,q as h,l as d,z as u,u as p,v as y,Q as g}from"./mermaid-BlcZebEZ.js";var f=function(){var t=s((function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s}),"o"),e=[1,2],i=[1,3],n=[1,4],r=[2,4],o=[1,9],a=[1,11],l=[1,16],c=[1,17],h=[1,18],d=[1,19],u=[1,32],p=[1,20],y=[1,21],g=[1,22],f=[1,23],S=[1,24],m=[1,26],_=[1,27],T=[1,28],b=[1,29],k=[1,30],E=[1,31],x=[1,34],C=[1,35],v=[1,36],D=[1,37],$=[1,33],L=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],A=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],w={trace:s((function(){}),"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:s((function(t,e,s,i,n,r,o){var a=r.length-1;switch(n){case 3:return i.setRootDoc(r[a]),r[a];case 4:this.$=[];break;case 5:"nl"!=r[a]&&(r[a-1].push(r[a]),this.$=r[a-1]);break;case 6:case 7:case 12:this.$=r[a];break;case 8:this.$="nl";break;case 13:const t=r[a-1];t.description=i.trimColon(r[a]),this.$=t;break;case 14:this.$={stmt:"relation",state1:r[a-2],state2:r[a]};break;case 15:const e=i.trimColon(r[a]);this.$={stmt:"relation",state1:r[a-3],state2:r[a-1],description:e};break;case 19:this.$={stmt:"state",id:r[a-3],type:"default",description:"",doc:r[a-1]};break;case 20:var l=r[a],c=r[a-2].trim();if(r[a].match(":")){var h=r[a].split(":");l=h[0],c=[c,h[1]]}this.$={stmt:"state",id:l,type:"default",description:c};break;case 21:this.$={stmt:"state",id:r[a-3],type:"default",description:r[a-5],doc:r[a-1]};break;case 22:this.$={stmt:"state",id:r[a],type:"fork"};break;case 23:this.$={stmt:"state",id:r[a],type:"join"};break;case 24:this.$={stmt:"state",id:r[a],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[a-1].trim(),note:{position:r[a-2].trim(),text:r[a].trim()}};break;case 29:this.$=r[a].trim(),i.setAccTitle(this.$);break;case 30:case 31:this.$=r[a].trim(),i.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:r[a-1].trim(),classes:r[a].trim()};break;case 34:this.$={stmt:"style",id:r[a-1].trim(),styleClass:r[a].trim()};break;case 35:this.$={stmt:"applyClass",id:r[a-1].trim(),styleClass:r[a].trim()};break;case 36:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:r[a].trim(),type:"default",description:""};break;case 44:case 45:this.$={stmt:"state",id:r[a-2].trim(),classes:[r[a].trim()],type:"default",description:""}}}),"anonymous"),table:[{3:1,4:e,5:i,6:n},{1:[3]},{3:5,4:e,5:i,6:n},{3:6,4:e,5:i,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:o,5:a,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:g,28:f,29:S,32:25,33:m,35:_,37:T,38:b,42:k,45:E,48:x,49:C,50:v,51:D,54:$},t(L,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:g,28:f,29:S,32:25,33:m,35:_,37:T,38:b,42:k,45:E,48:x,49:C,50:v,51:D,54:$},t(L,[2,7]),t(L,[2,8]),t(L,[2,9]),t(L,[2,10]),t(L,[2,11]),t(L,[2,12],{14:[1,39],15:[1,40]}),t(L,[2,16]),{18:[1,41]},t(L,[2,18],{20:[1,42]}),{23:[1,43]},t(L,[2,22]),t(L,[2,23]),t(L,[2,24]),t(L,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(L,[2,28]),{34:[1,48]},{36:[1,49]},t(L,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(I,[2,42],{55:[1,54]}),t(I,[2,43],{55:[1,55]}),t(L,[2,36]),t(L,[2,37]),t(L,[2,38]),t(L,[2,39]),t(L,[2,6]),t(L,[2,13]),{13:56,24:u,54:$},t(L,[2,17]),t(A,r,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(L,[2,29]),t(L,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(L,[2,14],{14:[1,67]}),{4:o,5:a,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,68],22:d,24:u,25:p,26:y,27:g,28:f,29:S,32:25,33:m,35:_,37:T,38:b,42:k,45:E,48:x,49:C,50:v,51:D,54:$},t(L,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(L,[2,32]),t(L,[2,33]),t(L,[2,34]),t(L,[2,35]),t(I,[2,44]),t(I,[2,45]),t(L,[2,15]),t(L,[2,19]),t(A,r,{7:72}),t(L,[2,26]),t(L,[2,27]),{4:o,5:a,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,73],22:d,24:u,25:p,26:y,27:g,28:f,29:S,32:25,33:m,35:_,37:T,38:b,42:k,45:E,48:x,49:C,50:v,51:D,54:$},t(L,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:s((function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)}),"parseError"),parse:s((function(t){var e=this,i=[0],n=[],r=[null],o=[],a=this.table,l="",c=0,h=0,d=o.slice.call(arguments,1),u=Object.create(this.lexer),p={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p.yy[y]=this.yy[y]);u.setInput(t,p.yy),p.yy.lexer=u,p.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var g=u.yylloc;o.push(g);var f=u.options&&u.options.ranges;function S(){var t;return"number"!=typeof(t=n.pop()||u.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,s((function(t){i.length=i.length-2*t,r.length=r.length-t,o.length=o.length-t}),"popStack"),s(S,"lex");for(var m,_,T,b,k,E,x,C,v={};;){if(_=i[i.length-1],this.defaultActions[_]?T=this.defaultActions[_]:(null==m&&(m=S()),T=a[_]&&a[_][m]),void 0===T||!T.length||!T[0]){var D="";for(k in C=[],a[_])this.terminals_[k]&&k>2&&C.push("'"+this.terminals_[k]+"'");D=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(D,{text:u.match,token:this.terminals_[m]||m,line:u.yylineno,loc:g,expected:C})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+m);switch(T[0]){case 1:i.push(m),r.push(u.yytext),o.push(u.yylloc),i.push(T[1]),m=null,h=u.yyleng,l=u.yytext,c=u.yylineno,g=u.yylloc;break;case 2:if(E=this.productions_[T[1]][1],v.$=r[r.length-E],v._$={first_line:o[o.length-(E||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(E||1)].first_column,last_column:o[o.length-1].last_column},f&&(v._$.range=[o[o.length-(E||1)].range[0],o[o.length-1].range[1]]),void 0!==(b=this.performAction.apply(v,[l,h,c,p.yy,T[1],r,o].concat(d))))return b;E&&(i=i.slice(0,-1*E*2),r=r.slice(0,-1*E),o=o.slice(0,-1*E)),i.push(this.productions_[T[1]][0]),r.push(v.$),o.push(v._$),x=a[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}),"parse")},O=function(){return{EOF:1,parseError:s((function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)}),"parseError"),setInput:s((function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}),"setInput"),input:s((function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t}),"input"),unput:s((function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this}),"unput"),more:s((function(){return this._more=!0,this}),"more"),reject:s((function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"reject"),less:s((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:s((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:s((function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:s((function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:s((function(t,e){var s,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var r in n)this[r]=n[r];return!1}return!1}),"test_match"),next:s((function(){if(this.done)return this.EOF;var t,e,s,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;re[0].length)){if(e=s,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,n[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"next"),lex:s((function(){var t=this.next();return t||this.lex()}),"lex"),begin:s((function(t){this.conditionStack.push(t)}),"begin"),popState:s((function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]}),"popState"),_currentRules:s((function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules}),"_currentRules"),topState:s((function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"}),"topState"),pushState:s((function(t){this.begin(t)}),"pushState"),stateStackSize:s((function(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":!0},performAction:s((function(t,e,s,i){switch(s){case 0:return 41;case 1:case 42:return 48;case 2:case 43:return 49;case 3:case 44:return 50;case 4:case 45:return 51;case 5:case 6:case 8:case 9:case 10:case 11:case 54:case 56:case 62:break;case 7:case 77:return 5;case 12:case 32:return this.pushState("SCALE"),17;case 13:case 33:return 18;case 14:case 20:case 34:case 49:case 52:this.popState();break;case 15:return this.begin("acc_title"),33;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),35;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),39;case 25:return this.popState(),40;case 26:return this.pushState("CLASS"),45;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;case 28:return this.popState(),47;case 29:return this.pushState("STYLE"),42;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;case 31:return this.popState(),44;case 35:this.pushState("STATE");break;case 36:case 39:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 37:case 40:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";case 48:case 64:return this.popState(),"ID";case 50:return"STATE_DESCR";case 51:return 19;case 53:return this.popState(),this.pushState("struct"),20;case 55:return this.popState(),21;case 57:return this.begin("NOTE"),29;case 58:return this.popState(),this.pushState("NOTE_ID"),56;case 59:return this.popState(),this.pushState("NOTE_ID"),57;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 63:return"NOTE_TEXT";case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;case 66:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 67:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 68:case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return e.yytext=e.yytext.trim(),14;case 74:return 15;case 75:return 28;case 76:return 55;case 78:return"INVALID"}}),"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}}}();function R(){this.yy={}}return w.lexer=O,s(R,"Parser"),R.prototype=w,w.Parser=R,new R}();f.parser=f;var S=f,m="state",_="relation",T="default",b="divider",k="fill:none",E="fill: #333",x="text",C="normal",v="rect",D="rectWithTitle",$="divider",L="roundedWithTitle",I="statediagram",A=`${I}-state`,w="transition",O=`${w} note-edge`,R=`${I}-note`,N=`${I}-cluster`,B=`${I}-cluster-alt`,F="parent",P="note",Y="----",G=`${Y}${P}`,j=`${Y}${F}`,z=s(((t,e="TB")=>{if(!t.doc)return e;let s=e;for(const i of t.doc)"dir"===i.stmt&&(s=i.value);return s}),"getDir"),U={getClasses:s((function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}),"getClasses"),draw:s((async function(s,i,r,o){d.info("REF0:"),d.info("Drawing state diagram (v2)",i);const{securityLevel:a,state:l,layout:c}=n();o.db.extract(o.db.getRootDocV2());const h=o.db.getData(),y=t(i,a);h.type=o.type,h.layoutAlgorithm=c,h.nodeSpacing=(null==l?void 0:l.nodeSpacing)||50,h.rankSpacing=(null==l?void 0:l.rankSpacing)||50,h.markers=["barb"],h.diagramId=i,await u(h,y);p.insertTitle(y,"statediagramTitleText",(null==l?void 0:l.titleTopMargin)??25,o.db.getDiagramTitle()),e(y,8,I,(null==l?void 0:l.useMaxWidth)??!0)}),"draw"),getDir:z},M=new Map,X=0;function H(t="",e=0,s="",i=Y){return`state-${t}${null!==s&&s.length>0?`${i}${s}`:""}-${e}`}s(H,"stateDomId");var W=s(((t,e,s,r,o,a,l,c)=>{d.trace("items",e),e.forEach((e=>{switch(e.stmt){case m:case T:Q(t,e,s,r,o,a,l,c);break;case _:{Q(t,e.state1,s,r,o,a,l,c),Q(t,e.state2,s,r,o,a,l,c);const h={id:"edge"+X,start:e.state1.id,end:e.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:k,labelStyle:"",label:i.sanitizeText(e.description,n()),arrowheadStyle:E,labelpos:"c",labelType:x,thickness:C,classes:w,look:l};o.push(h),X++}}}))}),"setupDoc"),J=s(((t,e="TB")=>{let s=e;if(t.doc)for(const i of t.doc)"dir"===i.stmt&&(s=i.value);return s}),"getDir");function V(t,e,s){if(!e.id||""===e.id||""===e.id)return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach((t=>{if(s.get(t)){const i=s.get(t);e.cssCompiledStyles=[...e.cssCompiledStyles,...i.styles]}})));const i=t.find((t=>t.id===e.id));i?Object.assign(i,e):t.push(e)}function K(t){var e;return(null==(e=null==t?void 0:t.classes)?void 0:e.join(" "))??""}function q(t){return(null==t?void 0:t.styles)??[]}s(V,"insertOrUpdateNode"),s(K,"getClassesFromDbInfo"),s(q,"getStylesFromDbInfo");var Q=s(((t,e,s,r,o,a,l,c)=>{var h,u;const p=e.id,y=s.get(p),g=K(y),f=q(y);if(d.info("dataFetcher parsedItem",e,y,f),"root"!==p){let s=v;!0===e.start?s="stateStart":!1===e.start&&(s="stateEnd"),e.type!==T&&(s=e.type),M.get(p)||M.set(p,{id:p,shape:s,description:i.sanitizeText(p,n()),cssClasses:`${g} ${A}`,cssStyles:f});const y=M.get(p);e.description&&(Array.isArray(y.description)?(y.shape=D,y.description.push(e.description)):(null==(h=y.description)?void 0:h.length)>0?(y.shape=D,y.description===p?y.description=[e.description]:y.description=[y.description,e.description]):(y.shape=v,y.description=e.description),y.description=i.sanitizeTextOrArray(y.description,n())),1===(null==(u=y.description)?void 0:u.length)&&y.shape===D&&("group"===y.type?y.shape=L:y.shape=v),!y.type&&e.doc&&(d.info("Setting cluster for XCX",p,J(e)),y.type="group",y.isGroup=!0,y.dir=J(e),y.shape=e.type===b?$:L,y.cssClasses=`${y.cssClasses} ${N} ${a?B:""}`);const S={labelStyle:"",shape:y.shape,label:y.description,cssClasses:y.cssClasses,cssCompiledStyles:[],cssStyles:y.cssStyles,id:p,dir:y.dir,domId:H(p,X),type:y.type,isGroup:"group"===y.type,padding:8,rx:10,ry:10,look:l};if(S.shape===$&&(S.label=""),t&&"root"!==t.id&&(d.trace("Setting node ",p," to be child of its parent ",t.id),S.parentId=t.id),S.centerLabel=!0,e.note){const t={labelStyle:"",shape:"note",label:e.note.text,cssClasses:R,cssStyles:[],cssCompilesStyles:[],id:p+G+"-"+X,domId:H(p,X,P),type:y.type,isGroup:"group"===y.type,padding:n().flowchart.padding,look:l,position:e.note.position},s=p+j,i={labelStyle:"",shape:"noteGroup",label:e.note.text,cssClasses:y.cssClasses,cssStyles:[],id:p+j,domId:H(p,X,F),type:"group",isGroup:!0,padding:16,look:l,position:e.note.position};X++,i.id=s,t.parentId=s,V(r,i,c),V(r,t,c),V(r,S,c);let a=p,h=t.id;"left of"===e.note.position&&(a=t.id,h=p),o.push({id:a+"-"+h,start:a,end:h,arrowhead:"none",arrowTypeEnd:"",style:k,labelStyle:"",classes:O,arrowheadStyle:E,labelpos:"c",labelType:x,thickness:C,look:l})}else V(r,S,c)}e.doc&&(d.trace("Adding nodes children "),W(e,e.doc,s,r,o,!a,l,c))}),"dataFetcher"),Z=s((()=>{M.clear(),X=0}),"reset"),tt="[*]",et="start",st=tt,it="color",nt="fill";function rt(){return new Map}s(rt,"newClassesList");var ot=[],at=[],lt="LR",ct=[],ht=rt(),dt=s((()=>({relations:[],states:new Map,documents:{}})),"newDoc"),ut={root:dt()},pt=ut.root,yt=0,gt=0,ft=s((t=>JSON.parse(JSON.stringify(t))),"clone"),St=s((t=>{d.info("Setting root doc",t),ct=t}),"setRootDoc"),mt=s((()=>ct),"getRootDoc"),_t=s(((t,e,s)=>{if(e.stmt===_)_t(t,e.state1,!0),_t(t,e.state2,!1);else if(e.stmt===m&&("[*]"===e.id?(e.id=s?t.id+"_start":t.id+"_end",e.start=s):e.id=e.id.trim()),e.doc){const t=[];let s,i=[];for(s=0;s0&&i.length>0){const s={stmt:m,id:g(),type:"divider",doc:ft(i)};t.push(ft(s)),e.doc=t}e.doc.forEach((t=>_t(e,t,!0)))}}),"docTranslator"),Tt=s((()=>(_t({id:"root"},{id:"root",doc:ct},!0),{id:"root",doc:ct})),"getRootDocV2"),bt=s((t=>{let e;e=t.doc?t.doc:t,d.info(e),Et(!0),d.info("Extract initial document:",e),e.forEach((t=>{switch(d.warn("Statement",t.stmt),t.stmt){case m:kt(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case _:Ot(t.state1,t.state2,t.description);break;case"classDef":Ft(t.id.trim(),t.classes);break;case"style":{const e=t.id.trim().split(","),s=t.styleClass.split(",");e.forEach((t=>{let e=xt(t);if(void 0===e){const s=t.trim();kt(s),e=xt(s)}e.styles=s.map((t=>{var e;return null==(e=t.replace(/;/g,""))?void 0:e.trim()}))}))}break;case"applyClass":Yt(t.id.trim(),t.styleClass)}}));const s=Ct(),i=n().look;Z(),Q(void 0,Tt(),s,ot,at,!0,i,ht),ot.forEach((t=>{if(Array.isArray(t.label)){if(t.description=t.label.slice(1),t.isGroup&&t.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+t.id+"]");t.label=t.label[0]}}))}),"extract"),kt=s((function(t,e=T,s=null,r=null,o=null,a=null,l=null,c=null){const h=null==t?void 0:t.trim();if(pt.states.has(h)?(pt.states.get(h).doc||(pt.states.get(h).doc=s),pt.states.get(h).type||(pt.states.get(h).type=e)):(d.info("Adding state ",h,r),pt.states.set(h,{id:h,descriptions:[],type:e,doc:s,note:o,classes:[],styles:[],textStyles:[]})),r&&(d.info("Setting state description",h,r),"string"==typeof r&&Rt(h,r.trim()),"object"==typeof r&&r.forEach((t=>Rt(h,t.trim())))),o){const t=pt.states.get(h);t.note=o,t.note.text=i.sanitizeText(t.note.text,n())}if(a){d.info("Setting state classes",h,a);("string"==typeof a?[a]:a).forEach((t=>Yt(h,t.trim())))}if(l){d.info("Setting state styles",h,l);("string"==typeof l?[l]:l).forEach((t=>Gt(h,t.trim())))}if(c){d.info("Setting state styles",h,l);("string"==typeof c?[c]:c).forEach((t=>jt(h,t.trim())))}}),"addState"),Et=s((function(t){ot=[],at=[],ut={root:dt()},pt=ut.root,yt=0,ht=rt(),t||y()}),"clear"),xt=s((function(t){return pt.states.get(t)}),"getState"),Ct=s((function(){return pt.states}),"getStates"),vt=s((function(){d.info("Documents = ",ut)}),"logDocuments"),Dt=s((function(){return pt.relations}),"getRelations");function $t(t=""){let e=t;return t===tt&&(yt++,e=`${et}${yt}`),e}function Lt(t="",e=T){return t===tt?et:e}function It(t=""){let e=t;return t===st&&(e=`end${++yt}`),e}function At(t="",e=T){return t===st?"end":e}function wt(t,e,s){let r=$t(t.id.trim()),o=Lt(t.id.trim(),t.type),a=$t(e.id.trim()),l=Lt(e.id.trim(),e.type);kt(r,o,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),kt(a,l,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),pt.relations.push({id1:r,id2:a,relationTitle:i.sanitizeText(s,n())})}s($t,"startIdIfNeeded"),s(Lt,"startTypeIfNeeded"),s(It,"endIdIfNeeded"),s(At,"endTypeIfNeeded"),s(wt,"addRelationObjs");var Ot=s((function(t,e,s){if("object"==typeof t)wt(t,e,s);else{const r=$t(t.trim()),o=Lt(t),a=It(e.trim()),l=At(e);kt(r,o),kt(a,l),pt.relations.push({id1:r,id2:a,title:i.sanitizeText(s,n())})}}),"addRelation"),Rt=s((function(t,e){const s=pt.states.get(t),r=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(i.sanitizeText(r,n()))}),"addDescription"),Nt=s((function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()}),"cleanupLabel"),Bt=s((()=>"divider-id-"+ ++gt),"getDividerId"),Ft=s((function(t,e=""){ht.has(t)||ht.set(t,{id:t,styles:[],textStyles:[]});const s=ht.get(t);null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(it).exec(t)){const t=e.replace(nt,"bgFill").replace(it,nt);s.textStyles.push(t)}s.styles.push(e)}))}),"addStyleClass"),Pt=s((function(){return ht}),"getClasses"),Yt=s((function(t,e){t.split(",").forEach((function(t){let s=xt(t);if(void 0===s){const e=t.trim();kt(e),s=xt(e)}s.classes.push(e)}))}),"setCssClass"),Gt=s((function(t,e){const s=xt(t);void 0!==s&&s.styles.push(e)}),"setStyle"),jt=s((function(t,e){const s=xt(t);void 0!==s&&s.textStyles.push(e)}),"setTextStyle"),zt=s((()=>lt),"getDirection"),Ut=s((t=>{lt=t}),"setDirection"),Mt=s((t=>t&&":"===t[0]?t.substr(1).trim():t.trim()),"trimColon"),Xt=s((()=>{const t=n();return{nodes:ot,edges:at,other:{},config:t,direction:z(Tt())}}),"getData"),Ht={getConfig:s((()=>n().state),"getConfig"),getData:Xt,addState:kt,clear:Et,getState:xt,getStates:Ct,getRelations:Dt,getClasses:Pt,getDirection:zt,addRelation:Ot,getDividerId:Bt,setDirection:Ut,cleanupLabel:Nt,lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:vt,getRootDoc:mt,setRootDoc:St,getRootDocV2:Tt,extract:bt,trimColon:Mt,getAccTitle:r,setAccTitle:o,getAccDescription:a,setAccDescription:l,addStyleClass:Ft,setCssClass:Yt,addDescription:Rt,setDiagramTitle:c,getDiagramTitle:h},Wt=s((t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel {\n background-color: ${t.edgeLabelBackground};\n p {\n background-color: ${t.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n // line-height: 1;\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`),"getStyles");export{Ht as a,Wt as b,U as c,S as s}; diff --git a/public/examples/ui/assets/chunk-ASOPGD6M-D6xyJYp8.js b/public/examples/ui/assets/chunk-ASOPGD6M-D6xyJYp8.js new file mode 100644 index 0000000..d3611da --- /dev/null +++ b/public/examples/ui/assets/chunk-ASOPGD6M-D6xyJYp8.js @@ -0,0 +1 @@ +import{_ as t,m as a,k as r}from"./mermaid-BlcZebEZ.js";var s=t(((t,a)=>{const r=t.append("rect");if(r.attr("x",a.x),r.attr("y",a.y),r.attr("fill",a.fill),r.attr("stroke",a.stroke),r.attr("width",a.width),r.attr("height",a.height),a.name&&r.attr("name",a.name),a.rx&&r.attr("rx",a.rx),a.ry&&r.attr("ry",a.ry),void 0!==a.attrs)for(const s in a.attrs)r.attr(s,a.attrs[s]);return a.class&&r.attr("class",a.class),r}),"drawRect"),e=t(((t,a)=>{const r={x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,stroke:a.stroke,class:"rect"};s(t,r).lower()}),"drawBackgroundRect"),n=t(((t,r)=>{const s=r.text.replace(a," "),e=t.append("text");e.attr("x",r.x),e.attr("y",r.y),e.attr("class","legend"),e.style("text-anchor",r.anchor),r.class&&e.attr("class",r.class);const n=e.append("tspan");return n.attr("x",r.x+2*r.textMargin),n.text(s),e}),"drawText"),x=t(((t,a,s,e)=>{const n=t.append("image");n.attr("x",a),n.attr("y",s);const x=r(e);n.attr("xlink:href",x)}),"drawImage"),c=t(((t,a,s,e)=>{const n=t.append("use");n.attr("x",a),n.attr("y",s);const x=r(e);n.attr("xlink:href",`#${x}`)}),"drawEmbeddedImage"),o=t((()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0})),"getNoteRect"),i=t((()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0})),"getTextObj");export{i as a,e as b,c,s as d,x as e,n as f,o as g}; diff --git a/public/examples/ui/assets/chunk-KFBOBJHC-D_FBPDwR.js b/public/examples/ui/assets/chunk-KFBOBJHC-D_FBPDwR.js new file mode 100644 index 0000000..70097c7 --- /dev/null +++ b/public/examples/ui/assets/chunk-KFBOBJHC-D_FBPDwR.js @@ -0,0 +1 @@ +var t;import{_ as i}from"./mermaid-BlcZebEZ.js";var r=(i(t=class{constructor(t){this.init=t,this.records=this.init()}reset(){this.records=this.init()}},"ImperativeState"),t);export{r as I}; diff --git a/public/examples/ui/assets/chunk-T2TOU4HS-DQdZAGHS.js b/public/examples/ui/assets/chunk-T2TOU4HS-DQdZAGHS.js new file mode 100644 index 0000000..3901615 --- /dev/null +++ b/public/examples/ui/assets/chunk-T2TOU4HS-DQdZAGHS.js @@ -0,0 +1 @@ +var t;import{g as e,s}from"./chunk-5HRBRIJM-DEysg7ZQ.js";import{_ as n,i,d as u,P as a,s as r,g as o,b as l,c,p as h,q as p,e as d,v as A,l as y,u as g,x as m,y as f,z as C}from"./mermaid-BlcZebEZ.js";import{s as E}from"./transform-D6ULhE8R.js";var b=function(){var t=n((function(t,e,s,n){for(s=s||{},n=t.length;n--;s[t[n]]=e);return s}),"o"),e=[1,18],s=[1,19],i=[1,20],u=[1,41],a=[1,42],r=[1,26],o=[1,24],l=[1,25],c=[1,32],h=[1,33],p=[1,34],d=[1,45],A=[1,35],y=[1,36],g=[1,37],m=[1,38],f=[1,27],C=[1,28],E=[1,29],b=[1,30],k=[1,31],T=[1,44],F=[1,46],D=[1,43],B=[1,47],_=[1,9],S=[1,8,9],N=[1,58],L=[1,59],$=[1,60],x=[1,61],I=[1,62],v=[1,63],O=[1,64],w=[1,8,9,41],R=[1,76],P=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],M=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],G=[13,58,84,99,101,102],U=[13,58,71,72,84,99,101,102],z=[13,58,66,67,68,69,70,84,99,101,102],Y=[1,98],K=[1,115],j=[1,107],W=[1,113],X=[1,108],Q=[1,109],H=[1,110],q=[1,111],J=[1,112],V=[1,114],Z=[22,58,59,80,84,85,86,87,88,89],tt=[1,8,9,39,41,44],et=[1,8,9,22],st=[1,143],nt=[1,8,9,59],it=[1,8,9,22,58,59,80,84,85,86,87,88,89],ut={trace:n((function(){}),"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:n((function(t,e,s,n,i,u,a){var r=u.length-1;switch(i){case 8:this.$=u[r-1];break;case 9:case 12:case 14:this.$=u[r];break;case 10:case 13:this.$=u[r-2]+"."+u[r];break;case 11:case 15:case 95:this.$=u[r-1]+u[r];break;case 16:case 17:this.$=u[r-1]+"~"+u[r]+"~";break;case 18:n.addRelation(u[r]);break;case 19:u[r-1].title=n.cleanupLabel(u[r]),n.addRelation(u[r-1]);break;case 30:this.$=u[r].trim(),n.setAccTitle(this.$);break;case 31:case 32:this.$=u[r].trim(),n.setAccDescription(this.$);break;case 33:n.addClassesToNamespace(u[r-3],u[r-1]);break;case 34:n.addClassesToNamespace(u[r-4],u[r-1]);break;case 35:this.$=u[r],n.addNamespace(u[r]);break;case 36:case 46:case 59:case 92:this.$=[u[r]];break;case 37:this.$=[u[r-1]];break;case 38:u[r].unshift(u[r-2]),this.$=u[r];break;case 40:n.setCssClass(u[r-2],u[r]);break;case 41:n.addMembers(u[r-3],u[r-1]);break;case 42:n.setCssClass(u[r-5],u[r-3]),n.addMembers(u[r-5],u[r-1]);break;case 43:this.$=u[r],n.addClass(u[r]);break;case 44:this.$=u[r-1],n.addClass(u[r-1]),n.setClassLabel(u[r-1],u[r]);break;case 45:n.addAnnotation(u[r],u[r-2]);break;case 47:u[r].push(u[r-1]),this.$=u[r];break;case 48:case 50:case 51:break;case 49:n.addMember(u[r-1],n.cleanupLabel(u[r]));break;case 52:this.$={id1:u[r-2],id2:u[r],relation:u[r-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:u[r-3],id2:u[r],relation:u[r-1],relationTitle1:u[r-2],relationTitle2:"none"};break;case 54:this.$={id1:u[r-3],id2:u[r],relation:u[r-2],relationTitle1:"none",relationTitle2:u[r-1]};break;case 55:this.$={id1:u[r-4],id2:u[r],relation:u[r-2],relationTitle1:u[r-3],relationTitle2:u[r-1]};break;case 56:n.addNote(u[r],u[r-1]);break;case 57:n.addNote(u[r]);break;case 58:this.$=u[r-2],n.defineClass(u[r-1],u[r]);break;case 60:this.$=u[r-2].concat([u[r]]);break;case 61:n.setDirection("TB");break;case 62:n.setDirection("BT");break;case 63:n.setDirection("RL");break;case 64:n.setDirection("LR");break;case 65:this.$={type1:u[r-2],type2:u[r],lineType:u[r-1]};break;case 66:this.$={type1:"none",type2:u[r],lineType:u[r-1]};break;case 67:this.$={type1:u[r-1],type2:"none",lineType:u[r]};break;case 68:this.$={type1:"none",type2:"none",lineType:u[r]};break;case 69:this.$=n.relationType.AGGREGATION;break;case 70:this.$=n.relationType.EXTENSION;break;case 71:this.$=n.relationType.COMPOSITION;break;case 72:this.$=n.relationType.DEPENDENCY;break;case 73:this.$=n.relationType.LOLLIPOP;break;case 74:this.$=n.lineType.LINE;break;case 75:this.$=n.lineType.DOTTED_LINE;break;case 76:case 82:this.$=u[r-2],n.setClickEvent(u[r-1],u[r]);break;case 77:case 83:this.$=u[r-3],n.setClickEvent(u[r-2],u[r-1]),n.setTooltip(u[r-2],u[r]);break;case 78:this.$=u[r-2],n.setLink(u[r-1],u[r]);break;case 79:this.$=u[r-3],n.setLink(u[r-2],u[r-1],u[r]);break;case 80:this.$=u[r-3],n.setLink(u[r-2],u[r-1]),n.setTooltip(u[r-2],u[r]);break;case 81:this.$=u[r-4],n.setLink(u[r-3],u[r-2],u[r]),n.setTooltip(u[r-3],u[r-1]);break;case 84:this.$=u[r-3],n.setClickEvent(u[r-2],u[r-1],u[r]);break;case 85:this.$=u[r-4],n.setClickEvent(u[r-3],u[r-2],u[r-1]),n.setTooltip(u[r-3],u[r]);break;case 86:this.$=u[r-3],n.setLink(u[r-2],u[r]);break;case 87:this.$=u[r-4],n.setLink(u[r-3],u[r-1],u[r]);break;case 88:this.$=u[r-4],n.setLink(u[r-3],u[r-1]),n.setTooltip(u[r-3],u[r]);break;case 89:this.$=u[r-5],n.setLink(u[r-4],u[r-2],u[r]),n.setTooltip(u[r-4],u[r-1]);break;case 90:this.$=u[r-2],n.setCssStyle(u[r-1],u[r]);break;case 91:n.setCssClass(u[r-1],u[r]);break;case 93:u[r-2].push(u[r]),this.$=u[r-2]}}),"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:s,37:i,38:22,42:u,43:23,46:a,47:r,49:o,50:l,52:c,54:h,55:p,58:d,60:A,61:y,62:g,63:m,73:f,74:C,76:E,80:b,81:k,84:T,99:F,101:D,102:B},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(_,[2,5],{8:[1,48]}),{8:[1,49]},t(S,[2,18],{22:[1,50]}),t(S,[2,20]),t(S,[2,21]),t(S,[2,22]),t(S,[2,23]),t(S,[2,24]),t(S,[2,25]),t(S,[2,26]),t(S,[2,27]),t(S,[2,28]),t(S,[2,29]),{34:[1,51]},{36:[1,52]},t(S,[2,32]),t(S,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:N,67:L,68:$,69:x,70:I,71:v,72:O}),{39:[1,65]},t(w,[2,39],{39:[1,67],44:[1,66]}),t(S,[2,50]),t(S,[2,51]),{16:68,58:d,84:T,99:F,101:D},{16:39,18:69,19:40,58:d,84:T,99:F,101:D,102:B},{16:39,18:70,19:40,58:d,84:T,99:F,101:D,102:B},{16:39,18:71,19:40,58:d,84:T,99:F,101:D,102:B},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:d,84:T,99:F,101:D,102:B},{13:R,53:75},{56:77,58:[1,78]},t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),t(S,[2,64]),t(P,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:d,84:T,99:F,101:D,102:B}),t(P,[2,14],{20:[1,82]}),{15:83,16:84,58:d,84:T,99:F,101:D},{16:39,18:85,19:40,58:d,84:T,99:F,101:D,102:B},t(M,[2,118]),t(M,[2,119]),t(M,[2,120]),t(M,[2,121]),t([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),t(_,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:e,35:s,37:i,42:u,46:a,47:r,49:o,50:l,52:c,54:h,55:p,58:d,60:A,61:y,62:g,63:m,73:f,74:C,76:E,80:b,81:k,84:T,99:F,101:D,102:B}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:s,37:i,38:22,42:u,43:23,46:a,47:r,49:o,50:l,52:c,54:h,55:p,58:d,60:A,61:y,62:g,63:m,73:f,74:C,76:E,80:b,81:k,84:T,99:F,101:D,102:B},t(S,[2,19]),t(S,[2,30]),t(S,[2,31]),{13:[1,89],16:39,18:88,19:40,58:d,84:T,99:F,101:D,102:B},{51:90,64:56,65:57,66:N,67:L,68:$,69:x,70:I,71:v,72:O},t(S,[2,49]),{65:91,71:v,72:O},t(G,[2,68],{64:92,66:N,67:L,68:$,69:x,70:I}),t(U,[2,69]),t(U,[2,70]),t(U,[2,71]),t(U,[2,72]),t(U,[2,73]),t(z,[2,74]),t(z,[2,75]),{8:[1,94],24:95,40:93,43:23,46:a},{16:96,58:d,84:T,99:F,101:D},{45:97,49:Y},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:K,57:104,58:j,80:W,82:105,83:106,84:X,85:Q,86:H,87:q,88:J,89:V},{58:[1,116]},{13:R,53:117},t(S,[2,57]),t(S,[2,123]),{22:K,57:118,58:j,59:[1,119],80:W,82:105,83:106,84:X,85:Q,86:H,87:q,88:J,89:V},t(Z,[2,59]),{16:39,18:120,19:40,58:d,84:T,99:F,101:D,102:B},t(P,[2,15]),t(P,[2,16]),t(P,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:d,84:T,99:F,101:D},t(tt,[2,43],{11:123,12:[1,124]}),t(_,[2,7]),{9:[1,125]},t(et,[2,52]),{16:39,18:126,19:40,58:d,84:T,99:F,101:D,102:B},{13:[1,128],16:39,18:127,19:40,58:d,84:T,99:F,101:D,102:B},t(G,[2,67],{64:129,66:N,67:L,68:$,69:x,70:I}),t(G,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:a},{8:[1,132],41:[2,36]},t(w,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:Y},{16:39,18:136,19:40,58:d,84:T,99:F,101:D,102:B},t(S,[2,76],{13:[1,137]}),t(S,[2,78],{13:[1,139],75:[1,138]}),t(S,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},t(S,[2,90],{59:st}),t(nt,[2,92],{83:144,22:K,58:j,80:W,84:X,85:Q,86:H,87:q,88:J,89:V}),t(it,[2,94]),t(it,[2,96]),t(it,[2,97]),t(it,[2,98]),t(it,[2,99]),t(it,[2,100]),t(it,[2,101]),t(it,[2,102]),t(it,[2,103]),t(it,[2,104]),t(S,[2,91]),t(S,[2,56]),t(S,[2,58],{59:st}),{58:[1,145]},t(P,[2,13]),{15:146,16:84,58:d,84:T,99:F,101:D},{39:[2,11]},t(tt,[2,44]),{13:[1,147]},{1:[2,4]},t(et,[2,54]),t(et,[2,53]),{16:39,18:148,19:40,58:d,84:T,99:F,101:D,102:B},t(G,[2,65]),t(S,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:a},{45:151,49:Y},t(w,[2,41]),{41:[2,47]},t(S,[2,45]),t(S,[2,77]),t(S,[2,79]),t(S,[2,80],{75:[1,152]}),t(S,[2,83]),t(S,[2,84],{13:[1,153]}),t(S,[2,86],{13:[1,155],75:[1,154]}),{22:K,58:j,80:W,82:156,83:106,84:X,85:Q,86:H,87:q,88:J,89:V},t(it,[2,95]),t(Z,[2,60]),{39:[2,10]},{14:[1,157]},t(et,[2,55]),t(S,[2,34]),{41:[2,38]},{41:[1,158]},t(S,[2,81]),t(S,[2,85]),t(S,[2,87]),t(S,[2,88],{75:[1,159]}),t(nt,[2,93],{83:144,22:K,58:j,80:W,84:X,85:Q,86:H,87:q,88:J,89:V}),t(tt,[2,8]),t(w,[2,42]),t(S,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:n((function(t,e){if(!e.recoverable){var s=new Error(t);throw s.hash=e,s}this.trace(t)}),"parseError"),parse:n((function(t){var e=this,s=[0],i=[],u=[null],a=[],r=this.table,o="",l=0,c=0,h=a.slice.call(arguments,1),p=Object.create(this.lexer),d={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(d.yy[A]=this.yy[A]);p.setInput(t,d.yy),d.yy.lexer=p,d.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var y=p.yylloc;a.push(y);var g=p.options&&p.options.ranges;function m(){var t;return"number"!=typeof(t=i.pop()||p.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,n((function(t){s.length=s.length-2*t,u.length=u.length-t,a.length=a.length-t}),"popStack"),n(m,"lex");for(var f,C,E,b,k,T,F,D,B={};;){if(C=s[s.length-1],this.defaultActions[C]?E=this.defaultActions[C]:(null==f&&(f=m()),E=r[C]&&r[C][f]),void 0===E||!E.length||!E[0]){var _="";for(k in D=[],r[C])this.terminals_[k]&&k>2&&D.push("'"+this.terminals_[k]+"'");_=p.showPosition?"Parse error on line "+(l+1)+":\n"+p.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(_,{text:p.match,token:this.terminals_[f]||f,line:p.yylineno,loc:y,expected:D})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+f);switch(E[0]){case 1:s.push(f),u.push(p.yytext),a.push(p.yylloc),s.push(E[1]),f=null,c=p.yyleng,o=p.yytext,l=p.yylineno,y=p.yylloc;break;case 2:if(T=this.productions_[E[1]][1],B.$=u[u.length-T],B._$={first_line:a[a.length-(T||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(T||1)].first_column,last_column:a[a.length-1].last_column},g&&(B._$.range=[a[a.length-(T||1)].range[0],a[a.length-1].range[1]]),void 0!==(b=this.performAction.apply(B,[o,c,l,d.yy,E[1],u,a].concat(h))))return b;T&&(s=s.slice(0,-1*T*2),u=u.slice(0,-1*T),a=a.slice(0,-1*T)),s.push(this.productions_[E[1]][0]),u.push(B.$),a.push(B._$),F=r[s[s.length-2]][s[s.length-1]],s.push(F);break;case 3:return!0}}return!0}),"parse")},at=function(){return{EOF:1,parseError:n((function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)}),"parseError"),setInput:n((function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}),"setInput"),input:n((function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t}),"input"),unput:n((function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===n.length?this.yylloc.first_column:0)+n[n.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this}),"unput"),more:n((function(){return this._more=!0,this}),"more"),reject:n((function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"reject"),less:n((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:n((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:n((function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:n((function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:n((function(t,e){var s,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack){for(var u in i)this[u]=i[u];return!1}return!1}),"test_match"),next:n((function(){if(this.done)return this.EOF;var t,e,s,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),u=0;ue[0].length)){if(e=s,n=u,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,i[u])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}),"next"),lex:n((function(){var t=this.next();return t||this.lex()}),"lex"),begin:n((function(t){this.conditionStack.push(t)}),"begin"),popState:n((function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]}),"popState"),_currentRules:n((function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules}),"_currentRules"),topState:n((function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"}),"topState"),pushState:n((function(t){this.begin(t)}),"pushState"),stateStackSize:n((function(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:n((function(t,e,s,n){switch(s){case 0:return 60;case 1:return 61;case 2:return 62;case 3:return 63;case 4:case 5:case 14:case 31:case 36:case 40:case 47:break;case 6:return this.begin("acc_title"),33;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),35;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 19:case 22:case 24:case 58:case 61:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 35:return 8;case 15:case 16:return 7;case 17:case 37:case 45:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 77;case 23:return 78;case 25:return"STR";case 26:this.begin("string");break;case 27:return 80;case 28:return 55;case 29:return this.begin("namespace"),42;case 30:case 39:return this.popState(),8;case 32:return this.begin("namespace-body"),39;case 33:case 43:return this.popState(),41;case 34:case 44:return"EOF_IN_STRUCT";case 38:return this.begin("class"),46;case 41:return this.popState(),this.popState(),41;case 42:return this.begin("class-body"),39;case 46:return"OPEN_IN_STRUCT";case 48:return"MEMBER";case 49:return 81;case 50:return 73;case 51:return 74;case 52:return 76;case 53:return 52;case 54:return 54;case 55:return 47;case 56:return 48;case 57:return 79;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:case 65:case 66:case 67:return 75;case 68:case 69:return 67;case 70:case 71:return 69;case 72:return 68;case 73:return 66;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 22;case 78:return 44;case 79:return 99;case 80:return 17;case 81:return"PLUS";case 82:return 85;case 83:return 59;case 84:case 85:return 88;case 86:return 89;case 87:case 88:return"EQUALS";case 89:return 58;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 84;case 94:return 101;case 95:case 96:return 87;case 97:return 9}}),"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}}}();function rt(){this.yy={}}return ut.lexer=at,n(rt,"Parser"),rt.prototype=ut,ut.Parser=rt,new rt}();b.parser=b;var k=b,T=["#","+","~","-",""],F=(n(t=class{constructor(t,e){this.memberType=e,this.visibility="",this.classifier="",this.text="";const s=i(t,u());this.parseMember(s)}getDisplayDetails(){let t=this.visibility+a(this.id);"method"===this.memberType&&(t+=`(${a(this.parameters.trim())})`,this.returnType&&(t+=" : "+a(this.returnType))),t=t.trim();return{displayText:t,cssStyle:this.parseClassifier()}}parseMember(t){let e="";if("method"===this.memberType){const s=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t);if(s){const t=s[1]?s[1].trim():"";if(T.includes(t)&&(this.visibility=t),this.id=s[2],this.parameters=s[3]?s[3].trim():"",e=s[4]?s[4].trim():"",this.returnType=s[5]?s[5].trim():"",""===e){const t=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(t)&&(e=t,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const s=t.length,n=t.substring(0,1),i=t.substring(s-1);T.includes(n)&&(this.visibility=n),/[$*]/.exec(i)&&(e=i),this.id=t.substring(""===this.visibility?0:1,""===e?s:s-1)}this.classifier=e,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();const s=`${this.visibility?"\\"+this.visibility:""}${a(this.id)}${"method"===this.memberType?`(${a(this.parameters)})${this.returnType?" : "+a(this.returnType):""}`:""}`;this.text=s.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}},"ClassMember"),t),D="classId-",B=[],_=new Map,S=new Map,N=[],L=[],$=0,x=new Map,I=0,v=[],O=n((t=>d.sanitizeText(t,u())),"sanitizeText"),w=n((function(t){const e=d.sanitizeText(t,u());let s="",n=e;if(e.indexOf("~")>0){const t=e.split("~");n=O(t[0]),s=O(t[1])}return{className:n,type:s}}),"splitClassNameAndType"),R=n((function(t,e){const s=d.sanitizeText(t,u());e&&(e=O(e));const{className:n}=w(s);_.get(n).label=e,_.get(n).text=`${e}${_.get(n).type?`<${_.get(n).type}>`:""}`}),"setClassLabel"),P=n((function(t){const e=d.sanitizeText(t,u()),{className:s,type:n}=w(e);if(_.has(s))return;const i=d.sanitizeText(s,u());_.set(i,{id:i,type:n,label:i,text:`${i}${n?`<${n}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:D+i+"-"+$}),$++}),"addClass"),M=n((function(t,e){const s={id:`interface${L.length}`,label:t,classId:e};L.push(s)}),"addInterface"),G=n((function(t){const e=d.sanitizeText(t,u());if(_.has(e))return _.get(e).domId;throw new Error("Class not found: "+e)}),"lookUpDomId"),U=n((function(){B=[],_=new Map,N=[],L=[],(v=[]).push(rt),x=new Map,I=0,ot="TB",A()}),"clear"),z=n((function(t){return _.get(t)}),"getClass"),Y=n((function(){return _}),"getClasses"),K=n((function(){return B}),"getRelations"),j=n((function(){return N}),"getNotes"),W=n((function(t){y.debug("Adding relation: "+JSON.stringify(t));const e=[at.LOLLIPOP,at.AGGREGATION,at.COMPOSITION,at.DEPENDENCY,at.EXTENSION];t.relation.type1!==at.LOLLIPOP||e.includes(t.relation.type2)?t.relation.type2!==at.LOLLIPOP||e.includes(t.relation.type1)?(P(t.id1),P(t.id2)):(P(t.id1),M(t.id2,t.id1),t.id2="interface"+(L.length-1)):(P(t.id2),M(t.id1,t.id2),t.id1="interface"+(L.length-1)),t.id1=w(t.id1).className,t.id2=w(t.id2).className,t.relationTitle1=d.sanitizeText(t.relationTitle1.trim(),u()),t.relationTitle2=d.sanitizeText(t.relationTitle2.trim(),u()),B.push(t)}),"addRelation"),X=n((function(t,e){const s=w(t).className;_.get(s).annotations.push(e)}),"addAnnotation"),Q=n((function(t,e){P(t);const s=w(t).className,n=_.get(s);if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?n.annotations.push(O(t.substring(2,t.length-2))):t.indexOf(")")>0?n.methods.push(new F(t,"method")):t&&n.members.push(new F(t,"attribute"))}}),"addMember"),H=n((function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>Q(t,e))))}),"addMembers"),q=n((function(t,e){const s={id:`note${N.length}`,class:e,text:t};N.push(s)}),"addNote"),J=n((function(t){return t.startsWith(":")&&(t=t.substring(1)),O(t.trim())}),"cleanupLabel"),V=n((function(t,e){t.split(",").forEach((function(t){let s=t;/\d/.exec(t[0])&&(s=D+s);const n=_.get(s);n&&(n.cssClasses+=" "+e)}))}),"setCssClass"),Z=n((function(t,e){for(const s of t){let t=S.get(s);void 0===t&&(t={id:s,styles:[],textStyles:[]},S.set(s,t)),e&&e.forEach((function(e){if(/color/.exec(e)){const s=e.replace("fill","bgFill");t.textStyles.push(s)}t.styles.push(e)})),_.forEach((t=>{t.cssClasses.includes(s)&&t.styles.push(...e.flatMap((t=>t.split(","))))}))}}),"defineClass"),tt=n((function(t,e){t.split(",").forEach((function(t){void 0!==e&&(_.get(t).tooltip=O(e))}))}),"setTooltip"),et=n((function(t,e){return e&&x.has(e)?x.get(e).classes.get(t).tooltip:_.get(t).tooltip}),"getTooltip"),st=n((function(t,e,s){const n=u();t.split(",").forEach((function(t){let i=t;/\d/.exec(t[0])&&(i=D+i);const u=_.get(i);u&&(u.link=g.formatUrl(e,n),"sandbox"===n.securityLevel?u.linkTarget="_top":u.linkTarget="string"==typeof s?O(s):"_blank")})),V(t,"clickable")}),"setLink"),nt=n((function(t,e,s){t.split(",").forEach((function(t){it(t,e,s),_.get(t).haveCallback=!0})),V(t,"clickable")}),"setClickEvent"),it=n((function(t,e,s){const n=d.sanitizeText(t,u());if("loose"!==u().securityLevel)return;if(void 0===e)return;const i=n;if(_.has(i)){const t=G(i);let n=[];if("string"==typeof s){n=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0);E(this).classed("hover",!1)}))}),"setupToolTips");v.push(rt);var ot="TB",lt=n((()=>ot),"getDirection"),ct=n((t=>{ot=t}),"setDirection"),ht=n((function(t){x.has(t)||(x.set(t,{id:t,classes:new Map,children:{},domId:D+t+"-"+I}),I++)}),"addNamespace"),pt=n((function(t){return x.get(t)}),"getNamespace"),dt=n((function(){return x}),"getNamespaces"),At=n((function(t,e){if(x.has(t))for(const s of e){const{className:e}=w(s);_.get(e).parent=t,x.get(t).classes.set(e,_.get(e))}}),"addClassesToNamespace"),yt=n((function(t,e){const s=_.get(t);if(e&&s)for(const n of e)n.includes(",")?s.styles.push(...n.split(",")):s.styles.push(n)}),"setCssStyle");function gt(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}n(gt,"getArrowMarker");var mt=n((()=>{var t;const e=[],s=[],n=u();for(const u of x.keys()){const t=x.get(u);if(t){const s={id:t.id,label:t.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:n.look};e.push(s)}}for(const u of _.keys()){const t=_.get(u);if(t){const s=t;s.parentId=t.parent,s.look=n.look,e.push(s)}}let i=0;for(const u of N){i++;const a={id:u.id,label:u.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look};e.push(a);const r=(null==(t=_.get(u.class))?void 0:t.id)??"";if(r){const t={id:`edgeNote${i}`,start:u.id,end:r,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};s.push(t)}}for(const u of L){const t={id:u.id,label:u.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};e.push(t)}i=0;for(const u of B){i++;const t={id:m(u.id1,u.id2,{prefix:"id",counter:i}),start:u.id1,end:u.id2,type:"normal",label:u.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:gt(u.relation.type1),arrowTypeEnd:gt(u.relation.type2),startLabelRight:"none"===u.relationTitle1?"":u.relationTitle1,endLabelLeft:"none"===u.relationTitle2?"":u.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:u.style||"",pattern:1==u.relation.lineType?"dashed":"solid",look:n.look};s.push(t)}return{nodes:e,edges:s,other:{},config:n,direction:lt()}}),"getData"),ft={setAccTitle:r,getAccTitle:o,getAccDescription:l,setAccDescription:c,getConfig:n((()=>u().class),"getConfig"),addClass:P,bindFunctions:ut,clear:U,getClass:z,getClasses:Y,getNotes:j,addAnnotation:X,addNote:q,getRelations:K,addRelation:W,getDirection:lt,setDirection:ct,addMember:Q,addMembers:H,cleanupLabel:J,lineType:{LINE:0,DOTTED_LINE:1},relationType:at,setClickEvent:nt,setCssClass:V,defineClass:Z,setLink:st,getTooltip:et,setTooltip:tt,lookUpDomId:G,setDiagramTitle:h,getDiagramTitle:p,setClassLabel:R,addNamespace:ht,addClassesToNamespace:At,getNamespace:pt,getNamespaces:dt,setCssStyle:yt,getData:mt},Ct=n((t=>`g.classGroup text {\n fill: ${t.nodeBorder||t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n\n.labelBkg {\n background: ${t.mainBkg};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n line-height: initial;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`),"getStyles"),Et=n(((t,e="TB")=>{if(!t.doc)return e;let s=e;for(const n of t.doc)"dir"===n.stmt&&(s=n.value);return s}),"getDir"),bt={getClasses:n((function(t,e){return e.db.getClasses()}),"getClasses"),draw:n((async function(t,n,i,a){y.info("REF0:"),y.info("Drawing class diagram (v3)",n);const{securityLevel:r,state:o,layout:l}=u(),c=a.db.getData(),h=e(n,r);c.type=a.type,c.layoutAlgorithm=f(l),c.nodeSpacing=(null==o?void 0:o.nodeSpacing)||50,c.rankSpacing=(null==o?void 0:o.rankSpacing)||50,c.markers=["aggregation","extension","composition","dependency","lollipop"],c.diagramId=n,await C(c,h);g.insertTitle(h,"classDiagramTitleText",(null==o?void 0:o.titleTopMargin)??25,a.db.getDiagramTitle()),s(h,8,"classDiagram",(null==o?void 0:o.useMaxWidth)??!0)}),"draw"),getDir:Et};export{ft as a,bt as b,k as c,Ct as s}; diff --git a/public/examples/ui/assets/chunk-TMUBEWPD-5n2o6Qoo.js b/public/examples/ui/assets/chunk-TMUBEWPD-5n2o6Qoo.js new file mode 100644 index 0000000..86804bf --- /dev/null +++ b/public/examples/ui/assets/chunk-TMUBEWPD-5n2o6Qoo.js @@ -0,0 +1 @@ +import{_ as c}from"./mermaid-BlcZebEZ.js";function l(c,l){var t,e,a;c.accDescr&&(null==(t=l.setAccDescription)||t.call(l,c.accDescr)),c.accTitle&&(null==(e=l.setAccTitle)||e.call(l,c.accTitle)),c.title&&(null==(a=l.setDiagramTitle)||a.call(l,c.title))}c(l,"populateCommonDb");export{l as p}; diff --git a/public/examples/ui/assets/classDiagram-LNE6IOMH-DB4AfZyd.js b/public/examples/ui/assets/classDiagram-LNE6IOMH-DB4AfZyd.js new file mode 100644 index 0000000..ecad994 --- /dev/null +++ b/public/examples/ui/assets/classDiagram-LNE6IOMH-DB4AfZyd.js @@ -0,0 +1 @@ +import{c as r,a as s,b as a,s as e}from"./chunk-T2TOU4HS-DQdZAGHS.js";import{_ as o}from"./mermaid-BlcZebEZ.js";import"./transform-D6ULhE8R.js";import"./chunk-5HRBRIJM-DEysg7ZQ.js";import"./index-BnyyrSDd.js";import"./step-CaHXtLdi.js";var t={parser:r,db:s,renderer:a,styles:e,init:o((r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,s.clear()}),"init")};export{t as diagram}; diff --git a/public/examples/ui/assets/classDiagram-v2-MQ7JQ4JX-DB4AfZyd.js b/public/examples/ui/assets/classDiagram-v2-MQ7JQ4JX-DB4AfZyd.js new file mode 100644 index 0000000..ecad994 --- /dev/null +++ b/public/examples/ui/assets/classDiagram-v2-MQ7JQ4JX-DB4AfZyd.js @@ -0,0 +1 @@ +import{c as r,a as s,b as a,s as e}from"./chunk-T2TOU4HS-DQdZAGHS.js";import{_ as o}from"./mermaid-BlcZebEZ.js";import"./transform-D6ULhE8R.js";import"./chunk-5HRBRIJM-DEysg7ZQ.js";import"./index-BnyyrSDd.js";import"./step-CaHXtLdi.js";var t={parser:r,db:s,renderer:a,styles:e,init:o((r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,s.clear()}),"init")};export{t as diagram}; diff --git a/public/examples/ui/assets/clike-BPCXT8V3.js b/public/examples/ui/assets/clike-BPCXT8V3.js new file mode 100644 index 0000000..4cf2580 --- /dev/null +++ b/public/examples/ui/assets/clike-BPCXT8V3.js @@ -0,0 +1 @@ +function e(e,t,n,r,a,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=a,this.prev=o}function t(t,n,r,a){var o=t.indented;return t.context&&"statement"==t.context.type&&"statement"!=r&&(o=t.context.indented),t.context=new e(o,n,r,a,null,t.context)}function n(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function r(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function a(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function o(o){var i,s,c=o.statementIndentUnit,u=o.dontAlignCalls,d=o.keywords||{},f=o.types||{},p=o.builtin||{},m=o.blockKeywords||{},h=o.defKeywords||{},y=o.atoms||{},g=o.hooks||{},k=o.multiLineStrings,b=!1!==o.indentStatements,v=!1!==o.indentSwitch,w=o.namespaceSeparator,_=o.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,x=o.numberStart||/[\d\.]/,S=o.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,T=o.isOperatorChar||/[+\-*&%=<>!?|\/]/,N=o.isIdentifierChar||/[\w\$_\xa1-\uffff]/,I=o.isReservedIdentifier||!1;function D(e,t){var n,r=e.next();if(g[r]){var a=g[r](e,t);if(!1!==a)return a}if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,a=!1,o=!1;null!=(r=e.next());){if(r==n&&!a){o=!0;break}a=!a&&"\\"==r}return(o||!a&&!k)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(x.test(r)){if(e.backUp(1),e.match(S))return"number";e.next()}if(_.test(r))return i=r,null;if("/"==r){if(e.eat("*"))return t.tokenize=C,C(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(T.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(T););return"operator"}if(e.eatWhile(N),w)for(;e.match(w);)e.eatWhile(N);var o=e.current();return l(d,o)?(l(m,o)&&(i="newstatement"),l(h,o)&&(s=!0),"keyword"):l(f,o)?"type":l(p,o)||I&&I(o)?(l(m,o)&&(i="newstatement"),"builtin"):l(y,o)?"atom":"variable"}function C(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function z(e,t){o.typeFirstDefinitions&&e.eol()&&a(t.context)&&(t.typeAtEndOfLine=r(e,t,e.pos))}return{name:o.name,startState:function(t){return{tokenize:null,context:new e(-t,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,l){var c=l.context;if(e.sol()&&(null==c.align&&(c.align=!1),l.indented=e.indentation(),l.startOfLine=!0),e.eatSpace())return z(e,l),null;i=s=null;var u=(l.tokenize||D)(e,l);if("comment"==u||"meta"==u)return u;if(null==c.align&&(c.align=!0),";"==i||":"==i||","==i&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==l.context.type;)n(l);else if("{"==i)t(l,e.column(),"}");else if("["==i)t(l,e.column(),"]");else if("("==i)t(l,e.column(),")");else if("}"==i){for(;"statement"==c.type;)c=n(l);for("}"==c.type&&(c=n(l));"statement"==c.type;)c=n(l)}else i==c.type?n(l):b&&(("}"==c.type||"top"==c.type)&&";"!=i||"statement"==c.type&&"newstatement"==i)&&t(l,e.column(),"statement",e.current());if("variable"==u&&("def"==l.prevToken||o.typeFirstDefinitions&&r(e,l,e.start)&&a(l.context)&&e.match(/^\s*\(/,!1))&&(u="def"),g.token){var d=g.token(e,l,u);void 0!==d&&(u=d)}return"def"==u&&!1===o.styleDefs&&(u="variable"),l.startOfLine=!1,l.prevToken=s?"def":u||i,z(e,l),u},indent:function(e,t,n){if(e.tokenize!=D&&null!=e.tokenize||e.typeAtEndOfLine&&a(e.context))return null;var r=e.context,i=t&&t.charAt(0),l=i==r.type;if("statement"==r.type&&"}"==i&&(r=r.prev),o.dontIndentStatements)for(;"statement"==r.type&&o.dontIndentStatements.test(r.info);)r=r.prev;if(g.indent){var s=g.indent(e,r,t,n.unit);if("number"==typeof s)return s}var d=r.prev&&"switch"==r.prev.info;if(o.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==i?0:c||n.unit):!r.align||u&&")"==r.type?")"!=r.type||l?r.indented+(l?0:n.unit)+(l||!d||/^(?:case|default)\b/.test(t)?0:n.unit):r.indented+(c||n.unit):r.column+(l?0:1)},languageData:{indentOnInput:v?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(d).concat(Object.keys(f)).concat(Object.keys(p)).concat(Object.keys(y)),...o.languageData}}}function i(e){for(var t={},n=e.split(" "),r=0;r!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=z,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(t,n){var r=n.context;return!("}"!=r.type||!r.align||!t.eat(">"))&&(n.context=new e(r.indented,r.column,r.type,r.info,null,r.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=L(1),t.tokenize(e,t))}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});const E=o({name:"kotlin",keywords:i("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:i("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:i("catch class do else finally for if where try while enum"),defKeywords:i("class val var object interface fun"),atoms:i("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){var n;return t.tokenize=(n=e.match('""'),function(e,t){for(var r,a=!1,o=!1;!e.eol();){if(!n&&!a&&e.match('"')){o=!0;break}if(n&&e.match('"""')){o=!0;break}r=e.next(),!a&&"$"==r&&e.match("{")&&e.skipTo("}"),a=!a&&"\\"==r&&!n}return!o&&n||(t.tokenize=null),"string"}),t.tokenize(e,t)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=L(1),t.tokenize(e,t))},indent:function(e,t,n,r){var a=n&&n.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=n?"operator"==e.prevToken&&"}"!=n&&"}"!=e.context.type||"variable"==e.prevToken&&"."==a||("}"==e.prevToken||")"==e.prevToken)&&"."==a?2*r+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(n||"").charAt(0)?0:r):void 0:e.indented}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),F=o({name:"shader",keywords:i("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:i("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:i("for while do if else struct"),builtin:i("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:i("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":k}}),P=o({name:"nesc",keywords:i(s+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:m,blockKeywords:i(y),atoms:i("null true false"),hooks:{"#":k}}),R=o({name:"objectivec",keywords:i(s+" "+u),types:h,builtin:i(d),blockKeywords:i(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:i(g+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:i("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:v,hooks:{"#":k,"*":b}}),O=o({name:"objectivecpp",keywords:i(s+" "+u+" "+c),types:h,builtin:i(d),blockKeywords:i(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:i(g+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:i("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:v,hooks:{"#":k,"*":b,u:_,U:_,L:_,R:_,0:w,1:w,2:w,3:w,4:w,5:w,6:w,7:w,8:w,9:w,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&x(e.current()))return"def"}},namespaceSeparator:"::"}),A=o({name:"squirrel",keywords:i("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:m,blockKeywords:i("case catch class else for foreach if switch try while"),defKeywords:i("function local class"),typeFirstDefinitions:!0,atoms:i("true false null"),hooks:{"#":k}});var j=null;function U(e){return function(t,n){for(var r,a=!1,o=!1;!t.eol();){if(!a&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!a&&t.match("``")){j=U(e),o=!0;break}r=t.next(),a="single"==e&&!a&&"\\"==r}return o&&(n.tokenize=null),"string"}}const $=o({name:"ceylon",keywords:i("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:i("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:i("class dynamic function interface module object package value"),builtin:i("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:i("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=U(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!j||!e.match("`"))&&(t.tokenize=j,j=null,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function B(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function K(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function q(e,t,n,r){var a=!1;if(t.eat(e)){if(!t.eat(e))return"string";a=!0}function o(t,n){for(var o=!1;!t.eol();){if(!r&&!o&&"$"==t.peek())return B(n),n.tokenize=V,"string";var i=t.next();if(i==e&&!o&&(!a||t.match(e+e))){n.tokenize=null;break}o=!r&&!o&&"\\"==i}return"string"}return n.tokenize=o,o(t,n)}function V(e,t){return e.eat("$"),e.eat("{")?t.tokenize=null:t.tokenize=W,null}function W(e,t){return e.eatWhile(/[\w_]/),t.tokenize=K(t),"variable"}const G=o({name:"dart",keywords:i("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:i("try catch finally do else for if switch while"),builtin:i("void bool num int double dynamic var String Null Never"),atoms:i("true false null"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,t){return q("'",e,t,!1)},'"':function(e,t){return q('"',e,t,!1)},r:function(e,t){var n=e.peek();return("'"==n||'"'==n)&&q(e.next(),e,t,!0)},"}":function(e,t){return function(e){return e.interpolationStack?e.interpolationStack.length:0}(t)>0&&(t.tokenize=K(t),null)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=L(1),t.tokenize(e,t))},token:function(e,t,n){if("variable"==n&&RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g").test(e.current()))return"type"}}});export{N as c,$ as ceylon,o as clike,I as cpp,C as csharp,G as dart,D as java,E as kotlin,P as nesC,R as objectiveC,O as objectiveCpp,M as scala,F as shader,A as squirrel}; diff --git a/public/examples/ui/assets/clojure-DR_hEDJv.js b/public/examples/ui/assets/clojure-DR_hEDJv.js new file mode 100644 index 0000000..5c56182 --- /dev/null +++ b/public/examples/ui/assets/clojure-DR_hEDJv.js @@ -0,0 +1 @@ +var e=["false","nil","true"],t=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],n=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],r=f(e),a=f(t),o=f(n),s=f(["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"]),i=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,c=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,d=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,l=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function u(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(c))return[null,"number"];if(e.match(d))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=p)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(l),s=n&&n[0];return s?"comment"===s&&"("===t.lastToken?(t.tokenize=m)(e,t):h(s,r)||":"===s.charAt(0)?["symbol","atom"]:h(s,a)||h(s,o)?["symbol","keyword"]:"("===t.lastToken?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile((function(e){return!h(e,i)})),[null,"error"])}function p(e,t){for(var n,r=!1;n=e.next();){if('"'===n&&!r){t.tokenize=u;break}r=!r&&"\\"===n}return[null,"string"]}function m(e,t){for(var n,r=1;n=e.next();)if(")"===n&&r--,"("===n&&r++,0===r){e.backUp(1),t.tokenize=u;break}return["space","comment"]}function f(e){for(var t={},n=0;n >= "),O={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};const C={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(I,C){if(null==C.indentStack&&I.sol()&&(C.indentation=6),I.eatSpace())return null;var L=null;if("string"===C.mode){for(var D=!1;null!=(D=I.next());)if(('"'==D||"'"==D)&&!I.match(/['"]/,!1)){C.mode=!1;break}L=E}else{var S=I.next(),U=I.column();if(U>=0&&U<=5)L="def";else if(U>=72&&U<=79)I.skipToEnd(),L="header";else if("*"==S&&6==U)I.skipToEnd(),L="comment";else if('"'==S||"'"==S)C.mode="string",L=E;else if("'"!=S||O.digit_or_colon.test(I.peek()))if("."==S)L="link";else if(function(E,T){return"0"===E&&T.eat(/x/i)?(T.eatWhile(O.hex),!0):("+"!=E&&"-"!=E||!O.digit.test(T.peek())||(T.eat(O.sign),E=T.next()),!!O.digit.test(E)&&(T.eat(E),T.eatWhile(O.digit),"."==T.peek()&&(T.eat("."),T.eatWhile(O.digit)),T.eat(O.exponent)&&(T.eat(O.sign),T.eatWhile(O.digit)),!0))}(S,I))L="number";else{if(I.current().match(O.symbol))for(;U<71&&void 0!==I.eat(O.symbol);)U++;L=R.propertyIsEnumerable(I.current().toUpperCase())?"keyword":A.propertyIsEnumerable(I.current().toUpperCase())?"builtin":N.propertyIsEnumerable(I.current().toUpperCase())?T:null}else L=T}return L},indent:function(E){return null==E.indentStack?E.indentation:E.indentStack.indent}};export{C as cobol}; diff --git a/public/examples/ui/assets/coffeescript-BTDxI-eT.js b/public/examples/ui/assets/coffeescript-BTDxI-eT.js new file mode 100644 index 0000000..1163fd9 --- /dev/null +++ b/public/examples/ui/assets/coffeescript-BTDxI-eT.js @@ -0,0 +1 @@ +var e="error";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var n=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,r=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,o=/^[_A-Za-z$][_A-Za-z$0-9]*/,c=/^@[_A-Za-z$][_A-Za-z$0-9]*/,i=t(["and","or","not","is","isnt","in","instanceof","typeof"]),a=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],f=t(a.concat(["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"]));a=t(a);var p=/^('{3}|\"{3}|['\"])/,s=/^(\/{3}|\/)/,u=t(["Infinity","NaN","undefined","null","true","false","on","off","yes","no"]);function l(t,a){if(t.sol()){null===a.scope.align&&(a.scope.align=!1);var l=a.scope.offset;if(t.eatSpace()){var h=t.indentation();return h>l&&"coffee"==a.scope.type?"indent":h0&&v(t,a)}if(t.eatSpace())return null;var k=t.peek();if(t.match("####"))return t.skipToEnd(),"comment";if(t.match("###"))return a.tokenize=m,a.tokenize(t,a);if("#"===k)return t.skipToEnd(),"comment";if(t.match(/^-?[0-9\.]/,!1)){var g=!1;if(t.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(g=!0),t.match(/^-?\d+\.\d*/)&&(g=!0),t.match(/^-?\.\d+/)&&(g=!0),g)return"."==t.peek()&&t.backUp(1),"number";var y=!1;if(t.match(/^-?0x[0-9a-f]+/i)&&(y=!0),t.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(y=!0),t.match(/^-?0(?![\dx])/i)&&(y=!0),y)return"number"}if(t.match(p))return a.tokenize=d(t.current(),!1,"string"),a.tokenize(t,a);if(t.match(s)){if("/"!=t.current()||t.match(/^.*\//,!1))return a.tokenize=d(t.current(),!0,"string.special"),a.tokenize(t,a);t.backUp(1)}return t.match(n)||t.match(i)?"operator":t.match(r)?"punctuation":t.match(u)?"atom":t.match(c)||a.prop&&t.match(o)?"property":t.match(f)?"keyword":t.match(o)?"variable":(t.next(),e)}function d(e,t,n){return function(r,o){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return o.tokenize=l,n;r.eat(/['"\/]/)}return t&&(o.tokenize=l),n}}function m(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=l;break}e.eatWhile("#")}return"comment"}function h(e,t,n="coffee"){for(var r=0,o=!1,c=null,i=t.scope;i;i=i.prev)if("coffee"===i.type||"}"==i.type){r=i.offset+e.indentUnit;break}"coffee"!==n?(o=null,c=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:o,alignOffset:c}}function v(e,t){if(t.scope.prev){if("coffee"===t.scope.type){for(var n=e.indentation(),r=!1,o=t.scope;o;o=o.prev)if(n===o.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}return t.scope=t.scope.prev,!1}}const k={name:"coffeescript",startState:function(){return{tokenize:l,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(t,n){var r=null===n.scope.align&&n.scope;r&&t.sol()&&(r.align=!1);var o=function(t,n){var r=n.tokenize(t,n),o=t.current();"return"===o&&(n.dedent=!0),(("->"===o||"=>"===o)&&t.eol()||"indent"===r)&&h(t,n);var c="[({".indexOf(o);if(-1!==c&&h(t,n,"])}".slice(c,c+1)),a.exec(o)&&h(t,n),"then"==o&&v(t,n),"dedent"===r&&v(t,n))return e;if(-1!==(c="])}".indexOf(o))){for(;"coffee"==n.scope.type&&n.scope.prev;)n.scope=n.scope.prev;n.scope.type==o&&(n.scope=n.scope.prev)}return n.dedent&&t.eol()&&("coffee"==n.scope.type&&n.scope.prev&&(n.scope=n.scope.prev),n.dedent=!1),"indent"==r||"dedent"==r?null:r}(t,n);return o&&"comment"!=o&&(r&&(r.align=!0),n.prop="punctuation"==o&&"."==t.current()),o},indent:function(e,t){if(e.tokenize!=l)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;"coffee"==n.type&&n.prev;)n=n.prev;var o=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(o?1:0):(o?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}};export{k as coffeeScript}; diff --git a/public/examples/ui/assets/colors-bszWmPJw.js b/public/examples/ui/assets/colors-bszWmPJw.js new file mode 100644 index 0000000..9cc2e11 --- /dev/null +++ b/public/examples/ui/assets/colors-bszWmPJw.js @@ -0,0 +1 @@ +function r(r){for(var e=r.length/6|0,n=new Array(e),t=0;t0){for(o=e[--r];r>0&&(t=o,n=e[--r],o=t+n,i=n-(o-t),!i););r>0&&(i<0&&e[r-1]<0||i>0&&e[r-1]>0)&&(n=2*i,t=o+n,n==t-o&&(o=t))}return o}}function Zn(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(et?1:0)}function ei(t,n,i=0,r=1/0,o){if(n=Math.floor(n),i=Math.floor(Math.max(0,i)),r=Math.floor(Math.min(t.length-1,r)),!(i<=n&&n<=r))return t;for(o=void 0===o?Zn:function(t=e){if(t===e)return Zn;if("function"!=typeof t)throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);return i||0===i?i:(0===t(n,n))-(0===t(e,e))}}(o);r>i;){if(r-i>600){const e=r-i+1,a=n-i+1,s=Math.log(e),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(e-l)/e)*(a-e/2<0?-1:1);ei(t,n,Math.max(i,Math.floor(n-a*l/e+u)),Math.min(r,Math.floor(n+(e-a)*l/e+u)),o)}const e=t[n];let a=i,s=r;for(ti(t,i,n),o(t[r],e)>0&&ti(t,i,r);a0;)--s}0===o(t[i],e)?ti(t,i,s):(++s,ti(t,s,r)),s<=n&&(i=s+1),n<=s&&(r=s-1)}return t}function ti(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function ni(e,t,n){if((i=(e=Float64Array.from(Et(e,n))).length)&&!isNaN(t=+t)){if(t<=0||i<2)return mt(e);if(t>=1)return gt(e);var i,r=(i-1)*t,o=Math.floor(r),a=gt(ei(e,o).subarray(0,o+1));return a+(mt(e.subarray(o+1))-a)*(r-o)}}function ii(e,t,n=Ft){if((i=e.length)&&!isNaN(t=+t)){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),a=+n(e[o],o,e);return a+(+n(e[o+1],o+1,e)-a)*(r-o)}}function ri(e,t){return ni(e,.5,t)}function oi(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function ai(e,t){let n=0;for(let i of e)(i=+i)&&(n+=i);return n}function si(e){return e instanceof Vn?e:new Vn(e)}var li=-.14861,ui=1.78277,ci=-.29227,fi=-.90649,di=1.97294,hi=di*fi,pi=di*ui,mi=ui*ci-fi*li;function gi(e,t,n,i){return 1===arguments.length?function(e){if(e instanceof yi)return new yi(e.h,e.s,e.l,e.opacity);e instanceof Gt||(e=Vt(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(mi*i+hi*t-pi*n)/(mi+hi-pi),o=i-r,a=(di*(n-r)-ci*o)/fi,s=Math.sqrt(a*a+o*o)/(di*r*(1-r)),l=s?Math.atan2(a,o)*vt-120:NaN;return new yi(l<0?l+360:l,s,r,e.opacity)}(e):new yi(e,t,n,null==i?1:i)}function yi(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}Yt(yi,gi,Xt(Jt,{brighter(e){return e=null==e?Qt:Math.pow(Qt,e),new yi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Kt:Math.pow(Kt,e),new yi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*yt,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new Gt(255*(t+n*(li*i+ui*r)),255*(t+n*(ci*i+fi*r)),255*(t+n*(di*i)),this.opacity)}}));function vi(e){return((e=Math.exp(e))+1/e)/2}const bi=function e(t,n,i){function r(e,r){var o,a,s=e[0],l=e[1],u=e[2],c=r[0],f=r[1],d=r[2],h=c-s,p=f-l,m=h*h+p*p;if(m<1e-12)a=Math.log(d/u)/t,o=function(e){return[s+e*h,l+e*p,u*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(d*d-u*u+i*m)/(2*u*n*g),v=(d*d-u*u-i*m)/(2*d*n*g),b=Math.log(Math.sqrt(y*y+1)-y),x=Math.log(Math.sqrt(v*v+1)-v);a=(x-b)/t,o=function(e){var i,r=e*a,o=vi(b),c=u/(n*g)*(o*(i=t*r+b,((i=Math.exp(2*i))-1)/(i+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+c*h,l+c*p,u*o/vi(t*r+b)]}}return o.duration=1e3*a*t/Math.SQRT2,o}return r.rho=function(t){var n=Math.max(.001,+t),i=n*n;return e(n,i,i*i)},r}(Math.SQRT2,2,4);function xi(e){return function(t,n){var i=e((t=en(t)).h,(n=en(n)).h),r=tn(t.s,n.s),o=tn(t.l,n.l),a=tn(t.opacity,n.opacity);return function(e){return t.h=i(e),t.s=r(e),t.l=o(e),t.opacity=a(e),t+""}}}const wi=xi(Zt);var _i=xi(tn);function ki(e){return function t(n){function i(t,i){var r=e((t=gi(t)).h,(i=gi(i)).h),o=tn(t.s,i.s),a=tn(t.l,i.l),s=tn(t.opacity,i.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,i.gamma=t,i}(1)}const $i=ki(Zt);var Di=ki(tn);function Ai(e,t){void 0===t&&(t=e,e=Ct);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);nzi(e,t)))}:Ei(e)?{or:e.or.map((e=>zi(e,t)))}:t(e)}const Oi=structuredClone;function Ni(e){throw new Error(e)}function Ri(e,n){const i={};for(const r of n)t(e,r)&&(i[r]=e[r]);return i}function Ti(e,t){const n={...e};for(const i of t)delete n[i];return n}function Bi(e){if(n(e))return e;const t=i(e)?e:kr(e);if(t.length<250)return t;let r=0;for(let n=0;n0===t?e:`[${e}]`)),i=e.map(((t,n)=>e.slice(0,n+1).join("")));for(const n of i)t.add(n)}return t}function Xi(e,t){return void 0===e||void 0===t||Vi(Yi(e),Yi(t))}function Ji(e){return 0===Qi(e).length}Set.prototype.toJSON=function(){return`Set(${[...this].map((e=>kr(e))).join(",")})`};const Qi=Object.keys,Ki=Object.values,Zi=Object.entries;function er(e){return!0===e||!1===e}function tr(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function nr(e,t){return Ci(e)?`!(${nr(e.not,t)})`:Fi(e)?`(${e.and.map((e=>nr(e,t))).join(") && (")})`:Ei(e)?`(${e.or.map((e=>nr(e,t))).join(") || (")})`:t(e)}function ir(e,t){if(0===t.length)return!0;const n=t.shift();return n in e&&ir(e[n],t)&&delete e[n],Ji(e)}function rr(e){return e.charAt(0).toUpperCase()+e.substr(1)}function or(e,t="datum"){const n=o(e),i=[];for(let r=1;r<=n.length;r++){const e=`[${n.slice(0,r).map(a).join("][")}]`;i.push(`${t}${e}`)}return i.join(" && ")}function ar(e,t="datum"){return`${t}[${a(o(e).join("."))}]`}function sr(e){return`datum['${e.replaceAll("'","\\'")}']`}function lr(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ur(e){return`${o(e).map(lr).join("\\.")}`}function cr(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function fr(e){return`${o(e).join(".")}`}function dr(e){return e?o(e).length:0}function hr(...e){return e.find((e=>void 0!==e))}let pr=42;function mr(e){const t=++pr;return e?String(e)+t:t}function gr(){pr=42}function yr(e){return vr(e)?e:`__${e}`}function vr(e){return e.startsWith("__")}function br(e){if(void 0!==e)return(e%360+360)%360}function xr(e){return!!n(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const wr=Object.getPrototypeOf(structuredClone({}));function _r(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(!_r(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;for(const n of e.entries())if(!_r(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==wr.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==wr.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!_r(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function kr(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let i,r;if(Array.isArray(n)){for(r="[",i=0;iIa(e[t])?tr(`_${t}_${Zi(e[t])}`):tr(`_${t}_${e[t]}`))).join("")}function La(e){return!0===e||Ua(e)&&!e.binned}function qa(e){return"binned"===e||Ua(e)&&!0===e.binned}function Ua(e){return s(e)}function Ia(e){return $r(e,"param")}function Wa(e){switch(e){case Dr:case Ar:case Vr:case Ir:case Wr:case Hr:case Kr:case Xr:case Jr:case Qr:case Gr:return 6;case Zr:return 4;default:return 10}}function Ha(e){return $r(e,"expr")}function Ga(e,{level:t}={level:0}){const n=Qi(e||{}),i={};for(const r of n)i[r]=0===t?ns(e[r]):Ga(e[r],{level:t-1});return i}function Va(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:l,subtitleFont:u,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=e,g={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...void 0!==o?{angle:o}:{},...void 0!==a?{limit:a}:{}},y={...l?{subtitleColor:l}:{},...u?{subtitleFont:u}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:Ri(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function Ya(e){return i(e)||u(e)&&i(e[0])}function Xa(e){return $r(e,"signal")}function Ja(e){return $r(e,"step")}function Qa(e){return!u(e)&&($r(e,"field")&&$r(e,"data"))}const Ka=Qi({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),Za={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},es=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function ts(e){const t=u(e.condition)?e.condition.map(is):is(e.condition);return{...ns(e),condition:t}}function ns(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function is(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function rs(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Xa(e)?e:void 0!==e?{value:e}:void 0}function os(e){return Xa(e)?e.signal:a(e.value)}function as(e){return Xa(e)?e.signal:null==e?null:a(e)}function ss(e,t,n){for(const i of n){const n=cs(i,t.markDef,t.config);void 0!==n&&(e[i]=rs(n))}return e}function ls(e){return[].concat(e.type,e.style??[])}function us(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&$r(t,r)?t[r]:void 0!==t[e]?t[e]:!o||r&&r!==e?cs(e,t,n,i):void 0}function cs(e,t,n,{vgChannel:i}={}){const r=fs(e,t,n.style);return hr(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function fs(e,t,n){return ds(e,ls(t),n)}function ds(e,t,n){let i;t=c(t);for(const r of t){const t=n[r];$r(t,e)&&(i=t[e])}return i}function hs(e,t){return c(e).reduce(((e,n)=>(e.field.push(ej(n,t)),e.order.push(n.sort??"ascending"),e)),{field:[],order:[]})}function ps(e,t){const n=[...e];return t.forEach((e=>{for(const t of n)if(_r(t,e))return;n.push(e)})),n}function ms(e,t){return _r(e,t)||!t?e:e?[...c(e),...c(t)].join(", "):t}function gs(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if((Ya(n)||Xa(n))&&(Ya(i)||Xa(i)))return{explicit:e.explicit,value:ms(n,i)};if(Ya(n)||Xa(n))return{explicit:e.explicit,value:n};if(Ya(i)||Xa(i))return{explicit:e.explicit,value:i};if(!(Ya(n)||Xa(n)||Ya(i)||Xa(i)))return{explicit:e.explicit,value:ps(n,i)};throw new Error("It should never reach here")}function ys(e){const t=e||m,n=[],i={};return n.add=e=>{const r=t(e);return i[r]||(i[r]=1,n.push(e)),n},n.remove=e=>{const r=t(e);if(i[r]){i[r]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function vs(e,t){try{await t(e)}catch(n){e.error(n)}}const bs=Symbol("vega_id");let xs=1;function ws(e){return!(!e||!_s(e))}function _s(e){return e[bs]}function ks(e,t){return e[bs]=t,e}function $s(e){const t=e===Object(e)?e:{data:e};return _s(t)?t:ks(t,xs++)}function Ds(e){return As(e,$s({}))}function As(e,t){for(const n in e)t[n]=e[n];return t}function Ss(e,t){return ks(t,_s(e))}function Es(e,t){return e?t?(n,i)=>e(n,i)||_s(t(n))-_s(t(i)):(t,n)=>e(t,n)||_s(t)-_s(n):null}function Fs(e){return e&&e.constructor===Cs}function Cs(){const e=[],t=[],n=[],i=[],r=[];let o=null,a=!1;return{constructor:Cs,insert(t){const n=c(t),i=n.length;for(let r=0;r{p(e)&&(u[_s(e)]=-1)}));for(f=0,d=e.length;f0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=r.length;f{p(e)&&u[_s(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(a)s.mod=t.length||i.length?l.filter((e=>u[_s(e)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(o||null==o&&(t.length||i.length))&&s.clean(!0),s}}}const Ms="_:mod:_";function zs(){Object.defineProperty(this,Ms,{writable:!0,value:{}})}zs.prototype={set(e,t,n,i){const r=this,o=r[e],a=r[Ms];return null!=t&&t>=0?(o[t]!==n||i)&&(o[t]=n,a[t+":"+e]=-1,a[e]=-1):(o!==n||i)&&(r[e]=n,a[e]=u(n)?1+n.length:-1),r},modified(e,t){const n=this[Ms];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(u(e)){for(let t=0;t=0?t+1{a instanceof Rs?(a!==this&&(t&&a.targets().add(this),o.push(a)),r.push({op:a,name:e,index:n})):i.set(e,n,a)};for(a in e)if(s=e[a],"pulse"===a)c(s).forEach((e=>{e instanceof Rs?e!==this&&(e.targets().add(this),o.push(e)):h("Pulse parameters must be operator instances.")})),this.source=s;else if(u(s))for(i.set(a,-1,Array(l=s.length)),f=0;f{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=js();return this.targets().add(js(null,null,_(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(js(null,null,(()=>n=!0))),t.targets().add(js(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=p,this._targets=null}};const Ls={skip:!0};function qs(e,t,n,i,r,o){const a=A({},o,Ls);let s,l;d(n)||(n=w(n)),void 0===i?s=t=>e.touch(n(t)):d(i)?(l=new Rs(null,i,r,!1),s=t=>{l.evaluate(t);const i=n(t),r=l.value;Fs(r)?e.pulse(i,r,o):e.update(i,r,a)}):s=t=>e.update(n(t),i,a),t.apply(s)}function Us(e,t,n,i,r,o){if(void 0===i)t.targets().add(n);else{const a=o||{},s=new Rs(null,function(e,t){return t=d(t)?t:w(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}(n,i),r,!1);s.modified(a.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const Is={};function Ws(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Hs(e,t){const n=[];return g(e,t,(e=>n.push(e))),n}function Gs(e,t){const n={};return e.visit(t,(e=>{n[_s(e)]=1})),e=>n[_s(e)]?null:e}function Vs(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}function Ys(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const a of n)if(a.stamp===t){if(a.fields){const e=r.fields||(r.fields={});for(const t in a.fields)e[t]=1}a.changed(r.ADD)&&(o|=r.ADD),a.changed(r.REM)&&(o|=r.REM),a.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}function Xs(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Ws.prototype={StopPropagation:Is,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new Ws(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Ws(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,Gs(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return u(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?u(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Vs(n.addF,t)),2&e&&(n.remF=Vs(n.remF,t)),4&e&&(n.modF=Vs(n.modF,t)),16&e&&(n.srcF=Vs(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Hs(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Hs(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Hs(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(16&e)return g(n.source,n.srcF,i),n;1&e&&g(n.add,n.addF,i),2&e&&g(n.rem,n.remF,i),4&e&&g(n.mod,n.modF,i);const r=n.source;if(8&e&&r){const e=n.add.length+n.mod.length;e===r.length||g(r,e?Gs(n,5):n.srcF,i)}return n}},f(Ys,Ws,{fork(e){const t=new Ws(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?u(e)?e.some((e=>n[e])):n[e]:0},filter(){h("MultiPulse does not support filtering.")},materialize(){h("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;ot=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),Ks(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,function(e,t,n){const i=t,r=e.length,o=e[t];let a,s=1+(t<<1);for(;s=0&&(s=a),e[t]=e[s],s=1+((t=s)<<1);e[t]=o,Ks(e,i,t,n)}(t,0,e)):i=n,i}}}function Ks(e,t,n,i){let r,o;const a=e[n];for(;n>t&&(o=n-1>>1,r=e[o],i(a,r)<0);)e[n]=r,n=o;return e[n]=a}function Zs(){this.logger(y()),this.logLevel(v),this._clock=0,this._rank=0,this._locale=b();try{this._loader=x()}catch(e){}this._touched=ys(D),this._input={},this._pulse=null,this._heap=Qs(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function el(e){return function(){return this._log[e].apply(this,arguments)}}function tl(e,t){Rs.call(this,e,null,t)}Zs.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:el("error"),warn:el("warn"),info:el("info"),debug:el("debug"),logLevel:el("level"),cleanThreshold:1e4,add:function(e,t,n,i){let r,o=1;return e instanceof Rs?r=e:e&&e.prototype instanceof Rs?r=new e:d(e)?r=new Rs(null,e):(o=0,r=new Rs(e,t)),this.rank(r),o&&(i=n,n=t),n&&this.connect(r,r.parameters(n,i)),this.touch(r),r},connect:function(e,t){const n=e.rank,i=t.length;for(let r=0;r=0;)t.push(n=i[r]),n===e&&h("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Js);const i=new Ws(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this},touch:function(e,t){const n=t||Js;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const i=n||Js;return(e.set(t)||i.force)&&this.touch(e,i),this},changeset:Cs,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return k(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const i=this,r=i._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(p).insert(o.data||[])),r.done(),o},request:async function(e,t){const n=this;let i,r=0;try{i=await n.loader().load(e,{context:"dataflow",response:$(t&&t.type)});try{i=n.parse(i,t)}catch(o){r=-2,n.warn("Data ingestion failed",e,o)}}catch(o){r=-1,n.warn("Loading failed",e,o)}return{data:i,status:r}},events:function(e,t,n,i){const r=this,o=js(n,i),a=function(e){e.dataflow=r;try{o.receive(e)}catch(t){r.error(t)}finally{r.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):c(e);const l=s.length;for(let u=0;ui._enqueue(e,!0))),i._touched=ys(D);let a,s,l,u=0;try{for(;i._heap.size()>0;)a=i._heap.pop(),a.rank===a.qrank?(s=a.run(i._getPulse(a,e)),s.then?s=await s:s.async&&(r.push(s.async),s=Is),s!==Is&&a._targets&&a._targets.forEach((e=>i._enqueue(e))),++u):i._enqueue(a,!0)}catch(c){i._heap.clear(),l=c}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${u} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const e=i._postrun.sort(((e,t)=>t.priority-e.priority));i._postrun=[];for(let t=0;ti.runAsync(null,(()=>{e.forEach((e=>{try{e(i)}catch(c){i.error(c)}}))})))),i},run:function(e,t,n){return this._pulse?Xs(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(i){this.error(i)}},_enqueue:function(e,t){const n=e.stampe.pulse)),t):this._input[e.id]||function(e,t){if(t&&t.stamp===e.stamp)return t;e=e.fork(),t&&t!==Is&&(e.source=t.source);return e}(this._pulse,n&&n.pulse)}},f(tl,Rs,{run(e){if(e.stampthis.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const nl={};function il(e){const t=rl(e);return t&&t.Definition||null}function rl(e){return e=e&&e.toLowerCase(),t(nl,e)?nl[e]:null}function*ol(e,t){if(null==t)for(let n of e)null!=n&&""!==n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let i of e)i=t(i,++n,e),null!=i&&""!==i&&(i=+i)>=i&&(yield i)}}function al(t,n,i){const r=Float64Array.from(ol(t,i));return r.sort(e),n.map((e=>ii(r,e)))}function sl(e,t){return al(e,[.25,.5,.75],t)}function ll(e,t){const n=e.length,i=function(e,t){const n=function(e,t){let n,i=0,r=0,o=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-r,r+=n/++i,o+=n*(a-r));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-r,r+=n/++i,o+=n*(s-r))}if(i>1)return o/(i-1)}(e,t);return n?Math.sqrt(n):n}(e,t),r=sl(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function ul(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o,a,s,l,u,c,f=e.extent[0],d=e.extent[1];const h=e.span||d-f||Math.abs(f)||1;if(e.step)o=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;ut;)o*=n;for(u=0,c=r.length;u=s&&h/l<=t&&(o=l)}l=Math.log(o);const p=l>=0?0:1+~~(-l/i),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(f/o+m)*o,f=fe);const r=e.length,o=new Float64Array(r);let a,s=0,l=1,u=i(e[0]),c=u,f=u+t;for(;l=f){for(c=(u+c)/2;s>1);ra;)e[r--]=e[o]}o=a,a=i}return e}(o,t+t/4):o}const hl=Math.sqrt(2*Math.PI),pl=Math.SQRT2;let ml=NaN;function gl(e,t){e=e||0,t=null==t?1:t;let n,i,r=0,o=0;if(ml==ml)r=ml,ml=NaN;else{do{r=2*cl()-1,o=2*cl()-1,n=r*r+o*o}while(0===n||n>1);i=Math.sqrt(-2*Math.log(n)/n),r*=i,ml=o*i}return e+r*t}function yl(e,t,n){const i=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*i*i)/(n*hl)}function vl(e,t,n){const i=(e-(t=t||0))/(n=null==n?1:n),r=Math.abs(i);let o;if(r>37)o=0;else{const e=Math.exp(-r*r/2);let t;r<7.07106781186547?(t=.0352624965998911*r+.700383064443688,t=t*r+6.37396220353165,t=t*r+33.912866078383,t=t*r+112.079291497871,t=t*r+221.213596169931,t=t*r+220.206867912376,o=e*t,t=.0883883476483184*r+1.75566716318264,t=t*r+16.064177579207,t=t*r+86.7807322029461,t=t*r+296.564248779674,t=t*r+637.333633378831,t=t*r+793.826512519948,t=t*r+440.413735824752,o/=t):(t=r+.65,t=r+4/t,t=r+3/t,t=r+2/t,t=r+1/t,o=e/t/2.506628274631)}return i>0?1-o:o}function bl(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*pl*function(e){let t,n=-Math.log((1-e)*(1+e));n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0;return t*e}(2*e-1)}function xl(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>gl(n,i),pdf:e=>yl(e,n,i),cdf:e=>vl(e,n,i),icdf:e=>bl(e,n,i)};return r.mean(e).stdev(t)}function wl(e,t){const n=xl();let i=0;const r={data(n){return arguments.length?(e=n,i=n?n.length:0,r.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=ll(e)),r):t},sample:()=>e[~~(cl()*i)]+t*n.sample(),pdf(r){let o=0,a=0;for(;a_l(n,i),pdf:e=>kl(e,n,i),cdf:e=>$l(e,n,i),icdf:e=>Dl(e,n,i)};return r.mean(e).stdev(t)}function Sl(e,t){let n,i=0;const r={weights(e){return arguments.length?(n=function(e){const t=[];let n,r=0;for(n=0;n=t&&e<=n?1/(n-t):0}function Cl(e,t,n){return null==n&&(n=null==t?1:t,t=0),en?1:(e-t)/(n-t)}function Ml(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function zl(e,t){let n,i;const r={min(e){return arguments.length?(n=e||0,r):n},max(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>El(n,i),pdf:e=>Fl(e,n,i),cdf:e=>Cl(e,n,i),icdf:e=>Ml(e,n,i)};return null==t&&(t=null==e?1:e,e=0),r.min(e).max(t)}function Ol(e,t,n){let i=0,r=0;for(const o of e){const e=n(o);null==t(o)||null==e||isNaN(e)||(i+=(e-i)/++r)}return{coef:[i],predict:()=>i,rSquared:0}}function Nl(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function Rl(e,t,n,i){e=e.filter((e=>{let i=t(e),r=n(e);return null!=i&&(i=+i)>=i&&null!=r&&(r=+r)>=r})),i&&e.sort(((e,n)=>t(e)-t(n)));const r=e.length,o=new Float64Array(r),a=new Float64Array(r);let s,l,u,c=0,f=0,d=0;for(u of e)o[c]=s=+t(u),a[c]=l=+n(u),++c,f+=(s-f)/c,d+=(l-d)/c;for(c=0;c=r&&null!=o&&(o=+o)>=o&&i(r,o,++a)}function Bl(e,t,n,i,r){let o=0,a=0;return Tl(e,t,n,((e,t)=>{const n=t-r(e),s=t-i;o+=n*n,a+=s*s})),1-o/a}function Pl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Tl(e,t,n,((e,t)=>{++s,i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Bl(e,t,n,r,u)}}function jl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Tl(e,t,n,((e,t)=>{++s,e=Math.log(e),i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Bl(e,t,n,r,u)}}function Ll(e,t,n){const[i,r,o,a]=Rl(e,t,n);let s,l,u,c=0,f=0,d=0,h=0,p=0;Tl(e,t,n,((e,t)=>{s=i[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,f+=(u-f)/p,d+=(u*l-d)/p,h+=(s*u-h)/p}));const[m,g]=Nl(f/a,c/a,d/a,h/a),y=e=>Math.exp(m+g*(e-o));return{coef:[Math.exp(m-g*o),g],predict:y,rSquared:Bl(e,t,n,a,y)}}function ql(e,t,n){let i=0,r=0,o=0,a=0,s=0,l=0;Tl(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,i+=(n-i)/l,r+=(u-r)/l,o+=(n*u-o)/l,a+=(n*n-a)/l,s+=(t-s)/l}));const u=Nl(i,r,o,a),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Bl(e,t,n,s,c)}}function Ul(e,t,n){const[i,r,o,a]=Rl(e,t,n),s=i.length;let l,u,c,f,d=0,h=0,p=0,m=0,g=0;for(l=0;lb*(e-=o)*e+x*e+w+a;return{coef:[w-x*o+b*o*o+a,x-2*b*o,b],predict:_,rSquared:Bl(e,t,n,a,_)}}function Il(e,t,n,i){if(0===i)return Ol(e,t,n);if(1===i)return Pl(e,t,n);if(2===i)return Ul(e,t,n);const[r,o,a,s]=Rl(e,t,n),l=r.length,u=[],c=[],f=i+1;let d,h,p,m,g;for(d=0;dMath.abs(e[i][a])&&(a=r);for(o=i;o=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(s=0,o=r+1;o{e-=a;let t=s+y[0]+y[1]*e+y[2]*e*e;for(d=3;d=0;--o)for(s=t[o],l=1,r[o]+=s,a=1;a<=o;++a)l*=(o+1-a)/a,r[o-a]+=s*Math.pow(n,a)*l;return r[0]+=i,r}function Hl(e,t,n,i){const[r,o,a,s]=Rl(e,t,n,!0),l=r.length,u=Math.max(2,~~(i*l)),c=new Float64Array(l),f=new Float64Array(l),d=new Float64Array(l).fill(1);for(let h=-1;++h<=2;){const e=[0,u-1];for(let n=0;nr[a]-t?i:a;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(r[s]-t||1);for(let e=i;e<=a;++e){const n=r[e],i=o[e],a=Gl(Math.abs(t-n)*g)*d[e],s=n*a;l+=a,u+=s,h+=i*a,p+=i*s,m+=n*s}const[y,v]=Nl(u/l,h/l,p/l,m/l);c[n]=y+v*t,f[n]=Math.abs(o[n]-c[n]),Vl(r,n+1,e)}if(2===h)break;const t=ri(f);if(Math.abs(t)<1e-12)break;for(let n,i,r=0;r=1?1e-12:(i=1-n*n)*i}return function(e,t,n,i){const r=e.length,o=[];let a,s=0,l=0,u=[];for(;s=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}const Yl=.5*Math.PI/180;function Xl(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=t=>[t,e(t)],o=t[0],a=t[1],s=a-o,l=s/i,u=[r(o)],c=[];if(n===i){for(let e=1;e0;)c.push(r(o+m/n*s));let f=u[0],d=c[c.length-1];const h=1/s,p=function(e,t){let n=e,i=e;const r=t.length;for(let o=0;oi&&(i=e)}return 1/(i-n)}(f[1],c);for(;d;){const e=r((f[0]+d[0])/2);e[0]-f[0]>=l&&Jl(f,e,d,h,p)>Yl?c.push(e):(f=d,u.push(d),c.pop()),d=c[c.length-1]}return u}function Jl(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),a=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-a)}function Ql(e){return e&&e.length?1===e.length?e[0]:(t=e,e=>{const n=t.length;let i=1,r=String(t[0](e));for(;i{},eu={init:Zl,add:Zl,rem:Zl,idx:0},tu={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},nu=Object.keys(tu).filter((e=>"__count__"!==e));function iu(e,t,n){return tu[e](n,t)}function ru(e,t){return e.idx-t.idx}function ou(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function au(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function su(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function lu(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function uu(e,t){const n=t||m,i=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=tu[e]())}))};return e.forEach(n),Object.values(t).sort(ru)}(e),r=e.slice().sort(ru);function o(e){this._ops=i,this._out=r,this.cell=e,this.init()}return o.prototype.init=ou,o.prototype.add=au,o.prototype.rem=su,o.prototype.set=lu,o.prototype.get=n,o.fields=e.map((e=>e.out)),o}function cu(e){this._key=e?U(e):_s,this.reset()}[...nu,"__count__"].forEach((e=>{tu[e]=function(e,t){return(n,i)=>A({name:e,aggregate_param:i,out:n||e},eu,t)}(e,tu[e])}));const fu=cu.prototype;function du(e){tl.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}fu.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},fu.add=function(e){this._add.push(e)},fu.rem=function(e){this._rem.push(e)},fu.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),a={};let s,l,u;for(s=0;s=0;)r=e(n[o])+"",t(i,r)||(i[r]=1,++a);return a},fu.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=I(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},fu.argmin=function(e){return this.extent(e)[0]||{}},fu.argmax=function(e){return this.extent(e)[1]||{}},fu.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},fu.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},fu.quartile=function(e){return this._get===e&&this._q||(this._q=sl(this.values(),e),this._get=e),this._q},fu.q1=function(e){return this.quartile(e)[0]},fu.q2=function(e){return this.quartile(e)[1]},fu.q3=function(e){return this.quartile(e)[2]},fu.ci=function(e){return this._get===e&&this._ci||(this._ci=fl(this.values(),1e3,.05,e),this._get=e),this._ci},fu.ci0=function(e){return this.ci(e)[0]},fu.ci1=function(e){return this.ci(e)[1]},du.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:nu},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},f(du,tl,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):Object.create(null),t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),i.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter((()=>this.clean())),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map((()=>({}))),r=n.length;function o(e){let t,o,a,s;for(t in e)for(a=e[t].tuple,o=0;o{const t=C(e);return r(e),n.push(t),t})),this.cellkey=e.key?e.key:Ql(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],a=e.ops||["count"],s=e.aggregate_params||[null],l=e.as||[],u=o.length,f={};let d,p,m,g,y,v,b;for(u!==a.length&&h("Unmatched number of fields and aggregate ops."),b=0;buu(e,e.field))),Object.create(null)},cellkey:Ql(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stampo.push(e),remove:e=>a[i(e)]=++s,size:()=>r.length,data:(e,t)=>(s&&(r=r.filter((e=>!a[i(e)])),a={},s=0),t&&e&&r.sort(e),o.length&&(r=e?W(e,r,o.sort(e)):r.concat(o),o=[]),r)}}function mu(e){tl.call(this,[],e)}function gu(e){Rs.call(this,null,yu,e)}function yu(e){return this.value&&!e.modified()?this.value:H(e.fields,e.orders)}function vu(e){tl.call(this,null,e)}function bu(e){tl.call(this,null,e)}hu.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},f(hu,tl,{transform(e,t){const n=!1!==e.interval,i=this._bins(e),r=i.start,o=i.step,a=e.as||["bin0","bin1"],s=a[0],l=a[1];let u;return u=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(S(e.field))?t.ADD_MOD:t.ADD,t.visit(u,n?e=>{const t=i(e);e[s]=t,e[l]=null==t?null:r+o*(1+(t-r)/o)}:e=>e[s]=i(e)),t.modifies(n?a:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=ul(e),i=n.step;let r,o,a=n.start,s=a+Math.ceil((n.stop-a)/i)*i;null!=(r=e.anchor)&&(o=r-(a+i*Math.floor((r-a)/i)),a+=o,s+=o);const l=function(e){let n=z(t(e));return null==n?null:ns?1/0:(n=Math.max(a,Math.min(n,s-i)),a+i*Math.floor(1e-14+(n-a)/i))};return l.start=a,l.stop=n.stop,l.step=i,this.value=E(l,S(t),e.name||"bin_"+C(t))}}),mu.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},f(mu,tl,{transform(e,t){const n=t.fork(t.ALL),i=pu(_s,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(Es(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),f(gu,Rs),vu.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},f(vu,tl,{transform(e,t){const n=t=>n=>{for(var i,r=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,o)||[],l=0,u=r.length;lr[e]=1+(r[e]||0))),c=n((e=>r[e]-=1));return i?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],a=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=i[s],u=n[s]||0,!l&&u?(i[s]=l=$s({}),l[r]=s,l[o]=u,a.add.push(l)):0===u?(l&&a.rem.push(l),n[s]=null,i[s]=null):l[o]!==u&&(l[o]=u,a.mod.push(l));return a.modifies(t)}}),bu.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},f(bu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],a=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return a?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,i){for(var r,o,a=[],s={},l=e.length,u=0;u_u(e,n)))):typeof r[t]===wu&&r[t](e[t]);return r}function ku(e){tl.call(this,null,e)}const $u=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],Du={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:$u},{name:"weights",type:"number",array:!0}]};function Au(e,t){return e?e.map(((e,n)=>t[n]||C(e))):null}function Su(e,t,n){const i=[],r=e=>e(l);let o,a,s,l,u,c;if(null==t)i.push(e.map(n));else for(o={},a=0,s=e.length;ae.materialize(e.SOURCE).source}(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let a=e.method||"pdf";"pdf"!==a&&"cdf"!==a&&h("Invalid density method: "+a),e.extent||i.data||h("Missing density extent parameter."),a=i[a];const s=e.as||["value","density"],l=Xl(a,e.extent||M(i.data()),r,o).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],$s(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function Eu(e){tl.call(this,null,e)}Eu.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]};function Fu(e){Rs.call(this,null,Cu,e),this.modified(!0)}function Cu(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:E((n=>t(n,e)),S(t),C(t))}function Mu(e){tl.call(this,[void 0,void 0],e)}function zu(e,t){Rs.call(this,e),this.parent=t,this.count=0}function Ou(e){tl.call(this,{},e),this._keys=V();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,i=t.active;nU(e))):U(e.name,e.as)}function Tu(e){tl.call(this,V(),e)}function Bu(e){tl.call(this,[],e)}function Pu(e){tl.call(this,[],e)}function ju(e){tl.call(this,null,e)}function Lu(e){tl.call(this,[],e)}f(Eu,tl,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,i=Su(t.source,e.groupby,m),r=e.smooth||!1,o=e.field,a=e.step||((e,t)=>G(M(e,t))/30)(n,o),s=Es(((e,t)=>o(e)-o(t))),l=e.as||"bin",u=i.length;let c,f=1/0,d=-1/0,h=0;for(;hd&&(d=t),e[++c][l]=t}return this.value={start:f,stop:d,step:a},t.reflow(!0).modifies(l)}}),f(Fu,Rs),Mu.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},f(Mu,tl,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],a=n[1];if((r||null==o)&&(o=1/0,a=-1/0),t.visit(r?t.SOURCE:t.ADD,(e=>{const t=z(i(e));null!=t&&(ta&&(a=t))})),!Number.isFinite(o)||!Number.isFinite(a)){let e=C(i);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${o}, ${a}]`),o=a=void 0}this.value=[o,a]}}),f(zu,Rs,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),f(Ou,tl,{activate(e){this._targets[this._targets.active++]=e},subflow(e,n,i,r){const o=this.value;let a,s,l=t(o,e)&&o[e];return l?l.value.stampe&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;rthis.subflow(e,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=_s(e),n=o.get(t);void 0!==n&&(o.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=i(e);o.set(_s(e),t),s(t).add(e)})),a||t.modified(i.fields)?t.visit(t.MOD,(e=>{const t=_s(e),n=o.get(t),r=i(e);n===r?s(r).mod(e):(o.set(t,r),s(n).rem(e),s(r).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(o.get(_s(e))).mod(e)})),a&&t.visit(t.REFLOW,(e=>{const t=_s(e),n=o.get(t),r=i(e);n!==r&&(o.set(t,r),s(n).rem(e),s(r).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}}),f(Nu,Rs),Tu.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},f(Tu,tl,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,a=r.rem,s=r.mod,l=e.expr;let u=!0;function c(t){const n=_s(t),r=l(t,e),c=i.get(n);r&&c?(i.delete(n),o.push(t)):r||c?u&&r&&!c&&s.push(t):(i.set(n,1),a.push(t))}return t.visit(t.REM,(e=>{const t=_s(e);i.has(t)?i.delete(t):a.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?o.push(t):i.set(_s(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}}),Bu.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},f(Bu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(i,e.as||[]),o=e.index||null,a=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=i.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,f=0;for(;f{for(let t,o=0;ot[i]=n(t,e)))}}),f(Lu,tl,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r,o,a,s=this.value,l=e.size-s.length;if(l>0){for(r=[];--l>=0;)r.push(a=$s(i(e))),s.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(r):r}else o=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o,s=s.slice(-l);return n.source=this.value=s,n}});const qu={value:"value",median:ri,mean:function(e,t){let n=0,i=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&(++n,i+=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n},min:mt,max:gt},Uu=[];function Iu(e){tl.call(this,[],e)}function Wu(e){du.call(this,e)}function Hu(e){tl.call(this,null,e)}function Gu(e){Rs.call(this,null,Vu,e)}function Vu(e){return this.value&&!e.modified()?this.value:Y(e.fields,e.flat)}function Yu(e){tl.call(this,[],e),this._pending=null}function Xu(e,t,n){n.forEach($s);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Ju(e){tl.call(this,{},e)}function Qu(e){Rs.call(this,null,Ku,e)}function Ku(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i,r,o=1/0,a=-1/0;for(i=0;ia&&(a=r[1]);return[o,a]}function Zu(e){Rs.call(this,null,ec,e)}function ec(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function tc(e){tl.call(this,null,e)}function nc(e){du.call(this,e)}function ic(e){Ou.call(this,e)}function rc(e){tl.call(this,null,e)}function oc(e){tl.call(this,null,e)}function ac(e){tl.call(this,null,e)}Iu.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},f(Iu,tl,{transform(e,t){var n,i,r,o,a,s,l,u,c,f,d=t.fork(t.ALL),p=function(e){var t,n=e.method||qu.value;if(null!=qu[n])return n===qu.value?(t=void 0!==e.value?e.value:0,()=>t):qu[n];h("Unrecognized imputation method: "+n)}(e),m=function(e){const t=e.field;return e=>e?t(e):NaN}(e),g=C(e.field),y=C(e.key),v=(e.groupby||[]).map(C),b=function(e,t,n,i){var r,o,a,s,l,u,c,f,d=e=>e(f),h=[],p=i?i.slice():[],m={},g={};for(p.forEach(((e,t)=>m[e]=t+1)),s=0,c=e.length;sn.add(e)))):(r=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{A(e,r[n.cellkey(e)].tuple)})),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n{const n=wl(t,a)[s],i=e.counts?t.length:1;Xl(n,c||M(t),f,d).forEach((e=>{const n={};for(let i=0;i(this._pending=c(e.data),e=>e.touch(this))))}}return n.request(e.url,e.format).then((e=>Xu(this,t,c(e.data))))}}),Ju.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},f(Ju,tl,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=null==e.default?null:e.default,a=e.modified(),s=n.length;let l,u,c,f=a?t.SOURCE:t.ADD,d=t,p=e.as;return r?(u=r.length,s>1&&!p&&h('Multi-field lookup requires explicit "as" parameter.'),p&&p.length!==s*u&&h('The "as" parameter has too few output field names.'),p=p||r.map(C),l=function(e){for(var t,a,l=0,c=0;lt.modified(e.fields))),f|=c?t.MOD:0),t.visit(f,l),d.modifies(p)}}),f(Qu,Rs),f(Zu,Rs),f(tc,tl,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),nc.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:nu,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},f(nc,du,{_transform:du.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,i=e.value,r=("count"===e.op?"__count__":e.op)||"sum",o=S(n).concat(S(i)),a=function(e,t,n){const i={},r=[];return n.visit(n.SOURCE,(t=>{const n=e(t);i[n]||(i[n]=1,r.push(n))})),r.sort(F),t?r.slice(0,t):r}(n,e.limit||0,t);t.changed()&&e.set("__pivot__",null,null,!0);return{key:e.key,groupby:e.groupby,ops:a.map((()=>r)),fields:a.map((e=>function(e,t,n,i){return E((i=>t(i)===e?n(i):NaN),i,e+"")}(e,n,i,o))),as:a.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),f(ic,Ou,{transform(e,t){const n=e.subflow,i=e.field,r=e=>this.subflow(_s(e),n,t,e);return(e.modified("field")||i&&t.modified(S(i)))&&h("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,(e=>{const t=r(e);i(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=r(e);i(e).forEach((e=>t.add($s(e))))})),t.visit(t.REM,(e=>{const t=r(e);i(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>r(e).mod(e))),t.visit(t.ADD,(e=>r(e).add(e))),t.visit(t.REM,(e=>r(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),rc.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},f(rc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(e.fields,e.as||[]),o=i?(e,t)=>function(e,t,n,i){for(let r=0,o=n.length;r{const t=_s(e);n.rem.push(a[t]),a[t]=null})),t.visit(t.ADD,(e=>{const t=o(e,$s({}));a[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(o(e,a[_s(e)]))})),n}}),f(oc,tl,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),ac.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};function sc(e){tl.call(this,null,e)}function lc(e){tl.call(this,[],e),this.count=0}function uc(e){tl.call(this,null,e)}function cc(e){tl.call(this,null,e),this.modified(!0)}function fc(e){tl.call(this,null,e)}f(ac,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=Su(t.materialize(t.SOURCE).source,e.groupby,e.field),o=(e.groupby||[]).map(C),a=[],s=e.step||.01,l=e.probs||Ht(s/2,1-1e-14,s),u=l.length;return r.forEach((e=>{const t=al(e,l);for(let n=0;n{const t=_s(e);n.rem.push(i[t]),i[t]=null})),t.visit(t.ADD,(e=>{const t=Ds(e);i[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=i[_s(e)];for(const i in e)t[i]=e[i],n.modifies(i);n.mod.push(t)}))),n}}),lc.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},f(lc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce(((e,t)=>(e[_s(t)]=1,e)),{});let a=this.value,s=this.count,l=0;function u(e){let t,i;a.length=l&&(t=a[i],o[_s(t)]&&n.rem.push(t),a[i]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=_s(e);o[t]&&(o[t]=-1,n.rem.push(e)),--s})),a=a.filter((e=>-1!==o[_s(e)]))),(t.rem.length||i)&&a.length{o[_s(e)]||u(e)})),l=-1),i&&a.length>r){const e=a.length-r;for(let t=0;t{o[_s(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=a.filter((e=>!o[_s(e)]))),this.count=s,this.value=n.source=a,n}}),uc.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},f(uc,tl,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Ht(e.start,e.stop,e.step||1).map((e=>{const t={};return t[i]=e,$s(t)})),n.add=t.add.concat(this.value),n}}),f(cc,tl,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const dc=["unit0","unit1"];function hc(e){tl.call(this,V(),e)}function pc(e){tl.call(this,null,e)}fc.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:O,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:dc}]},f(fc,tl,{transform(e,t){const n=e.field,i=!1!==e.interval,r="utc"===e.timezone,o=this._floor(e,t),a=(r?N:R)(o.unit).offset,s=e.as||dc,l=s[0],u=s[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(S(n)))&&(h=(t=t.reflow(!0)).SOURCE,f=1/0,d=-1/0),t.visit(h,(e=>{const t=n(e);let r,s;null==t?(e[l]=null,i&&(e[u]=null)):(e[l]=r=s=o(t),i&&(e[u]=s=a(r,c)),rd&&(d=s))})),o.start=f,o.stop=d,t.modifies(i?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:T({extent:e.extent||M(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=B(i),a=this.value||{},s=(n?P:j)(o,r);return s.unit=L(o),s.units=o,s.step=r,s.start=a.start,s.stop=a.stop,this.value=s}}),f(hc,tl,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=e=>r.set(i(e),e);let a=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,(e=>r.delete(i(e)))),t.visit(t.ADD,o)):a=!1,this.modified(a),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}}),f(pc,tl,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Es(e.sort)):t.source).map(e.field))}});const mc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=mc.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e0||h("ntile num must be greater than zero.");const n=mc.cume_dist(),i=n.next;return{init:n.init,next:e=>Math.ceil(t*i(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return ie(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||h("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return it=null,next:n=>{const i=e(n.data[n.index]);return null!=i?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=function(e,t,n){for(let i=t.length;nu[e]=1))}g(e.sort),n.forEach(((e,n)=>{const u=i[n],c=r[n],y=o[n]||null,v=C(u),b=Kl(e,v,a[n]);if(g(u),s.push(b),t(mc,e))l.push(function(e,t,n,i){const r=mc[e](t,n);return{init:r.init||X,update:function(e,t){t[i]=r.next(e)}}}(e,u,c,b));else{if(null==u&&"count"!==e&&h("Null aggregate field specified."),"count"===e)return void d.push(b);m=!1;let t=f[v];t||(t=f[v]=[],t.field=u,p.push(t)),t.push(iu(e,y,b))}})),(d.length||p.length)&&(this.cell=function(e,t,n){e=e.map((e=>uu(e,e.field)));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),a=0;a0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),ie.init())),this.cell&&this.cell.init()},vc.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let a;if(n){for(a=e.p0;athis.group(r(e));let a=this.state;a&&!n||(a=this.state=new yc(e)),n||t.modified(a.inputs)?(this.value={},t.visit(t.SOURCE,(e=>o(e).add(e)))):(t.visit(t.REM,(e=>o(e).remove(e))),t.visit(t.ADD,(e=>o(e).add(e))));for(let s=0,l=this._mlen;s=f;--d)s.point(y[d],v[d]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+e(h,c,u),v[c]=+t(h,c,u),s.point(i?+i(h,c,u):y[c],n?+n(h,c,u):v[c]))}if(p)return s=null,p+""||null}function c(){return xn().defined(r).curve(a).context(o)}return e="function"==typeof e?e:void 0===e?yn:mn(+e),t="function"==typeof t?t:mn(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?vn:mn(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),i=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),u):e},u.x1=function(e){return arguments.length?(i=null==e?null:"function"==typeof e?e:mn(+e),u):i},u.y=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:mn(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(i).y(t)},u.defined=function(e){return arguments.length?(r="function"==typeof e?e:mn(!!e),u):r},u.curve=function(e){return arguments.length?(a=e,null!=o&&(s=a(o)),u):a},u.context=function(e){return arguments.length?(null==e?o=s=null:s=a(o=e),u):o},u}const Dc={draw(e,t){const n=_n(t/kn);e.moveTo(n,0),e.arc(0,0,n,0,wn)}};function Ac(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}function Sc(e){return Math.log(e)}function Ec(e){return Math.exp(e)}function Fc(e){return-Math.log(-e)}function Cc(e){return-Math.exp(-e)}function Mc(e){return isFinite(e)?+("1e"+e):e<0?0:e}function zc(e){return(t,n)=>-e(-t,n)}function Oc(e){const t=e(Sc,Ec),n=t.domain;let i,r,o=10;function a(){return i=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(o),r=function(e){return 10===e?Mc:e===Math.E?Math.exp:t=>Math.pow(e,t)}(o),n()[0]<0?(i=zc(i),r=zc(r),e(Fc,Cc)):e(Sc,Ec),t}return t.base=function(e){return arguments.length?(o=+e,a()):o},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const l=s0){for(;f<=d;++f)for(u=1;us)break;p.push(c)}}else for(;f<=d;++f)for(u=o-1;u>=1;--u)if(c=f>0?u/r(-f):u*r(f),!(cs)break;p.push(c)}2*p.length{if(null==e&&(e=10),null==n&&(n=10===o?"s":","),"function"!=typeof n&&(o%1||null!=(n=Q(n)).precision||(n.trim=!0),n=K(n)),e===1/0)return n;const a=Math.max(1,o*e/t.ticks().length);return e=>{let t=e/r(Math.round(i(e)));return t*on(_t(n(),{floor:e=>r(Math.floor(i(e))),ceil:e=>r(Math.ceil(i(e)))})),t}function Nc(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Rc(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Tc(e){var t=1,n=e(Nc(t),Rc(t));return n.constant=function(n){return arguments.length?e(Nc(t=+n),Rc(t)):t},Bt(n)}function Bc(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Pc(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function jc(e){return e<0?-e*e:e*e}function Lc(e){var t=e(Lt,Lt),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(Lt,Lt):.5===n?e(Pc,jc):e(Bc(n),Bc(1/n)):n},Bt(t)}function qc(){var e=Lc(Pt());return e.copy=function(){return jt(e,qc()).exponent(e.exponent())},Hn.apply(e,arguments),e}function Uc(){var e,t,n,i,r,o=0,a=1,s=Lt,l=!1;function u(t){return null==t||isNaN(t=+t)?r:s(0===n?.5:(t=(i(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,i;return arguments.length?([n,i]=t,s=e(n,i),u):[s(0),s(1)]}}return u.domain=function(r){return arguments.length?([o,a]=r,e=i(o=+o),t=i(a=+a),n=e===t?0:1/(t-e),u):[o,a]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(Ct),u.rangeRound=c(Rt),u.unknown=function(e){return arguments.length?(r=e,u):r},function(r){return i=r,e=r(o),t=r(a),n=e===t?0:1/(t-e),u}}function Ic(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Wc(){var e=Bt(Uc()(Lt));return e.copy=function(){return Ic(e,Wc())},Gn.apply(e,arguments)}function Hc(){var e=Lc(Uc());return e.copy=function(){return Ic(e,Hc()).exponent(e.exponent())},Gn.apply(e,arguments)}function Gc(){var e,t,n,i,r,o,a,s=0,l=.5,u=1,c=1,f=Lt,d=!1;function h(e){return isNaN(e=+e)?a:(e=.5+((e=+o(e))-t)*(c*e0?i:1:0}const af="linear",sf="log",lf="pow",uf="sqrt",cf="symlog",ff="time",df="utc",hf="sequential",pf="diverging",mf="quantile",gf="quantize",yf="threshold",vf="ordinal",bf="point",xf="band",wf="bin-ordinal",_f="continuous",kf="discrete",$f="discretizing",Df="interpolating",Af="temporal";function Sf(){const e=Yn().unknown(void 0),t=e.domain,n=e.range;let i,r,o=[0,1],a=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=o[1]h+i*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(o=[+e[0],+e[1]],c()):o.slice()},e.rangeRound=function(e){return o=[+e[0],+e[1]],a=!0,c()},e.bandwidth=function(){return r},e.step=function(){return i},e.round=function(e){return arguments.length?(a=!!e,c()):a},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const i=o[1]o[1-i])?void 0:(l=Math.max(0,qt(a,f)-1),u=f===d?l:qt(a,d)-1,f-a[l]>r+1e-10&&++l,i&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return Sf().domain(t()).range(o).round(a).paddingInner(s).paddingOuter(l).align(u)},c()}function Ef(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Ef(t())},e}var Ff=Array.prototype.map;const Cf=Array.prototype.slice;const Mf=new Map,zf=Symbol("vega_scale");function Of(e){return e[zf]=!0,e}function Nf(e){return e&&!0===e[zf]}function Rf(e,t,n){return arguments.length>1?(Mf.set(e,function(e,t,n){const i=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){let n,i=t[0],r=t[1];return r=s&&n[o]<=l&&(u<0&&(u=o),i=o);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[i]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,Of(n)};return i.metadata=se(c(n)),i}(e,t,n)),this):Tf(e)?Mf.get(e):void 0}function Tf(e){return Mf.has(e)}function Bf(e,t){const n=Mf.get(e);return n&&n.metadata[t]}function Pf(e){return Bf(e,_f)}function jf(e){return Bf(e,kf)}function Lf(e){return Bf(e,$f)}function qf(e){return Bf(e,sf)}function Uf(e){return Bf(e,Df)}function If(e){return Bf(e,mf)}Rf("identity",(function e(t){var n;function i(e){return null==e||isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Tt),i):t.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,Tt):[0,1],Bt(i)})),Rf(af,Ut,_f),Rf(sf,(function e(){const t=Oc(Pt()).domain([1,10]);return t.copy=()=>jt(t,e()).base(t.base()),Hn.apply(t,arguments),t}),[_f,sf]),Rf(lf,qc,_f),Rf(uf,(function(){return qc.apply(null,arguments).exponent(.5)}),_f),Rf(cf,(function e(){var t=Tc(Pt());return t.copy=function(){return jt(t,e()).constant(t.constant())},Hn.apply(t,arguments)}),_f),Rf(ff,At,[_f,Af]),Rf(df,(function(){return Hn.apply(kt(Dt,$t,ae,oe,re,ie,ne,te,ee,Z).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[_f,Af]),Rf(hf,Wc,[_f,Df]),Rf(`${hf}-${af}`,Wc,[_f,Df]),Rf(`${hf}-${sf}`,(function e(){var t=Oc(Uc()).domain([1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Rf(`${hf}-${lf}`,Hc,[_f,Df]),Rf(`${hf}-${uf}`,(function(){return Hc.apply(null,arguments).exponent(.5)}),[_f,Df]),Rf(`${hf}-${cf}`,(function e(){var t=Tc(Uc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Rf(`${pf}-${af}`,(function e(){var t=Bt(Gc()(Lt));return t.copy=function(){return Ic(t,e())},Gn.apply(t,arguments)}),[_f,Df]),Rf(`${pf}-${sf}`,(function e(){var t=Oc(Gc()).domain([.1,1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Rf(`${pf}-${lf}`,Vc,[_f,Df]),Rf(`${pf}-${uf}`,(function(){return Vc.apply(null,arguments).exponent(.5)}),[_f,Df]),Rf(`${pf}-${cf}`,(function e(){var t=Tc(Gc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Rf(mf,(function t(){var n,i=[],r=[],o=[];function a(){var e=0,t=Math.max(1,r.length);for(o=new Array(t-1);++e0?o[t-1]:i[0],t=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},Hn.apply(Bt(s),arguments)}),$f),Rf(yf,(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return null!=e&&e<=e?i[qt(n,e,0,r)]:t}return o.domain=function(e){return arguments.length?(n=Array.from(e),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(e){return arguments.length?(i=Array.from(e),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(e){var t=i.indexOf(e);return[n[t-1],n[t]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return e().domain(n).range(i).unknown(t)},Hn.apply(o,arguments)}),$f),Rf(wf,(function e(){let t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(qt(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=function(e){return Ff.call(e,z)}(e),i):t.slice()},i.range=function(e){return arguments.length?(n=Cf.call(e),i):n.slice()},i.tickFormat=function(e,n){return It(t[0],L(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),[kf,$f]),Rf(vf,Yn,kf),Rf(xf,Sf,kf),Rf(bf,(function(){return Ef(Sf().paddingInner(1))}),kf);const Wf=["clamp","base","constant","exponent"];function Hf(e,t){const n=t[0],i=L(t)-n;return function(t){return e(n+t*i)}}function Gf(e,t,n){return Ai(Xf(t||"rgb",n),e)}function Vf(e,t){const n=new Array(t),i=t+1;for(let r=0;re[t]?a[t](e[t]()):0)),a):w(.5)}function Xf(e,t){const n=Si[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}function Jf(e){if(u(e))return e;const t=e.length/6|0,n=new Array(t);for(let i=0;i1?(Kf[e]=t,this):Kf[e]}Qf({accent:Xc,category10:Yc,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Jc,observable10:Qc,paired:Kc,pastel1:Zc,pastel2:ef,set1:tf,set2:nf,set3:rf,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},Jf),Qf({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Gf(Jf(e))));const ed="symbol",td=e=>u(e)?e.map((e=>String(e))):String(e),nd=(e,t)=>e[1]-t[1],id=(e,t)=>t[1]-e[1];function rd(e,t,r){let o;return n(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=r&&(t=Math.min(t,Math.floor(G(e.domain())/r||1)+1))),s(t)&&(o=t.step,t=t.interval),i(t)&&(t=e.type===ff?R(t):e.type==df?N(t):h("Only time and utc scales accept interval strings."),o&&(t=t.every(o))),t}function od(e,t,n){let i=e.range(),r=i[0],o=L(i),a=nd;if(r>o&&(i=o,o=r,r=i,a=id),r=Math.floor(r),o=Math.ceil(o),t=t.map((t=>[t,e(t)])).filter((e=>r<=e[1]&&e[1]<=o)).sort(a).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],L(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function ad(e,t){return e.bins?od(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function sd(e,t,n,i,r,o){const a=t.type;let s=td;if(a===ff||r===ff)s=e.timeFormat(i);else if(a===df||r===df)s=e.utcFormat(i);else if(qf(a)){const r=e.formatFloat(i);if(o||t.bins)s=r;else{const e=ld(t,n,!1);s=t=>e(t)?r(t):""}}else if(t.tickFormat){const r=t.domain();s=e.formatSpan(r[0],r[r.length-1],n,i)}else i&&(s=e.format(i));return s}function ld(e,t,n){const i=ad(e,t),r=e.base(),o=Math.log(r),a=Math.max(1,r*t/i.length),s=e=>{let t=e/Math.pow(r,Math.round(Math.log(e)/o));return t*r1?i[1]-i[0]:i[0];for(o=1;oud[e.type]||e.bins)(t)?hd(s):"discrete"===i?md(s):gd(s)}const hd=e=>(t,n,i)=>{const r=pd(i[n+1],pd(i.max,1/0)),o=yd(t,e),a=yd(r,e);return o&&a?o+" – "+a:a?"< "+a:"≥ "+o},pd=(e,t)=>null!=e?e:t,md=e=>(t,n)=>n?e(t):null,gd=e=>t=>e(t),yd=(e,t)=>Number.isFinite(e)?t(e):null;function vd(e,t,n,r){const o=r||t.type;return i(n)&&Bf(o,Af)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||o!==ff?n||o!==df?dd(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}function bd(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=vd(e,t,n.format,n.formatType);if(Lf(t.type)){const e=fd(t).slice(1).map(r),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(jf(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>i?e.slice(0,i-2).map(r).join(", ")+", ending with "+e.slice(-1).map(r):e.map(r).join(", ")}`}{const e=t.domain();return`values from ${r(e[0])} to ${r(L(e))}`}}let xd=0;const wd="p_";function _d(e){return e&&e.gradient}function kd(e,t,n){const i=e.gradient;let r=e.id,o="radial"===i?wd:"";return r||(r=e.id="gradient_"+xd++,"radial"===i?(e.x1=$d(e.x1,.5),e.y1=$d(e.y1,.5),e.r1=$d(e.r1,0),e.x2=$d(e.x2,.5),e.y2=$d(e.y2,.5),e.r2=$d(e.r2,.5),o=wd):(e.x1=$d(e.x1,0),e.y1=$d(e.y1,0),e.x2=$d(e.x2,1),e.y2=$d(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function $d(e,t){return null!=e?e:t}function Dd(e,t){var n,i=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:i,stop:function(e,t){return i.push({offset:e,color:t}),n}}}const Ad={basis:{curve:$n},"basis-closed":{curve:Dn},"basis-open":{curve:An},bundle:{curve:Sn,tension:"beta",value:.85},cardinal:{curve:En,tension:"tension",value:0},"cardinal-open":{curve:Fn,tension:"tension",value:0},"cardinal-closed":{curve:Cn,tension:"tension",value:0},"catmull-rom":{curve:Mn,tension:"alpha",value:.5},"catmull-rom-closed":{curve:zn,tension:"alpha",value:.5},"catmull-rom-open":{curve:On,tension:"alpha",value:.5},linear:{curve:gn},"linear-closed":{curve:Nn},monotone:{horizontal:Rn,vertical:Tn},natural:{curve:Bn},step:{curve:Pn},"step-after":{curve:jn},"step-before":{curve:Ln}};function Sd(e,n,i){var r=t(Ad,e)&&Ad[e],o=null;return r&&(o=r.curve||r[n||"vertical"],r.tension&&null!=i&&(o=o[r.tension](i))),o}const Ed={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},Fd=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Cd=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Md=/^((\s+,?\s*)|(,\s*))/,zd=/^[01]/;function Od(e){const t=[];return(e.match(Fd)||[]).forEach((e=>{let n=e[0];const i=n.toLowerCase(),r=Ed[i],o=function(e,t,n){const i=[];for(let r=0;t&&r1&&(m=Math.sqrt(m),n*=m,i*=m);const g=d/n,y=f/n,v=-f/i,b=d/i,x=g*s+y*l,w=v*s+b*l,_=g*e+y*t,k=v*e+b*t;let $=1/((_-x)*(_-x)+(k-w)*(k-w))-.25;$<0&&($=0);let D=Math.sqrt($);o==r&&(D=-D);const A=.5*(x+_)-D*(k-w),S=.5*(w+k)+D*(_-x),E=Math.atan2(w-S,x-A);let F=Math.atan2(k-S,_-A)-E;F<0&&1===o?F+=Td:F>0&&0===o&&(F-=Td);const C=Math.ceil(Math.abs(F/(Rd+.001))),M=[];for(let z=0;z+e}function nh(e,t,n){return Math.max(t,Math.min(e,n))}function ih(){var e=Qd,t=Kd,n=Zd,i=eh,r=th(0),o=r,a=r,s=r,l=null;function u(u,c,f){var d,h=null!=c?c:+e.call(this,u),p=null!=f?f:+t.call(this,u),m=+n.call(this,u),g=+i.call(this,u),y=Math.min(m,g)/2,v=nh(+r.call(this,u),0,y),b=nh(+o.call(this,u),0,y),x=nh(+a.call(this,u),0,y),w=nh(+s.call(this,u),0,y);if(l||(l=d=qn()),v<=0&&b<=0&&x<=0&&w<=0)l.rect(h,p,m,g);else{var _=h+m,k=p+g;l.moveTo(h+v,p),l.lineTo(_-b,p),l.bezierCurveTo(_-Jd*b,p,_,p+Jd*b,_,p+b),l.lineTo(_,k-w),l.bezierCurveTo(_,k-Jd*w,_-Jd*w,k,_-w,k),l.lineTo(h+x,k),l.bezierCurveTo(h+Jd*x,k,h,k-Jd*x,h,k-x),l.lineTo(h,p+v),l.bezierCurveTo(h,p+Jd*v,h+Jd*v,p,h+v,p),l.closePath()}if(d)return l=null,d+""||null}return u.x=function(t){return arguments.length?(e=th(t),u):e},u.y=function(e){return arguments.length?(t=th(e),u):t},u.width=function(e){return arguments.length?(n=th(e),u):n},u.height=function(e){return arguments.length?(i=th(e),u):i},u.cornerRadius=function(e,t,n,i){return arguments.length?(r=th(e),o=null!=t?th(t):r,s=null!=n?th(n):r,a=null!=i?th(i):o,u):r},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}function rh(){var e,t,n,i,r,o,a,s,l=null;function u(e,t,n){const i=n/2;if(r){var u=a-t,c=e-o;if(u||c){var f=Math.hypot(u,c),d=(u/=f)*s,h=(c/=f)*s,p=Math.atan2(c,u);l.moveTo(o-d,a-h),l.lineTo(e-u*i,t-c*i),l.arc(e,t,i,p-Math.PI,p),l.lineTo(o+d,a+h),l.arc(o,a,s,p,p+Math.PI)}else l.arc(e,t,i,0,Td);l.closePath()}else r=1;o=e,a=t,s=i}function c(o){var a,s,c,f=o.length,d=!1;for(null==l&&(l=c=qn()),a=0;a<=f;++a)!(ae.x||0,sh=e=>e.y||0,lh=e=>!(!1===e.defined),uh=Qn().startAngle((e=>e.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),ch=$c().x(ah).y1(sh).y0((e=>(e.y||0)+(e.height||0))).defined(lh),fh=$c().y(sh).x1(ah).x0((e=>(e.x||0)+(e.width||0))).defined(lh),dh=xn().x(ah).y(sh).defined(lh),hh=ih().x(ah).y(sh).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>oh(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>oh(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>oh(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>oh(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),ph=function(e,t){let n=null,i=pn(r);function r(){let r;if(n||(n=r=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return e="function"==typeof e?e:mn(e||Dc),t="function"==typeof t?t:mn(void 0===t?64:+t),r.type=function(t){return arguments.length?(e="function"==typeof t?t:mn(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}().type((e=>Yd(e.shape||"circle"))).size((e=>oh(e.size,64))),mh=rh().x(ah).y(sh).defined(lh).size((e=>e.size||1));function gh(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function yh(e,t,n,i){return hh.context(e)(t,n,i)}var vh=1;function bh(){vh=1}function xh(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+vh++),a=r.clipping[o]||(r.clipping[o]={id:o});return d(i)?a.path=i(null):gh(n)?a.path=yh(null,n,0,0):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}function wh(e){this.clear(),e&&this.union(e)}function _h(e){this.mark=e,this.bounds=this.bounds||new wh}function kh(e){_h.call(this,e),this.items=this.items||[]}wh.prototype={clone(){return new wh(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return nthis.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:a}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*i-l*r+u,l*i+s*r+c,s*i-l*a+u,l*i+s*a+c,s*o-l*r+u,l*o+s*r+c,s*o-l*a+u,l*o+s*a+c]},union(e){return e.x1this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2e.x2||this.y2e.y2)},contains(e,t){return!(ethis.x2||tthis.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},f(kh,_h);class $h{constructor(e){this._pending=0,this._loader=e||x()}pending(){return this._pending}sanitizeURL(e){const t=this;return Dh(t),t._loader.sanitize(e,{context:"href"}).then((e=>(Ah(t),e))).catch((()=>(Ah(t),null)))}loadImage(e){const n=this,i="undefined"!=typeof Image?Image:null;return Dh(n),n._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!i)throw{url:r};const o=new i,a=t(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(o.crossOrigin=a),o.onload=()=>Ah(n),o.onerror=()=>Ah(n),o.src=r,o})).catch((e=>(Ah(n),{complete:!1,width:0,height:0,src:e&&e.url||""})))}ready(){const e=this;return new Promise((t=>{!function n(i){e.pending()?setTimeout((()=>{n(!0)}),10):t(i)}(!1)}))}}function Dh(e){e._pending+=1}function Ah(e){e._pending-=1}function Sh(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const i=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(i+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,i):0))}return e}const Eh=Td-1e-8;let Fh,Ch,Mh,zh,Oh,Nh,Rh,Th;const Bh=(e,t)=>Fh.add(e,t),Ph=(e,t)=>Bh(Ch=e,Mh=t),jh=e=>Bh(e,Fh.y1),Lh=e=>Bh(Fh.x1,e),qh=(e,t)=>Oh*e+Rh*t,Uh=(e,t)=>Nh*e+Th*t,Ih=(e,t)=>Bh(qh(e,t),Uh(e,t)),Wh=(e,t)=>Ph(qh(e,t),Uh(e,t));function Hh(e,t){return Fh=e,t?(zh=t*Nd,Oh=Th=Math.cos(zh),Nh=Math.sin(zh),Rh=-Nh):(Oh=Th=1,zh=Nh=Rh=0),Gh}const Gh={beginPath(){},closePath(){},moveTo:Wh,lineTo:Wh,rect(e,t,n,i){zh?(Ih(e+n,t),Ih(e+n,t+i),Ih(e,t+i),Wh(e,t)):(Bh(e+n,t+i),Ph(e,t))},quadraticCurveTo(e,t,n,i){const r=qh(e,t),o=Uh(e,t),a=qh(n,i),s=Uh(n,i);Vh(Ch,r,a,jh),Vh(Mh,o,s,Lh),Ph(a,s)},bezierCurveTo(e,t,n,i,r,o){const a=qh(e,t),s=Uh(e,t),l=qh(n,i),u=Uh(n,i),c=qh(r,o),f=Uh(r,o);Yh(Ch,a,l,c,jh),Yh(Mh,s,u,f,Lh),Ph(c,f)},arc(e,t,n,i,r,o){if(i+=zh,r+=zh,Ch=n*Math.cos(r)+e,Mh=n*Math.sin(r)+t,Math.abs(r-i)>Eh)Bh(e-n,t-n),Bh(e+n,t+n);else{const a=i=>Bh(n*Math.cos(i)+e,n*Math.sin(i)+t);let s,l;if(a(i),a(r),r!==i)if((i%=Td)<0&&(i+=Td),(r%=Td)<0&&(r+=Td),rr;++l,s-=Rd)a(s);else for(s=i-i%Rd+Rd,l=0;l<4&&s1e-14?(l=a*a+s*o,l>=0&&(l=Math.sqrt(l),u=(-a+l)/o,c=(-a-l)/o)):u=.5*s/a,0g)return!1;h>m&&(m=h)}else if(f>0){if(h0&&(e.globalAlpha=n,e.fillStyle=ap(e,t,t.fill),!0)}var lp=[];function up(e,t,n){var i=null!=(i=t.strokeWidth)?i:1;return!(i<=0)&&((n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=ap(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||lp),e.lineDashOffset=t.strokeDashOffset||0),!0))}function cp(e,t){return e.zindex-t.zindex||e.index-t.index}function fp(e){if(!e.zdirty)return e.zitems;var t,n,i,r=e.items,o=[];for(n=0,i=r.length;n=0;)if(n=t(r[i]))return n;if(r===o)for(i=(r=e.items).length;--i>=0;)if(!r[i].zindex&&(n=t(r[i])))return n;return null}function pp(e){return function(t,n,i){dp(n,(n=>{i&&!i.intersects(n.bounds)||mp(e,t,n,n)}))}}function mp(e,t,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(e(t,i)||(ip(t,n),n.fill&&sp(t,n,r)&&t.fill(),n.stroke&&up(t,n,r)&&t.stroke()))}function gp(e){return e=e||p,function(t,n,i,r,o,a){return i*=t.pixelRatio,r*=t.pixelRatio,hp(n,(n=>{const s=n.bounds;if((!s||s.contains(o,a))&&s)return e(t,n,i,r,o,a)?n:void 0}))}}function yp(e,t){return function(n,i,r,o){var a,s,l=Array.isArray(i)?i[0]:i,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(a=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=a?a:1,n.lineCap=null!=s?s:"butt"),!e(n,i)&&(u&&n.isPointInPath(r,o)||c&&n.isPointInStroke(r,o))}}function vp(e){return gp(yp(e))}function bp(e,t){return"translate("+e+","+t+")"}function xp(e){return"rotate("+e+")"}function wp(e){return bp(e.x||0,e.y||0)}function _p(e,t,n){function i(e,n){var i=n.x||0,r=n.y||0,o=n.angle||0;e.translate(i,r),o&&e.rotate(o*=Nd),e.beginPath(),t(e,n),o&&e.rotate(-o),e.translate(-i,-r)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return bp(e.x||0,e.y||0)+(e.angle?" "+xp(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(Hh(e,n.angle),n),Sh(e,n).translate(n.x||0,n.y||0)},draw:pp(i),pick:vp(i),isect:n||Kh(i)}}var kp=_p("arc",(function(e,t){return uh.context(e)(t)}));function $p(e,t,n){function i(e,n){e.beginPath(),t(e,n)}const r=yp(i);return{type:e,tag:"path",nested:!0,attr:function(e,n){var i=n.mark.items;i.length&&e("d",t(null,i))},bound:function(e,n){var i=n.items;return 0===i.length?e:(t(Hh(e),i),Sh(e,i[0]))},draw:(o=i,function(e,t,n){!t.items.length||n&&!n.intersects(t.bounds)||mp(o,e,t.items[0],t.items)}),pick:function(e,t,n,i,o,a){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(o,a)?null:(n*=e.pixelRatio,i*=e.pixelRatio,r(e,s,n,i)?s[0]:null)},isect:Zh,tip:n};var o}var Dp=$p("area",(function(e,t){const n=t[0],i=n.interpolate||"linear";return("horizontal"===n.orient?fh:ch).curve(Sd(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r="horizontal"===e[0].orient?t[1]:t[0],o="horizontal"===e[0].orient?"y":"x",a=e.length,s=1/0;--a>=0;)!1!==e[a].defined&&(i=Math.abs(e[a][o]-r)).5&&t<1.5?.5-Math.abs(t-1):0}function Ep(e,t){const n=Sp(t);e("d",yh(null,t,n,n))}function Fp(e,t,n,i){const r=Sp(t);e.beginPath(),yh(e,t,(n||0)+r,(i||0)+r)}const Cp=yp(Fp),Mp=yp(Fp,!1),zp=yp(Fp,!0);var Op={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",wp(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let t=0;t{const r=t.x||0,o=t.y||0,a=t.strokeForeground,s=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&s&&(Fp(e,t,r,o),ip(e,t),t.fill&&sp(e,t,s)&&e.fill(),t.stroke&&!a&&up(e,t,s)&&e.stroke()),e.save(),e.translate(r,o),t.clip&&Ap(e,t),n&&n.translate(-r,-o),dp(t,(t=>{("group"===t.marktype||null==i||i.includes(t.marktype))&&this.draw(e,t,n,i)})),n&&n.translate(r,o),e.restore(),a&&t.stroke&&s&&(Fp(e,t,r,o),ip(e,t),up(e,t,s)&&e.stroke())}))},pick:function(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const a=n*e.pixelRatio,s=i*e.pixelRatio;return hp(t,(l=>{let u,c,f;const d=l.bounds;if(d&&!d.contains(r,o))return;c=l.x||0,f=l.y||0;const h=c+(l.width||0),p=f+(l.height||0),m=l.clip;if(m&&(rh||op))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,m&&gh(l)&&!zp(e,l,a,s))return e.restore(),null;const g=l.strokeForeground,y=!1!==t.interactive;return y&&g&&l.stroke&&Mp(e,l,a,s)?(e.restore(),l):(u=hp(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,f)?this.pick(e,n,i,c,f):null)),!u&&y&&(l.fill||!g&&l.stroke)&&Cp(e,l,a,s)&&(u=l),e.restore(),u||null)}))},isect:ep,content:function(e,t,n){e("clip-path",t.clip?xh(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),Ep(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?Ep(e,t):e("d","")}},Np={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Rp(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function Tp(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function Bp(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function Pp(e,t){return"center"===e?t/2:"right"===e?t:0}function jp(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var Lp={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const i=Rp(t,n),r=Tp(t,i),o=Bp(t,i),a=(t.x||0)-Pp(t.align,r),s=(t.y||0)-jp(t.baseline,o);e("href",!i.src&&i.toDataURL?i.toDataURL():i.src||"",Np["xmlns:xlink"],"xlink:href"),e("transform",bp(a,s)),e("width",r),e("height",o),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,i=Tp(t,n),r=Bp(t,n),o=(t.x||0)-Pp(t.align,i),a=(t.y||0)-jp(t.baseline,r);return e.set(o,a,o+i,a+r)},draw:function(e,t,n){dp(t,(t=>{if(n&&!n.intersects(t.bounds))return;const i=Rp(t,this);let r=Tp(t,i),o=Bp(t,i);if(0===r||0===o)return;let a,s,l,u,c=(t.x||0)-Pp(t.align,r),f=(t.y||0)-jp(t.baseline,o);!1!==t.aspect&&(s=i.width/i.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l=0;)if(!1!==e[o].defined&&(n=e[o].x-t[0])*n+(i=e[o].y-t[1])*i{if(!n||n.intersects(t.bounds)){var i=null==t.opacity?1:t.opacity;i&&Gp(e,t,i)&&(ip(e,t),e.stroke())}}))},pick:gp((function(e,t,n,i){return!!e.isPointInStroke&&(Gp(e,t,1)&&e.isPointInStroke(n,i))})),isect:tp},Yp=_p("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),Xp=_p("symbol",(function(e,t){return ph.context(e)(t)}),Zh);const Jp=le();var Qp={height:im,measureWidth:tm,estimateWidth:Zp,width:Zp,canvas:Kp};function Kp(e){Qp.width=e&&Jh?tm:Zp}function Zp(e,t){return em(sm(e,t),im(e))}function em(e,t){return~~(.8*e.length*t)}function tm(e,t){return im(e)<=0||!(t=sm(e,t))?0:nm(t,um(e))}function nm(e,t){const n=`(${t}) ${e}`;let i=Jp.get(n);return void 0===i&&(Jh.font=t,i=Jh.measureText(e).width,Jp.set(n,i)),i}function im(e){return null!=e.fontSize?+e.fontSize||0:11}function rm(e){return null!=e.lineHeight?e.lineHeight:im(e)+2}function om(e){return t=e.lineBreak&&e.text&&!u(e.text)?e.text.split(e.lineBreak):e.text,u(t)?t.length>1?t:t[0]:t;var t}function am(e){const t=om(e);return(u(t)?t.length-1:0)*rm(e)}function sm(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,i=function(e){if(Qp.width===tm){const t=um(e);return e=>nm(e,t)}if(Qp.width===Zp){const t=im(e);return e=>em(e,t)}return t=>Qp.width(e,t)}(e);if(i(t)>>1,i(t.slice(r))>n?s=r+1:l=r;return o+t.slice(s)}for(;s>>1),i(t.slice(0,r))Math.max(e,Qp.width(t,n))),0)):i=Qp.width(t,d),"center"===o?c-=i/2:"right"===o&&(c-=i),e.set(c+=s,f+=l,c+i,f+r),t.angle&&!n)e.rotate(t.angle*Nd,s,l);else if(2===n)return e.rotatedPoints(t.angle*Nd,s,l);return e}var mm={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,i=t.dx||0,r=(t.dy||0)+cm(t),o=hm(t),a=o.x1,s=o.y1,l=t.angle||0;e("text-anchor",fm[t.align]||"start"),l?(n=bp(a,s)+" "+xp(l),(i||r)&&(n+=" "+bp(i,r))):n=bp(a+i,s+r),e("transform",n)},bound:pm,draw:function(e,t,n){dp(t,(t=>{var i,r,o,a,s,l,c,f=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===f||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=um(t),e.textAlign=t.align||"left",r=(i=hm(t)).x1,o=i.y1,t.angle&&(e.save(),e.translate(r,o),e.rotate(t.angle*Nd),r=o=0),r+=t.dx||0,o+=(t.dy||0)+cm(t),l=om(t),ip(e,t),u(l))for(s=rm(t),a=0;a=0;)if(!1!==e[r].defined&&(n=e[r].x-t[0])*n+(i=e[r].y-t[1])*i<(n=e[r].size||1)*n)return e[r];return null}))};function ym(e,t,n){var i=gm[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new wh),e,n)}var vm={mark:null};function bm(e,t,n){var i,r,o,a,s=gm[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?o=u[0]:(vm.mark=e,o=vm),a=ym(o,l,n),t=t&&t.union(a)||a;if(t=t||e.bounds&&e.bounds.clear()||new wh,c)for(i=0,r=u.length;it;)e.removeChild(n[--i]);return e}function Cm(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Mm(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class zm{constructor(e,t){this._active=null,this._handlers={},this._loader=e||x(),this._tooltip=t||Om}initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()}scene(e){return arguments.length?(this._scene=e,this):this._scene}on(){}off(){}_handlerIndex(e,t,n){for(let i=e?e.length:0;--i>=0;)if(e[i].type===t&&(!n||e[i].handler===n))return i;return-1}handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const i in t)n.push(...t[i]);return n}eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)}handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),i=Am(null,"a");for(const e in t)i.setAttribute(e,t[e]);i.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,i){var r,o,a=e&&e.mark;if(a&&(r=gm[a.marktype]).tip){for((o=Mm(t,n))[0]-=i[0],o[1]-=i[1];e=e.mark.group;)o[0]-=e.x||0,o[1]-=e.y||0;e=r.tip(a.items,o)}return e}(t,e,this.canvas(),this._origin);const i=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,i)}}getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),i=this._origin,r=e.bounds,o=r.width(),a=r.height();let s=r.x1+i[0]+n.left,l=r.y1+i[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:o,height:a,left:s,top:l,right:s+o,bottom:l+a}}}function Om(e,t,n,i){e.element().setAttribute("title",i||"")}class Nm{constructor(e){this._el=null,this._bgcolor=null,this._loader=new $h(e)}initialize(e,t,n,i,r){return this._el=e,this.resize(t,n,i,r)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)}resize(e,t,n,i){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=i||1,this}dirty(){}render(e,t){const n=this;return n._call=function(){n._render(e,t)},n._call(),n._call=null,n}_render(){}renderAsync(e,t){const n=this.render(e,t);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(e,t){var n=this,i=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return i}sanitizeURL(e){return this._load("sanitizeURL",e)}loadImage(e){return this._load("loadImage",e)}}const Rm="dragenter",Tm="dragleave",Bm="dragover",Pm="pointerdown",jm="pointermove",Lm="pointerout",qm="pointerover",Um="mousedown",Im="mousemove",Wm="mouseout",Hm="mouseover",Gm="click",Vm="mousewheel",Ym="touchstart",Xm="touchmove",Jm="touchend",Qm=["keydown","keypress","keyup",Rm,Tm,Bm,Pm,"pointerup",jm,Lm,qm,Um,"mouseup",Im,Wm,Hm,Gm,"dblclick","wheel",Vm,Ym,Xm,Jm],Km=jm,Zm=Wm,eg=Gm;class tg extends zm{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Qm,this.pointermove=og([jm,Im],[qm,Hm],[Lm,Wm]),this.dragover=og([Bm],[Rm],[Tm]),this.pointerout=ag([Lm,Wm]),this.dragleave=ag([Tm])}initialize(e,t,n){return this._canvas=e&&Sm(e,"canvas"),[Gm,Um,Pm,jm,Lm,Tm].forEach((e=>ig(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(Vm,e)}pointerdown(e){this._down=this._active,this.fire(Pm,e)}mousedown(e){this._down=this._active,this.fire(Um,e)}click(e){this._down===this._active&&(this.fire(Gm,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Ym,e,!0)}touchmove(e){this.fire(Xm,e,!0)}touchend(e){this.fire(Jm,e,!0),this._touch=null}fire(e,t,n){const i=n?this._touch:this._active,r=this._handlers[e];if(t.vegaType=e,e===eg&&i&&i.href?this.handleHref(t,i,i.href):e!==Km&&e!==Zm||this.handleTooltip(t,i,e!==Zm),r)for(let o=0,a=r.length;o=0&&i.splice(r,1),this}pickEvent(e){const t=Mm(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])}pick(e,t,n,i,r){const o=this.context();return gm[e.marktype].pick.call(this,o,e,t,n,i,r)}}const ng=e=>e===Ym||e===Xm||e===Jm?[Ym,Xm,Jm]:[e];function ig(e,t){ng(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function rg(e,t,n){t.forEach((t=>e.fire(t,n)))}function og(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r||(r&&r.exit||rg(this,n,i),this._active=o,rg(this,t,i)),rg(this,e,i)}}function ag(e){return function(t){rg(this,e,t),this._active=null}}function sg(e,t,n,i,r,o){const a="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=a?"undefined"!=typeof window&&window.devicePixelRatio||1:r;e.width=t*l,e.height=n*l;for(const u in o)s[u]=o[u];return a&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*i[0],l*i[1]),e}class lg extends Nm{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new wh,this._tempb=new wh}initialize(e,t,n,i,r,o){return this._options=o||{},this._canvas=this._options.externalContext?null:Ac(1,1,this._options.type),e&&this._canvas&&(Fm(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(e,t,n,i,r)}resize(e,t,n,i){if(super.resize(e,t,n,i),this._canvas)sg(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||h("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)}_render(e,t){const n=this.context(),i=this._origin,r=this._width,o=this._height,a=this._dirty,s=ug(i,r,o);n.save();const l=this._redraw||a.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio);return t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(n,s.intersect(a),i);return this.clear(-i[0],-i[1],r,o),this.draw(n,e,l,t),n.restore(),a.clear(),this}draw(e,t,n,i){if("group"!==t.marktype&&null!=i&&!i.includes(t.marktype))return;const r=gm[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),d(n)?(e.beginPath(),n(e),e.clip()):Ap(e,t.group)}(e,t),r.draw.call(this,e,t,n,i),t.clip&&e.restore()}clear(e,t,n,i){const r=this._options,o=this.context();"pdf"===r.type||r.externalContext||o.clearRect(e,t,n,i),null!=this._bgcolor&&(o.fillStyle=this._bgcolor,o.fillRect(e,t,n,i))}}const ug=(e,t,n)=>(new wh).set(0,0,t,n).translate(-e[0],-e[1]);class cg extends zm{constructor(e,t){super(e,t);const n=this;n._hrefHandler=fg(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=fg(n,((e,t)=>{n.handleTooltip(e,t,e.type!==Zm)}))}initialize(e,t,n){let i=this._svg;return i&&(i.removeEventListener(eg,this._hrefHandler),i.removeEventListener(Km,this._tooltipHandler),i.removeEventListener(Zm,this._tooltipHandler)),this._svg=i=e&&Sm(e,"svg"),i&&(i.addEventListener(eg,this._hrefHandler),i.addEventListener(Km,this._tooltipHandler),i.addEventListener(Zm,this._tooltipHandler)),super.initialize(e,t,n)}canvas(){return this._svg}on(e,t){const n=this.eventName(e),i=this._handlers;if(this._handlerIndex(i[n],e,t)<0){const r={type:e,handler:t,listener:fg(this,t)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this}off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this}}const fg=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)},dg="aria-hidden",hg="aria-label",pg="role",mg="aria-roledescription",gg="graphics-object",yg="graphics-symbol",vg=(e,t,n)=>({[pg]:e,[mg]:t,[hg]:n||void 0}),bg=se(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),xg={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,i=t.title?Dg(e):null,r=e.context,o=r.scales[t.scale].value,a=r.dataflow.locale(),s=o.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(i?` titled '${i}'`:"")+` for a ${jf(s)?"discrete":s} scale with ${bd(a,o,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?Dg(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),a=e.context,s=a.scales[r[o[0]]].value,l=a.dataflow.locale();return u=i,(u.length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return e=e.map((e=>e+("fill"===e||"stroke"===e?" color":""))),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+L(e)}(o)} with ${bd(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${$g(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${$g(e)}'`}},wg={ariaRole:pg,ariaRoleDescription:mg,description:hg};function _g(e,t){const n=!1===t.aria;if(e(dg,n||void 0),n||null==t.description)for(const i in wg)e(wg[i],void 0);else{const n=t.mark.marktype;e(hg,t.description),e(pg,t.ariaRole||("group"===n?gg:yg)),e(mg,t.ariaRoleDescription||`${n} mark`)}}function kg(e){return!1===e.aria?{[dg]:!0}:bg[e.role]?null:xg[e.role]?function(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return vg(t.role||yg,t.desc,n.description||i(n))}catch(n){return null}}(e,xg[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return vg(n?gg:yg,`${t} mark container`,e.description)}(e)}function $g(e){return c(e.text).join(" ")}function Dg(e){try{return c(L(e.items).items[0].text).join(" ")}catch(t){return null}}const Ag=e=>(e+"").replace(/&/g,"&").replace(//g,">");function Sg(){let e="",t="",n="";const i=[],r=()=>t=n="",o=(e,n)=>{var i;return null!=n&&(t+=` ${e}="${i=n,Ag(i).replace(/"/g,""").replace(/\t/g," ").replace(/\n/g," ").replace(/\r/g," ")}"`),a},a={open(s){(o=>{t&&(e+=`${t}>${n}`,r()),i.push(o)})(s),t="<"+s;for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c${n}`:"/>"):``,r(),a},attr:o,text:e=>(n+=Ag(e),a),toString:()=>e};return a}const Eg=e=>Fg(Sg(),e)+"";function Fg(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let t=0;t{e.dirty=t}))),i.zdirty||(n.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=o.nested?i.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(o,n._svg,n):(this._dirtyAll=!1,Tg(n,t)),n._update=t)));return!this._dirtyAll}mark(e,t,n,i){if(!this.isDirty(t))return t._svg;const r=this._svg,o=t.marktype,a=gm[o],s=!1===t.interactive?"none":null,l="g"===a.tag,u=jg(t,e,n,"g",r);if("group"!==o&&null!=i&&!i.includes(o))return Fm(u,0),t._svg;u.setAttribute("class",Cm(t));const c=kg(t);for(const p in c)Gg(u,p,c[p]);l||Gg(u,"pointer-events",s),Gg(u,"clip-path",t.clip?xh(this,t,t.group):null);let f=null,d=0;const h=e=>{const t=this.isDirty(e),n=jg(e,u,f,a.tag,r);t&&(this._update(a,n,e),l&&function(e,t,n,i){t=t.lastChild.previousSibling;let r,o=0;dp(n,(n=>{r=e.mark(t,n,r,i),++o})),Fm(t,1+o)}(this,n,e,i)),f=n,++d};return a.nested?t.items.length&&h(t.items[0]):dp(t,h),Fm(u,d),u}_update(e,t,n){Lg=t,qg=t.__values__,_g(Ig,n),e.attr(Ig,n,this);const i=Ug[e.type];i&&i.call(this,e,t,n),Lg&&this.style(Lg,n)}style(e,t){if(null!=t){for(const n in Cg){let i="font"===n?lm(t):t[n];if(i===qg[n])continue;const r=Cg[n];null==i?e.removeAttribute(r):(_d(i)&&(i=kd(i,this._defs.gradient,Vg())),e.setAttribute(r,i+"")),qg[n]=i}for(const n in Mg)Wg(e,Mg[n],t[n])}}defs(){const e=this._svg,t=this._defs;let n=t.el,i=0;for(const r in t.gradient)n||(t.el=n=Em(e,1,"defs",Ng)),i=Bg(n,t.gradient[r],i);for(const r in t.clipping)n||(t.el=n=Em(e,1,"defs",Ng)),i=Pg(n,t.clipping[r],i);n&&(0===i?(e.removeChild(n),t.el=null):Fm(n,i))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function Tg(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function Bg(e,t,n){let i,r,o;if("radial"===t.gradient){let i=Em(e,n++,"pattern",Ng);Hg(i,{id:wd+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),i=Em(i,0,"rect",Ng),Hg(i,{width:1,height:1,fill:`url(${Vg()}#${t.id})`}),Hg(e=Em(e,n++,"radialGradient",Ng),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else Hg(e=Em(e,n++,"linearGradient",Ng),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(i=0,r=t.stops.length;i1&&e.previousSibling!=t}(a,n))&&t.insertBefore(a,n?n.nextSibling:t.firstChild),a}let Lg=null,qg=null;const Ug={group(e,t,n){const i=Lg=t.childNodes[2];qg=i.__values__,e.foreground(Ig,n,this),qg=t.__values__,Lg=t.childNodes[1],e.content(Ig,n,this);const r=Lg=t.childNodes[0];e.background(Ig,n,this);const o=!1===n.mark.interactive?"none":null;if(o!==qg.events&&(Gg(i,"pointer-events",o),Gg(r,"pointer-events",o),qg.events=o),n.strokeForeground&&n.stroke){const e=n.fill;Gg(i,"display",null),this.style(r,n),Gg(r,"stroke",null),e&&(n.fill=null),qg=i.__values__,this.style(i,n),e&&(n.fill=e),Lg=null}else Gg(i,"display","none")},image(e,t,n){!1===n.smooth?(Wg(t,"image-rendering","optimizeSpeed"),Wg(t,"image-rendering","pixelated")):Wg(t,"image-rendering",null)},text(e,t,n){const i=om(n);let r,o,a,s;u(i)?(o=i.map((e=>sm(n,e))),r=o.join("\n"),r!==qg.text&&(Fm(t,0),a=t.ownerDocument,s=rm(n),o.forEach(((e,i)=>{const r=Am(a,"tspan",Ng);r.__data__=n,r.textContent=e,i&&(r.setAttribute("x",0),r.setAttribute("dy",s)),t.appendChild(r)})),qg.text=r)):(o=sm(n,i),o!==qg.text&&(t.textContent=o,qg.text=o)),Gg(t,"font-family",lm(n)),Gg(t,"font-size",im(n)+"px"),Gg(t,"font-style",n.fontStyle),Gg(t,"font-variant",n.fontVariant),Gg(t,"font-weight",n.fontWeight)}};function Ig(e,t,n){t!==qg[e]&&(n?function(e,t,n,i){null!=n?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}(Lg,e,t,n):Gg(Lg,e,t),qg[e]=t)}function Wg(e,t,n){n!==qg[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),qg[t]=n)}function Hg(e,t){for(const n in t)Gg(e,n,t[n])}function Gg(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function Vg(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class Yg extends Nm{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=Sg();t.open("svg",A({},Np,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",zg,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=gm[t.marktype],i=n.tag,r=[_g,n.attr];e.open("g",{class:Cm(t),"clip-path":t.clip?xh(this,t,t.group):null},kg(t),{"pointer-events":"g"!==i&&!1===t.interactive?"none":null});const o=o=>{const a=this.href(o);if(a&&e.open("a",a),e.open(i,this.attr(t,o,r,"g"!==i?i:null)),"text"===i){const t=om(o);if(u(t)){const n={x:0,dy:rm(o)};for(let i=0;ithis.mark(e,t))),e.close(),i&&a?(r&&(o.fill=null),o.stroke=a,e.open("path",this.attr(t,o,n.foreground,"bgrect")).close(),r&&(o.fill=r)):e.open("path",this.attr(t,o,n.foreground,"bgfore")).close()}e.close(),a&&e.close()};return n.nested?t.items&&t.items.length&&o(t.items[0]):dp(t,o),e.close()}href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null}attr(e,t,n,i){const r={},o=(e,t,n,i)=>{r[i||e]=t};return Array.isArray(n)?n.forEach((e=>e(o,t,this))):n(o,t,this),i&&function(e,t,n,i,r){let o;if(null==t)return e;"bgrect"===i&&!1===n.interactive&&(e["pointer-events"]="none");if("bgfore"===i&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===i&&!1===t.smooth&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]);"text"===i&&(e["font-family"]=lm(t),e["font-size"]=im(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const a in Cg){let n=t[a];const i=Cg[a];("transparent"!==n||"fill"!==i&&"stroke"!==i)&&null!=n&&(_d(n)&&(n=kd(n,r.gradient,"")),e[i]=n)}for(const a in Mg){const e=t[a];null!=e&&(o=o||[],o.push(`${Mg[a]}: ${e};`))}o&&(e.style=o.join(" "))}(r,t,e,i,this._defs),r}defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const i=t[n],r=i.stops;"radial"===i.gradient?(e.open("pattern",{id:wd+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:i.x1,fy:i.y1,fr:i.r1,cx:i.x2,cy:i.y2,r:i.r2})):e.open("linearGradient",{id:n,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2});for(let t=0;t!Xg.svgMarkTypes.includes(e)));this._svgRenderer.render(e,Xg.svgMarkTypes),this._canvasRenderer.render(e,n)}resize(e,t,n,i){return super.resize(e,t,n,i),this._svgRenderer.resize(e,t,n,i),this._canvasRenderer.resize(e,t,n,i),this}background(e){return Xg.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}class Qg extends tg{constructor(e,t){super(e,t)}initialize(e,t,n){const i=Em(Em(e,0,"div"),Xg.svgOnTop?0:1,"div");return super.initialize(i,t,n)}}const Kg="canvas",Zg="hybrid",ey="none",ty={Canvas:Kg,PNG:"png",SVG:"svg",Hybrid:Zg,None:ey},ny={};function iy(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(ny[e]=t,this):ny[e]}function ry(e,t,n){const i=[],r=(new wh).union(t),o=e.marktype;return o?oy(e,r,n,i):"group"===o?ay(e,r,n,i):h("Intersect scene must be mark node or group item.")}function oy(e,t,n,i){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const r=e.items,o=e.marktype,a=r.length;let s=0;if("group"===o)for(;s=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(!cy(e[n=r[i]],t[n],n))return!1;return typeof e==typeof t}(e,t):e==t)}function fy(e,t){return cy(Od(e),Od(t))}const dy="top",hy="left",py="right",my="bottom",gy="start",yy="middle",vy="end",by="group",xy="axis",wy="title",_y="frame",ky="scope",$y="legend",Dy="row-header",Ay="row-footer",Sy="row-title",Ey="column-header",Fy="column-footer",Cy="column-title",My="padding",zy="fit",Oy="fit-x",Ny="fit-y",Ry="none",Ty="all",By="each",Py="flush",jy="column",Ly="row";function qy(e){tl.call(this,null,e)}function Uy(e,t,n){return t(e.bounds.clear(),e,n)}f(qy,tl,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=gm[r],a=o.bound;let s,l=i.bounds;if(o.nested)i.items.length&&n.dirty(i.items[0]),l=Uy(i,a),i.items.forEach((e=>{e.bounds.clear().union(l)}));else if(r===by||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),i.items.forEach((e=>l.union(Uy(e,a)))),i.role){case xy:case $y:case wy:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(Uy(e,a))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(Uy(e,a))})),s&&(l.clear(),i.items.forEach((e=>l.union(e.bounds))));return uy(i),t.modifies("bounds")}});const Iy=":vega_identifier:";function Wy(e){tl.call(this,0,e)}function Hy(e){tl.call(this,null,e)}function Gy(e){tl.call(this,null,e)}Wy.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},f(Wy,tl,{transform(e,t){const n=(r=t.dataflow)._signals[Iy]||(r._signals[Iy]=r.add(0)),i=e.as;var r;let o=n.value;return t.visit(t.ADD,(e=>e[i]=e[i]||++o)),n.set(this.value=o),t}}),f(Hy,tl,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===by?kh:_h;return t.visit(t.ADD,(e=>i.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const Vy={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,i)=>i&&Yy(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},Yy=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),Xy=(e,t)=>{for(var n,i=1,r=e.length,o=e[0].bounds;i{const t=e.bounds;return t.width()>1&&t.height()>1},Qy=e=>(e.forEach((e=>e.opacity=1)),e),Ky=(e,t)=>e.reflow(t.modified()).modifies("opacity");function Zy(e){tl.call(this,null,e)}f(Gy,tl,{transform(e,t){const n=Vy[e.method]||Vy.parity,i=e.separation||0;let r,o,a=t.materialize(t.SOURCE).source;if(!a||!a.length)return;if(!e.method)return e.modified("method")&&(Qy(a),t=Ky(t,e)),t;if(a=a.filter(Jy),!a.length)return;if(e.sort&&(a=a.slice().sort(e.sort)),r=Qy(a),t=Ky(t,e),r.length>=3&&Xy(r,i)){do{r=n(r,i)}while(r.length>=3&&Xy(r,i));r.length<3&&!L(a).opacity&&(r.length>1&&(L(r).opacity=0),L(a).opacity=1)}var s,l,u,c,f;e.boundScale&&e.boundTolerance>=0&&(s=e.boundScale,l=e.boundOrient,u=+e.boundTolerance,c=s.range(),f=new wh,l===dy||l===my?f.set(c[0],-1/0,c[1],1/0):f.set(-1/0,c[0],1/0,c[1]),f.expand(u||1),o=e=>f.encloses(e.bounds),a.forEach((e=>{o(e)||(e.opacity=0)})));const d=r[0].mark.bounds.clear();return a.forEach((e=>{e.opacity&&d.union(e.bounds)})),t}}),f(Zy,tl,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const ev=new wh;function tv(e,t,n){return e[t]===n?0:(e[t]=n,1)}function nv(e){var t=e.items[0].orient;return t===hy||t===py}function iv(e,t,n,i){var r,o,a=t.items[0],s=a.datum,l=null!=a.translate?a.translate:.5,u=a.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),f=a.range,d=a.offset,h=a.position,p=a.minExtent,m=a.maxExtent,g=s.title&&a.items[c[2]].items[0],y=a.titlePadding,v=a.bounds,b=g&&am(g),x=0,w=0;switch(ev.clear().union(v),v.clear(),(r=c[0])>-1&&v.union(a.items[r].bounds),(r=c[1])>-1&&v.union(a.items[r].bounds),u){case dy:x=h||0,w=-d,o=Math.max(p,Math.min(m,-v.y1)),v.add(0,-o).add(f,0),g&&rv(e,g,o,y,b,0,-1,v);break;case hy:x=-d,w=h||0,o=Math.max(p,Math.min(m,-v.x1)),v.add(-o,0).add(0,f),g&&rv(e,g,o,y,b,1,-1,v);break;case py:x=n+d,w=h||0,o=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(o,f),g&&rv(e,g,o,y,b,1,1,v);break;case my:x=h||0,w=i+d,o=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,o),g&&rv(e,g,o,y,0,0,1,v);break;default:x=a.x,w=a.y}return Sh(v.translate(x,w),a),tv(a,"x",x+l)|tv(a,"y",w+l)&&(a.bounds=ev,e.dirty(a),a.bounds=v,e.dirty(a)),a.mark.bounds.clear().union(v)}function rv(e,t,n,i,r,o,a,s){const l=t.bounds;if(t.auto){const s=a*(n+r+i);let u=0,c=0;e.dirty(t),o?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const ov=(e,t)=>Math.floor(Math.min(e,t)),av=(e,t)=>Math.ceil(Math.max(e,t));function sv(e){return(new wh).set(0,0,e.width||0,e.height||0)}function lv(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function uv(e,t,n){const i=s(e)?e[t]:e;return null!=i?i:void 0!==n?n:0}function cv(e){return e<0?Math.ceil(-e):0}function fv(e,t,n){var i,r,o,a,s,l,u,c,f,d,h,p=!n.nodirty,m=n.bounds===Py?sv:lv,g=ev.set(0,0,0,0),y=uv(n.align,jy),v=uv(n.align,Ly),b=uv(n.padding,jy),x=uv(n.padding,Ly),w=n.columns||t.length,_=w<=0?1:Math.ceil(t.length/w),k=t.length,$=Array(k),D=Array(w),A=0,S=Array(k),E=Array(_),F=0,C=Array(k),M=Array(k),z=Array(k);for(r=0;r1)for(r=0;r0&&(C[r]+=f/2);if(v&&uv(n.center,Ly)&&1!==w)for(r=0;r0&&(M[r]+=d/2);for(r=0;rr&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),$+=o,m=0,y=t.length;m=0&&null==(x=n[g]);g-=d);s?(w=null==h?x.x:Math.round(x.bounds.x1+h*x.bounds.width()),_=$):(w=$,_=null==h?x.y:Math.round(x.bounds.y1+h*x.bounds.height())),v.union(b.bounds.translate(w-(b.x||0),_-(b.y||0))),b.x=w,b.y=_,e.dirty(b),D=a(D,v[u])}return D}function gv(e,t,n,i,r,o){if(t){e.dirty(t);var a=n,s=n;i?a=Math.round(r.x1+o*r.width()):s=Math.round(r.y1+o*r.height()),t.bounds.translate(a-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=a,t.y=s,e.dirty(t)}}function yv(e,t,n,i,r,o,a){const s=function(e,t){const n=e[t]||{};return(t,i)=>null!=n[t]?n[t]:null!=e[t]?e[t]:i}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",gy),c=u===vy?1:u===yy?.5:0,f={align:By,bounds:s("bounds",Py),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case hy:f.anchor={x:Math.floor(i.x1)-l,column:vy,y:c*(a||i.height()+2*i.y1),row:u};break;case py:f.anchor={x:Math.ceil(i.x2)+l,y:c*(a||i.height()+2*i.y1),row:u};break;case dy:f.anchor={y:Math.floor(r.y1)-l,row:vy,x:c*(o||r.width()+2*r.x1),column:u};break;case my:f.anchor={y:Math.ceil(r.y2)+l,x:c*(o||r.width()+2*r.x1),column:u};break;case"top-left":f.anchor={x:l,y:l};break;case"top-right":f.anchor={x:o-l,y:l,column:vy};break;case"bottom-left":f.anchor={x:l,y:a-l,row:vy};break;case"bottom-right":f.anchor={x:o-l,y:a-l,column:vy,row:vy}}return f}function vv(e,t){var n,i,r=t.items[0],o=r.datum,a=r.orient,s=r.bounds,l=r.x,u=r.y;return r._bounds?r._bounds.clear().union(s):r._bounds=s.clone(),s.clear(),function(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(t.datum.title){var a=t.items[1].items[0],s=a.anchor,l=t.titlePadding||0,u=i-a.x,c=i-a.y;switch(a.orient){case hy:r+=Math.ceil(a.bounds.width())+l;break;case py:case my:break;default:o+=a.bounds.height()+l}switch((r||o)&&xv(e,n,r,o),a.orient){case hy:c+=bv(t,n,a,s,1,1);break;case py:u+=bv(t,n,a,vy,0,0)+l,c+=bv(t,n,a,s,1,1);break;case my:u+=bv(t,n,a,s,0,0),c+=bv(t,n,a,vy,-1,0,1)+l;break;default:u+=bv(t,n,a,s,0,0)}(u||c)&&xv(e,a,u,c),(u=Math.round(a.bounds.x1-i))<0&&(xv(e,n,-u,0),xv(e,a,-u,0))}else(r||o)&&xv(e,n,r,o)}(e,r,r.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(r,s),n=2*r.padding,i=2*r.padding,s.empty()||(n=Math.ceil(s.width()+n),i=Math.ceil(s.height()+i)),"symbol"===o.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(r.items[0].items[0].items[0].items),a!==Ry&&(r.x=l=0,r.y=u=0),r.width=n,r.height=i,Sh(s.set(l,u,l+n,u+i),r),r.mark.bounds.clear().union(s),r}function bv(e,t,n,i,r,o,a){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!o&&l||a?t:t.items[0]).bounds[r?"y2":"x2"]-e.padding,c=l&&o?u:0,f=l&&o?0:u,d=r<=0?0:am(n);return Math.round(i===gy?c:i===vy?f-d:.5*(u-d))}function xv(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function wv(e){tl.call(this,null,e)}f(wv,tl,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&dv(n,t,e.layout),function(e,t,n){var i,r,o,a,s,l=t.items,u=Math.max(0,t.width||0),c=Math.max(0,t.height||0),f=(new wh).set(0,0,u,c),d=f.clone(),h=f.clone(),p=[];for(a=0,s=l.length;a{(o=e.orient||py)!==Ry&&(t[o]||(t[o]=[])).push(e)}));for(const i in t){const r=t[i];fv(e,r,yv(r,i,n.legends,d,h,u,c))}p.forEach((t=>{const i=t.bounds;if(i.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=i,e.dirty(t)),!n.autosize||n.autosize.type!==zy&&n.autosize.type!==Oy&&n.autosize.type!==Ny)f.union(i);else switch(t.orient){case hy:case py:f.add(i.x1,0).add(i.x2,0);break;case dy:case my:f.add(0,i.y1).add(0,i.y2)}}))}f.union(d).union(h),i&&f.union(function(e,t,n,i,r){var o,a=t.items[0],s=a.frame,l=a.orient,u=a.anchor,c=a.offset,f=a.padding,d=a.items[0].items[0],h=a.items[1]&&a.items[1].items[0],p=l===hy||l===py?i:n,m=0,g=0,y=0,v=0,b=0;if(s!==by?l===hy?(m=r.y2,p=r.y1):l===py?(m=r.y1,p=r.y2):(m=r.x1,p=r.x2):l===hy&&(m=i,p=0),o=u===gy?m:u===vy?p:(m+p)/2,h&&h.text){switch(l){case dy:case my:b=d.bounds.height()+f;break;case hy:v=d.bounds.width()+f;break;case py:v=-d.bounds.width()-f}ev.clear().union(h.bounds),ev.translate(v-(h.x||0),b-(h.y||0)),tv(h,"x",v)|tv(h,"y",b)&&(e.dirty(h),h.bounds.clear().union(ev),h.mark.bounds.clear().union(ev),e.dirty(h)),ev.clear().union(h.bounds)}else ev.clear();switch(ev.union(d.bounds),l){case dy:g=o,y=r.y1-ev.height()-c;break;case hy:g=r.x1-ev.width()-c,y=o;break;case py:g=r.x2+ev.width()+c,y=o;break;case my:g=o,y=r.y2+c;break;default:g=a.x,y=a.y}return tv(a,"x",g)|tv(a,"y",y)&&(ev.translate(g,y),e.dirty(a),a.bounds.clear().union(ev),t.bounds.clear().union(ev),e.dirty(a)),a.bounds}(e,i,u,c,f));t.clip&&f.set(0,0,t.width||0,t.height||0);!function(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let a=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===My){const t=e.padding();a-=t.left+t.right,s-=t.top+t.bottom}o===Ry?(u=0,f=0,l=a,c=s):o===zy?(l=Math.max(0,a-u-d),c=Math.max(0,s-f-h)):o===Oy?(l=Math.max(0,a-u-d),s=c+f+h):o===Ny?(a=l+u+d,c=Math.max(0,s-f-h)):"pad"===o&&(a=l+u+d,s=c+f+h);e._resizeView(a,s,l,c,[u,f],r.resize)}(e,t,f,n)}(n,t,e)})),(i=e.mark.group)&&"legend-entry"!==i.mark.role?t.reflow():t;var i}});const _v=Object.freeze(Object.defineProperty({__proto__:null,bound:qy,identifier:Wy,mark:Hy,overlap:Gy,render:Zy,viewlayout:wv},Symbol.toStringTag,{value:"Module"}));function kv(e){tl.call(this,null,e)}function $v(e){tl.call(this,null,e)}function Dv(){return $s({})}function Av(e){tl.call(this,null,e)}function Sv(e){tl.call(this,[],e)}f(kv,tl,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,a=rd(o,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||sd(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?od(o,e.values,a):ad(o,a);return r&&(i.rem=r),r=l.map(((e,t)=>$s({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&r.length&&r.push($s({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}}),f($v,tl,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||Dv,o=e.key||_s,a=this.value;return u(i.encode)&&(i.encode=null),a&&(e.modified("key")||t.modified(o))&&h("DataJoin does not support modified key function or fields."),a||(t=t.addAll(),this.value=a=function(e){const t=V().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(o)),t.visit(t.ADD,(e=>{const t=o(e);let n=a.get(t);n?n.exit?(a.empty--,i.add.push(n)):i.mod.push(n):(n=r(e),a.set(t,n),i.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=o(e),n=a.get(t);n&&(n.datum=e,i.mod.push(n))})),t.visit(t.REM,(e=>{const t=o(e),n=a.get(t);e!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++a.empty)})),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&a.empty>n.cleanThreshold)&&n.runAfter(a.clean),i}}),f(Av,tl,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(u(o)){if(!n.changed()&&!o.every((e=>r[e])))return t.StopPropagation;o=o[0],n.encode=null}var a="enter"===o,s=r.update||ue,l=r.enter||ue,c=r.exit||ue,f=(o&&!a?r[o]:s)||ue;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),f!==ue&&f!==s&&(t.visit(t.ADD,(t=>{f(t,e)})),n.modifies(f.output))),t.changed(t.REM)&&c!==ue&&(t.visit(t.REM,(t=>{c(t,e)})),n.modifies(c.output)),a||f!==ue){const r=t.MOD|(e.modified()?t.REFLOW:0);a?(t.visit(r,(t=>{const r=l(t,e)||i;(f(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(r,(t=>{(f(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(f.output)}return n.changed()?n:t.StopPropagation}}),f(Sv,tl,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,i,r,o,a,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||ed,f=e.scale,h=+e.limit,p=rd(f,null==e.count?5:e.count,e.minstep),m=!!e.values||c===ed,g=e.format||dd(s,f,p,c,e.formatSpecifier,e.formatType,m),y=e.values||fd(f,p);return u&&(l.rem=u),c===ed?(h&&y.length>h?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=y.slice(0,h-1),a=!0):u=y,d(r=e.size)?(e.values||0!==f(u[0])||(u=u.slice(1)),o=u.reduce(((t,n)=>Math.max(t,r(n,e))),0)):r=w(o=r||8),u=u.map(((t,n)=>$s({index:n,label:g(t,n,u),value:t,offset:o,size:r(t,e)}))),a&&(a=y[u.length],u.push($s({index:u.length,label:`…${y.length-u.length} entries`,value:a,offset:o,size:r(a,e)})))):"gradient"===c?(n=f.domain(),i=Yf(f,n[0],L(n)),y.length<3&&!e.values&&n[0]!==L(n)&&(y=[n[0],L(n)]),u=y.map(((e,t)=>$s({index:t,label:g(e,t,y),value:e,perc:i(e)})))):(r=y.length-1,i=function(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+L(t),o=r-i;if(e.type===yf){const e=n?o/n:.1;i-=e,r+=e,o=r-i}return e=>(e-i)/o}(f),u=y.map(((e,t)=>$s({index:t,label:g(e,t,y),value:e,perc:t?i(e):0,perc2:t===r?1:i(y[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const Ev=e=>e.source.x,Fv=e=>e.source.y,Cv=e=>e.target.x,Mv=e=>e.target.y;function zv(e){tl.call(this,{},e)}zv.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},f(zv,tl,{transform(e,t){var n=e.sourceX||Ev,i=e.sourceY||Fv,r=e.targetX||Cv,o=e.targetY||Mv,a=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=Tv.get(l+"-"+s)||Tv.get(l);return u||h("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[a]=u(n(e),i(e),r(e),o(e))})),t.reflow(e.modified()).modifies(a)}});const Ov=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,Nv=(e,t,n,i)=>{var r=n-e,o=i-t,a=Math.hypot(r,o)/2;return"M"+e+","+t+"A"+a+","+a+" "+180*Math.atan2(o,r)/Math.PI+" 0 1 "+n+","+i},Rv=(e,t,n,i)=>{const r=n-e,o=i-t,a=.2*(r+o),s=.2*(o-r);return"M"+e+","+t+"C"+(e+a)+","+(t+s)+" "+(n+s)+","+(i-a)+" "+n+","+i},Tv=V({line:Ov,"line-radial":(e,t,n,i)=>Ov(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),arc:Nv,"arc-radial":(e,t,n,i)=>Nv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),curve:Rv,"curve-radial":(e,t,n,i)=>Rv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),"orthogonal-horizontal":(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,"orthogonal-vertical":(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,"orthogonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n);return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*a+","+t*s+"L"+i*a+","+i*s},"diagonal-horizontal":(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},"diagonal-vertical":(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},"diagonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n),l=(t+i)/2;return"M"+t*r+","+t*o+"C"+l*r+","+l*o+" "+l*a+","+l*s+" "+i*a+","+i*s}});function Bv(e){tl.call(this,null,e)}Bv.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},f(Bv,tl,{transform(e,t){var n,i,r,o=e.as||["startAngle","endAngle"],a=o[0],s=o[1],l=e.field||ce,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,d=f.map(l),h=d.length,p=u,m=(c-u)/ai(d),g=Ht(h);for(e.sort&&g.sort(((e,t)=>d[e]-d[t])),n=0;ne+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+a(t)));return t}function Uv(e,t,n){return d(e)&&(t||n)?Hf(e,Iv(t||[0,1],n)):e}function Iv(e,t){return t?e.slice().reverse():e}function Wv(e){tl.call(this,null,e)}f(Lv,tl,{transform(e,t){var n=t.dataflow,r=this.value,o=function(e){var t,n=e.type,r="";if(n===hf)return hf+"-"+af;(function(e){const t=e.type;return Pf(t)&&t!==ff&&t!==df&&(e.scheme||e.range&&e.range.length&&e.range.every(i))})(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?hf+"-":3===t?pf+"-":"");return(r+n||af).toLowerCase()}(e);for(o in r&&o===r.type||(this.value=r=Rf(o)()),e)if(!jv[o]){if("padding"===o&&Pv(r.type))continue;d(r[o])?r[o](e[o]):n.warn("Unsupported scale property: "+o)}return function(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(null!=t.rangeStep)o=function(e,t,n){e!==xf&&e!==bf&&h("Only band and point scales support rangeStep.");var i=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,r=e===bf?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*of(n,r,i)]}(i,t,n);else if(t.scheme&&(o=function(e,t,n){var i,r=t.schemeExtent;u(t.scheme)?i=Gf(t.scheme,t.interpolate,t.interpolateGamma):(i=Zf(t.scheme.toLowerCase()))||h(`Unrecognized scheme name: ${t.scheme}`);return n=e===yf?n+1:e===wf?n-1:e===mf||e===gf?+t.schemeCount||5:n,Uf(e)?Uv(i,r,t.reverse):d(i)?Vf(Uv(i,r),n):e===vf?i:i.slice(0,n)}(i,t,n),d(o))){if(e.interpolator)return e.interpolator(o);h(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&Uf(i))return e.interpolator(Gf(Iv(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Xf(t.interpolate,t.interpolateGamma)):d(e.round)?e.round(r):d(e.rangeRound)&&e.interpolate(r?Rt:Ct);o&&e.range(Iv(o,t.reverse))}(r,e,function(e,t,n){let i=t.bins;if(i&&!u(i)){const t=e.domain(),n=t[0],r=L(t),o=i.step;let a=null==i.start?n:i.start,s=null==i.stop?r:i.stop;o||h("Scale bins parameter missing step property."),ar&&(s=o*Math.floor(r/o)),i=Ht(a,s+o/2,o)}i?e.bins=i:e.bins&&delete e.bins;e.type===wf&&(i?t.domain||t.domainRaw||(e.domain(i),n=i.length):e.bins=e.domain());return n}(r,e,function(e,t,n){const i=function(e,t,n){return t?(e.domain(qv(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(i>-1)return i;var r,o,a=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===af||t===lf||t===uf)}(e);if(!a)return 0;if((l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(r=(a=a.slice()).length-1||1,l&&(a[0]>0&&(a[0]=0),a[r]<0&&(a[r]=0)),null!=t.domainMin&&(a[0]=t.domainMin),null!=t.domainMax&&(a[r]=t.domainMax),null!=t.domainMid)){const e=(o=t.domainMid)>a[r]?r+1:oe(l);if(null==t)h.push(e.slice());else for(r={},o=0,a=e.length;od&&(d=f),n&&c.sort(n)}return h.max=d,h}(t.source,e.groupby,u,c),i=0,r=n.length,o=n.max;i0?1:e<0?-1:0},bb=Math.sqrt,xb=Math.tan;function wb(e){return e>1?0:e<-1?nb:Math.acos(e)}function _b(e){return e>1?ib:e<-1?-ib:Math.asin(e)}function kb(){}function $b(e,t){e&&Ab.hasOwnProperty(e.type)&&Ab[e.type](e,t)}var Db={Feature:function(e,t){$b(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i=0?1:-1,r=i*n,o=fb(t=(t*=sb)/2+rb),a=yb(t),s=Nb*a,l=Ob*o+s*fb(r),u=s*i*yb(r);Gb.add(cb(u,l)),zb=e,Ob=o,Nb=a}function Zb(e){return Vb=new Kn,Fb(e,Yb),2*Vb}function ex(e){return[cb(e[1],e[0]),_b(e[2])]}function tx(e){var t=e[0],n=e[1],i=fb(n);return[i*fb(t),i*yb(t),yb(n)]}function nx(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function ix(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function rx(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function ox(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function ax(e){var t=bb(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var sx,lx,ux,cx,fx,dx,hx,px,mx,gx,yx,vx,bx,xx,wx,_x,kx={point:$x,lineStart:Ax,lineEnd:Sx,polygonStart:function(){kx.point=Ex,kx.lineStart=Fx,kx.lineEnd=Cx,Ib=new Kn,Yb.polygonStart()},polygonEnd:function(){Yb.polygonEnd(),kx.point=$x,kx.lineStart=Ax,kx.lineEnd=Sx,Gb<0?(Rb=-(Bb=180),Tb=-(Pb=90)):Ib>eb?Pb=90:Ib<-1e-6&&(Tb=-90),Hb[0]=Rb,Hb[1]=Bb},sphere:function(){Rb=-(Bb=180),Tb=-(Pb=90)}};function $x(e,t){Wb.push(Hb=[Rb=e,Bb=e]),tPb&&(Pb=t)}function Dx(e,t){var n=tx([e*sb,t*sb]);if(Ub){var i=ix(Ub,n),r=ix([i[1],-i[0],0],i);ax(r),r=ex(r);var o,a=e-jb,s=a>0?1:-1,l=r[0]*ab*s,u=lb(a)>180;u^(s*jbPb&&(Pb=o):u^(s*jb<(l=(l+360)%360-180)&&lPb&&(Pb=t)),u?eMx(Rb,Bb)&&(Bb=e):Mx(e,Bb)>Mx(Rb,Bb)&&(Rb=e):Bb>=Rb?(eBb&&(Bb=e)):e>jb?Mx(Rb,e)>Mx(Rb,Bb)&&(Bb=e):Mx(e,Bb)>Mx(Rb,Bb)&&(Rb=e)}else Wb.push(Hb=[Rb=e,Bb=e]);tPb&&(Pb=t),Ub=n,jb=e}function Ax(){kx.point=Dx}function Sx(){Hb[0]=Rb,Hb[1]=Bb,kx.point=$x,Ub=null}function Ex(e,t){if(Ub){var n=e-jb;Ib.add(lb(n)>180?n+(n>0?360:-360):n)}else Lb=e,qb=t;Yb.point(e,t),Dx(e,t)}function Fx(){Yb.lineStart()}function Cx(){Ex(Lb,qb),Yb.lineEnd(),lb(Ib)>eb&&(Rb=-(Bb=180)),Hb[0]=Rb,Hb[1]=Bb,Ub=null}function Mx(e,t){return(t-=e)<0?t+360:t}function zx(e,t){return e[0]-t[0]}function Ox(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tMx(i[0],i[1])&&(i[1]=r[1]),Mx(r[0],i[1])>Mx(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,t=0,i=o[n=o.length-1];t<=n;i=r,++t)r=o[t],(s=Mx(i[1],r[0]))>a&&(a=s,Rb=r[0],Bb=i[1])}return Wb=Hb=null,Rb===1/0||Tb===1/0?[[NaN,NaN],[NaN,NaN]]:[[Rb,Tb],[Bb,Pb]]}var Rx={sphere:kb,point:Tx,lineStart:Px,lineEnd:qx,polygonStart:function(){Rx.lineStart=Ux,Rx.lineEnd=Ix},polygonEnd:function(){Rx.lineStart=Px,Rx.lineEnd=qx}};function Tx(e,t){e*=sb;var n=fb(t*=sb);Bx(n*fb(e),n*yb(e),yb(t))}function Bx(e,t,n){++sx,ux+=(e-ux)/sx,cx+=(t-cx)/sx,fx+=(n-fx)/sx}function Px(){Rx.point=jx}function jx(e,t){e*=sb;var n=fb(t*=sb);xx=n*fb(e),wx=n*yb(e),_x=yb(t),Rx.point=Lx,Bx(xx,wx,_x)}function Lx(e,t){e*=sb;var n=fb(t*=sb),i=n*fb(e),r=n*yb(e),o=yb(t),a=cb(bb((a=wx*o-_x*r)*a+(a=_x*i-xx*o)*a+(a=xx*r-wx*i)*a),xx*i+wx*r+_x*o);lx+=a,dx+=a*(xx+(xx=i)),hx+=a*(wx+(wx=r)),px+=a*(_x+(_x=o)),Bx(xx,wx,_x)}function qx(){Rx.point=Tx}function Ux(){Rx.point=Wx}function Ix(){Hx(vx,bx),Rx.point=Tx}function Wx(e,t){vx=e,bx=t,e*=sb,t*=sb,Rx.point=Hx;var n=fb(t);xx=n*fb(e),wx=n*yb(e),_x=yb(t),Bx(xx,wx,_x)}function Hx(e,t){e*=sb;var n=fb(t*=sb),i=n*fb(e),r=n*yb(e),o=yb(t),a=wx*o-_x*r,s=_x*i-xx*o,l=xx*r-wx*i,u=pb(a,s,l),c=_b(u),f=u&&-c/u;mx.add(f*a),gx.add(f*s),yx.add(f*l),lx+=c,dx+=c*(xx+(xx=i)),hx+=c*(wx+(wx=r)),px+=c*(_x+(_x=o)),Bx(xx,wx,_x)}function Gx(e){sx=lx=ux=cx=fx=dx=hx=px=0,mx=new Kn,gx=new Kn,yx=new Kn,Fb(e,Rx);var t=+mx,n=+gx,i=+yx,r=pb(t,n,i);return rnb&&(e-=Math.round(e/ob)*ob),[e,t]}function Xx(e,t,n){return(e%=ob)?t||n?Vx(Qx(e),Kx(t,n)):Qx(e):t||n?Kx(t,n):Yx}function Jx(e){return function(t,n){return lb(t+=e)>nb&&(t-=Math.round(t/ob)*ob),[t,n]}}function Qx(e){var t=Jx(e);return t.invert=Jx(-e),t}function Kx(e,t){var n=fb(e),i=yb(e),r=fb(t),o=yb(t);function a(e,t){var a=fb(t),s=fb(e)*a,l=yb(e)*a,u=yb(t),c=u*n+s*i;return[cb(l*r-c*o,s*n-u*i),_b(c*r+l*o)]}return a.invert=function(e,t){var a=fb(t),s=fb(e)*a,l=yb(e)*a,u=yb(t),c=u*r-l*o;return[cb(l*r+u*o,s*n+c*i),_b(c*n-s*i)]},a}function Zx(e,t){(t=tx(t))[0]-=e,ax(t);var n=wb(-t[1]);return((-t[2]<0?-n:n)+ob-eb)%ob}function ew(){var e,t=[];return{point:function(t,n,i){e.push([t,n,i])},lineStart:function(){t.push(e=[])},lineEnd:kb,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function tw(e,t){return lb(e[0]-t[0])=0;--o)r.point((c=u[o])[0],c[1]);else i(d.x,d.p.x,-1,r);d=d.p}u=(d=d.o).z,h=!h}while(!d.v);r.lineEnd()}}}function rw(e){if(t=e.length){for(var t,n,i=0,r=e[0];++i=0?1:-1,A=D*$,S=A>nb,E=g*_;if(l.add(cb(E*D*yb(A),y*k+E*fb(A))),a+=S?$+D*ob:$,S^p>=n^x>=n){var F=ix(tx(h),tx(b));ax(F);var C=ix(o,F);ax(C);var M=(S^$>=0?-1:1)*_b(C[2]);(i>M||i===M&&(F[0]||F[1]))&&(s+=S^$>=0?1:-1)}}return(a<-1e-6||a0){for(f||(r.polygonStart(),f=!0),r.lineStart(),e=0;e1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(sw))}return d}}function sw(e){return e.length>1}function lw(e,t){return((e=e.x)[0]<0?e[1]-ib-eb:ib-e[1])-((t=t.x)[0]<0?t[1]-ib-eb:ib-t[1])}Yx.invert=Yx;const uw=aw((function(){return!0}),(function(e){var t,n=NaN,i=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?nb:-nb,l=lb(o-n);lb(l-nb)0?ib:-ib),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),e.point(o,i),t=0):r!==s&&l>=nb&&(lb(n-r)eb?ub((yb(t)*(o=fb(i))*yb(n)-yb(i)*(r=fb(t))*yb(e))/(r*o*a)):(t+i)/2}(n,i,o,a),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),t=0),e.point(n=o,i=a),r=s},lineEnd:function(){e.lineEnd(),n=i=NaN},clean:function(){return 2-t}}}),(function(e,t,n,i){var r;if(null==e)r=n*ib,i.point(-nb,r),i.point(0,r),i.point(nb,r),i.point(nb,0),i.point(nb,-r),i.point(0,-r),i.point(-nb,-r),i.point(-nb,0),i.point(-nb,r);else if(lb(e[0]-t[0])>eb){var o=e[0]0,r=lb(t)>eb;function o(e,n){return fb(e)*fb(n)>t}function a(e,n,i){var r=[1,0,0],o=ix(tx(e),tx(n)),a=nx(o,o),s=o[0],l=a-s*s;if(!l)return!i&&e;var u=t*a/l,c=-t*s/l,f=ix(r,o),d=ox(r,u);rx(d,ox(o,c));var h=f,p=nx(d,h),m=nx(h,h),g=p*p-m*(nx(d,d)-1);if(!(g<0)){var y=bb(g),v=ox(h,(-p-y)/m);if(rx(v,d),v=ex(v),!i)return v;var b,x=e[0],w=n[0],_=e[1],k=n[1];w0^v[1]<(lb(v[0]-x)nb^(x<=v[0]&&v[0]<=w)){var A=ox(h,(-p+y)/m);return rx(A,d),[v,ex(A)]}}}function s(t,n){var r=i?e:nb-e,o=0;return t<-r?o|=1:t>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return aw(o,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var h,p=[f,d],m=o(f,d),g=i?m?0:s(f,d):m?s(f+(f<0?nb:-nb),d):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=a(t,p))||tw(t,h)||tw(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=a(p,t),e.point(h[0],h[1])):(h=a(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(r&&t&&i^m){var y;g&n||!(y=a(p,t,!0))||(c=0,i?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&tw(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,i,r,o){!function(e,t,n,i,r,o){if(n){var a=fb(t),s=yb(t),l=i*n;null==r?(r=t+i*ob,o=t-l/2):(r=Zx(a,r),o=Zx(a,o),(i>0?ro)&&(r+=i*ob));for(var u,c=r;i>0?c>o:c0)do{u.point(0===c||3===c?e:n,c>1?i:t)}while((c=(c+s+4)%4)!==f);else u.point(o[0],o[1])}function a(i,r){return lb(i[0]-e)0?0:3:lb(i[0]-n)0?2:1:lb(i[1]-t)0?1:0:r>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=a(e,1),i=a(t,1);return n!==i?n-i:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var l,u,c,f,d,h,p,m,g,y,v,b=a,x=ew(),w={point:_,lineStart:function(){w.point=k,u&&u.push(c=[]);y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(k(f,d),h&&g&&x.rejoin(),l.push(x.result()));w.point=_,g&&b.lineEnd()},polygonStart:function(){b=x,l=[],u=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,r=u.length;ni&&(d-o)*(i-a)>(h-a)*(e-o)&&++t:h<=i&&(d-o)*(i-a)<(h-a)*(e-o)&&--t;return t}(),n=v&&t,r=(l=oi(l)).length;(n||r)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),r&&iw(l,s,t,o,a),a.polygonEnd());b=a,l=u=c=null}};function _(e,t){r(e,t)&&b.point(e,t)}function k(o,a){var s=r(o,a);if(u&&c.push([o,a]),y)f=o,d=a,h=s,y=!1,s&&(b.lineStart(),b.point(o,a));else if(s&&g)b.point(o,a);else{var l=[p=Math.max(dw,Math.min(fw,p)),m=Math.max(dw,Math.min(fw,m))],x=[o=Math.max(dw,Math.min(fw,o)),a=Math.max(dw,Math.min(fw,a))];!function(e,t,n,i,r,o){var a,s=e[0],l=e[1],u=0,c=1,f=t[0]-s,d=t[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=r-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a0)){if(a/=d,d<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a0&&(e[0]=s+u*f,e[1]=l+u*d),c<1&&(t[0]=s+c*f,t[1]=l+c*d),!0}}}}}(l,x,e,t,n,i)?s&&(b.lineStart(),b.point(o,a),v=!1):(g||(b.lineStart(),b.point(l[0],l[1])),b.point(x[0],x[1]),s||b.lineEnd(),v=!1)}p=o,m=a,g=s}return w}}function pw(e,t,n){var i=Ht(e,t-eb,n).concat(t);return function(e){return i.map((function(t){return[e,t]}))}}function mw(e,t,n){var i=Ht(e,t-eb,n).concat(t);return function(e){return i.map((function(t){return[t,e]}))}}const gw=e=>e;var yw,vw,bw,xw,ww=new Kn,_w=new Kn,kw={point:kb,lineStart:kb,lineEnd:kb,polygonStart:function(){kw.lineStart=$w,kw.lineEnd=Sw},polygonEnd:function(){kw.lineStart=kw.lineEnd=kw.point=kb,ww.add(lb(_w)),_w=new Kn},result:function(){var e=ww/2;return ww=new Kn,e}};function $w(){kw.point=Dw}function Dw(e,t){kw.point=Aw,yw=bw=e,vw=xw=t}function Aw(e,t){_w.add(xw*e-bw*t),bw=e,xw=t}function Sw(){Aw(yw,vw)}var Ew=1/0,Fw=Ew,Cw=-Ew,Mw=Cw,zw={point:function(e,t){eCw&&(Cw=e);tMw&&(Mw=t)},lineStart:kb,lineEnd:kb,polygonStart:kb,polygonEnd:kb,result:function(){var e=[[Ew,Fw],[Cw,Mw]];return Cw=Mw=-(Fw=Ew=1/0),e}};var Ow,Nw,Rw,Tw,Bw=0,Pw=0,jw=0,Lw=0,qw=0,Uw=0,Iw=0,Ww=0,Hw=0,Gw={point:Vw,lineStart:Yw,lineEnd:Qw,polygonStart:function(){Gw.lineStart=Kw,Gw.lineEnd=Zw},polygonEnd:function(){Gw.point=Vw,Gw.lineStart=Yw,Gw.lineEnd=Qw},result:function(){var e=Hw?[Iw/Hw,Ww/Hw]:Uw?[Lw/Uw,qw/Uw]:jw?[Bw/jw,Pw/jw]:[NaN,NaN];return Bw=Pw=jw=Lw=qw=Uw=Iw=Ww=Hw=0,e}};function Vw(e,t){Bw+=e,Pw+=t,++jw}function Yw(){Gw.point=Xw}function Xw(e,t){Gw.point=Jw,Vw(Rw=e,Tw=t)}function Jw(e,t){var n=e-Rw,i=t-Tw,r=bb(n*n+i*i);Lw+=r*(Rw+e)/2,qw+=r*(Tw+t)/2,Uw+=r,Vw(Rw=e,Tw=t)}function Qw(){Gw.point=Vw}function Kw(){Gw.point=e_}function Zw(){t_(Ow,Nw)}function e_(e,t){Gw.point=t_,Vw(Ow=Rw=e,Nw=Tw=t)}function t_(e,t){var n=e-Rw,i=t-Tw,r=bb(n*n+i*i);Lw+=r*(Rw+e)/2,qw+=r*(Tw+t)/2,Uw+=r,Iw+=(r=Tw*e-Rw*t)*(Rw+e),Ww+=r*(Tw+t),Hw+=3*r,Vw(Rw=e,Tw=t)}function n_(e){this._context=e}n_.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,ob)}},result:kb};var i_,r_,o_,a_,s_,l_=new Kn,u_={point:kb,lineStart:function(){u_.point=c_},lineEnd:function(){i_&&f_(r_,o_),u_.point=kb},polygonStart:function(){i_=!0},polygonEnd:function(){i_=null},result:function(){var e=+l_;return l_=new Kn,e}};function c_(e,t){u_.point=f_,r_=a_=e,o_=s_=t}function f_(e,t){a_-=e,s_-=t,l_.add(bb(a_*a_+s_*s_)),a_=e,s_=t}let d_,h_,p_,m_;class g_{constructor(e){this._append=null==e?y_:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return y_;if(t!==d_){const e=10**t;d_=t,h_=function(t){let n=1;this._+=t[0];for(const i=t.length;n=0))throw new RangeError(`invalid digits: ${e}`);r=t}return null===t&&(i=new g_(r)),a},a.projection(e).digits(r).context(t)}function b_(e){return function(t){var n=new x_;for(var i in e)n[i]=e[i];return n.stream=t,n}}function x_(){}function w_(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=i&&e.clipExtent(null),Fb(n,e.stream(zw)),t(zw.result()),null!=i&&e.clipExtent(i),e}function __(e,t,n){return w_(e,(function(n){var i=t[1][0]-t[0][0],r=t[1][1]-t[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+t[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([a,s])}),n)}function k_(e,t,n){return __(e,[[0,0],t],n)}function $_(e,t,n){return w_(e,(function(n){var i=+t,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];e.scale(150*r).translate([o,a])}),n)}function D_(e,t,n){return w_(e,(function(n){var i=+t,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;e.scale(150*r).translate([o,a])}),n)}x_.prototype={constructor:x_,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var A_=fb(30*sb);function S_(e,t){return+t?function(e,t){function n(i,r,o,a,s,l,u,c,f,d,h,p,m,g){var y=u-i,v=c-r,b=y*y+v*v;if(b>4*t&&m--){var x=a+d,w=s+h,_=l+p,k=bb(x*x+w*w+_*_),$=_b(_/=k),D=lb(lb(_)-1)t||lb((y*F+v*C)/b-.5)>.3||a*d+s*h+l*p2?e[2]%360*sb:0,F()):[g*ab,y*ab,v*ab]},S.angle=function(e){return arguments.length?(b=e%360*sb,F()):b*ab},S.reflectX=function(e){return arguments.length?(x=e?-1:1,F()):x<0},S.reflectY=function(e){return arguments.length?(w=e?-1:1,F()):w<0},S.precision=function(e){return arguments.length?(a=S_(s,A=e*e),C()):bb(A)},S.fitExtent=function(e,t){return __(S,e,t)},S.fitSize=function(e,t){return k_(S,e,t)},S.fitWidth=function(e,t){return $_(S,e,t)},S.fitHeight=function(e,t){return D_(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&E,F()}}function z_(e){var t=0,n=nb/3,i=M_(e),r=i(t,n);return r.parallels=function(e){return arguments.length?i(t=e[0]*sb,n=e[1]*sb):[t*ab,n*ab]},r}function O_(e,t){var n=yb(e),i=(n+yb(t))/2;if(lb(i)2?e[2]*sb:0),t.invert=function(t){return(t=e.invert(t[0]*sb,t[1]*sb))[0]*=ab,t[1]*=ab,t},t}(r.rotate()).invert([0,0]));return l(null==u?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:e===L_?[[Math.max(s[0]-o,u),t],[Math.min(s[0]+o,n),i]]:[[u,Math.max(s[1]-o,t)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(e){return arguments.length?(a(e),c()):a()},r.translate=function(e){return arguments.length?(s(e),c()):s()},r.center=function(e){return arguments.length?(o(e),c()):o()},r.clipExtent=function(e){return arguments.length?(null==e?u=t=n=i=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],i=+e[1][1]),c()):null==u?null:[[u,t],[n,i]]},c()}function U_(e){return xb((ib+e)/2)}function I_(e,t){var n=fb(e),i=e===t?yb(e):mb(n/fb(t))/mb(U_(t)/U_(e)),r=n*gb(U_(e),i)/i;if(!i)return L_;function o(e,t){r>0?t<-ib+eb&&(t=-ib+eb):t>ib-eb&&(t=ib-eb);var n=r/gb(U_(t),i);return[n*yb(i*e),r-n*fb(i*e)]}return o.invert=function(e,t){var n=r-t,o=vb(i)*bb(e*e+n*n),a=cb(e,lb(n))*vb(n);return n*i<0&&(a-=nb*vb(e)*vb(n)),[a/i,2*ub(gb(r/o,1/i))-ib]},o}function W_(e,t){return[e,t]}function H_(e,t){var n=fb(e),i=e===t?yb(e):(n-fb(t))/(t-e),r=n/i+e;if(lb(i)eb&&--r>0);return[e/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},ek.invert=B_(_b),tk.invert=B_((function(e){return 2*ub(e)})),nk.invert=function(e,t){return[-t,2*ub(hb(e))-ib]};var ik,rk=Math.abs,ok=Math.cos,ak=Math.sin,sk=Math.PI,lk=sk/2,uk=(ik=2)>0?Math.sqrt(ik):0;function ck(e){return e>1?lk:e<-1?-lk:Math.asin(e)}function fk(e,t){var n,i=e*ak(t),r=30;do{t-=n=(t+ak(t)-i)/(1+ok(t))}while(rk(n)>1e-6&&--r>0);return t/2}var dk=function(e,t,n){function i(i,r){return[e*i*ok(r=fk(n,r)),t*ak(r)]}return i.invert=function(i,r){return r=ck(r/t),[i/(e*ok(r)),ck((2*r+ak(2*r))/n)]},i}(uk/lk,uk,sk);const hk=v_(),pk=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function mk(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(yk[e]=function(e,t){return function n(){const i=t();return i.type=e,i.path=v_().projection(i),i.copy=i.copy||function(){const e=n();return pk.forEach((t=>{i[t]&&e[t](i[t]())})),e.path.pointRadius(i.path.pointRadius()),e},Of(i)}}(e,t),this):yk[e]||null}function gk(e){return e&&e.path||hk}const yk={albers:R_,albersusa:function(){var e,t,n,i,r,o,a=R_(),s=N_().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=N_().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){o=[e,t]}};function c(e){var t=e[0],a=e[1];return o=null,n.point(t,a),o||(i.point(t,a),o)||(r.point(t,a),o)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),i=(e[0]-n[0])/t,r=(e[1]-n[1])/t;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(e)},c.stream=function(n){return e&&t===n?e:(i=[a.stream(t=n),s.stream(n),l.stream(n)],r=i.length,e={point:function(e,t){for(var n=-1;++n2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const SV in yk)mk(SV,yk[SV]);function vk(){}const bk=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function xk(){var e=1,t=1,n=a;function i(e,t){return t.map((t=>r(e,t)))}function r(i,r){var a=[],s=[];return function(n,i,r){var a,s,l,u,c,f,d=[],h=[];a=s=-1,u=n[0]>=i,bk[u<<1].forEach(p);for(;++a=i,bk[l|u<<1].forEach(p);bk[u|0].forEach(p);for(;++s=i,c=n[s*e]>=i,bk[u<<1|c<<2].forEach(p);++a=i,f=c,c=n[s*e+a+1]>=i,bk[l|u<<1|c<<2|f<<3].forEach(p);bk[u|c<<3].forEach(p)}a=-1,c=n[s*e]>=i,bk[c<<2].forEach(p);for(;++a=i,bk[c<<2|f<<3].forEach(p);function p(e){var t,n,i=[e[0][0]+a,e[0][1]+s],l=[e[1][0]+a,e[1][1]+s],u=o(i),c=o(l);(t=h[u])?(n=d[c])?(delete h[t.end],delete d[n.start],t===n?(t.ring.push(l),r(t.ring)):d[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=d[c])?(n=h[u])?(delete d[t.start],delete h[n.end],t===n?(t.ring.push(l),r(t.ring)):d[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(i),d[t.start=u]=t):d[u]=h[c]={start:u,end:c,ring:[i,l]}}bk[c<<3].forEach(p)}(i,r,(e=>{n(e,i,r),function(e){var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];for(;++t0?a.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,i=a.length;n{var o,a=n[0],s=n[1],l=0|a,u=0|s,c=i[u*e+l];a>0&&a0&&s=0&&o>=0||h("invalid size"),e=r,t=o,i},i.smooth=function(e){return arguments.length?(n=e?a:vk,i):n===a},i}function wk(e,t){for(var n,i=-1,r=t.length;++ii!=h>i&&n<(d-u)*(i-c)/(h-c)+u&&(r=-r)}return r}function kk(e,t,n){var i,r,o,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(r=e[i=+(e[0]===t[0])],o=n[i],a=t[i],r<=o&&o<=a||a<=o&&o<=r)}function $k(e,t,n){return function(i){var r=M(i),o=n?Math.min(r[0],0):r[0],a=r[1],s=a-o,l=t?me(o,a,e):s/(e+1);return Ht(o+l,a,l)}}function Dk(e){tl.call(this,null,e)}function Ak(e,t,n,i,r){const o=e.x1||0,a=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-o)*t+i,e[1]=(e[1]-a)*n+r}return function(e){return e.coordinates.forEach(l),e}}function Sk(e,t,n){const i=e>=0?e:ll(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function Ek(e){return d(e)?e:w(+e)}function Fk(){var e=e=>e[0],t=e=>e[1],n=ce,i=[-1,-1],r=960,o=500,a=2;function s(s,l){const u=Sk(i[0],s,e)>>a,c=Sk(i[1],s,t)>>a,f=u?u+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(o>>a),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((i=>{const r=f+(+e(i)>>a),o=d+(+t(i)>>a);r>=0&&r=0&&o0&&c>0?(Ck(h,p,m,g,u),Mk(h,p,g,m,c),Ck(h,p,m,g,u),Mk(h,p,g,m,c),Ck(h,p,m,g,u),Mk(h,p,g,m,c)):u>0?(Ck(h,p,m,g,u),Ck(h,p,g,m,u),Ck(h,p,m,g,u),y=g):c>0&&(Mk(h,p,m,g,c),Mk(h,p,g,m,c),Mk(h,p,m,g,c),y=g);const v=l?Math.pow(2,-2*a):1/ai(y);for(let e=0,t=h*p;e>a),y2:d+(o>>a)}}return s.x=function(t){return arguments.length?(e=Ek(t),s):e},s.y=function(e){return arguments.length?(t=Ek(e),s):t},s.weight=function(e){return arguments.length?(n=Ek(e),s):n},s.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];return t>=0&&n>=0||h("invalid size"),r=t,o=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||h("invalid cell size"),a=Math.floor(Math.log(e)/Math.LN2),s):1<=r&&(t>=o&&(s-=n[t-o+a*e]),i[t-r+a*e]=s/Math.min(t+1,e-1+o-t,o))}function Mk(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a=r&&(s>=o&&(l-=n[a+(s-o)*e]),i[a+(s-r)*e]=l/Math.min(s+1,t-1+o-s,o))}function zk(e){tl.call(this,null,e)}Dk.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},f(Dk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=t.materialize(t.SOURCE).source,o=e.field||m,a=xk().smooth(!1!==e.smooth),s=e.thresholds||function(e,t,n){const i=$k(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(e.map((e=>gt(t(e).values))))}(r,o,e),l=null===e.as?null:e.as||"contour",c=[];return r.forEach((t=>{const i=o(t),r=a.size([i.width,i.height])(i.values,u(s)?s:s(i.values));!function(e,t,i,r){let o=r.scale||t.scale,a=r.translate||t.translate;d(o)&&(o=o(i,r));d(a)&&(a=a(i,r));if((1===o||null==o)&&!a)return;const s=(n(o)?o:o[0])||1,l=(n(o)?o:o[1])||1,u=a&&a[0]||0,c=a&&a[1]||0;e.forEach(Ak(t,s,l,u,c))}(r,i,t,e),r.forEach((e=>{c.push(As(t,$s(null!=l?{[l]:e}:e)))}))})),this.value&&(i.rem=this.value),this.value=i.source=i.add=c,i}}),zk.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const Ok=["x","y","weight","size","cellSize","bandwidth"];function Nk(e,t){return Ok.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function Rk(e){tl.call(this,null,e)}f(zk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=function(e,t){var n,i,r,o,a,s,l=[],u=e=>e(o);if(null==t)l.push(e);else for(n={},i=0,r=e.length;i$s(function(e,t){for(let n=0;neb})).map(l)).concat(Ht(db(o/h)*h,r,h).filter((function(e){return lb(e%m)>eb})).map(u))}return y.lines=function(){return v().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(i).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(i=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],i>n&&(e=i,i=n,n=e),s>a&&(e=s,s=a,a=e),y.precision(g)):[[i,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],o=+n[0][1],r=+n[1][1],t>e&&(n=t,t=e,e=n),o>r&&(n=o,o=r,r=n),y.precision(g)):[[t,o],[e,r]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],m=+e[1],y):[p,m]},y.stepMinor=function(e){return arguments.length?(d=+e[0],h=+e[1],y):[d,h]},y.precision=function(d){return arguments.length?(g=+d,l=pw(o,r,90),u=mw(t,e,g),c=pw(s,a,90),f=mw(i,n,g),y):g},y.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function Ik(e){tl.call(this,null,e)}function Wk(e){if(!d(e))return!1;const t=se(S(e));return t.$x||t.$y||t.$value||t.$max}function Hk(e){tl.call(this,null,e),this.modified(!0)}function Gk(e,t,n){d(e[t])&&e[t](n)}Pk.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},f(Pk,tl,{transform(e,t){var n,i=this._features,r=this._points,o=e.fields,a=o&&o[0],s=o&&o[1],l=e.geojson||!o&&m,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(S(l))||a&&t.modified(S(a))||s&&t.modified(S(s)),this.value&&!n||(u=t.SOURCE,this._features=i=[],this._points=r=[]),l&&t.visit(u,(e=>i.push(l(e)))),a&&s&&(t.visit(u,(e=>{var t=a(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&r.push([t,n])})),i=i.concat({type:Tk,geometry:{type:"MultiPoint",coordinates:r}})),this.value={type:Bk,features:i}}}),jk.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},f(jk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||m,o=e.as||"path",a=n.SOURCE;!i||e.modified()?(this.value=i=gk(e.projection),n.materialize().reflow()):a=r===m||t.modified(r.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();e.context(null),null!=t&&e.pointRadius(t);return n}(i,e.pointRadius);return n.visit(a,(e=>e[o]=i(r(e)))),i.pointRadius(s),n.modifies(o)}}),Lk.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},f(Lk,tl,{transform(e,t){var n,i=e.projection,r=e.fields[0],o=e.fields[1],a=e.as||["x","y"],s=a[0],l=a[1];function u(e){const t=i([r(e),o(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(r.fields)||t.modified(o.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(a)}}),qk.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},f(qk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return i&&!e.modified()||(this.value=i=function(e,t,n){const i=null==n?n=>e(t(n)):i=>{var r=e.pointRadius(),o=e.pointRadius(n)(t(i));return e.pointRadius(r),o};return i.context=t=>(e.context(t),i),i}(gk(e.projection),e.field||U("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,(e=>e[r]=i)),n.modifies(r)}}),Uk.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},f(Uk,tl,{transform(e,t){var n,i=this.value,r=this.generator;if(!i.length||e.modified())for(const o in e)d(r[o])&&r[o](e[o]);return n=r(),i.length?t.mod.push(Ss(i[0],n)):t.add.push($s(n)),i[0]=n,t}}),Ik.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},f(Ik,tl,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i="shared"===e.resolve,r=e.field||m,o=function(e,t){let n;d(e)?(n=n=>e(n,t),n.dep=Wk(e)):e?n=w(e):(n=e=>e.$value/e.$max||0,n.dep=!0);return n}(e.opacity,e),a=function(e,t){let n;d(e)?(n=n=>Un(e(n,t)),n.dep=Wk(e)):n=w(Un(e||"#888"));return n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:i?gt(n.map((e=>gt(r(e).values)))):0};return n.forEach((e=>{const t=r(e),n=A({},e,l);i||(n.$max=gt(t.values||[])),e[s]=function(e,t,n,i){const r=e.width,o=e.height,a=e.x1||0,s=e.y1||0,l=e.x2||r,u=e.y2||o,c=e.values,f=c?e=>c[e]:X,d=Ac(l-a,u-s),h=d.getContext("2d"),p=h.getImageData(0,0,l-a,u-s),m=p.data;for(let g=s,y=0;g{null!=e[t]&&Gk(n,t,e[t])}))):pk.forEach((t=>{e.modified(t)&&Gk(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return e=c(e),1===e.length?e[0]:{type:Bk,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===Bk?e.features:c(e).filter((e=>null!=e)).map((e=>e.type===Tk?e:{type:Tk,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});const Vk=Object.freeze(Object.defineProperty({__proto__:null,contour:Rk,geojson:Pk,geopath:jk,geopoint:Lk,geoshape:qk,graticule:Uk,heatmap:Ik,isocontour:Dk,kde2d:zk,projection:Hk},Symbol.toStringTag,{value:"Module"}));function Yk(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o,a,s,l,u,c,f,d,h=e._root,p={data:i},m=e._x0,g=e._y0,y=e._x1,v=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a,r=h,!(h=h[f=c<<1|u]))return r[f]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,r?r[f]=p:e._root=p,e;do{r=r?r[f]=new Array(4):e._root=new Array(4),(u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a}while((f=c<<1|u)==(d=(l>=a)<<1|s>=o));return r[d]=h,r[f]=p,e}function Xk(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function Jk(e){return e[0]}function Qk(e){return e[1]}function Kk(e,t,n){var i=new Zk(null==t?Jk:t,null==n?Qk:n,NaN,NaN,NaN,NaN);return null==e?i:i.addAll(e)}function Zk(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function e$(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var t$=Kk.prototype=Zk.prototype;function n$(e){return function(){return e}}function i$(e){return 1e-6*(e()-.5)}function r$(e){return e.x+e.vx}function o$(e){return e.y+e.vy}function a$(e){return e.index}function s$(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}t$.copy=function(){var e,t,n=new Zk(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=e$(i),n;for(e=[{source:i,target:n._root=new Array(4)}];i=e.pop();)for(var r=0;r<4;++r)(t=i.source[r])&&(t.length?e.push({source:t,target:i.target[r]=new Array(4)}):i.target[r]=e$(t));return n},t$.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Yk(this.cover(t,n),t,n,e)},t$.addAll=function(e){var t,n,i,r,o=e.length,a=new Array(o),s=new Array(o),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;nc&&(c=i),rf&&(f=r));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;ne||e>=r||i>t||t>=o;)switch(s=(td||(o=l.y0)>h||(a=l.x1)=y)<<1|e>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=e-+this._x.call(null,m.data),b=t-+this._y.call(null,m.data),x=v*v+b*b;if(x=(s=(p+g)/2))?p=s:g=s,(c=a>=(l=(m+y)/2))?m=l:y=l,t=h,!(h=h[f=c<<1|u]))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(i=h,!(h=h.next))return this;return(r=h.next)&&delete h.next,i?(r?i.next=r:delete i.next,this):t?(r?t[f]=r: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=r,this)},t$.removeAll=function(e){for(var t=0,n=e.length;t(e=(1664525*e+1013904223)%l$)/l$}();function f(){d(),u.call("tick",t),n1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,i){var r,o,a,s,l,u=0,c=e.length;for(null==i?i=1/0:i*=i,u=0;u1?(u.on(e,n),t):u.on(e)}}}const h$={center:function(e,t){var n,i=1;function r(){var r,o,a=n.length,s=0,l=0;for(r=0;ru+p||oc+p||al.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;ye.r&&(e.r=e[t].r)}function l(){if(t){var i,r,o=t.length;for(n=new Array(o),i=0;i=s)){(e.data!==t||e.next)&&(0===f&&(p+=(f=i$(n))*f),0===d&&(p+=(d=i$(n))*d),p[s(e,t,i),e])));for(a=0,r=new Array(u);at(e,n):t)}v$.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:y$}]},f(v$,tl,{transform(e,t){var n,i,r=this.value,o=t.changed(t.ADD_REM),a=e.modified(m$),s=e.iterations||300;if(r?(o&&(t.modifies("index"),r.nodes(t.source)),(a||t.changed(t.MOD))&&b$(r,e,0,t)):(this.value=r=function(e,t){const n=d$(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),b$(n,t,!0).on("end",(()=>o=!0))}(t.source,e),r.on("tick",(n=t.dataflow,i=this,()=>n.touch(i).run())),e.static||(o=!0,r.tick()),t.modifies("index")),a||o||e.modified(g$)||t.changed()&&e.restart)if(r.alpha(Math.max(r.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/s)),e.static)for(r.stop();--s>=0;)r.tick();else if(r.stopped()&&r.restart(),!o)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let s,l=this._argops,u=0,c=l.length;u=0;)t+=n[i].value;else t=1;e.value=t}function E$(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=C$)):void 0===t&&(t=F$);for(var n,i,r,o,a,s=new O$(e),l=[s];n=l.pop();)if((r=t(n.data))&&(a=(r=Array.from(r)).length))for(n.children=r,o=a-1;o>=0;--o)l.push(i=r[o]=new O$(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(z$)}function F$(e){return e.children}function C$(e){return Array.isArray(e)?e[1]:null}function M$(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function z$(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function O$(e){this.data=e,this.depth=this.height=0,this.parent=null}function N$(e){return null==e?null:R$(e)}function R$(e){if("function"!=typeof e)throw new Error;return e}function T$(){return 0}function B$(e){return function(){return e}}O$.prototype=E$.prototype={constructor:O$,count:function(){return this.eachAfter(S$)},each:function(e,t){let n=-1;for(const i of this)e.call(t,i,++n,this);return this},eachAfter:function(e,t){for(var n,i,r,o=this,a=[o],s=[],l=-1;o=a.pop();)if(s.push(o),n=o.children)for(i=0,r=n.length;i=0;--i)o.push(n[i]);return this},find:function(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;e=n.pop(),t=i.pop();for(;e===t;)r=e,e=n.pop(),t=i.pop();return r}(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return E$(this).eachBefore(M$)},[Symbol.iterator]:function*(){var e,t,n,i,r=this,o=[r];do{for(e=o.reverse(),o=[];r=e.pop();)if(yield r,t=r.children)for(n=0,i=t.length;n0&&n*n>i*i+r*r}function U$(e,t){for(var n=0;n1e-6?(S+Math.sqrt(S*S-4*A*E))/(2*A):E/S);return{x:i+_+k*F,y:r+$+D*F,r:F}}function G$(e,t,n){var i,r,o,a,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(r=t.r+n.r,r*=r,a=e.r+n.r,r>(a*=a)?(i=(u+a-r)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),n.x=e.x-i*s-o*l,n.y=e.y-i*l+o*s):(i=(u+r-a)/(2*u),o=Math.sqrt(Math.max(0,r/u-i*i)),n.x=t.x+i*s-o*l,n.y=t.y+i*l+o*s)):(n.x=t.x+n.r,n.y=t.y)}function V$(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function Y$(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function X$(e){this._=e,this.next=null,this.previous=null}function J$(e,t){if(!(o=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,i,r,o,a,s,l,u,c,f,d;if((n=e[0]).x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;G$(i,n,r=e[2]),n=new X$(n),i=new X$(i),r=new X$(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(l=3;lfunction(e){e=`${e}`;let t=e.length;cD(e,t-1)&&!cD(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,i)))),n=t.map(uD),r=new Set(t).add("");for(const e of n)r.has(e)||(r.add(e),t.push(e),n.push(uD(e)),d.push(oD));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(a=0,r=d.length;a=0&&(u=d[e]).data===oD;--e)u.data=null}if(s.parent=iD,s.eachBefore((function(e){e.depth=e.parent.depth+1,--r})).eachBefore(z$),s.parent=null,r>0)throw new Error("cycle");return s}return i.id=function(e){return arguments.length?(t=N$(e),i):t},i.parentId=function(e){return arguments.length?(n=N$(e),i):n},i.path=function(t){return arguments.length?(e=N$(t),i):e},i}function uD(e){let t=e.length;if(t<2)return"";for(;--t>1&&!cD(e,t););return e.slice(0,t)}function cD(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(!(1&n))return!0}return!1}function fD(e,t){return e.parent===t.parent?1:2}function dD(e){var t=e.children;return t?t[0]:e.t}function hD(e){var t=e.children;return t?t[t.length-1]:e.t}function pD(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function mD(e,t,n){return e.a.parent===t.parent?e.a:n}function gD(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function yD(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(r-n)/e.value;++sd&&(d=s),g=c*c*m,(h=Math.max(d/g,g/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:l1?t:1)},n}(vD);const wD=function e(t){function n(e,n,i,r,o){if((a=e._squarify)&&a.ratio===t)for(var a,s,l,u,c,f=-1,d=a.length,h=e.value;++f1?t:1)},n}(vD);function _D(e,t,n){const i={};return e.each((e=>{const r=e.data;n(r)&&(i[t(r)]=e)})),e.lookup=i,e}function kD(e){tl.call(this,null,e)}kD.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const $D=e=>e.values;function DD(){const e=[],t={entries:e=>i(n(e,0),0),key:n=>(e.push(n),t)};function n(t,i){if(i>=e.length)return t;const r=t.length,o=e[i++],a={},s={};let l,u,c,f=-1;for(;++fe.length)return t;const r=[];for(const e in t)r.push({key:e,values:i(t[e],n)});return r}return t}function AD(e){tl.call(this,null,e)}f(kD,tl,{transform(e,t){t.source||h("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each((e=>{e.children&&ws(e.data)&&r.rem.push(e.data)})),this.value=o=E$({values:c(e.keys).reduce(((e,t)=>(e.key(t),e)),DD()).entries(r.source)},$D),n&&o.each((e=>{e.children&&(e=$s(e.data),r.add.push(e),r.source.push(e))})),_D(o,_s,_s)),r.source.root=o,r}});const SD=(e,t)=>e.parent===t.parent?1:2;f(AD,tl,{transform(e,t){t.source&&t.source.root||h(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Es(e.sort,(e=>e.data))),function(e,t,n){for(let i,r=0,o=t.length;rfunction(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o(e=(1664525*e+1013904223)%P$)/P$}();return r.x=t/2,r.y=n/2,e?r.eachBefore(K$(e)).eachAfter(Z$(i,.5,o)).eachBefore(eD(1)):r.eachBefore(K$(Q$)).eachAfter(Z$(T$,1,o)).eachAfter(Z$(i,r.r/Math.min(t,n),o)).eachBefore(eD(Math.min(t,n)/(2*r.r))),r}return r.radius=function(t){return arguments.length?(e=N$(t),r):e},r.size=function(e){return arguments.length?(t=+e[0],n=+e[1],r):[t,n]},r.padding=function(e){return arguments.length?(i="function"==typeof e?e:B$(+e),r):i},r},params:["radius","size","padding"],fields:ED});const CD=["x0","y0","x1","y1","depth","children"];function MD(e){AD.call(this,e)}function zD(e){tl.call(this,null,e)}MD.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:CD.length,default:CD}]},f(MD,AD,{layout:function(){var e=1,t=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=e,r.y1=t/o,r.eachBefore(function(e,t){return function(i){i.children&&nD(i,i.x0,e*(i.depth+1)/t,i.x1,e*(i.depth+2)/t);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a=0;--r)s.push(n=t.children[r]=new gD(i[r],r)),n.parent=t;return(a.parent=new gD(null,0)).children=[a],a}(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,c=r,f=r;r.eachBefore((function(e){e.xc.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=u===c?1:e(u,c)/2,h=d-u.x,p=t/(c.x+d+h),m=n/(f.depth||1);r.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*m}))}return r}function o(t){var n=t.children,i=t.parent.children,r=t.i?i[t.i-1]:null;if(n){!function(e){for(var t,n=0,i=0,r=e.children,o=r.length;--o>=0;)(t=r[o]).z+=n,t.m+=n,n+=t.s+(i+=t.c)}(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+e(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+e(t._,r._));t.parent.A=function(t,n,i){if(n){for(var r,o=t,a=t,s=n,l=o.parent.children[0],u=o.m,c=a.m,f=s.m,d=l.m;s=hD(s),o=dD(o),s&&o;)l=dD(l),(a=hD(a)).a=t,(r=s.z+f-o.z-u+e(s._,o._))>0&&(pD(mD(s,t,i),t,r),u+=r,c+=r),f+=s.m,u+=o.m,d+=l.m,c+=a.m;s&&!hD(a)&&(a.t=s,a.m+=f-c),o&&!dD(l)&&(l.t=o,l.m+=u-d,i=t)}return i}(t,r,t.parent.A||i[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r},cluster:function(){var e=$$,t=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(D$,0)/e.length}(n),t.y=function(e){return 1+e.reduce(A$,0)}(n)):(t.x=o?a+=e(t,o):0,t.y=0,o=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(r),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return r.eachAfter(i?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(r.y?e.y/r.y:1))*n})}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r}},ND=["x","y","depth","children"];function RD(e){AD.call(this,e)}function TD(e){tl.call(this,[],e)}RD.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:ND.length,default:ND}]},f(RD,AD,{layout(e){const n=e||"tidy";if(t(OD,n))return OD[n]();h("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:ND}),TD.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},f(TD,tl,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||h("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,(e=>o[_s(e)]=1)),i.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&o[_s(t)]&&o[_s(n)]&&r.add.push($s({source:n,target:t}))})),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>o[_s(e)]=1)),n.forEach((e=>{(o[_s(e.source)]||o[_s(e.target)])&&r.mod.push(e)}))),r}});const BD={binary:function(e,t,n,i,r){var o,a,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=a=o=0;o=n-1){var c=s[t];return c.x0=r,c.y0=o,c.x1=a,void(c.y1=l)}var f=u[t],d=i/2+f,h=t+1,p=n-1;for(;h>>1;u[m]l-o){var v=i?(r*y+a*g)/i:a;e(t,h,g,r,o,v,l),e(h,n,y,v,o,a,l)}else{var b=i?(o*y+l*g)/i:l;e(t,h,g,r,o,a,b),e(h,n,y,r,b,a,l)}}(0,l,e.value,t,n,i,r)},dice:nD,slice:yD,slicedice:function(e,t,n,i,r){(1&e.depth?yD:nD)(e,t,n,i,r)},squarify:xD,resquarify:wD},PD=["x0","y0","x1","y1","depth","children"];function jD(e){AD.call(this,e)}jD.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:PD.length,default:PD}]},f(jD,AD,{layout(){const e=function(){var e=xD,t=!1,n=1,i=1,r=[0],o=T$,a=T$,s=T$,l=T$,u=T$;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=i,e.eachBefore(f),r=[0],t&&e.eachBefore(tD),e}function f(t){var n=r[t.depth],i=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=n=>{t(BD,n)?e.tile(BD[n]):h("Unrecognized Treemap layout method: "+n)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:PD});const LD=Object.freeze(Object.defineProperty({__proto__:null,nest:kD,pack:FD,partition:MD,stratify:zD,tree:RD,treelinks:TD,treemap:jD},Symbol.toStringTag,{value:"Module"})),qD=4278190080;function UD(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function ID(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;"group"===i?t.forEach((t=>{t.items.forEach((t=>ID(e,t.items,n)))})):gm[i].draw(e,{items:n?t.map(WD):t})}function WD(e){const t=As(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const HD=31,GD=new Uint32Array(33),VD=new Uint32Array(33);VD[0]=0,GD[0]=~VD[0];for(let SV=1;SV<=32;++SV)VD[SV]=VD[SV-1]<<1|1,GD[SV]=~VD[SV];function YD(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),a=e=>~~((e+n)/i);return a.invert=e=>e*i-n,a.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+32)/32));function i(e,t){n[e]|=t}function r(e,t){n[e]&=t}return{array:n,get:(t,i)=>{const r=i*e+t;return n[r>>>5]&1<<(r&HD)},set:(t,n)=>{const r=n*e+t;i(r>>>5,1<<(r&HD))},clear:(t,n)=>{const i=n*e+t;r(i>>>5,~(1<<(i&HD)))},getRange:(t,i,r,o)=>{let a,s,l,u,c=o;for(;c>=i;--c)if(a=c*e+t,s=c*e+r,l=a>>>5,u=s>>>5,l===u){if(n[l]&GD[a&HD]&VD[1+(s&HD)])return!0}else{if(n[l]&GD[a&HD])return!0;if(n[u]&VD[1+(s&HD)])return!0;for(let e=l+1;e{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+r,l=a>>>5,u=s>>>5,l===u)i(l,GD[a&HD]&VD[1+(s&HD)]);else for(i(l,GD[a&HD]),i(u,VD[1+(s&HD)]),c=l+1;c{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+i,l=a>>>5,u=s>>>5,l===u)r(l,VD[a&HD]|GD[1+(s&HD)]);else for(r(l,VD[a&HD]),r(u,GD[1+(s&HD)]),c=l+1;cn<0||i<0||o>=t||r>=e}}(r,o),a.ratio=i,a.padding=n,a.width=e,a.height=t,a}function XD(e,t,n,i,r,o){let a=n/2;return e-a<0||e+a>r||t-(a=i/2)<0||t+a>o}function JD(e,t,n,i,r,o,a,s){const l=r*o/(2*i),u=e(t-l),c=e(t+l),f=e(n-(o/=2)),d=e(n+o);return a.outOfBounds(u,f,c,d)||a.getRange(u,f,c,d)||s&&s.getRange(u,f,c,d)}const QD=[-1,-1,1,1],KD=[-1,1,-1,1];const ZD=["right","center","left"],eA=["bottom","middle","top"];function tA(e,t,n,i,r,o,a,s,l,u,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const nA={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},iA={naive:function(e,t,n,i){const r=e.width,o=e.height;return function(e){const t=e.datum.datum.items[i].items,n=t.length,a=e.datum.fontSize,s=Qp.width(e.datum,e.datum.text);let l,u,c,f,d,h,p,m=0;for(let i=0;i=m&&(m=p,e.x=d,e.y=h);return d=s/2,h=a/2,l=e.x-d,u=e.x+d,c=e.y-h,f=e.y+h,e.align="center",l<0&&u<=r?e.align="left":0<=l&&r=1;)d=(h+p)/2,JD(e,c,f,u,l,d,a,s)?p=d:h=d;if(h>i)return[c,f,h,!0]}}return function(t){const s=t.datum.datum.items[i].items,u=s.length,c=t.datum.fontSize,f=Qp.width(t.datum,t.datum.text);let d,h,p,m,g,y,v,b,x,w,_,k,$,D,A,S,E,F=n?c:0,C=!1,M=!1,z=0;for(let i=0;ih&&(E=d,d=h,h=E),p>m&&(E=p,p=m,m=E),x=e(d),_=e(h),w=~~((x+_)/2),k=e(p),D=e(m),$=~~((k+D)/2),v=w;v>=x;--v)for(b=$;b>=k;--b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);for(v=w;v<=_;++v)for(b=$;b<=D;++b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);C||n||(A=Math.abs(h-d+m-p),g=(d+h)/2,y=(p+m)/2,A>=z&&!XD(g,y,f,c,r,o)&&!JD(e,g,y,c,f,c,a,null)&&(z=A,t.x=g,t.y=y,M=!0))}return!(!C&&!M)&&(g=f/2,y=c/2,a.setRange(e(t.x-g),e(t.y-y),e(t.x+g),e(t.y+y)),t.align="center",t.baseline="middle",!0)}},floodfill:function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[i].items,c=u.length,f=t.datum.fontSize,d=Qp.width(t.datum,t.datum.text),h=[];let p,m,g,y,v,b,x,w,_,k,$,D,A=n?f:0,S=!1,E=!1,F=0;for(let i=0;i=1;)$=(_+k)/2,JD(e,v,b,f,d,$,a,s)?k=$:_=$;_>A&&(t.x=v,t.y=b,A=_,S=!0)}}S||n||(D=Math.abs(m-p+y-g),v=(p+m)/2,b=(g+y)/2,D>=F&&!XD(v,b,d,f,r,o)&&!JD(e,v,b,f,d,f,a,null)&&(F=D,t.x=v,t.y=b,E=!0))}return!(!S&&!E)&&(v=d/2,b=f/2,a.setRange(e(t.x-v),e(t.y-b),e(t.x+v),e(t.y+b)),t.align="center",t.baseline="middle",!0)}}};function rA(e,t,n,i,r,o,a,s,l,u,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=function(e,t){const n=new Float64Array(t),i=e.length;for(let r=0;r[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>r(e.datum):"line"===t?e=>{const t=e.datum.items[i].items;return r(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:r}(p,m,s,l),v=null===u||u===1/0,b=g&&"naive"===c;var x;let w=-1,_=-1;const k=e.map((e=>{const t=v?Qp.width(e,e.text):void 0;return w=Math.max(w,t),_=Math.max(_,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(w,_)+Math.max(...i):u;const $=YD(t[0],t[1],u);let D;if(!b){n&&k.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;ee.datum));D=o.length||i?function(e,t,n,i,r){const o=e.width,a=e.height,s=i||r,l=Ac(o,a).getContext("2d"),u=Ac(o,a).getContext("2d"),c=s&&Ac(o,a).getContext("2d");n.forEach((e=>ID(l,e,!1))),ID(u,t,!1),s&&ID(c,t,!0);const f=UD(l,o,a),d=UD(u,o,a),h=s&&UD(c,o,a),p=e.bitmap(),m=s&&e.bitmap();let g,y,v,b,x,w,_,k;for(y=0;yn.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}($,a&&k)}const A=g?iA[c]($,D,a,l):function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=i.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>r||u[3]>o)return!1;let f,d,h,p,m,g,y,v,b,x,w,_,k,$,D,A=t.textWidth??0;for(let r=0;r>>2&3)-1,h=0===f&&0===d||i[r]<0,p=f&&d?Math.SQRT1_2:1,m=i[r]<0?-1:1,g=u[1+f]+i[r]*f*p,w=u[4+d]+m*c*d/2+i[r]*d*p,v=w-c/2,b=w+c/2,_=e(g),$=e(v),D=e(b),!A){if(!tA(_,_,$,D,a,s,0,0,0,0,0,h))continue;A=Qp.width(t.datum,t.datum.text)}if(x=g+m*A*f/2,g=x-A/2,y=x+A/2,_=e(g),k=e(y),tA(_,k,$,D,a,s,0,0,0,0,0,h))return t.x=f?f*m<0?y:g:x,t.y=d?d*m<0?b:v:w,t.align=ZD[f*m+1],t.baseline=eA[d*m+1],a.setRange(_,$,k,D),!0}return!1}}($,D,h,d);return k.forEach((e=>e.opacity=+A(e))),k}const oA=["x","y","opacity","align","baseline"],aA=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function sA(e){tl.call(this,null,e)}sA.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:aA},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:oA.length,default:oA}]},f(sA,tl,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const i=e[n];return d(i)&&t.modified(i.fields)}("sort")))return;e.size&&2===e.size.length||h("Size parameter should be specified as a [width, height] array.");const i=e.as||oA;return rA(t.materialize(t.SOURCE).source||[],e.size,e.sort,c(null==e.offset?1:e.offset),c(e.anchor||aA),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((e=>{const t=e.datum;t[i[0]]=e.x,t[i[1]]=e.y,t[i[2]]=e.opacity,t[i[3]]=e.align,t[i[4]]=e.baseline})),t.reflow(n).modifies(i)}});const lA=Object.freeze(Object.defineProperty({__proto__:null,label:sA},Symbol.toStringTag,{value:"Module"}));function uA(e,t){var n,i,r,o,a,s,l=[],u=function(e){return e(o)};if(null==t)l.push(e);else for(n={},i=0,r=e.length;i{Hl(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let i=0;i"poly"===e?t:"quad"===e?2:1)(a,s),u=e.as||[C(e.x),C(e.y)],c=fA[a],f=[];let d=e.extent;t(fA,a)||h("Invalid regression method: "+a),null!=d&&"log"===a&&d[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach((t=>{if(t.length<=l)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const i=c(t,e.x,e.y,s);if(e.params)return void f.push($s({keys:t.dims,coef:i.coef,rSquared:i.rSquared}));const r=d||M(t,e.x),h=e=>{const n={};for(let i=0;ih([e,i.predict(e)]))):Xl(i.predict,r,25,200).forEach(h)})),this.value&&(i.rem=this.value),this.value=i.add=i.source=f}return i}});const hA=Object.freeze(Object.defineProperty({__proto__:null,loess:cA,regression:dA},Symbol.toStringTag,{value:"Module"})),pA=134217729;function mA(e,t,n,i,r){let o,a,s,l,u=t[0],c=i[0],f=0,d=0;c>u==c>-u?(o=u,u=t[++f]):(o=c,c=i[++d]);let h=0;if(fu==c>-u?(a=u+o,s=o-(a-u),u=t[++f]):(a=c+o,s=o-(a-c),c=i[++d]),o=a,0!==s&&(r[h++]=s);fu==c>-u?(a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f]):(a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d]),o=a,0!==s&&(r[h++]=s);for(;f=33306690738754716e-32*u?l:-function(e,t,n,i,r,o,a){let s,l,u,c,f,d,h,p,m,g,y,v,b,x,w,_,k,$;const D=e-r,A=n-r,S=t-o,E=i-o;x=D*E,d=pA*D,h=d-(d-D),p=D-h,d=pA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=S*A,d=pA*S,h=d-(d-S),p=S-h,d=pA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;let F=function(e,t){let n=t[0];for(let i=1;i=C||-F>=C)return F;if(f=e-D,s=e-(D+f)+(f-r),f=n-A,u=n-(A+f)+(f-r),f=t-S,l=t-(S+f)+(f-o),f=i-E,c=i-(E+f)+(f-o),0===s&&0===l&&0===u&&0===c)return F;if(C=11093356479670487e-47*a+33306690738754706e-32*Math.abs(F),F+=D*c+E*s-(S*u+A*l),F>=C||-F>=C)return F;x=s*E,d=pA*s,h=d-(d-s),p=s-h,d=pA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=l*A,d=pA*l,h=d-(d-l),p=l-h,d=pA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,wA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,wA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,wA[2]=v-($-f)+(y-f),wA[3]=$;const M=mA(4,yA,4,wA,vA);x=D*c,d=pA*D,h=d-(d-D),p=D-h,d=pA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=S*u,d=pA*S,h=d-(d-S),p=S-h,d=pA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,wA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,wA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,wA[2]=v-($-f)+(y-f),wA[3]=$;const z=mA(M,vA,4,wA,bA);x=s*c,d=pA*s,h=d-(d-s),p=s-h,d=pA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=l*u,d=pA*l,h=d-(d-l),p=l-h,d=pA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,wA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,wA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,wA[2]=v-($-f)+(y-f),wA[3]=$;const O=mA(z,bA,4,wA,xA);return xA[O-1]}(e,t,n,i,r,o,u)}const kA=Math.pow(2,-52),$A=new Uint32Array(512);class DA{static from(e,t=MA,n=zA){const i=e.length,r=new Float64Array(2*i);for(let o=0;o>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:i,_hullHash:r}=this,o=e.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let D=0;Dl&&(l=t),n>u&&(u=n),this._ids[D]=D}const c=(a+l)/2,f=(s+u)/2;let d,h,p,m=1/0;for(let D=0;D0&&(h=D,m=t)}let v=e[2*h],b=e[2*h+1],x=1/0;for(let D=0;Di&&(t[n++]=r,i=this._dists[r])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(_A(g,y,v,b,w,_)<0){const e=h,t=v,n=b;h=p,v=w,b=_,p=e,w=t,_=n}const k=function(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=e+(u*c-s*f)*d;return{x:h,y:t+(a*f-l*c)*d}}(g,y,v,b,w,_);this._cx=k.x,this._cy=k.y;for(let D=0;D0&&Math.abs(a-D)<=kA&&Math.abs(s-A)<=kA)continue;if(D=a,A=s,o===d||o===h||o===p)continue;let l=0;for(let e=0,t=this._hashKey(a,s);e=0;)if(c=u,c===l){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,o,n[c],-1,-1,i[c]);i[o]=this._legalize(f+2),i[c]=f,$++;let m=n[c];for(;u=n[m],_A(a,s,e[2*m],e[2*m+1],e[2*u],e[2*u+1])<0;)f=this._addTriangle(m,o,u,i[o],-1,i[m]),i[o]=this._legalize(f+2),n[m]=m,$--,m=u;if(c===l)for(;u=t[c],_A(a,s,e[2*u],e[2*u+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(u,o,c,-1,i[c],i[u]),this._legalize(f+2),i[u]=f,n[c]=c,$--,c=u;this._hullStart=t[o]=c,n[c]=t[m]=o,n[o]=m,r[this._hashKey(a,s)]=o,r[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array($);for(let D=0,A=this._hullStart;D<$;D++)this.hull[D]=A,A=n[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:i}=this;let r=0,o=0;for(;;){const a=n[e],s=e-e%3;if(o=s+(e+2)%3,-1===a){if(0===r)break;e=$A[--r];continue}const l=a-a%3,u=s+(e+1)%3,c=l+(a+2)%3,f=t[o],d=t[e],h=t[u],p=t[c];if(SA(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1])){t[e]=p,t[a]=f;const i=n[c];if(-1===i){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,i),this._link(a,n[o]),this._link(o,c);const s=l+(a+1)%3;r<$A.length&&($A[r++]=s)}else{if(0===r)break;e=$A[--r]}}return o}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,i,r,o){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,i),this._link(a+1,r),this._link(a+2,o),this.trianglesLen+=3,a}}function AA(e,t,n,i){const r=e-n,o=t-i;return r*r+o*o}function SA(e,t,n,i,r,o,a,s){const l=e-a,u=t-s,c=n-a,f=i-s,d=r-a,h=o-s,p=c*c+f*f,m=d*d+h*h;return l*(f*m-p*h)-u*(c*m-p*d)+(l*l+u*u)*(c*h-f*d)<0}function EA(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=(u*c-s*f)*d,p=(a*f-l*c)*d;return h*h+p*p}function FA(e,t,n,i){if(i-n<=20)for(let r=n+1;r<=i;r++){const i=e[r],o=t[i];let a=r-1;for(;a>=n&&t[e[a]]>o;)e[a+1]=e[a--];e[a+1]=i}else{let r=n+1,o=i;CA(e,n+i>>1,r),t[e[n]]>t[e[i]]&&CA(e,n,i),t[e[r]]>t[e[i]]&&CA(e,r,i),t[e[n]]>t[e[r]]&&CA(e,n,r);const a=e[r],s=t[a];for(;;){do{r++}while(t[e[r]]s);if(o=o-n?(FA(e,t,r,i),FA(e,t,n,o-1)):(FA(e,t,n,o-1),FA(e,t,r,i))}}function CA(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function MA(e){return e[0]}function zA(e){return e[1]}const OA=1e-6;class NA{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const i=(e=+e)+(n=+n),r=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${i},${r}`:(Math.abs(this._x1-i)>OA||Math.abs(this._y1-r)>OA)&&(this._+="L"+i+","+r),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`)}rect(e,t,n,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class RA{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}let TA=class{constructor(e,[t,n,i,r]=[0,0,960,500]){if(!((i=+i)>=(t=+t)&&(r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=i,this.xmin=t,this.ymax=r,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:i}=this;let r,o;const a=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let p,m,g=0,y=0,v=n.length;g1;)r-=2;for(let o=2;o0){if(t>=this.ymax)return null;(r=(this.ymax-t)/i)0){if(e>=this.xmax)return null;(r=(this.xmax-e)/n)this.xmax?2:0)|(tthis.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t2&&function(e){const{triangles:t,coords:n}=e;for(let i=0;i1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let o=0,a=t.length/2;o0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,2===i.length&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new TA(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:i,halfedges:r,triangles:o,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t=0&&r!==n&&r!==i;)n=r;return r}_step(e,t,n){const{inedges:i,hull:r,_hullIndex:o,halfedges:a,triangles:s,points:l}=this;if(-1===i[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=PA(t-l[2*e],2)+PA(n-l[2*e+1],2);const f=i[e];let d=f;do{let i=s[d];const f=PA(t-l[2*i],2)+PA(n-l[2*i+1],2);if(f=h));)if(t.x=f+r,t.y=d+o,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1]||n&&QA(t,e,s[0])||n&&(u=n,!((a=t).x+a.x1>u[0].x&&a.x+a.x0u[0].y&&a.y+a.y0>5,x=s[0]>>5,w=t.x-(b<<4),_=127&w,k=32-_,$=t.y1-t.y0,D=(t.y+t.y0)*x+(w>>5),A=0;A<$;A++){y=0;for(var S=0;S<=b;S++)e[D+S]|=y<>>_:0);D+=x}return t.sprite=null,!0}return!1}return f.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=2048/t,e.height=YA/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Ac()),f=function(e){var t=[],n=-1;for(;++n>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:e(s),font:t(s),style:i(s),weight:r(s),rotate:o(s),size:~~(n(s)+1e-14),padding:a(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++m>1,v.y=s[1]*(c()+.5)>>1,JA(l,v,y,m),v.hasText&&d(f,v,h)&&(g.push(v),h?KA(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return g},f.words=function(e){return arguments.length?(u=e,f):u},f.size=function(e){return arguments.length?(s=[+e[0],+e[1]],f):s},f.font=function(e){return arguments.length?(t=eS(e),f):t},f.fontStyle=function(e){return arguments.length?(i=eS(e),f):i},f.fontWeight=function(e){return arguments.length?(r=eS(e),f):r},f.rotate=function(e){return arguments.length?(o=eS(e),f):o},f.text=function(t){return arguments.length?(e=eS(t),f):e},f.spiral=function(e){return arguments.length?(l=tS[e]||e,f):l},f.fontSize=function(e){return arguments.length?(n=eS(e),f):n},f.padding=function(e){return arguments.length?(a=eS(e),f):a},f.random=function(e){return arguments.length?(c=e,f):c},f}function JA(e,t,n,i){if(!t.sprite){var r=e.context,o=e.ratio;r.clearRect(0,0,2048/o,YA/o);var a,s,l,u,c,f=0,d=0,h=0,p=n.length;for(--i;++i>5<<5,l=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else a=a+31>>5<<5;if(l>h&&(h=l),f+a>=2048&&(f=0,d+=h,h=0),d+l>=YA)break;r.translate((f+(a>>1))/o,(d+(l>>1))/o),t.rotate&&r.rotate(t.rotate*VA),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=a,t.height=l,t.xoff=f,t.yoff=d,t.x1=a>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,f+=a}for(var w=r.getImageData(0,0,2048/o,YA/o).data,_=[];--i>=0;)if((t=n[i]).hasText){for(s=(a=t.width)>>5,l=t.y1-t.y0,u=0;u>5),A=w[2048*(d+c)+(f+u)<<2]?1<<31-u%32:0;_[D]|=A,k|=A}k?$=c:(t.y0++,l--,c--,d++)}t.y1=t.y0+$,t.sprite=_.slice(0,(t.y1-t.y0)*s)}}}function QA(e,t,n){n>>=5;for(var i,r=e.sprite,o=e.width>>5,a=e.x-(o<<4),s=127&a,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(a>>5),f=0;f>>s:0))&t[c+d])return!0;c+=n}return!1}function KA(e,t){var n=e[0],i=e[1];t.x+t.x0i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function ZA(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function eS(e){return"function"==typeof e?e:function(){return e}}var tS={archimedean:ZA,rectangular:function(e){var t=4*e[0]/e[1],n=0,i=0;return function(e){var r=e<0?-1:1;switch(Math.sqrt(1+4*r*e)-r&3){case 0:n+=t;break;case 1:i+=4;break;case 2:n-=t;break;default:i-=4}return[n,i]}}};const nS=["x","y","font","fontSize","fontStyle","fontWeight","angle"],iS=["text","font","rotate","fontSize","fontStyle","fontWeight"];function rS(e){tl.call(this,XA(),e)}rS.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:nS}]},f(rS,tl,{transform(e,t){!e.size||e.size[0]&&e.size[1]||h("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||iS.some((function(n){const i=e[n];return d(i)&&t.modified(i.fields)}))))return;const i=t.materialize(t.SOURCE).source,r=this.value,o=e.as||nS;let a,s=e.fontSize||14;if(d(s)?a=e.fontSizeRange:s=w(s),a){const e=s,t=Rf("sqrt")().domain(M(i,e)).range(a);s=n=>t(e(n))}i.forEach((e=>{e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));const l=r.words(i).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(cl).layout(),u=r.size(),c=u[0]>>1,f=u[1]>>1,p=l.length;for(let d,h,m=0;mnew Uint8Array(e),sS=e=>new Uint16Array(e),lS=e=>new Uint32Array(e);function uS(e,t,n){const i=(t<257?aS:t<65537?sS:lS)(e);return n&&i.set(n),i}function cS(e,t,n){const i=1<{const i=e[t],r=e[n];return ir?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(d,l),a)u=t,c=e,t=Array(a+s),e=lS(a+s),function(e,t,n,i,r,o,a,s,l){let u,c=0,f=0;for(u=0;c0)for(f=0;fe,size:()=>n}}function dS(e){tl.call(this,function(){let e=8,t=[],n=lS(0),i=uS(0,e),r=uS(0,e);return{data:()=>t,seen:()=>{return e=n,i=t.length,n=e.length>=i?e:((r=r||new e.constructor(i)).set(e),r);var e,i,r},add(e){for(let n,i=0,r=t.length,o=e.length;it.length,curr:()=>i,prev:()=>r,reset:e=>r[e]=i[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){i[e]|=t},clear(e,t){i[e]&=~t},resize(t,n){(t>i.length||n>e)&&(e=Math.max(n,e),i=uS(t,e,i),r=uS(t,e))}}}(),e),this._indices=null,this._dims=null}function hS(e){tl.call(this,null,e)}dS.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},f(dS,tl,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],a=i.length;let s,l,u=0;for(;u{const e=r.remove(t,n);for(const t in i)i[t].reindex(e)}))},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,a=i.length;let s,l,u=0;for(n.filters=0,l=0;lh)for(g=h,y=Math.min(f,p);gp)for(g=Math.max(f,p),y=d;gc)for(h=c,p=Math.min(l,f);hf)for(h=Math.max(l,f),p=u;hs[e]&n?null:a[e];return o.filter(o.MOD,u),r&r-1?(o.filter(o.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?a[e]:null})),o.filter(o.REM,(e=>{const t=s[e]&n;return t&&!(0^l[e]&n)?a[e]:null}))):(o.filter(o.ADD,u),o.filter(o.REM,(e=>(s[e]&n)===r?a[e]:null))),o.filter(o.SOURCE,(e=>u(e._index)))}});const pS=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:dS,resolvefilter:hS},Symbol.toStringTag,{value:"Module"})),mS="Literal",gS="Property",yS="ArrayExpression",vS="BinaryExpression",bS="CallExpression",xS="ConditionalExpression",wS="LogicalExpression",_S="MemberExpression",kS="ObjectExpression",$S="UnaryExpression";function DS(e){this.type=e}var AS,SS,ES,FS,CS;DS.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(e){switch(e.type){case yS:return e.elements;case vS:case wS:return[e.left,e.right];case bS:return[e.callee].concat(e.arguments);case xS:return[e.test,e.consequent,e.alternate];case _S:return[e.object,e.property];case kS:return e.properties;case gS:return[e.key,e.value];case $S:return[e.argument];default:return[]}}(this),n=0,i=t.length;n",AS[3]="Identifier",AS[4]="Keyword",AS[5]="Null",AS[6]="Numeric",AS[7]="Punctuator",AS[8]="String",AS[9]="RegularExpression";var MS="Identifier",zS="Unexpected token %0",OS="Invalid regular expression",NS="Invalid regular expression: missing /",RS="Octal literals are not allowed in strict mode.",TS="ILLEGAL",BS="Disabled.",PS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),jS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function LS(e,t){if(!e)throw new Error("ASSERT: "+t)}function qS(e){return e>=48&&e<=57}function US(e){return"0123456789abcdefABCDEF".includes(e)}function IS(e){return"01234567".includes(e)}function WS(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function HS(e){return 10===e||13===e||8232===e||8233===e}function GS(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&PS.test(String.fromCharCode(e))}function VS(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&jS.test(String.fromCharCode(e))}const YS={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function XS(){for(;ES1114111||"}"!==e)&&dE({},zS,TS),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function KS(){var e,t;for(e=SS.charCodeAt(ES++),t=String.fromCharCode(e),92===e&&(117!==SS.charCodeAt(ES)&&dE({},zS,TS),++ES,(e=JS("u"))&&"\\"!==e&&GS(e.charCodeAt(0))||dE({},zS,TS),t=e);ES>>="===(i=SS.substr(ES,4))?{type:7,value:i,start:r,end:ES+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:ES+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".includes(a)||"=>"===t?{type:7,value:t,start:r,end:ES+=2}:("//"===t&&dE({},zS,TS),"<>=!+-*%&|^/".includes(a)?{type:7,value:a,start:r,end:++ES}:void dE({},zS,TS))}function tE(){var e,t,n;if(LS(qS((n=SS[ES]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=ES,e="","."!==n){if(e=SS[ES++],n=SS[ES],"0"===e){if("x"===n||"X"===n)return++ES,function(e){let t="";for(;ES=0&&dE({},OS,n),{value:n,literal:t}}(),i=function(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";dE({},OS)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(i){dE({},OS)}try{return new RegExp(e,t)}catch(r){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:ES}}function iE(){if(XS(),ES>=FS)return{type:2,start:ES,end:ES};const e=SS.charCodeAt(ES);return GS(e)?ZS():40===e||41===e||59===e?eE():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(LS("'"===(e=SS[ES])||'"'===e,"String literal must starts with a quote"),t=ES,++ES;ES(LS(t":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function FE(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,l,u;if(e=CS,l=SE(),0===(r=EE(i=CS)))return l;for(i.prec=r,rE(),t=[e,CS],o=[l,i,a=SE()];(r=EE(CS))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=aE(s,l,a),o.push(n);(i=rE()).prec=r,o.push(i),t.push(CS),n=SE(),o.push(n)}for(n=o[u=o.length-1],t.pop();u>1;)t.pop(),n=aE(o[u-1].value,o[u-2],n),u-=2;return n}(),mE("?")&&(rE(),t=FE(),pE(":"),e=function(e,t,n){const i=new DS("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,FE())),e}function CE(){const e=FE();if(mE(","))throw new Error(BS);return e}function ME(e){ES=0,FS=(SS=e).length,CS=null,oE();const t=CE();if(2!==CS.type)throw new Error("Unexpect token after expression.");return t}var zE={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function OE(e){function t(t,n,i){return r=>function(t,n,i,r){let o=e(n[0]);return i&&(o=i+"("+o+")",0===i.lastIndexOf("new ",0)&&(o="("+o+")")),o+"."+t+(r<0?"":0===r?"()":"("+n.slice(1).map(e).join(",")+")")}(t,r,n,i)}const n="new Date",i="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&h("Missing arguments to clamp function."),t.length>3&&h("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",i,0),lower:t("toLowerCase",i,0),substring:t("substring",i),split:t("split",i),trim:t("trim",i,0),regexp:r,test:t("test",r),if:function(t){t.length<3&&h("Missing arguments to if function."),t.length>3&&h("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function NE(e){const n=(e=e||{}).allowed?se(e.allowed):{},r=e.forbidden?se(e.forbidden):{},o=e.constants||zE,a=(e.functions||OE)(m),s=e.globalvar,l=e.fieldvar,u=d(s)?s:e=>`${s}["${e}"]`;let c={},f={},p=0;function m(e){if(i(e))return e;const t=g[e.type];return null==t&&h("Unsupported type: "+e.type),t(e)}const g={Literal:e=>e.raw,Identifier:e=>{const i=e.name;return p>0?i:t(r,i)?h("Illegal identifier: "+i):t(o,i)?o[i]:t(n,i)?i:(c[i]=1,u(i))},MemberExpression:e=>{const t=!e.computed,n=m(e.object);t&&(p+=1);const i=m(e.property);return n===l&&(f[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(i)]=1),t&&(p-=1),n+(t?"."+i:"["+i+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&h("Illegal callee type: "+e.callee.type);const n=e.callee.name,i=e.arguments,r=t(a,n)&&a[n];return r||h("Unrecognized function: "+n),d(r)?r(i):r+"("+i.map(m).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(m).join(",")+"]",BinaryExpression:e=>"("+m(e.left)+" "+e.operator+" "+m(e.right)+")",UnaryExpression:e=>"("+e.operator+m(e.argument)+")",ConditionalExpression:e=>"("+m(e.test)+"?"+m(e.consequent)+":"+m(e.alternate)+")",LogicalExpression:e=>"("+m(e.left)+e.operator+m(e.right)+")",ObjectExpression:e=>"{"+e.properties.map(m).join(",")+"}",Property:e=>{p+=1;const t=m(e.key);return p-=1,t+":"+m(e.value)}};function y(e){const t={code:m(e),globals:Object.keys(c),fields:Object.keys(f)};return c={},f={},t}return y.functions=a,y.constants=o,y}const RE=Symbol("vega_selection_getter");function TE(e){return e.getter&&e.getter[RE]||(e.getter=U(e.field),e.getter[RE]=!0),e.getter}const BE="intersect",PE="union",jE="or",LE="and",qE="_vgsid_",UE=U(qE),IE="index:unit";function WE(e,t){for(var n,i,r=t.fields,o=t.values,a=r.length,s=0;s=o[s])return!1}else if("E-LTE"===i.type){if(n>o[s])return!1}else if("E-GT"===i.type){if(n<=o[s])return!1}else if("E-GTE"===i.type){if(nA(t.fields?{values:t.fields.map((t=>TE(t)(e.datum)))}:{[qE]:UE(e.datum)},t)))}function QE(e,t,n,i){for(var r,o,a,s,l,u,f,d,h,p,m,g,y=this.context.data[e],v=y?y.values.value:[],b={},x={},w={},_=v.length,k=0;k<_;++k)if(s=(r=v[k]).unit,o=r.fields,a=r.values,o&&a){for(m=0,g=o.length;m(e[o[n].field]=t,e)),{}))}else l=qE,u=UE(r),(d=(f=b[l]||(b[l]={}))[s]||(f[s]=[])).push(u),n&&(d=x[s]||(x[s]=[])).push({[qE]:u});if(t=t||PE,b[qE]?b[qE]=KE[`${qE}_${t}`](...Object.values(b[qE])):Object.keys(b).forEach((e=>{b[e]=Object.keys(b[e]).map((t=>b[e][t])).reduce(((n,i)=>void 0===n?i:KE[`${w[e]}_${t}`](n,i)))})),v=Object.keys(x),n&&v.length){b[i?"vlPoint":"vlMulti"]=t===PE?{[jE]:v.reduce(((e,t)=>(e.push(...x[t]),e)),[])}:{[LE]:v.map((e=>({[jE]:x[e]})))}}return b}var KE={[`${qE}_union`]:function(...e){const t=new Vn;for(const n of e)for(const e of n)t.add(e);return t},[`${qE}_intersect`]:function(e,...t){e=new Vn(e),t=t.map(si);e:for(const n of e)for(const i of t)if(!i.has(n)){e.delete(n);continue e}return e},E_union:function(e,t){if(!e.length)return t;for(var n=0,i=t.length;nt.includes(e))):t},R_union:function(e,t){var n=z(t[0]),i=z(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]i&&(n=t[1],i=t[0]),e.length?ii&&(e[1]=i),e):[n,i]}};function ZE(e,n,i,r){n[0].type!==mS&&h("First argument to selection functions must be a string literal.");const o=n[0].value,a="unit",s="@"+a,l=":"+o;(n.length>=2&&L(n).value)!==BE||t(r,s)||(r[s]=i.getData(o).indataRef(i,a)),t(r,l)||(r[l]=i.getData(o).tuplesRef())}function eF(e){const t=this.context.data[e];return t?t.values.value:[]}const tF=e=>function(t,n){const i=this.context.dataflow.locale();return null===t?"null":i[e](n)(t)},nF=tF("format"),iF=tF("timeFormat"),rF=tF("utcFormat"),oF=tF("timeParse"),aF=tF("utcParse"),sF=new Date(2e3,0,1);function lF(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(sF.setYear(2e3),sF.setMonth(e),sF.setDate(t),iF.call(this,sF,n)):""}function uF(e,n,i,r){n[0].type!==mS&&h("First argument to data functions must be a string literal.");const o=n[0].value,a=":"+o;if(!t(a,r))try{r[a]=i.getData(o).tuplesRef()}catch(s){}}function cF(e,t,n,i){if(t[0].type===mS)fF(n,i,t[0].value);else for(e in n.scales)fF(n,i,e)}function fF(e,n,i){const r="%"+i;if(!t(n,r))try{n[r]=e.scaleRef(i)}catch(o){}}function dF(e,t){if(i(e)){const n=t.scales[e];return n&&Nf(n.value)?n.value:void 0}}function hF(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=cF,n._range=cF,n._scale=cF;const i=t=>"_["+(t.type===mS?a("%"+t.value):a("%")+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${i(e[0])})`,_range:e=>`${i(e[0])}.range()`,_scale:t=>`${i(t[0])}(${e(t[1])})`}}function pF(e,t){return function(n,i,r){if(n){const t=dF(n,(r||this).context);return t&&t.path[e](i)}return t(i)}}const mF=pF("area",Zb),gF=pF("bounds",Nx),yF=pF("centroid",Gx);function vF(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function bF(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function xF(e){const t=Un(e);return.2126*bF(t.r)+.7152*bF(t.g)+.0722*bF(t.b)}function wF(e,t){return e===t||e!=e&&t!=t||(u(e)?!(!u(t)||e.length!==t.length)&&function(e,t){for(let n=0,i=e.length;n_F(e,t)}const $F={};function DF(e){return u(e)||ArrayBuffer.isView(e)?e:null}function AF(e){return DF(e)||(i(e)?e:null)}const SF=e=>e.data;function EF(e,t){const n=eF.call(t,e);return n.root&&n.root.lookup||{}}const FF=()=>"undefined"!=typeof window&&window||null;function CF(e,t,n){if(!e)return[];const[i,r]=e,o=(new wh).set(i[0],i[1],r[0],r[1]);return ry(n||this.context.dataflow.scenegraph().root,o,function(e){let t=null;if(e){const n=c(e.marktype),i=c(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!i.length||i.some((t=>e.name===t)))}return t}(t))}const MF={random:()=>cl(),cumulativeNormal:vl,cumulativeLogNormal:$l,cumulativeUniform:Cl,densityNormal:yl,densityLogNormal:kl,densityUniform:Fl,quantileNormal:bl,quantileLogNormal:Dl,quantileUniform:Ml,sampleNormal:gl,sampleLogNormal:_l,sampleUniform:El,isArray:u,isBoolean:l,isDate:ge,isDefined:e=>void 0!==e,isNumber:n,isObject:s,isRegExp:ve,isString:i,isTuple:ws,isValid:e=>null!=e&&e==e,toBoolean:be,toDate:e=>xe(e),toNumber:z,toString:we,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;iM(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:CF,clampRange:Be,pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=FF();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=FF();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return of(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,i=this.context.data[e].input;return n.pulse(i,n.changeset().remove(p).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Wd(n,t=t||Od(e)):e}},panLinear:Pe,panLog:je,panPow:Le,panSymlog:qe,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he,encode:function(e,t,n){if(e){const n=this.context.dataflow,i=e.mark.source;n.pulse(i,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,i,r,o){const a=this.context.dataflow,s=this.context.data[e],l=s.input,c=a.stamp();let f,d,h=s.changes;if(!1===a._trigger||!(l.value.length||t||i))return 0;if((!h||h.stamp{s.modified=!0,a.pulse(l,h).run()}),!0,1)),n&&(f=!0===n?p:u(n)||ws(n)?n:kF(n),h.remove(f)),t&&h.insert(t),i&&(f=kF(i),l.value.some(f)?h.remove(f):h.insert(i)),r)for(d in o)h.modify(r,d,o[d]);return 1},lassoAppend:function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(e=c(e))[e.length-1];return void 0===r||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e},lassoPath:function(e){return c(e).reduce(((t,n,i)=>{let[r,o]=n;return t+(0==i?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(e,t,n){const{x:i,y:r,mark:o}=n,a=(new wh).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,l]of t)sa.x2&&(a.x2=s),la.y2&&(a.y2=l);return a.translate(i,r),CF([[a.x1,a.y1],[a.x2,a.y2]],e,o).filter((e=>function(e,t,n){let i=0;for(let r=0,o=n.length-1;rt!=s>t&&e<(a-l)*(t-u)/(s-u)+l&&i++}return 1&i}(e.x,e.y,t)))}},zF=["view","item","group","xy","x","y"],OF="this.",NF={},RF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${a("$"+e)}]`,functions:function(e){const t=OE(e);zF.forEach((e=>t[e]="event.vega."+e));for(const n in MF)t[n]=OF+n;return A(t,hF(e,MF,NF)),t},constants:zE,visitors:NF},TF=NE(RF);function BF(e,t,n){return 1===arguments.length?MF[e]:(MF[e]=t,n&&(NF[e]=n),TF.functions[e]=OF+e,this)}function PF(e,n){const r={};let o;try{o=ME(e=i(e)?e:a(e)+"")}catch(l){h("Expression parse error: "+e)}o.visit((e=>{if(e.type!==bS)return;const t=e.callee.name,i=RF.visitors[t];i&&i(t,e.arguments,n,r)}));const s=TF(o);return s.globals.forEach((e=>{const i="$"+e;!t(r,i)&&n.getSignal(e)&&(r[i]=n.signalRef(e))})),{$expr:A({code:s.code},n.options.ast?{ast:o}:null),$fields:s.fields,$params:r}}BF("bandwidth",(function(e,t){const n=dF(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),cF),BF("copy",(function(e,t){const n=dF(e,(t||this).context);return n?n.copy():void 0}),cF),BF("domain",(function(e,t){const n=dF(e,(t||this).context);return n?n.domain():[]}),cF),BF("range",(function(e,t){const n=dF(e,(t||this).context);return n&&n.range?n.range():[]}),cF),BF("invert",(function(e,t,n){const i=dF(e,(n||this).context);return i?u(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}),cF),BF("scale",(function(e,t,n){const i=dF(e,(n||this).context);return i?i(t):void 0}),cF),BF("gradient",(function(e,t,n,i,r){let o="string"==typeof e?dF(e,(r||this).context):e;const a=Dd(t,n);let s=o.domain(),l=s[0],u=L(s),c=m;return u-l?c=Yf(o,l,u):o=(o.interpolator?Rf("sequential")().interpolator(o.interpolator()):Rf("linear")().interpolate(o.interpolate()).range(o.range())).domain([l=0,u=1]),o.ticks&&(s=o.ticks(+i||15),l!==s[0]&&s.unshift(l),u!==L(s)&&s.push(u)),s.forEach((e=>a.stop(c(e),o(e)))),a}),cF),BF("geoArea",mF,cF),BF("geoBounds",gF,cF),BF("geoCentroid",yF,cF),BF("geoShape",(function(e,t,n){const i=dF(e,(n||this).context);return function(e){return i?i.path.context(e)(t):""}}),cF),BF("geoScale",(function(e,t){const n=dF(e,(t||this).context);return n&&n.scale()}),cF),BF("indata",(function(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(e,n,i,r){n[0].type!==mS&&h("First argument to indata must be a string literal."),n[1].type!==mS&&h("Second argument to indata must be a string literal.");const o=n[0].value,a=n[1].value,s="@"+a;t(s,r)||(r[s]=i.getData(o).indataRef(i,a))})),BF("data",eF,uF),BF("treePath",(function(e,t,n){const i=EF(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(SF):void 0}),uF),BF("treeAncestors",(function(e,t){const n=EF(e,this)[t];return n?n.ancestors().map(SF):void 0}),uF),BF("vlSelectionTest",HE,ZE),BF("vlSelectionIdTest",XE,ZE),BF("vlSelectionResolve",QE,ZE),BF("vlSelectionTuples",JE);const jF=se(["rule"]),LF=se(["group","image","rect"]);function qF(e){return(e+"").toLowerCase()}function UF(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}var IF={operator:(e,t)=>UF(e,["_"],t.code),parameter:(e,t)=>UF(e,["datum","_"],t.code),event:(e,t)=>UF(e,["event"],t.code),handler:(e,t)=>UF(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const o in i){const e="o["+a(o)+"]";r+=`$=${i[o].code};if(${e}!==$)${e}=$,m=1;`}return r+=function(e,t){let n="";return jF[t]||(e.x2&&(e.x?(LF[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(LF[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(i,n),r+="return m;",UF(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(a).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=Function("a","b","var u, v; return "+e.map(((e,i)=>{const r=t[i];let o,a;return e.path?(o=`a${e.path}`,a=`b${e.path}`):((n=n||{})["f"+i]=e,o=`this.f${i}(a)`,a=`this.f${i}(b)`),function(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}(o,a,-r,r)})).join("")+"0;");return n?i.bind(n):i}}};function WF(e,n,i){if(!e||!s(e))return e;for(let r,o=0,a=HF.length;oe&&e.$tupleid?_s:e));return t.fn[n]||(t.fn[n]=H(i,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,i,r){const o=t.fork().parse(n),a=o.get(n.operators[0].id),s=o.signals.parent;return s&&s.set(r),a.detachSubflow=()=>t.detach(o),a}}},{key:"$tupleid",parse:function(){return _s}}];const GF={skip:!0};function VF(e,t,n,i){return new YF(e,t,n,i)}function YF(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||IF,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function XF(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function JF(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}YF.prototype=XF.prototype={fork(){const e=new XF(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),"collect"===qF(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let r=n.get(e.parent.$ref);r?(i.connect(r,[t]),t.targets().add(r)):(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(e.parent.$ref),i.connect(r,[t]),t.targets().add(r)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const i=n.data[o]||(n.data[o]={});e.data[o].forEach((e=>i[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[qF(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==qF(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||h("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=u(r)?r.map((e=>WF(e,n,t))):WF(r,n,t)}return t},parseStream:function(e){var t,n=this,i=null!=e.filter?n.eventExpression(e.filter):void 0,r=null!=e.stream?n.get(e.stream):void 0;e.source?r=n.events(e.source,e.type,i):e.merge&&(r=(t=e.merge.map((e=>n.get(e))))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(i)),null!=e.throttle&&(r=r.throttle(+e.throttle)),null!=e.debounce&&(r=r.debounce(+e.debounce)),null==r&&h("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),n.stream(e,r)},parseUpdate:function(e){var t,n=this,i=s(i=e.source)?i.$ref:i,r=n.get(i),o=e.update,a=void 0;r||h("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),o&&o.$expr&&(o.$params&&(a=n.parseParameters(o.$params)),o=n.handlerExpression(o.$expr)),n.update(e,r,t,o,a)},getState:function(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach((n=>{const r=t.signals[n];e.signals(n,r)&&(i[n]=r.value)}))}if(e.data){var r=n.data={};Object.keys(t.data).forEach((n=>{const i=t.data[n];e.data(n,i)&&(r[n]=i.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach((e=>{n.update(t.signals[e],r[e],GF)})),Object.keys(i||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove(p).insert(i[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const i=t.subcontext[n];i&&i.setState(e)}))}};const QF="default";function KF(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function ZF(e,n){var i=e._runtime.data;return t(i,n)||h("Unrecognized data set: "+n),i[n]}function eC(e,t){Fs(t)||h("Second argument to changes must be a changeset.");const n=ZF(this,e);return n.modified=!0,this.pulse(n.input,t)}function tC(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function nC(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function iC(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function rC(e,t,n){var r,o,a=e._renderer,s=a&&a.canvas();return s&&(o=iC(e),(r=Mm(t.changedTouches?t.changedTouches[0]:t,s))[0]-=o[0],r[1]-=o[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const r=t?"group"===t.mark.marktype?t:t.mark.group:null;function o(e){var n,i=r;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(e){if(!e)return n;i(e)&&(e=o(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:w(e),item:w(t||{}),group:o,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}const oC="view",aC={trap:!1};function sC(e,t,n,i){e._eventListeners.push({type:n,sources:c(t),handler:i})}function lC(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return!(!1===i||s(i)&&!i[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function uC(e){return e.item}function cC(e){return e.item.mark.source}function fC(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function dC(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return null!=n&&(i.textContent=n),i}function hC(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),sC(i,t,r,o),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(r))}}function pC(e,t,n,i){const r=i.signal(n.signal),o=dC("div",{class:"vega-bind"}),a="radio"===n.input?o:o.appendChild(dC("label"));a.appendChild(dC("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(o);let s=mC;switch(n.input){case"checkbox":s=gC;break;case"select":s=yC;break;case"radio":s=vC;break;case"range":s=bC}s(e,a,n,r)}function mC(e,t,n,i){const r=dC("input");for(const o in n)"signal"!==o&&"element"!==o&&r.setAttribute("input"===o?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",(()=>e.update(r.value))),e.elements=[r],e.set=e=>r.value=e}function gC(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=dC("input",r);t.appendChild(o),o.addEventListener("change",(()=>e.update(o.checked))),e.elements=[o],e.set=e=>o.checked=!!e||null}function yC(e,t,n,i){const r=dC("select",{name:n.signal}),o=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};xC(e,i)&&(n.selected=!0),r.appendChild(dC("option",n,(o[t]||e)+""))})),t.appendChild(r),r.addEventListener("change",(()=>{e.update(n.options[r.selectedIndex])})),e.elements=[r],e.set=e=>{for(let t=0,i=n.options.length;t{const s={type:"radio",name:n.signal,value:t};xC(t,i)&&(s.checked=!0);const l=dC("input",s);l.addEventListener("change",(()=>e.update(t)));const u=dC("label",{},(o[a]||t)+"");return u.prepend(l),r.appendChild(u),l})),e.set=t=>{const n=e.elements,i=n.length;for(let e=0;e{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function xC(e,t){return e===t||e+""==t+""}function wC(e,t,n,i,r,o){return(t=t||new i(e.loader())).initialize(n,tC(e),nC(e),iC(e),r,o).background(e.background())}function _C(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function kC(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const $C=e=>+e||0;function DC(e){return s(e)?{top:$C(e.top),bottom:$C(e.bottom),left:$C(e.left),right:$C(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))($C(e))}async function AC(e,t,n,i){const r=iy(t),o=r&&r.headless;return o||h("Unrecognized renderer type: "+t),await e.runAsync(),wC(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}var SC="width",EC="height",FC="padding",CC={skip:!0};function MC(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===FC?i.left+i.right:0)}function zC(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===FC?i.top+i.bottom:0)}function OC(e,t){return t.modified&&u(t.input.value)&&!e.startsWith("_:vega:_")}function NC(e,t){return!("parent"===e||t instanceof nl.proxy)}function RC(e,t,n,i){const r=e.element();r&&r.setAttribute("title",function(e){return null==e?"":u(e)?TC(e):s(e)&&!ge(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(u(n)?TC(n):BC(n))})).join("\n")):e+"";var t}(i))}function TC(e){return"["+e.map(BC).join(", ")+"]"}function BC(e){return u(e)?"[…]":s(e)&&!ge(e)?"{…}":e}function PC(e,t){const n=this;if(t=t||{},Zs.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const i=A({},e.locale,t.locale);n.locale(Ue(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||ty.Canvas,n._scenegraph=new $m;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||RC,n._redraw=!0,n._handler=(new tg).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=A({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{u(e[t])&&(e[t]=se(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const o=function(e,t,n){return VF(e,nl,MF,n).parse(t)}(n,e,t.expr);n._runtime=o,n._signals=o.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:A({},e)}))),o.root&&o.root.set(r),r.source=o.data.root.input,n.pulse(o.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=MC(n,n._width),n._viewHeight=zC(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[SC],i=t[EC],r=t[FC];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=MC(e,t.size),o()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=zC(e,t.size),o()}),{size:i});const a=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,a.rank=r.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:QF,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,o=r?i(r)?r:r.user:QF,a=n.item&&n.item.cursor||null;return r&&o===r.user&&a==r.item?r:{user:o,item:a}})),e.add(null,(function(t){let n=t.cursor,r=this.value;return i(n)||(r=n.item,n=n.user),KF(e,n&&n!==QF?n:r||n),r}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function jC(e,n){return t(e._signals,n)?e._signals[n]:h("Unrecognized signal name: "+a(n))}function LC(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function qC(e,t,n,i){let r=LC(n,i);return r||(r=_C(e,(()=>i(t,n.value))),r.handler=i,e.on(n,null,r)),e}function UC(e,t,n){const i=LC(t,n);return i&&t._targets.remove(i),e}function IC(e){const t=this.context.data[e];return t?t.values.value:[]}f(PC,Zs,{async evaluate(e,t,n){if(await Zs.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,r=iC(i=this),o=tC(i),a=nC(i),i._renderer.background(i.background()),i._renderer.resize(o,a,r),i._handler.origin(r),i._resizeListeners.forEach((e=>{try{e(o,a)}catch(t){i.error(t)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(s){this.error(s)}var i,r,o,a;return n&&vs(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&JF(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=jC(this,e);return 1===arguments.length?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",DC(e)):DC(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(iy(e)||h("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Zs.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(jC(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,i,r,o){this.runAfter((a=>{let s=0;a._autosize=0,a.width()!==n&&(s=1,a.signal(SC,n,CC),a._resizeWidth.skip(!0)),a.height()!==i&&(s=1,a.signal(EC,i,CC),a._resizeHeight.skip(!0)),a._viewWidth!==e&&(a._resize=1,a._viewWidth=e),a._viewHeight!==t&&(a._resize=1,a._viewHeight=t),a._origin[0]===r[0]&&a._origin[1]===r[1]||(a._resize=1,a._origin=r),s&&a.run("enter"),o&&a.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let i=t;return n&&!1===n.trap||(i=_C(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n,i,r=this._handler.handlers(e),o=r.length;--o>=0;)if(i=r[o].type,n=r[o].handler,e===i&&(t===n||t===n.raw)){this._handler.off(i,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return qC(this,e,jC(this,e),t)},removeSignalListener(e,t){return UC(this,jC(this,e),t)},addDataListener(e,t){return qC(this,e,ZF(this,e).values,t)},removeDataListener(e,t){return UC(this,ZF(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=KF(this,null);this._globalCursor=!!e,t&&KF(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var i=new hn,r=t;return null==t?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(e,t,n){t=+t,n=null==n?dn():+n,i._restart((function o(a){a+=r,i._restart(o,r+=t,n),e(a)}),t,n)},i.restart(e,t,n),i)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var i,r=this,o=new Ps(n),a=function(n,i){r.runAsync(null,(()=>{e===oC&&function(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return!1!==i&&!0!==r&&(!0===i||!1===r||(i?i[t]:r?!r[t]:e.preventDefault()))}(r,t)&&n.preventDefault(),o.receive(rC(r,n,i))}))};if("timer"===e)lC(r,"timer",t)&&r.timer(a,t);else if(e===oC)lC(r,"view",t)&&r.addEventListener(t,a,aC);else if("window"===e?lC(r,"window",t)&&"undefined"!=typeof window&&(i=[window]):"undefined"!=typeof document&&lC(r,"selector",t)&&(i=Array.from(document.querySelectorAll(e))),i){for(var s=0,l=i.length;s=0;)a[e].stop();for(e=l.length;--e>=0;)for(t=(n=l[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);for(o&&o.call(this,this._handler,null,null,null),e=s.length;--e>=0;)r=s[e].type,i=s[e].handler,this._handler.off(r,i);return this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","pointerover",uC),cC,fC(e)),this.on(this.events("view","pointerout",uC),cC,fC(t)),this},data:function(e,t){return arguments.length<2?ZF(this,e).values.value:eC.call(this,e,Cs().remove(p).insert(t))},change:eC,insert:function(e,t){return eC.call(this,e,Cs().insert(t))},remove:function(e,t){return eC.call(this,e,Cs().remove(t))},scale:function(e){var n=this._runtime.scales;return t(n,e)||h("Unrecognized scale or projection: "+e),n[e].value},initialize:function(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=iy(i);e=n._el=e?kC(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),JF(t,e.description()))}(n),o||n.error("Unrecognized renderer type: "+i);const a=o.handler||tg,s=e?o.renderer:o.headless;return n._renderer=s?wC(n,n._renderer,e,s):null,n._handler=function(e,t,n,i){const r=new i(e.loader(),_C(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,iC(e),e);return t&&t.handlers().forEach((e=>{r.on(e.type,e.handler)})),r}(n,n._handler,e,a),n._redraw=!0,e&&"none"!==r&&(t=t?n._elBind=kC(n,t,!0):e.appendChild(dC("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==r&&(e.element=kC(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const i=n.param;let r=n.state;r||(r=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(i.signal)&&e.runAsync(null,(()=>{r.source=!0,e.signal(i.signal,t)}))}},i.debounce&&(r.update=_(i.debounce,r.update))),(null==i.input&&i.element?hC:pC)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,(()=>{r.source?r.source=!1:r.set(e.signal(i.signal))})),r.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==ty.Canvas&&e!==ty.SVG&&e!==ty.PNG&&h("Unrecognized image type: "+e);const n=await AC(this,e,t);return e===ty.SVG?function(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await AC(this,ty.Canvas,e,t)).canvas()},toSVG:async function(e){return(await AC(this,ty.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:OC,signals:NC,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this},_watchPixelRatio:function(){if("canvas"===this.renderer()&&this._renderer._canvas){let e=null;const t=()=>{null!=e&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}});const WC=e=>function(t,n){const i=this.context.dataflow.locale();return null===t?"null":i[e](n)(t)},HC=WC("format"),GC=WC("timeFormat"),VC=WC("utcFormat"),YC=WC("timeParse"),XC=WC("utcParse"),JC=new Date(2e3,0,1);function QC(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(JC.setYear(2e3),JC.setMonth(e),JC.setDate(t),GC.call(this,JC,n)):""}function KC(e,n,i,r){n[0].type!==mS&&h("First argument to data functions must be a string literal.");const o=n[0].value,a=":"+o;if(!t(a,r))try{r[a]=i.getData(o).tuplesRef()}catch(s){}}function ZC(e,t,n,i){if(t[0].type===mS)eM(n,i,t[0].value);else for(e in n.scales)eM(n,i,e)}function eM(e,n,i){const r="%"+i;if(!t(n,r))try{n[r]=e.scaleRef(i)}catch(o){}}function tM(e,t){if(d(e))return e;if(i(e)){const n=t.scales[e];return n&&Nf(n.value)?n.value:void 0}}function nM(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=ZC,n._range=ZC,n._scale=ZC;const i=t=>"_["+(t.type===mS?a("%"+t.value):a("%")+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${i(e[0])})`,_range:e=>`${i(e[0])}.range()`,_scale:t=>`${i(t[0])}(${e(t[1])})`}}function iM(e,t){return function(n,i,r){if(n){const t=tM(n,(r||this).context);return t&&t.path[e](i)}return t(i)}}const rM=iM("area",Zb),oM=iM("bounds",Nx),aM=iM("centroid",Gx);function sM(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function lM(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function uM(e){const t=Un(e);return.2126*lM(t.r)+.7152*lM(t.g)+.0722*lM(t.b)}function cM(e,t){return e===t||e!=e&&t!=t||(u(e)?!(!u(t)||e.length!==t.length)&&function(e,t){for(let n=0,i=e.length;nfM(e,t)}const hM={};function pM(e){return u(e)||ArrayBuffer.isView(e)?e:null}function mM(e){return pM(e)||(i(e)?e:null)}const gM=e=>e.data;function yM(e,t){const n=IC.call(t,e);return n.root&&n.root.lookup||{}}const vM=()=>"undefined"!=typeof window&&window||null;function bM(e,t,n){if(!e)return[];const[i,r]=e,o=(new wh).set(i[0],i[1],r[0],r[1]);return ry(n||this.context.dataflow.scenegraph().root,o,function(e){let t=null;if(e){const n=c(e.marktype),i=c(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!i.length||i.some((t=>e.name===t)))}return t}(t))}const xM={random:()=>cl(),cumulativeNormal:vl,cumulativeLogNormal:$l,cumulativeUniform:Cl,densityNormal:yl,densityLogNormal:kl,densityUniform:Fl,quantileNormal:bl,quantileLogNormal:Dl,quantileUniform:Ml,sampleNormal:gl,sampleLogNormal:_l,sampleUniform:El,isArray:u,isBoolean:l,isDate:ge,isDefined:e=>void 0!==e,isNumber:n,isObject:s,isRegExp:ve,isString:i,isTuple:ws,isValid:e=>null!=e&&e==e,toBoolean:be,toDate:e=>xe(e),toNumber:z,toString:we,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;iM(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:bM,clampRange:Be,pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=vM();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=vM();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return of(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,i=this.context.data[e].input;return n.pulse(i,n.changeset().remove(p).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Wd(n,t=t||Od(e)):e}},panLinear:Pe,panLog:je,panPow:Le,panSymlog:qe,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he,encode:function(e,t,n){if(e){const n=this.context.dataflow,i=e.mark.source;n.pulse(i,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,i,r,o){const a=this.context.dataflow,s=this.context.data[e],l=s.input,c=a.stamp();let f,d,h=s.changes;if(!1===a._trigger||!(l.value.length||t||i))return 0;if((!h||h.stamp{s.modified=!0,a.pulse(l,h).run()}),!0,1)),n&&(f=!0===n?p:u(n)||ws(n)?n:dM(n),h.remove(f)),t&&h.insert(t),i&&(f=dM(i),l.value.some(f)?h.remove(f):h.insert(i)),r)for(d in o)h.modify(r,d,o[d]);return 1},lassoAppend:function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(e=c(e))[e.length-1];return void 0===r||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e},lassoPath:function(e){return c(e).reduce(((t,n,i)=>{let[r,o]=n;return t+(0==i?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(e,t,n){const{x:i,y:r,mark:o}=n,a=(new wh).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,l]of t)sa.x2&&(a.x2=s),la.y2&&(a.y2=l);return a.translate(i,r),bM([[a.x1,a.y1],[a.x2,a.y2]],e,o).filter((e=>function(e,t,n){let i=0;for(let r=0,o=n.length-1;rt!=s>t&&e<(a-l)*(t-u)/(s-u)+l&&i++}return 1&i}(e.x,e.y,t)))}},wM=["view","item","group","xy","x","y"],_M="this.",kM={},$M=NE({forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${a("$"+e)}]`,functions:function(e){const t=OE(e);wM.forEach((e=>t[e]="event.vega."+e));for(const n in xM)t[n]=_M+n;return A(t,nM(e,xM,kM)),t},constants:zE,visitors:kM});function DM(e,t,n){return 1===arguments.length?xM[e]:(xM[e]=t,n&&(kM[e]=n),$M.functions[e]=_M+e,this)}DM("bandwidth",(function(e,t){const n=tM(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),ZC),DM("copy",(function(e,t){const n=tM(e,(t||this).context);return n?n.copy():void 0}),ZC),DM("domain",(function(e,t){const n=tM(e,(t||this).context);return n?n.domain():[]}),ZC),DM("range",(function(e,t){const n=tM(e,(t||this).context);return n&&n.range?n.range():[]}),ZC),DM("invert",(function(e,t,n){const i=tM(e,(n||this).context);return i?u(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}),ZC),DM("scale",(function(e,t,n){const i=tM(e,(n||this).context);return i?i(t):void 0}),ZC),DM("gradient",(function(e,t,n,i,r){e=tM(e,(r||this).context);const o=Dd(t,n);let a=e.domain(),s=a[0],l=L(a),u=m;return l-s?u=Yf(e,s,l):e=(e.interpolator?Rf("sequential")().interpolator(e.interpolator()):Rf("linear")().interpolate(e.interpolate()).range(e.range())).domain([s=0,l=1]),e.ticks&&(a=e.ticks(+i||15),s!==a[0]&&a.unshift(s),l!==L(a)&&a.push(l)),a.forEach((t=>o.stop(u(t),e(t)))),o}),ZC),DM("geoArea",rM,ZC),DM("geoBounds",oM,ZC),DM("geoCentroid",aM,ZC),DM("geoShape",(function(e,t,n){const i=tM(e,(n||this).context);return function(e){return i?i.path.context(e)(t):""}}),ZC),DM("geoScale",(function(e,t){const n=tM(e,(t||this).context);return n&&n.scale()}),ZC),DM("indata",(function(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(e,n,i,r){n[0].type!==mS&&h("First argument to indata must be a string literal."),n[1].type!==mS&&h("Second argument to indata must be a string literal.");const o=n[0].value,a=n[1].value,s="@"+a;t(s,r)||(r[s]=i.getData(o).indataRef(i,a))})),DM("data",IC,KC),DM("treePath",(function(e,t,n){const i=yM(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(gM):void 0}),KC),DM("treeAncestors",(function(e,t){const n=yM(e,this)[t];return n?n.ancestors().map(gM):void 0}),KC),DM("vlSelectionTest",HE,ZE),DM("vlSelectionIdTest",XE,ZE),DM("vlSelectionResolve",QE,ZE),DM("vlSelectionTuples",JE);const AM="[",SM="]",EM=/[[\]{}]/,FM={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let CM,MM;function zM(e,t,n){return CM=t||"view",MM=n||FM,NM(e.trim()).map(RM)}function OM(e,t,n,i,r){const o=e.length;let a,s=0;for(;t=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function NM(e){const t=[],n=e.length;let i=0,r=0;for(;r"!==e[0])throw"Expected '>' after between selector: "+e;n=n.map(RM);const r=RM(e.slice(1).trim());if(r.between)return{between:n,stream:r};r.between=n;return r}(e):function(e){const t={source:CM},n=[];let i,r,o=[0,0],a=0,s=0,l=e.length,u=0;if("}"===e[l-1]){if(u=e.lastIndexOf("{"),!(u>=0))throw"Unmatched right brace: "+e;try{o=function(e){const t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(f){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;"@"===e[0]&&(a=++u);i=OM(e,u,":"),i1?(t.type=n[1],a?t.markname=n[0].slice(1):(c=n[0],MM[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0];var c;"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1));null!=r&&(t.filter=r);o[0]&&(t.throttle=o[0]);o[1]&&(t.debounce=o[1]);return t}(e)}function TM(e){return s(e)?e:{type:e||"pad"}}const BM=e=>+e||0;function PM(e){return s(e)?e.signal?e:{top:BM(e.top),bottom:BM(e.bottom),left:BM(e.left),right:BM(e.right)}:{top:t=BM(e),bottom:t,left:t,right:t};var t}const jM=e=>s(e)&&!u(e)?A({},e):{value:e};function LM(e,t,n,i){if(null!=n){return s(n)&&!u(n)||u(n)&&n.length&&s(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1}return 0}function qM(e,t,n){for(const i in t)LM(e,i,t[i]);for(const i in n)LM(e,i,n[i],"update")}function UM(e,n,i){for(const r in n)i&&t(i,r)||(e[r]=A(e[r]||{},n[r]));return e}function IM(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const WM="mark",HM="frame",GM="scope",VM="legend-label",YM="title-text",XM="title-subtitle";function JM(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const QM=e=>i(e)?a(e):e.signal?`(${e.signal})`:tz(e);function KM(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:a(e)));for(;t.length&&null==L(t);)t.pop();return t.unshift(QM(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?ZM("hcl",e.h,e.c,e.l):e.h||e.s?ZM("hsl",e.h,e.s,e.l):e.l||e.a?ZM("lab",e.l,e.a,e.b):e.r||e.g||e.b?ZM("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?tz(e.field):void 0!==e.value?a(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=QM(e.scale);null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+ez(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0"));return t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${ez(e.exponent)})`),null!=e.mult&&(t+=`*${ez(e.mult)}`),null!=e.offset&&(t+=`+${ez(e.offset)}`),e.round&&(t=`round(${t})`),t}const ZM=(e,t,n,i)=>`(${e}(${[t,n,i].map(KM).join(",")})+'')`;function ez(e){return s(e)?"("+KM(e)+")":e}function tz(e){return nz(s(e)?e:{datum:e})}function nz(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):h("Invalid field reference: "+a(e));return e.signal||(r=i(r)?o(r).map(a).join("]["):nz(r)),t+"["+r+"]"}function iz(e,t,n,i,r,o){const a={};(o=o||{}).encoders={$encode:a},e=function(e,t,n,i,r){const o={},a={};let s,l,u,f;for(l in l="lineBreak","text"!==t||null==r[l]||IM(l,e)||JM(o,l,r[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),f=n===HM?r.group:n===WM?A({},r.mark,r[t]):null,f)u=IM(l,e)||("fill"===l||"stroke"===l)&&(IM("fill",e)||IM("stroke",e)),u||JM(o,l,f[l]);for(l in c(i).forEach((t=>{const n=r.style&&r.style[t];for(const i in n)IM(i,e)||JM(o,i,n[i])})),e=A({},e),o)f=o[l],f.signal?(s=s||{})[l]=f:a[l]=f;return e.enter=A(a,e.enter),s&&(e.update=A(s,e.update)),e}(e,t,n,i,r.config);for(const s in e)a[s]=rz(e[s],t,o,r);return o}function rz(e,t,n,i){const r={},o={};for(const s in e)null!=e[s]&&(r[s]=oz((a=e[s],u(a)?function(e){let t="";return e.forEach((e=>{const n=KM(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===L(t)&&(t+="null"),t}(a):KM(a)),i,n,o));var a;return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function oz(e,t,n,i){const r=PF(e,t);return r.$fields.forEach((e=>i[e]=1)),A(n,r.$params),r.$expr}const az=["value","update","init","react","bind"];function sz(e,t){h(e+' for "outer" push: '+a(t))}function lz(e,t){const n=e.name;if("outer"===e.push)t.signals[n]||sz("No prior signal definition",n),az.forEach((t=>{void 0!==e[t]&&sz("Invalid property ",t)}));else{const i=t.addSignal(n,e.value);!1===e.react&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function uz(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function cz(e,t,n,i){return new uz(e,t,n,i)}function fz(e,t){return cz("operator",e,t)}function dz(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function hz(e,t){return t?{$field:e,$name:t}:{$field:e}}const pz=hz("key");function mz(e,t){return{$compare:e,$order:t}}function gz(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const yz="scope",vz="view";function bz(e){return e&&e.signal}function xz(e){if(bz(e))return!0;if(s(e))for(const t in e)if(xz(e[t]))return!0;return!1}function wz(e,t){return null!=e?e:t}function _z(e){return e&&e.signal||e}const kz="timer";function $z(e,t){return(e.merge?Dz:e.stream?Az:e.type?Sz:h("Invalid stream specification: "+a(e)))(e,t)}function Dz(e,t){const n=Ez({merge:e.merge.map((e=>$z(e,t)))},e,t);return t.addStream(n).id}function Az(e,t){const n=Ez({stream:$z(e.stream,t)},e,t);return t.addStream(n).id}function Sz(e,t){let n;var i;e.type===kz?(n=t.event(kz,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((i=e.source)===yz?vz:i||vz,e.type);const r=Ez({stream:n},e,t);return 1===Object.keys(r).length?n:t.addStream(r).id}function Ez(e,t,n){let i=t.between;return i&&(2!==i.length&&h('Stream "between" parameter must have 2 entries: '+a(t)),e.between=[$z(i[0],n),$z(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(function(e,t,n){const i="event.item";return i+(e&&"*"!==e?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===yz&&i.push("inScope(event.item)"),i.length&&(e.filter=PF("("+i.join(")&&(")+")",n).$expr),null!=(i=t.throttle)&&(e.throttle=+i),null!=(i=t.debounce)&&(e.debounce=+i),t.consume&&(e.consume=!0),e}const Fz={code:"_.$value",ast:{type:"Identifier",value:"value"}};function Cz(e,t,n){const r=e.encode,o={target:n};let s=e.events,l=e.update,u=[];s||h("Signal update missing events specification."),i(s)&&(s=zM(s,t.isSubscope()?yz:vz)),s=c(s).filter((e=>e.signal||e.scale?(u.push(e),0):1)),u.length>1&&(u=[Mz(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),null!=r&&(l&&h("Signal encode and update are mutually exclusive."),l="encode(item(),"+a(r)+")"),o.update=i(l)?PF(l,t):null!=l.expr?PF(l.expr,t):null!=l.value?l.value:null!=l.signal?{$expr:Fz,$params:{$value:t.signalRef(l.signal)}}:h("Invalid signal update specification."),e.force&&(o.options={force:!0}),u.forEach((e=>t.addUpdate(A(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):$z(e,t)}}(e,t),o))))}function Mz(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const zz=e=>(t,n,i)=>cz(e,n,t||void 0,i),Oz=zz("aggregate"),Nz=zz("axisticks"),Rz=zz("bound"),Tz=zz("collect"),Bz=zz("compare"),Pz=zz("datajoin"),jz=zz("encode"),Lz=zz("expression"),qz=zz("facet"),Uz=zz("field"),Iz=zz("key"),Wz=zz("legendentries"),Hz=zz("load"),Gz=zz("mark"),Vz=zz("multiextent"),Yz=zz("multivalues"),Xz=zz("overlap"),Jz=zz("params"),Qz=zz("prefacet"),Kz=zz("projection"),Zz=zz("proxy"),eO=zz("relay"),tO=zz("render"),nO=zz("scale"),iO=zz("sieve"),rO=zz("sortitems"),oO=zz("viewlayout"),aO=zz("values");let sO=0;const lO={min:"min",max:"max",count:"sum"};function uO(e,n){const i=n.getScale(e.name).params;let r;for(r in i.domain=hO(e.domain,e,n),null!=e.range&&(i.range=wO(e,n,i)),null!=e.interpolate&&function(e,t){t.interpolate=cO(e.type||e),null!=e.gamma&&(t.interpolateGamma=cO(e.gamma))}(e.interpolate,i),null!=e.nice&&(i.nice=function(e,t){return e.signal?t.signalRef(e.signal):s(e)?{interval:cO(e.interval),step:cO(e.step)}:cO(e)}(e.nice,n)),null!=e.bins&&(i.bins=function(e,t){return e.signal||u(e)?fO(e,t):t.objectProperty(e)}(e.bins,n)),e)t(i,r)||"name"===r||(i[r]=cO(e[r],n))}function cO(e,t){return s(e)?e.signal?t.signalRef(e.signal):h("Unsupported object: "+a(e)):e}function fO(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>cO(e,t)))}function dO(e){h("Can not find data set: "+a(e))}function hO(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(u(e)?pO:e.fields?gO:mO)(e,t,n);null==t.domainMin&&null==t.domainMax||h("No scale domain defined for domainMin/domainMax to override.")}function pO(e,t,n){return e.map((e=>cO(e,n)))}function mO(e,t,n){const i=n.getData(e.data);return i||dO(e.data),jf(t.type)?i.valuesRef(n,e.field,vO(e.sort,!1)):If(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function gO(e,t,n){const r=e.data,o=e.fields.reduce(((e,t)=>(t=i(t)?{data:r,field:t}:u(t)||t.signal?function(e,t){const n="_:vega:_"+sO++,i=Tz({});if(u(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+a(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,iO({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(jf(t.type)?yO:If(t.type)?bO:xO)(e,n,o)}function yO(e,t,n){const i=vO(e.sort,!0);let r,o;const a=n.map((e=>{const n=t.getData(e.data);return n||dO(e.data),n.countsRef(t,e.field,i)})),s={groupby:pz,pulse:a};i&&(r=i.op||"count",o=i.field?gz(r,i.field):"count",s.ops=[lO[r]],s.fields=[t.fieldRef(o)],s.as=[o]),r=t.add(Oz(s));const l=t.add(Tz({pulse:dz(r)}));return o=t.add(aO({field:pz,sort:t.sortRef(i),pulse:dz(l)})),dz(o)}function vO(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!lO[e.op]&&h("Multiple domain scales can not be sorted using "+e.op):h("No field provided for sort aggregate op: "+e.op):s(e)?e.field="key":e={field:"key"}),e}function bO(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||dO(e.data),n.domainRef(t,e.field)}));return dz(t.add(Yz({values:i})))}function xO(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||dO(e.data),n.extentRef(t,e.field)}));return dz(t.add(Vz({extents:i})))}function wO(e,n,r){const o=n.config.range;let s=e.range;if(s.signal)return n.signalRef(s.signal);if(i(s)){if(o&&t(o,s))return wO(e=A({},e,{range:o[s]}),n,r);"width"===s?s=[0,{signal:"width"}]:"height"===s?s=jf(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:h("Unrecognized scale range value: "+a(s))}else{if(s.scheme)return r.scheme=u(s.scheme)?fO(s.scheme,n):cO(s.scheme,n),s.extent&&(r.schemeExtent=fO(s.extent,n)),void(s.count&&(r.schemeCount=cO(s.count,n)));if(s.step)return void(r.rangeStep=cO(s.step,n));if(jf(e.type)&&!u(s))return hO(s,e,n);u(s)||h("Unsupported range type: "+a(s))}return s.map((e=>(u(e)?fO:cO)(e,n)))}function _O(e,t,n){return u(e)?e.map((e=>_O(e,t,n))):s(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:h("Unsupported parameter object: "+a(e)):e}const kO="top",$O="left",DO="right",AO="bottom",SO="center",EO="index",FO="label",CO="perc",MO="value",zO="guide-label",OO="guide-title",NO="group-title",RO="group-subtitle",TO="symbol",BO="gradient",PO="discrete",jO="size",LO=[jO,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],qO={name:1,style:1,interactive:1},UO={value:0},IO={value:1},WO="group",HO="rect",GO="rule",VO="text";function YO(e){return e.type=WO,e.interactive=e.interactive||!1,e}function XO(e,t){const n=(n,i)=>wz(e[n],wz(t[n],i));return n.isVertical=n=>"vertical"===wz(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>wz(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>wz(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>wz(e.columns,wz(t.columns,+n.isVertical(!0))),n}function JO(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function QO(e,t,n){return`item.anchor === 'start' ? ${e} : item.anchor === 'end' ? ${t} : ${n}`}const KO=QO(a($O),a(DO),a(SO));function ZO(e,t){return t?e?s(e)?Object.assign({},e,{offset:ZO(e.offset,t)}):{value:e,offset:t}:t:e}function eN(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=UM(e.encode,t,qO)):e.interactive=!1,e}function tN(e,t,n,i){const r=XO(e,n),o=r.isVertical(),a=r.gradientThickness(),s=r.gradientLength();let l,u,c,f,d;o?(u=[0,1],c=[0,0],f=a,d=s):(u=[0,0],c=[1,0],f=s,d=a);const h={enter:l={opacity:UO,x:UO,y:UO,width:jM(f),height:jM(d)},update:A({},l,{opacity:IO,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:UO}};return qM(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),eN({type:HO,role:"legend-gradient",encode:h},i)}function nN(e,t,n,i,r){const o=XO(e,n),a=o.isVertical(),s=o.gradientThickness(),l=o.gradientLength();let u,c,f,d,h="";a?(u="y",f="y2",c="x",d="width",h="1-"):(u="x",f="x2",c="y",d="height");const p={opacity:UO,fill:{scale:t,field:MO}};p[u]={signal:h+"datum."+CO,mult:l},p[c]=UO,p[f]={signal:h+"datum.perc2",mult:l},p[d]=jM(s);const m={enter:p,update:A({},p,{opacity:IO}),exit:{opacity:UO}};return qM(m,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),eN({type:HO,role:"legend-band",key:MO,from:r,encode:m},i)}const iN=`datum.${CO}<=0?"${$O}":datum.${CO}>=1?"${DO}":"${SO}"`,rN=`datum.${CO}<=0?"${AO}":datum.${CO}>=1?"${kO}":"middle"`;function oN(e,t,n,i){const r=XO(e,t),o=r.isVertical(),a=jM(r.gradientThickness()),s=r.gradientLength();let l,u,c,f,d=r("labelOverlap"),h="";const p={enter:l={opacity:UO},update:u={opacity:IO,text:{field:FO}},exit:{opacity:UO}};return qM(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:wz(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=u.baseline={signal:rN},c="y",f="x",h="1-"):(l.align=u.align={signal:iN},l.baseline={value:"top"},c="x",f="y"),l[c]=u[c]={signal:h+"datum."+CO,mult:s},l[f]=u[f]=a,a.offset=wz(e.labelOffset,t.gradientLabelOffset)||0,d=d?{separation:r("labelSeparation"),method:d,order:"datum."+EO}:void 0,eN({type:VO,role:VM,style:zO,key:MO,from:i,encode:p,overlap:d},n)}function aN(e,t,n,i,r){const o=XO(e,t),a=n.entries,s=!(!a||!a.interactive),l=a?a.name:void 0,u=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.offset : datum.${jO}`,h=u?jM(u):{field:jO},p=`datum.${EO}`,m=`max(1, ${r})`;let g,y,v,b,x;h.mult=.5,g={enter:y={opacity:UO,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:IO,x:y.x,y:y.y},exit:{opacity:UO}};let w=null,_=null;e.fill||(w=t.symbolBaseFillColor,_=t.symbolBaseStrokeColor),qM(g,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",_),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),LO.forEach((t=>{e[t]&&(v[t]=y[t]={scale:e[t],field:MO})}));const k=eN({type:"symbol",role:"legend-symbol",key:MO,from:f,clip:!!u||void 0,encode:g},n.symbols),$=jM(c);$.offset=o("labelOffset"),g={enter:y={opacity:UO,x:{signal:d,offset:$},y:h},update:v={opacity:IO,text:{field:FO},x:y.x,y:y.y},exit:{opacity:UO}},qM(g,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const D=eN({type:VO,role:VM,style:zO,key:MO,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:UO,height:u?jM(u):UO,opacity:UO},exit:{opacity:UO},update:v={opacity:IO,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(b=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${b}`,v.column.signal=`floor(${p} / ${b})`,x={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,x={field:p}),v.column.signal=`(${r})?${v.column.signal}:${p}`,YO({role:GM,from:i={facet:{data:i,name:"value",groupby:EO}},encode:UM(g,a,qO),marks:[k,D],name:l,interactive:s,sort:x})}const sN='item.orient === "left"',lN='item.orient === "right"',uN=`(${sN} || ${lN})`,cN=`datum.vgrad && ${uN}`,fN=QO('"top"','"bottom"','"middle"'),dN=`datum.vgrad && ${lN} ? (${QO('"right"','"left"','"center"')}) : (${uN} && !(datum.vgrad && ${sN})) ? "left" : ${KO}`,hN=`item._anchor || (${uN} ? "middle" : "start")`,pN=`${cN} ? (${sN} ? -90 : 90) : 0`,mN=`${uN} ? (datum.vgrad ? (${lN} ? "bottom" : "top") : ${fN}) : "top"`;function gN(e,t){let n;return s(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+yN(e.path)+")":e.sphere&&(n="geoShape("+yN(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function yN(e){return s(e)&&e.signal?e.signal:a(e)}function vN(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===WO?GM:t||WM}function bN(e){return{marktype:e.type,name:e.name||void 0,role:e.role||vN(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function xN(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function wN(e,t){const n=il(e.type);n||h("Unrecognized transform type: "+a(e.type));const i=cz(n.type.toLowerCase(),null,_N(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function _N(e,t,n){const i={},r=e.params.length;for(let o=0;oDN(e,t,n)))):DN(e,i,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!bz(o)?o.map((t=>$N(e,t,n))):$N(e,o,n):void(e.required&&h("Missing required "+a(t.type)+" parameter: "+a(e.name)))}function $N(e,t,n){const i=e.type;if(bz(t))return FN(i)?h("Expression references can not be signals."):CN(i)?n.fieldRef(t):MN(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||CN(i);return r&&AN(t)?n.exprRef(t.expr,t.as):r&&SN(t)?hz(t.field,t.as):FN(i)?PF(t,n):EN(i)?dz(n.getData(t).values):CN(i)?hz(t):MN(i)?n.compareRef(t):t}}function DN(e,t,n){const i=e.params.length;let r;for(let a=0;ae&&e.expr,SN=e=>e&&e.field,EN=e=>"data"===e,FN=e=>"expr"===e,CN=e=>"field"===e,MN=e=>"compare"===e;function zN(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:dz(t.getData(e.data).output)}function ON(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}function NN(e){return i(e)?e:null}function RN(e,t,n){const i=gz(n.op,n.field);let r;if(t.ops){for(let o=0,a=t.as.length;onull==e?"null":e)).join(",")+"),0)",t);l.update=u.$expr,l.params=u.$params}function PN(e,t){const n=vN(e),i=e.type===WO,r=e.from&&e.from.facet,o=e.overlap;let s,l,u,f,d,p,m,g=e.layout||n===GM||n===HM;const y=n===WM||g||r,v=function(e,t,n){let i,r,o,a,s;return e?(i=e.facet)&&(t||h("Only group marks can be faceted."),null!=i.field?a=s=zN(i,n):(e.data?s=dz(n.getData(e.data).aggregate):(o=wN(A({type:"aggregate",groupby:c(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=zN(i,n),a=s=dz(n.add(o))),r=n.keyRef(i.groupby,!0))):a=dz(n.add(Tz(null,[{}]))),a||(a=zN(e,n)),{key:r,pulse:a,parent:s}}(e.from,i,t);l=t.add(Pz({key:v.key||(e.key?hz(e.key):void 0),pulse:v.pulse,clean:!i}));const b=dz(l);l=u=t.add(Tz({pulse:b})),l=t.add(Gz({markdef:bN(e),interactive:xN(e.interactive,t),clip:gN(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:dz(l)}));const x=dz(l);l=f=t.add(jz(iz(e.encode,e.type,n,e.style,t,{mod:!1,pulse:x}))),l.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=wN(e,t),i=n.metadata;(i.generates||i.changes)&&h("Mark transforms should not generate new data."),i.nomod||(f.params.mod=!0),n.params.pulse=dz(l),t.add(l=n)})),e.sort&&(l=t.add(rO({sort:t.compareRef(e.sort),pulse:dz(l)})));const w=dz(l);(r||g)&&(g=t.add(oO({layout:t.objectProperty(e.layout),legends:t.legends,mark:x,pulse:w})),p=dz(g));const _=t.add(Rz({mark:x,pulse:p||w}));m=dz(_),i&&(y&&(s=t.operators,s.pop(),g&&s.pop()),t.pushState(w,p||m,b),r?function(e,t,n){const i=e.from.facet,r=i.name,o=zN(i,t);let s;i.name||h("Facet must have a name: "+a(i)),i.data||h("Facet must reference a data set: "+a(i)),i.field?s=t.add(Qz({field:t.fieldRef(i.field),pulse:o})):i.groupby?s=t.add(qz({key:t.keyRef(i.groupby),group:dz(t.proxy(n.parent)),pulse:o})):h("Facet must specify groupby or field: "+a(i));const l=t.fork(),u=l.add(Tz()),c=l.add(iO({pulse:dz(u)}));l.addData(r,new ON(l,u,u,c)),l.addSignal("parent",null),s.params.subflow={$subflow:l.parse(e).toRuntime()}}(e,t,v):y?function(e,t,n){const i=t.add(Qz({pulse:n.pulse})),r=t.fork();r.add(iO()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}(e,t,v):t.parse(e),t.popState(),y&&(g&&s.push(g),s.push(_))),o&&(m=function(e,t,n){const i=e.method,r=e.bound,o=e.separation,a={separation:bz(o)?n.signalRef(o.signal):o,method:bz(i)?n.signalRef(i.signal):i,pulse:t};e.order&&(a.sort=n.compareRef({field:e.order}));if(r){const e=r.tolerance;a.boundTolerance=bz(e)?n.signalRef(e.signal):+e,a.boundScale=n.scaleRef(r.scale),a.boundOrient=r.orient}return dz(n.add(Xz(a)))}(o,m,t));const k=t.add(tO({pulse:m})),$=t.add(iO({pulse:dz(k)},void 0,t.parent()));null!=e.name&&(d=e.name,t.addData(d,new ON(t,u,k,$)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&h("Marks only support modify triggers."),BN(e,t,d)})))}function jN(e,t){const n=t.config.legend,i=e.encode||{},r=XO(e,n),o=i.legend||{},a=o.name||void 0,s=o.interactive,l=o.style,u={};let c,f,d,p=0;LO.forEach((t=>e[t]?(u[t]=e[t],p=p||e[t]):0)),p||h("Missing valid scale for legend.");const m=function(e,t){let n=e.type||TO;e.type||1!==function(e){return LO.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=Pf(t)?BO:Lf(t)?PO:TO);return n!==BO?n:Lf(t)?PO:BO}(e,t.scaleType(p)),g={title:null!=e.title,scales:u,type:m,vgrad:"symbol"!==m&&r.isVertical()},y=dz(t.add(Tz(null,[g]))),v=dz(t.add(Wz(f={type:m,scale:t.scaleRef(p),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return m===BO?(d=[tN(e,p,n,i.gradient),oN(e,n,i.labels,v)],f.count=f.count||t.signalRef(`max(2,2*floor((${_z(r.gradientLength())})/100))`)):m===PO?d=[nN(e,p,n,i.gradient,v),oN(e,n,i.labels,v)]:(c=function(e,t){const n=XO(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),d=[aN(e,n,i,v,_z(c.columns))],f.size=function(e,t,n){const i=_z(qN("size",e,n)),r=_z(qN("strokeWidth",e,n)),o=_z(function(e,t,n){return JO("fontSize",e)||function(e,t,n){const i=t.config.style[n];return i&&i[e]}("fontSize",t,n)}(n[1].encode,t,zO));return PF(`max(ceil(sqrt(${i})+${r}),${o})`,t)}(e,t,d[0].marks)),d=[YO({role:"legend-entry",from:y,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],g.title&&d.push(function(e,t,n,i){const r=XO(e,t),o={enter:{opacity:UO},update:{opacity:IO,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:UO}};return qM(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:hN},angle:{signal:pN},align:{signal:dN},baseline:{signal:mN},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),eN({type:VO,role:"legend-title",style:OO,from:i,encode:o},n)}(e,n,i.title,y)),PN(YO({role:"legend",from:y,encode:UM(LN(r,e,n),o,qO),marks:d,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:s,style:l}),t)}function LN(e,t,n){const i={enter:{},update:{}};return qM(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function qN(e,t,n){return t[e]?`scale("${t[e]}",datum)`:JO(e,n[0].encode)}ON.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],a=null,s=1;for(o&&"load"===o.type&&(o=t[1]),e.add(t[0]);s{n.push(wN(e,t))})),e.on&&e.on.forEach((n=>{BN(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const i=[];let r,o,a,s,l,u=null,f=!1,d=!1;e.values?bz(e.values)||xz(e.format)?(i.push(VN(t,e)),i.push(u=GN())):i.push(u=GN({$ingest:e.values,$format:e.format})):e.url?xz(e.url)||xz(e.format)?(i.push(VN(t,e)),i.push(u=GN())):i.push(u=GN({$request:e.url,$format:e.format})):e.source&&(u=r=c(e.source).map((e=>dz(t.getData(e).output))),i.push(null));for(o=0,a=n.length;oe===AO||e===kO,XN=(e,t,n)=>bz(e)?tR(e.signal,t,n):e===$O||e===kO?t:n,JN=(e,t,n)=>bz(e)?ZN(e.signal,t,n):YN(e)?t:n,QN=(e,t,n)=>bz(e)?eR(e.signal,t,n):YN(e)?n:t,KN=(e,t,n)=>bz(e)?nR(e.signal,t,n):e===kO?{value:t}:{value:n},ZN=(e,t,n)=>rR(`${e} === '${kO}' || ${e} === '${AO}'`,t,n),eR=(e,t,n)=>rR(`${e} !== '${kO}' && ${e} !== '${AO}'`,t,n),tR=(e,t,n)=>aR(`${e} === '${$O}' || ${e} === '${kO}'`,t,n),nR=(e,t,n)=>aR(`${e} === '${kO}'`,t,n),iR=(e,t,n)=>aR(`${e} === '${DO}'`,t,n),rR=(e,t,n)=>(t=null!=t?jM(t):t,n=null!=n?jM(n):n,oR(t)&&oR(n)?{signal:`${e} ? (${t=t?t.signal||a(t.value):null}) : (${n=n?n.signal||a(n.value):null})`}:[A({test:e},t)].concat(n||[])),oR=e=>null==e||1===Object.keys(e).length,aR=(e,t,n)=>({signal:`${e} ? (${sR(t)}) : (${sR(n)})`}),sR=e=>bz(e)?e.signal:null==e?null:a(e),lR=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function uR(e,n,i,r){let o;if(n&&t(n,e))return n[e];if(t(i,e))return i[e];if(e.startsWith("title")){switch(e){case"titleColor":o="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":o=e[5].toLowerCase()+e.slice(6)}return r[OO][o]}if(e.startsWith("label")){switch(e){case"labelColor":o="fill";break;case"labelFont":case"labelFontSize":o=e[5].toLowerCase()+e.slice(6)}return r[zO][o]}return null}function cR(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function fR(e,t){return{scale:e.scale,range:t}}function dR(e,t,n,i,r){const o=XO(e,t),a=e.orient,l=e.gridScale,u=XN(a,1,-1),c=function(e,t){if(1===t);else if(s(e)){let n=e=A({},e);for(;null!=n.mult;){if(!s(n.mult))return n.mult=bz(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=A({},n.mult)}n.mult=t}else e=bz(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,u);let f,d,h;const p={enter:f={opacity:UO},update:h={opacity:IO},exit:d={opacity:UO}};qM(p,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const m={scale:e.scale,field:MO,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=JN(a,{signal:"height"},{signal:"width"}),y=l?{scale:l,range:0,mult:u,offset:c}:{value:0,offset:c},v=l?{scale:l,range:1,mult:u,offset:c}:A(g,{mult:u,offset:c});return f.x=h.x=JN(a,m,y),f.y=h.y=QN(a,m,y),f.x2=h.x2=QN(a,v),f.y2=h.y2=JN(a,v),d.x=JN(a,m),d.y=QN(a,m),eN({type:GO,role:"axis-grid",key:MO,from:i,encode:p},n)}function hR(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function pR(e,t,n,i,r,o){const a=XO(e,t),s=e.orient,l=e.scale,u=XN(s,-1,1),c=_z(a("labelFlush")),f=_z(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p,m=0===c||!!c;const g=jM(r);g.mult=u,g.offset=jM(a("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:MO,band:.5,offset:ZO(o.offset,a("labelOffset"))},v=JN(s,m?hR(l,c,'"left"','"right"','"center"'):{value:"center"},((e,t,n)=>bz(e)?iR(e.signal,t,n):e===DO?{value:t}:{value:n})(s,"left","right")),b=JN(s,KN(s,"bottom","top"),m?hR(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),x=hR(l,c,`-(${f})`,f,0);m=m&&f;const w={opacity:UO,x:JN(s,y,g),y:QN(s,y,g)},_={enter:w,update:p={opacity:IO,text:{field:FO},x:w.x,y:w.y,align:v,baseline:b},exit:{opacity:UO,x:w.x,y:w.y}};qM(_,{dx:!d&&m?JN(s,x):null,dy:!h&&m?QN(s,x):null}),qM(_,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const k=a("labelBound");let $=a("labelOverlap");return $=$||k?{separation:a("labelSeparation"),method:$,order:"datum.index",bound:k?{scale:l,orient:s,tolerance:k}:null}:void 0,p.align!==v&&(p.align=lR(p.align,v)),p.baseline!==b&&(p.baseline=lR(p.baseline,b)),eN({type:VO,role:"axis-label",style:zO,key:MO,from:i,encode:_,overlap:$},n)}function mR(e,t,n,i){const r=XO(e,t),o=e.orient,a=XN(o,-1,1);let s,l;const u={enter:s={opacity:UO,anchor:jM(r("titleAnchor",null)),align:{signal:KO}},update:l=A({},s,{opacity:IO,text:jM(e.title)}),exit:{opacity:UO}},c={signal:`lerp(range("${e.scale}"), ${QO(0,1,.5)})`};return l.x=JN(o,c),l.y=QN(o,c),s.angle=JN(o,UO,((e,t)=>0===t?0:bz(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t})(a,90)),s.baseline=JN(o,KN(o,AO,kO),{value:AO}),l.angle=s.angle,l.baseline=s.baseline,qM(u,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(e,t,n,i){const r=(e,t)=>null!=e?(n.update[t]=lR(jM(e),n.update[t]),!1):!IM(t,i),o=r(e("titleX"),"x"),a=r(e("titleY"),"y");n.enter.auto=a===o?jM(a):JN(t,jM(a),jM(o))}(r,o,u,n),u.update.align=lR(u.update.align,s.align),u.update.angle=lR(u.update.angle,s.angle),u.update.baseline=lR(u.update.baseline,s.baseline),eN({type:VO,role:"axis-title",style:OO,from:i,encode:u},n)}function gR(e,t){const n=function(e,t){var n,i,r,o,a,s,l,u,c=t.config,f=c.style,d=c.axis,h="band"===t.scaleType(e.scale)&&c.axisBand,p=e.orient;if(bz(p)){const e=cR([c.axisX,c.axisY]),t=cR([c.axisTop,c.axisBottom,c.axisLeft,c.axisRight]);for(r of(n={},e))n[r]=JN(p,uR(r,c.axisX,d,f),uR(r,c.axisY,d,f));for(r of(i={},t))i[r]=(o=p.signal,a=uR(r,c.axisTop,d,f),s=uR(r,c.axisBottom,d,f),l=uR(r,c.axisLeft,d,f),u=uR(r,c.axisRight,d,f),{signal:(null!=l?`${o} === '${$O}' ? (${sR(l)}) : `:"")+(null!=s?`${o} === '${AO}' ? (${sR(s)}) : `:"")+(null!=u?`${o} === '${DO}' ? (${sR(u)}) : `:"")+(null!=a?`${o} === '${kO}' ? (${sR(a)}) : `:"")+"(null)"})}else n=p===kO||p===AO?c.axisX:c.axisY,i=c["axis"+p[0].toUpperCase()+p.slice(1)];return n||i||h?A({},d,n,i,h):d}(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,a=r.interactive,l=r.style,u=XO(e,n),c=function(e){const t=e("tickBand");let n,i,r=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},s(r)||(r={signal:`(${t.signal}) === 'extent' ? 0 : ${r}`})):"extent"===t?(n=1,i=!0,r=0):(n=.5,i=!1):(n=e("bandPosition"),i=e("tickExtra")),{extra:i,band:n,offset:r}}(u),f={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:null!=e.title},d=dz(t.add(Tz({},[f]))),h=dz(t.add(Nz({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),p=[];let m;return f.grid&&p.push(dR(e,n,i.grid,h,c)),f.ticks&&(m=u("tickSize"),p.push(function(e,t,n,i,r,o){const a=XO(e,t),s=e.orient,l=XN(s,-1,1);let u,c,f;const d={enter:u={opacity:UO},update:f={opacity:IO},exit:c={opacity:UO}};qM(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=jM(r);h.mult=l;const p={scale:e.scale,field:MO,band:o.band,extra:o.extra,offset:o.offset,round:a("tickRound")};return f.y=u.y=JN(s,UO,p),f.y2=u.y2=JN(s,h),c.x=JN(s,p),f.x=u.x=QN(s,UO,p),f.x2=u.x2=QN(s,h),c.y=QN(s,p),eN({type:GO,role:"axis-tick",key:MO,from:i,encode:d},n)}(e,n,i.ticks,h,m,c))),f.labels&&(m=f.ticks?m:0,p.push(pR(e,n,i.labels,h,m,c))),f.domain&&p.push(function(e,t,n,i){const r=XO(e,t),o=e.orient;let a,s;const l={enter:a={opacity:UO},update:s={opacity:IO},exit:{opacity:UO}};qM(l,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const u=fR(e,0),c=fR(e,1);return a.x=s.x=JN(o,u,UO),a.x2=s.x2=JN(o,c),a.y=s.y=QN(o,u,UO),a.y2=s.y2=QN(o,c),eN({type:GO,role:"axis-domain",from:i,encode:l},n)}(e,n,i.domain,d)),f.title&&p.push(mR(e,n,i.title,d)),PN(YO({role:"axis",from:d,encode:UM(yR(u,e),r,qO),marks:p,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:a,style:l}),t)}function yR(e,t){const n={enter:{},update:{}};return qM(n,{orient:e("orient"),offset:e("offset")||0,position:wz(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function vR(e,t,n){const i=c(e.signals),r=c(e.scales);return n||i.forEach((e=>lz(e,t))),c(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},i={};for(const r in e)"name"!==r&&(i[r]=_O(e[r],r,t));for(const r in n)null==i[r]&&(i[r]=_O(n[r],r,t));t.addProjection(e.name,i)}(e,t))),r.forEach((e=>function(e,t){const n=e.type||"linear";Tf(n)||h("Unrecognized scale type: "+a(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),c(e.data).forEach((e=>HN(e,t))),r.forEach((e=>uO(e,t))),(n||i).forEach((e=>function(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?h("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=PF(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach((e=>Cz(e,t,n.id)))}(e,t))),c(e.axes).forEach((e=>gR(e,t))),c(e.marks).forEach((e=>PN(e,t))),c(e.legends).forEach((e=>jN(e,t))),e.title&&IN(e.title,t),t.parseLambdas(),t}function bR(e,n){const i=n.config,r=dz(n.root=n.add(fz())),o=function(e,n){const i=t=>wz(e[t],n[t]),r=[xR("background",i("background")),xR("autosize",TM(i("autosize"))),xR("padding",PM(i("padding"))),xR("width",i("width")||0),xR("height",i("height")||0)],o=r.reduce(((e,t)=>(e[t.name]=t,e)),{}),a={};return c(e.signals).forEach((e=>{t(o,e.name)?e=A(o[e.name],e):r.push(e),a[e.name]=e})),c(n.signals).forEach((e=>{t(a,e.name)||t(o,e.name)||r.push(e)})),r}(e,i);o.forEach((e=>lz(e,n))),n.description=e.description||i.description,n.eventConfig=i.events,n.legends=n.objectProperty(i.legend&&i.legend.layout),n.locale=i.locale;const a=n.add(Tz()),s=n.add(jz(iz((e=>UM({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e))(e.encode),WO,HM,e.style,n,{pulse:dz(a)}))),l=n.add(oO({layout:n.objectProperty(e.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:dz(s)}));n.operators.pop(),n.pushState(dz(s),dz(l),null),vR(e,n,o),n.operators.push(l);let u=n.add(Rz({mark:r,pulse:dz(l)}));return u=n.add(tO({pulse:dz(u)})),u=n.add(iO({pulse:dz(u)})),n.addData("root",new ON(n,a,a,u)),n}function xR(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function wR(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function _R(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function kR(e){return(u(e)?$R:DR)(e)}function $R(e){const t=e.length;let n="[";for(let i=0;i0?",":"")+(s(t)?t.signal||kR(t):a(t))}return n+"]"}function DR(e){let t,n,i="{",r=0;for(t in e)n=e[t],i+=(++r>1?",":"")+a(t)+":"+(s(n)?n.signal||kR(n):a(n));return i+"}"}wR.prototype=_R.prototype={parse(e){return vR(e,this)},fork(){return new _R(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof uz?dz(e):e;return this.add(Zz({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let i,r;e&&(i=e.data||(e.data={}),r=i[t]||(i[t]=[]),r.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(dz(this.add(iO({pulse:e})))),this._parent.push(t),this._lookup.push(n?dz(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return L(this._parent)},encode(){return L(this._encode)},lookup(){return L(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(i(e))return hz(e,t);e.signal||h("Unsupported field reference: "+a(e));const n=e.signal;let r=this.field[n];if(!r){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=r=dz(this.add(Uz(e)))}return r},compareRef(e){let t=!1;const n=e=>bz(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,i=c(e.field).map(n),r=c(e.order).map(n);return t?dz(this.add(Bz({fields:i,orders:r}))):mz(i,r)},keyRef(e,t){let n=!1;const i=this.signals;return e=c(e).map((e=>bz(e)?(n=!0,dz(i[e.signal])):e)),n?dz(this.add(Iz({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=gz(e.op,e.field),n=e.order||"ascending";return n.signal?dz(this.add(Bz({fields:t,orders:this.signalRef(n.signal)}))):mz(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return t(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&h("Duplicate signal name: "+a(e));const n=t instanceof uz?t:this.add(fz(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||h("Unrecognized signal name: "+a(e)),this.signals[e]},signalRef(e){return this.signals[e]?dz(this.signals[e]):(t(this.lambdas,e)||(this.lambdas[e]=this.add(fz(null))),dz(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;tn+Math.floor(r*cl()),pdf:e=>e===Math.floor(e)&&e>=n&&e=i?1:(t-n+1)/r},icdf:e=>e>=0&&e<=1?n-1+Math.floor(e*r):NaN};return o.min(e).max(t)},randomKDE:wl,randomLCG:function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},randomLogNormal:Al,randomMixture:Sl,randomNormal:xl,randomUniform:zl,read:k,regressionConstant:Ol,regressionExp:Ll,regressionLinear:Pl,regressionLoess:Hl,regressionLog:jl,regressionPoly:Il,regressionPow:ql,regressionQuad:Ul,renderModule:iy,repeat:ft,resetDefaultLocale:dt,resetSVGClipId:bh,resetSVGDefIds:function(){bh(),xd=0},responseType:$,runtimeContext:VF,sampleCurve:Xl,sampleLogNormal:_l,sampleNormal:gl,sampleUniform:El,scale:Rf,sceneEqual:cy,sceneFromJSON:_m,scenePickVisit:hp,sceneToJSON:wm,sceneVisit:dp,sceneZOrder:fp,scheme:Zf,serializeXML:Eg,setHybridRendererOptions:function(e){Xg.svgMarkTypes=e.svgMarkTypes??["text"],Xg.svgOnTop=e.svgOnTop??!0,Xg.debug=e.debug??!1},setRandom:function(e){cl=e},span:G,splitAccessPath:o,stringValue:a,textMetrics:Qp,timeBin:T,timeFloor:j,timeFormatLocale:ht,timeInterval:R,timeOffset:Ee,timeSequence:Fe,timeUnitSpecifier:Ce,timeUnits:B,toBoolean:be,toDate:xe,toNumber:z,toSet:se,toString:we,transform:rl,transforms:nl,truncate:De,truthy:p,tupleid:_s,typeParsers:pt,utcFloor:P,utcInterval:N,utcOffset:Ae,utcSequence:Se,utcdayofyear:Te,utcquarter:ze,utcweek:Ne,version:"5.30.0",visitArray:g,week:Oe,writeConfig:r,zero:X,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he},Symbol.toStringTag,{value:"Module"}));function SR(e){return`Invalid specification ${kr(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const ER='Autosize "fit" only works for single views and layered views.';function FR(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`}function CR(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${"width"==e?"x":"y"}".`}function MR(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ro(e)}.`:'Dropping "fit" because spec has discrete size.'}function zR(e){return`Unknown field for ${e}. Cannot calculate view size.`}function OR(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function NR(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function RR(e){return`Selection not supported for ${e} yet.`}const TR="The same selection must be used to override scale domains in a layered view.";function BR(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const PR="Animation involving facet, layer, or concat is currently unsupported.";function jR(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function LR(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function qR(e){return`${e}Offset dropped because ${e} is continuous`}function UR(e){return`Invalid field type "${e}".`}function IR(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function WR(e,t){return`Dropping ${kr(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function HR(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function GR(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function VR(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function YR(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`}function XR(e){return`Using unaggregated domain with raw field has no effect (${kr(e)}).`}function JR(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function QR(e){return`Unaggregated domain is currently unsupported for log scale (${kr(e)}).`}function KR(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function ZR(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`}const eT="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function tT(e,t){return`Invalid ${e}: ${kr(t)}.`}function nT(e){return`1D error band does not support ${e}.`}function iT(e){return`Channel ${e} is required for "binned" bin.`}const rT=y(it);let oT=rT;function aT(...e){oT.error(...e)}function sT(...e){oT.warn(...e)}function lT(e){if(e&&s(e))for(const t of gT)if($r(e,t))return!0;return!1}const uT=["january","february","march","april","may","june","july","august","september","october","november","december"],cT=uT.map((e=>e.substr(0,3))),fT=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],dT=fT.map((e=>e.substr(0,3)));function hT(e,t){const i=[];if(t&&void 0!==e.day&&Qi(e).length>1&&(sT(function(e){return`Dropping day from datetime ${kr(e)} as day cannot be combined with other units.`}(e)),delete(e=Oi(e)).day),void 0!==e.year?i.push(e.year):i.push(2012),void 0!==e.month){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e-1;{const t=e.toLowerCase(),n=uT.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=cT.indexOf(i);if(-1!==r)return r;throw new Error(tT("month",e))}}(e.month):e.month;i.push(r)}else if(void 0!==e.quarter){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e>4&&sT(tT("quarter",e)),e-1;throw new Error(tT("quarter",e))}(e.quarter):e.quarter;i.push(n(r)?3*r:`${r}*3`)}else i.push(0);if(void 0!==e.date)i.push(e.date);else if(void 0!==e.day){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e%7;{const t=e.toLowerCase(),n=fT.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=dT.indexOf(i);if(-1!==r)return r;throw new Error(tT("day",e))}}(e.day):e.day;i.push(n(r)?r+1:`${r}+1`)}else i.push(1);for(const n of["hours","minutes","seconds","milliseconds"]){const t=e[n];i.push(void 0===t?0:t)}return i}function pT(e){const t=hT(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const mT={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},gT=Qi(mT);function yT(e){return s(e)?e.binned:vT(e)}function vT(e){return e&&e.startsWith("binned")}function bT(e){return e.startsWith("utc")}const xT={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function wT(e){return gT.filter((t=>kT(e,t)))}function _T(e){const t=wT(e);return t[t.length-1]}function kT(e,t){const n=e.indexOf(t);return!(n<0)&&(!(n>0&&"seconds"===t&&"i"===e.charAt(n-1))&&(!(e.length>n+3&&"day"===t&&"o"===e.charAt(n+3))&&!(n>0&&"year"===t&&"f"===e.charAt(n-1))))}function $T(e,t,{end:n}={end:!1}){const i=or(t),r=bT(e)?"utc":"";let o;const a={};for(const l of gT)kT(e,l)&&(a[l]="quarter"===(s=l)?`(${r}quarter(${i})-1)`:`${r}${s}(${i})`,o=l);var s;return n&&(a[o]+="+1"),function(e){const t=hT(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function DT(e){if(!e)return;return`timeUnitSpecifier(${kr(wT(e))}, ${kr(xT)})`}function AT(e){if(!e)return;let t;return i(e)?t=vT(e)?{unit:e.substring(6),binned:!0}:{unit:e}:s(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),bT(t.unit)&&(t.utc=!0,t.unit=t.unit.substring(3)),t}function ST(e,t=e=>e){const n=AT(e),i=_T(n.unit);if(i&&"day"!==i){const e={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:r,part:o}=FT(i,n.step);return`${t(pT({...e,[o]:+e[o]+r}))} - ${t(pT(e))}`}}const ET={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function FT(e,n=1){if(function(e){return t(ET,e)}(e))return{part:e,step:n};switch(e){case"day":case"dayofyear":return{part:"date",step:n};case"quarter":return{part:"month",step:3*n};case"week":return{part:"date",step:7*n}}}function CT(e){return!!(null==e?void 0:e.field)&&void 0!==e.equal}function MT(e){return!!(null==e?void 0:e.field)&&void 0!==e.lt}function zT(e){return!!(null==e?void 0:e.field)&&void 0!==e.lte}function OT(e){return!!(null==e?void 0:e.field)&&void 0!==e.gt}function NT(e){return!!(null==e?void 0:e.field)&&void 0!==e.gte}function RT(e){if(null==e?void 0:e.field){if(u(e.range)&&2===e.range.length)return!0;if(Xa(e.range))return!0}return!1}function TT(e){return!!(null==e?void 0:e.field)&&(u(e.oneOf)||u(e.in))}function BT(e){return TT(e)||CT(e)||RT(e)||MT(e)||OT(e)||zT(e)||NT(e)}function PT(e,t){return yj(e,{timeUnit:t,wrapTime:!0})}function jT(e,t=!0){const{field:n}=e,i=AT(e.timeUnit),{unit:r,binned:o}=i||{},a=ej(e,{expr:"datum"}),s=r?`time(${o?a:$T(r,n)})`:a;if(CT(e))return`${s}===${PT(e.equal,r)}`;if(MT(e)){return`${s}<${PT(e.lt,r)}`}if(OT(e)){return`${s}>${PT(e.gt,r)}`}if(zT(e)){return`${s}<=${PT(e.lte,r)}`}if(NT(e)){return`${s}>=${PT(e.gte,r)}`}if(TT(e))return`indexof([${(l=e.oneOf,u=r,l.map((e=>PT(e,u)))).join(",")}], ${s}) !== -1`;if(function(e){return!!(null==e?void 0:e.field)&&void 0!==e.valid}(e))return LT(s,e.valid);if(RT(e)){const{range:n}=Ga(e),i=Xa(n)?{signal:`${n.signal}[0]`}:n[0],o=Xa(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==o&&t)return"inrange("+s+", ["+PT(i,r)+", "+PT(o,r)+"])";const a=[];return null!==i&&a.push(`${s} >= ${PT(i,r)}`),null!==o&&a.push(`${s} <= ${PT(o,r)}`),a.length>0?a.join(" && "):"true"}var l,u;throw new Error(`Invalid field predicate: ${kr(e)}`)}function LT(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function qT(e){return BT(e)&&e.timeUnit?{...e,timeUnit:AT(e.timeUnit)}:e}function UT(e){return"ordinal"===e||"nominal"===e}const IT="quantitative",WT="ordinal",HT="temporal",GT="nominal",VT="geojson";const YT="linear",XT="log",JT="pow",QT="sqrt",KT="time",ZT="utc",eB="point",tB="band",nB={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function iB(e,t){const n=nB[e],i=nB[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const rB={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function oB(e){return rB[e]}const aB=new Set(["linear","log","pow","sqrt","symlog"]),sB=new Set([...aB,"time","utc"]);function lB(e){return aB.has(e)}const uB=new Set(["quantile","quantize","threshold"]),cB=new Set([...sB,...uB,"sequential","identity"]),fB=new Set(["ordinal","bin-ordinal","point","band"]);function dB(e){return fB.has(e)}function hB(e){return cB.has(e)}function pB(e){return sB.has(e)}function mB(e){return uB.has(e)}function gB(e){return $r(e,"param")}const{type:yB,domain:vB,range:bB,rangeMax:xB,rangeMin:wB,scheme:_B,...kB}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},$B=Qi(kB);function DB(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return pB(e)||"band"===e||"point"===e;case"padding":case"rangeMin":case"rangeMax":return pB(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return"band"===e;case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return pB(e);case"nice":return pB(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return hB(e)&&!ji(["log","time","utc","threshold","quantile"],e)}}function AB(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return go(e)?void 0:`Cannot use the scale property "${t}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}const SB={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},EB=SB.arc,FB=SB.area,CB=SB.bar,MB=SB.image,zB=SB.line,OB=SB.point,NB=SB.rect,RB=SB.rule,TB=SB.text,BB=SB.tick,PB=SB.trail,jB=SB.circle,LB=SB.square,qB=SB.geoshape;function UB(e){return["line","area","trail"].includes(e)}function IB(e){return["rect","bar","image","arc","tick"].includes(e)}const WB=new Set(Qi(SB));function HB(e){return $r(e,"type")}const GB=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],VB=Qi({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),YB=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],XB={area:["line","point"],bar:YB,rect:YB,line:["point"],tick:["bandSize","thickness",...YB]},JB=Qi({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function QB(e){return $r(e,"band")}const KB={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},ZB={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},eP={...ZB,binSpacing:1},tP={...ZB,thickness:1};function nP(e,{isPath:t}){return void 0===e||"break-paths-show-path-domains"===e?t?"break-paths-show-domains":"filter":null===e?"show":e}function iP({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){var o,a;if(!i||!hB(i)||r)return"always-valid";const s=nP(us("invalid",e,t),{isPath:UB(e.type)});return void 0!==(null==(a=null==(o=t.scale)?void 0:o.invalid)?void 0:a[n])?"show":s}function rP({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();if("definitely"===a)return{scale:e,value:0};if("maybe"===a){return{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${"zeroOrMin"===n?r:o})`}}return{signal:`scale('${e}', ${"zeroOrMin"===n?r:o})`}}function oP({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){var a;const s=null==n?void 0:n.get("type"),l=uj(t),u=iP({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:Ta(null==l?void 0:l.aggregate)});if(l&&"show"===u){const t=(null==(a=o.scale.invalid)?void 0:a[e])??"zero-or-min";return{test:LT(ej(l,{expr:"datum"}),!1),...aP(t,n,i)}}}function aP(e,t,n){if(s(i=e)&&"value"in i){const{value:t}=e;return Xa(t)?{signal:t.signal}:{value:t}}var i;return rP({scale:t,scaleName:n,mode:"zeroOrMin"})}function sP(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=zo(t),l=cP(e),u=oP({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return void 0!==u?[u,l]:l}function lP(e,t,n,i){const r={};if(t&&(r.scale=t),UP(e)){const{datum:t}=e;lT(t)?r.signal=pT(t):Xa(t)?r.signal=t.signal:Ha(t)?r.signal=t.expr:r.value=t}else r.field=ej(e,n);if(i){const{offset:e,band:t}=i;e&&(r.offset=e),t&&(r.band=t)}return r}function uP({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!Xa(a)&&0tr(`${"unit"===e?"":`_${e}_`}${n[e]}`))).join(""):(t?"utc":"")+"timeunit"+Qi(n).map((e=>tr(`_${e}_${n[e]}`))).join("")}(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}i&&(n=n?`${i}_${n}`:i)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?fr(n):t.expr?ar(n,t.expr)+o:ur(n)+o}function tj(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return LP(e)&&!!e.bin;case"temporal":return!1}throw new Error(UR(e.type))}const nj=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Oa(t))return`${r} for argmax(${t.argmax})`;if(za(t))return`${r} for argmin(${t.argmin})`;const o=i&&!yT(i)?AT(i):void 0,a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||La(n)&&"bin";return a?`${a.toUpperCase()}(${r})`:r}(e);default:return function(e,t){var n;const{field:i,bin:r,timeUnit:o,aggregate:a}=e;if("count"===a)return t.countTitle;if(La(r))return`${i} (binned)`;if(o&&!yT(o)){const e=null==(n=AT(o))?void 0:n.unit;if(e)return`${i} (${wT(e).join("-")})`}else if(a)return Oa(a)?`${i} for max ${a.argmax}`:za(a)?`${i} for min ${a.argmin}`:`${rr(a)} of ${i}`;return i}(e,t)}};let ij=nj;function rj(e){ij=e}function oj(e,t,{allowDisabling:n,includeDefault:i=!0}){var r;const o=null==(r=aj(e))?void 0:r.title;if(!LP(e))return o??e.title;const a=e,s=i?sj(a,t):void 0;return n?hr(o,a.title,s):o??a.title??s}function aj(e){return JP(e)&&e.axis?e.axis:QP(e)&&e.legend?e.legend:FP(e)&&e.header?e.header:void 0}function sj(e,t){return ij(e,t)}function lj(e){if(KP(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=aj(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function uj(e){return LP(e)?e:PP(e)?e.condition:void 0}function cj(e){return GP(e)?e:jP(e)?e.condition:void 0}function fj(e,t,r,o={}){if(i(e)||n(e)||l(e)){return sT(function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${kr(n)}}.`}(t,i(e)?"string":n(e)?"number":"boolean",e)),{value:e}}return GP(e)?dj(e,t,r,o):jP(e)?{...e,condition:dj(e.condition,t,r,o)}:e}function dj(e,t,r,o){if(KP(e)){const{format:n,formatType:i,...a}=e;if(dP(i)&&!r.customFormatTypes)return sT(LR(t)),dj(a,t,r,o)}else{const n=JP(e)?"axis":QP(e)?"legend":FP(e)?"header":null;if(n&&e[n]){const{format:i,formatType:a,...s}=e[n];if(dP(a)&&!r.customFormatTypes)return sT(LR(t)),dj({...e,[n]:s},t,r,o)}}return LP(e)?hj(e,t,o):function(e){let t=e.type;if(t)return e;const{datum:r}=e;return t=n(r)?"quantitative":i(r)?"nominal":lT(r)?"temporal":void 0,{...e,type:t}}(e)}function hj(e,t,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:o,bin:a,field:s}=e,l={...e};if(n||!r||Na(r)||Oa(r)||za(r)||(sT(function(e){return`Invalid aggregation operator "${e}".`}(r)),delete l.aggregate),o&&(l.timeUnit=AT(o)),s&&(l.field=`${s}`),La(a)&&(l.bin=pj(a,t)),qa(a)&&!ra(t)&&sT(function(e){return`Channel ${e} should not be used with "binned" bin.`}(t)),VP(l)){const{type:e}=l,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case IT:return"quantitative";case"t":case HT:return"temporal";case"o":case WT:return"ordinal";case"n":case GT:return"nominal";case VT:return"geojson"}}(e);e!==t&&(l.type=t),"quantitative"!==e&&Ta(r)&&(sT(function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}(e,r)),l.type="quantitative")}else if(!Mo(t)){const e=function(e,t){var n;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(zP(e)&&u(e.sort))return"ordinal";const{aggregate:i,bin:r,timeUnit:o}=e;if(o)return"temporal";if(r||i&&!Oa(i)&&!za(i))return"quantitative";if(XP(e)&&(null==(n=e.scale)?void 0:n.type))switch(nB[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(l,t);l.type=e}if(VP(l)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Dr:case Ar:case Sr:return tj(e)?mj:{compatible:!1,warning:GR(t)};case Er:case Fr:case zr:case Or:case Ir:case Wr:case Hr:case eo:case no:case io:case ro:case oo:case ao:case Yr:case Tr:case Nr:case so:return mj;case jr:case qr:case Pr:case Lr:return n!==IT?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:mj;case Xr:case Jr:case Qr:case Kr:case Vr:case Br:case Rr:case Cr:case Mr:case Ur:return"nominal"!==n||e.sort?mj:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case Gr:case Zr:return tj(e)||XP(i=e)&&mB(null==(r=i.scale)?void 0:r.type)?mj:{compatible:!1,warning:VR(t)};case to:return"nominal"!==e.type||"sort"in e?mj:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var i,r}(l,t)||{};!1===e&&sT(n)}if(zP(l)&&i(l.sort)){const{sort:e}=l;if(DP(e))return{...l,sort:{encoding:e}};const t=e.substring(1);if("-"===e.charAt(0)&&DP(t))return{...l,sort:{encoding:t,order:"descending"}}}if(FP(l)){const{header:e}=l;if(e){const{orient:t,...n}=e;if(t)return{...l,header:{...n,labelOrient:e.labelOrient||t,titleOrient:e.titleOrient||t}}}}return l}function pj(e,t){return l(e)?{maxbins:Wa(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Wa(t)}}const mj={compatible:!0};function gj(e){const{formatType:t}=lj(e);return"time"===t||!t&&((n=e)&&("temporal"===n.type||LP(n)&&!!n.timeUnit));var n}function yj(e,{timeUnit:r,type:o,wrapTime:a,undefinedIfExprNotRequired:s}){var l;const u=r&&(null==(l=AT(r))?void 0:l.unit);let c,f=u||"temporal"===o;return Ha(e)?c=e.expr:Xa(e)?c=e.signal:lT(e)?(f=!0,c=pT(e)):(i(e)||n(e))&&f&&(c=`datetime(${kr(e)})`,function(e){return t(mT,e)}(u)&&(n(e)&&e<1e4||i(e)&&isNaN(Date.parse(e)))&&(c=pT({[u]:e}))),c?a&&f?`time(${c})`:c:s?void 0:kr(e)}function vj(e,t){const{type:n}=e;return t.map((t=>{const i=yj(t,{timeUnit:LP(e)&&!yT(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:t}))}function bj(e,t){return La(e.bin)?$a(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const xj={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function wj(e){return null==e?void 0:e.condition}const _j=["domain","grid","labels","ticks","title"],kj={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},$j={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},Dj={...$j,style:1,labelExpr:1,encoding:1};function Aj(e){return t(Dj,e)}const Sj=Qi({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Ej(e){return $r(e,"mark")}class Fj{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!Ej(e)&&(HB(t=e.mark)?t.type:t)===this.name;var t}}function Cj(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):LP(n)||PP(n))}function Mj(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):LP(n)||UP(n)||jP(n))}function zj(e,t){if(ra(t)){const n=e[t];if((LP(n)||UP(n))&&(UT(n.type)||LP(n)&&n.timeUnit)){return Mj(e,Bo(t))}}return!1}function Oj(e){return Li(xo,(t=>{if(Cj(e,t)){const n=e[t];if(u(n))return Li(n,(e=>!!e.aggregate));{const e=uj(n);return e&&!!e.aggregate}}return!1}))}function Nj(e,n){const i=[],r=[],o=[],a=[],s={};return Bj(e,((l,u)=>{if(LP(l)){const{field:c,aggregate:f,bin:d,timeUnit:h,...p}=l;if(f||h||d){const e=aj(l),m=null==e?void 0:e.title;let g=ej(l,{forAs:!0});const y={...m?[]:{title:oj(l,n,{allowDisabling:!0})},...p,field:g};if(f){let e;if(Oa(f)?(e="argmax",g=ej({op:"argmax",field:f.argmax},{forAs:!0}),y.field=`${g}.${c}`):za(f)?(e="argmin",g=ej({op:"argmin",field:f.argmin},{forAs:!0}),y.field=`${g}.${c}`):"boxplot"!==f&&"errorbar"!==f&&"errorband"!==f&&(e=f),e){const t={op:e,as:g};c&&(t.field=c),a.push(t)}}else if(i.push(g),VP(l)&&La(d)){if(r.push({bin:d,field:c,as:g}),i.push(ej(l,{binSuffix:"end"})),bj(l,u)&&i.push(ej(l,{binSuffix:"range"})),ra(u)){const e={field:`${g}_end`};s[`${u}2`]=e}y.bin="binned",Mo(u)||(y.type=IT)}else if(h&&!yT(h)){o.push({timeUnit:h,field:c,as:g});const e=VP(l)&&l.type!==HT&&"time";e&&(u===eo||u===ro?y.formatType=e:!function(e){return t(ea,e)}(u)?ra(u)&&(y.axis={formatType:e,...y.axis}):y.legend={formatType:e,...y.legend})}s[u]=y}else i.push(c),s[u]=e[u]}else s[u]=e[u]})),{bins:r,timeUnits:o,aggregate:a,groupby:i,encoding:s}}function Rj(e,t,n){const i=Da(t,n);if(!i)return!1;if("binned"===i){const n=e[t===Cr?Er:Fr];return!!(LP(n)&&LP(e[t])&&qa(n.bin))}return!0}function Tj(e,t){const n={};for(const i of Qi(e)){const r=fj(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function Bj(e,t,n){if(e)for(const i of Qi(e)){const r=e[i];if(u(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function Pj(e,t){return Qi(t).reduce(((n,i)=>{switch(i){case Er:case Fr:case oo:case so:case ao:case Cr:case Mr:case zr:case Or:case Tr:case Br:case Nr:case Rr:case Ur:case Pr:case jr:case Lr:case qr:case eo:case Gr:case Yr:case ro:return n;case to:if("line"===e||"trail"===e)return n;case no:case io:{const e=t[i];if(u(e)||LP(e))for(const t of c(e))t.aggregate||n.push(ej(t,{}));return n}case Vr:if("trail"===e)return n;case Ir:case Wr:case Hr:case Xr:case Jr:case Qr:case Zr:case Kr:{const e=uj(t[i]);return e&&!e.aggregate&&n.push(ej(e,{})),n}}}),[])}function jj(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map((({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${Lj(t)}`:"";return{field:e+t.field,type:t.type,title:Xa(n)?{signal:`${n}"${escape(r)}"`}:n+r}})),...Wi(function(e){const t=[];for(const n of Qi(e))if(Cj(e,n)){const i=e[n],r=c(i);for(const e of r)LP(e)?t.push(e):PP(e)&&t.push(e.condition)}return t}(n).map(ZP),Bi)]}}function Lj(e){const{title:t,field:n}=e;return hr(t,n)}function qj(e,t,n,r,o){const{scale:a,axis:s}=n;return({partName:l,mark:u,positionPrefix:c,endPositionPrefix:f,extraEncoding:d={}})=>{const h=Lj(n);return Uj(e,l,o,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...void 0!==h?{title:h}:{},...void 0!==a?{scale:a}:{},...void 0!==s?{axis:s}:{}},...i(f)?{[`${t}2`]:{field:`${f}_${n.field}`}}:{},...r,...d}})}}function Uj(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...HB(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...l(e[t])?{}:e[t]}}]:[]}function Ij(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],l=i[`${r}Error2`];return{continuousAxisChannelDef:Wj(o,n),continuousAxisChannelDef2:Wj(a,n),continuousAxisChannelDefError:Wj(s,n),continuousAxisChannelDefError2:Wj(l,n),continuousAxis:r}}function Wj(e,t){if(null==e?void 0:e.aggregate){const{aggregate:n,...i}=e;return n!==t&&sT(function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}(n,t)),i}return e}function Hj(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(HB(n)&&n.orient)return n.orient;if(IP(r)){if(IP(o)){const e=LP(r)&&r.aggregate,n=LP(o)&&o.aggregate;if(e||n!==t){if(n||e!==t){if(e===t&&n===t)throw new Error("Both x and y cannot have aggregate");return gj(o)&&!gj(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(IP(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const Gj="boxplot",Vj=new Fj(Gj,Xj);function Yj(e){return n(e)?"tukey":e}function Xj(e,{config:t}){e={...e,encoding:Tj(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...a}=e,l=HB(n)?n:{type:n};r&&sT(RR("boxplot"));const c=l.extent??t.boxplot.extent,f=us("size",l,t),d=l.invalid,h=Yj(c),{bins:p,timeUnits:m,transform:g,continuousAxisChannelDef:y,continuousAxis:v,groupby:b,aggregate:x,encodingWithoutContinuousAxis:w,ticksOrient:_,boxOrient:k,customTooltipWithoutAggregatedField:$}=function(e,t,n){const i=Hj(e,Gj),{continuousAxisChannelDef:r,continuousAxis:o}=Ij(e,i,Gj),a=r.field,s=fr(a),l=Yj(t),c=[...Jj(a),{op:"median",field:a,as:`mid_box_${s}`},{op:"min",field:a,as:("min-max"===l?"lower_whisker_":"min_")+s},{op:"max",field:a,as:("min-max"===l?"upper_whisker_":"max_")+s}],f="min-max"===l||"tukey"===l?[]:[{calculate:`${sr(`upper_box_${s}`)} - ${sr(`lower_box_${s}`)}`,as:`iqr_${s}`},{calculate:`min(${sr(`upper_box_${s}`)} + ${sr(`iqr_${s}`)} * ${t}, ${sr(`max_${s}`)})`,as:`upper_whisker_${s}`},{calculate:`max(${sr(`lower_box_${s}`)} - ${sr(`iqr_${s}`)} * ${t}, ${sr(`min_${s}`)})`,as:`lower_whisker_${s}`}],{[o]:d,...h}=e.encoding,{customTooltipWithoutAggregatedField:p,filteredEncoding:m}=function(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(u(t)){for(const e of t)e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return u(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(h),{bins:g,timeUnits:y,aggregate:v,groupby:b,encoding:x}=Nj(m,n),w="vertical"===i?"horizontal":"vertical",_=i,k=[...g,...y,{aggregate:[...v,...c],groupby:b},...f];return{bins:g,timeUnits:y,transform:k,groupby:b,aggregate:v,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:w,boxOrient:_,customTooltipWithoutAggregatedField:p}}(e,c,t),D=fr(y.field),{color:A,size:S,...E}=w,F=e=>qj(l,v,y,e,t.boxplot),C=F(E),M=F(w),z=(s(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",O=F({...E,...S?{size:S}:{},color:{condition:{test:`${sr(`lower_box_${y.field}`)} >= ${sr(`upper_box_${y.field}`)}`,...A||{value:z}}}}),N=jj([{fieldPrefix:"min-max"===h?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===h?"lower_whisker_":"min_",titlePrefix:"Min"}],y,w),R={type:"tick",color:"black",opacity:1,orient:_,invalid:d,aria:!1},T="min-max"===h?N:jj([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],y,w),B=[...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:T}),...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:T}),...C({partName:"ticks",mark:R,positionPrefix:"lower_whisker",extraEncoding:T}),...C({partName:"ticks",mark:R,positionPrefix:"upper_whisker",extraEncoding:T})],P=[..."tukey"!==h?B:[],...M({partName:"box",mark:{type:"bar",...f?{size:f}:{},orient:k,invalid:d,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:N}),...O({partName:"median",mark:{type:"tick",invalid:d,...s(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...f?{size:f}:{},orient:_,aria:!1},positionPrefix:"mid_box",extraEncoding:N})];if("min-max"===h)return{...a,transform:(a.transform??[]).concat(g),layer:P};const j=sr(`lower_box_${y.field}`),L=sr(`upper_box_${y.field}`),q=`(${L} - ${j})`,U=`${j} - ${c} * ${q}`,I=`${L} + ${c} * ${q}`,W=sr(y.field),H={joinaggregate:Jj(y.field),groupby:b},G={transform:[{filter:`(${U} <= ${W}) && (${W} <= ${I})`},{aggregate:[{op:"min",field:y.field,as:`lower_whisker_${D}`},{op:"max",field:y.field,as:`upper_whisker_${D}`},{op:"min",field:`lower_box_${y.field}`,as:`lower_box_${D}`},{op:"max",field:`upper_box_${y.field}`,as:`upper_box_${D}`},...x],groupby:b}],layer:B},{tooltip:V,...Y}=E,{scale:X,axis:J}=y,Q=Lj(y),K=Ti(J,["title"]),Z=Uj(l,"outliers",t.boxplot,{transform:[{filter:`(${W} < ${U}) || (${W} > ${I})`}],mark:"point",encoding:{[v]:{field:y.field,type:y.type,...void 0!==Q?{title:Q}:{},...void 0!==X?{scale:X}:{},...Ji(K)?{}:{axis:K}},...Y,...A?{color:A}:{},...$?{tooltip:$}:{}}})[0];let ee;const te=[...p,...m,H];return Z?ee={transform:te,layer:[Z,G]}:(ee=G,ee.transform.unshift(...te)),{...a,layer:[ee,{transform:g,layer:P}]}}function Jj(e){const t=fr(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const Qj="errorbar",Kj=new Fj(Qj,Zj);function Zj(e,{config:t}){e={...e,encoding:Tj(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:l,tooltipEncoding:u}=tL(e,Qj,t);delete o.size;const c=qj(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:a,aria:!1,...void 0!==f?{thickness:f}:{},...void 0!==d?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:u}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...void 0!==f?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u})];return{...l,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function eL(e,t){const{encoding:n}=e;if(function(e){return(GP(e.x)||GP(e.y))&&!GP(e.x2)&&!GP(e.y2)&&!GP(e.xError)&&!GP(e.xError2)&&!GP(e.yError)&&!GP(e.yError2)}(n))return{orient:Hj(e,t),inputType:"raw"};const i=function(e){return GP(e.x2)||GP(e.y2)}(n),r=function(e){return GP(e.xError)||GP(e.xError2)||GP(e.yError)||GP(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(GP(e)&&GP(i))throw new Error(`${t} cannot have both x2 and y2`);if(GP(e)){if(IP(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(GP(i)){if(IP(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(GP(i)&&!GP(e))throw new Error(`${t} cannot have xError2 without xError`);if(GP(s)&&!GP(r))throw new Error(`${t} cannot have yError2 without yError`);if(GP(e)&&GP(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(GP(e)){if(IP(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(GP(r)){if(IP(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function tL(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,l=HB(i)?i:{type:i};o&&sT(RR(t));const{orient:u,inputType:c}=eL(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=Ij(e,u,t),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:b}=function(e,t,n,i,r,o,a,s){let l=[],u=[];const c=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&sT(function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}(t,n,a)),"stderr"===n||"stdev"===n)l=[{op:n,field:c,as:`extent_${c}`},{op:t,field:c,as:`center_${c}`}],u=[{calculate:`${sr(`center_${c}`)} + ${sr(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${sr(`center_${c}`)} - ${sr(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:rr(t)},{fieldPrefix:"upper_",titlePrefix:nL(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:nL(t,n,"-")}],d=!0;else{let e,t,i;"ci"===n?(e="mean",t="ci0",i="ci1"):(e="median",t="q1",i="q3"),l=[{op:t,field:c,as:`lower_${c}`},{op:i,field:c,as:`upper_${c}`},{op:e,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:oj({field:c,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:oj({field:c,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:oj({field:c,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&sT((h=e.center,`${(p=e.extent)?"extent ":""}${p&&h?"and ":""}${h?"center ":""}${p&&h?"are ":"is "}not needed when data are aggregated.`)),"aggregated-upper-lower"===o?(f=[],u=[{calculate:sr(n.field),as:`upper_${c}`},{calculate:sr(c),as:`lower_${c}`}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:c}],u=[{calculate:`${sr(c)} + ${sr(i.field)}`,as:`upper_${c}`}],r?u.push({calculate:`${sr(c)} + ${sr(r.field)}`,as:`lower_${c}`}):u.push({calculate:`${sr(c)} - ${sr(i.field)}`,as:`lower_${c}`}));for(const e of u)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:cr(cr(e.calculate,"datum['",""),"']","")})}var h,p;return{postAggregateCalculates:u,errorBarSpecificAggregate:l,tooltipSummary:f,tooltipTitleWithFieldName:d}}(l,f,d,h,p,c,t,n),{[m]:x,["x"===m?"x2":"y2"]:w,["x"===m?"xError":"yError"]:_,["x"===m?"xError2":"yError2"]:k,...$}=r,{bins:D,timeUnits:A,aggregate:S,groupby:E,encoding:F}=Nj($,n),C=[...S,...g],M="raw"!==c?[]:E,z=jj(v,f,F,b);return{transform:[...s.transform??[],...D,...A,...0===C.length?[]:[{aggregate:C,groupby:M}],...y],groupby:M,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===u?"horizontal":"vertical",markDef:l,outerSpec:s,tooltipEncoding:z}}function nL(e,t,n){return`${rr(e)} ${n} ${t}`}const iL="errorband",rL=new Fj(iL,oL);function oL(e,{config:t}){e={...e,encoding:Tj(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:l}=tL(e,iL,t),u=a,c=qj(u,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...u.interpolate?{interpolate:u.interpolate}:{},...u.tension&&u.interpolate?{tension:u.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):u.interpolate?sT(nT("interpolate")):u.tension&&sT(nT("tension")),{...s,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:l})]}}const aL={};function sL(e,t,n){const i=new Fj(e,t);aL[e]={normalizer:i,parts:n}}sL(Gj,Xj,["box","median","outliers","rule","ticks"]),sL(Qj,Zj,["ticks","rule"]),sL(iL,oL,["band","borders"]);const lL=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],uL={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},cL={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},fL=Qi(uL),dL=Qi(cL),hL=Qi({header:1,headerRow:1,headerColumn:1,headerFacet:1}),pL=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],mL="_vgsid_",gL={point:{on:"click",fields:[mL],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function yL(e){return"legend"===e||!!(null==e?void 0:e.legend)}function vL(e){return yL(e)&&s(e)}function bL(e){return!!(null==e?void 0:e.select)}function xL(e){const t=[];for(const n of e||[]){if(bL(n))continue;const{expr:e,bind:i,...r}=n;if(i&&e){const n={...r,bind:i,init:e};t.push(n)}else{const n={...r,...e?{update:e}:{},...i?{bind:i}:{}};t.push(n)}}return t}function wL(e){return $r(e,"concat")}function _L(e){return $r(e,"vconcat")}function kL(e){return $r(e,"hconcat")}function $L({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function DL(e){return $r(e,"step")}function AL(e){return $r(e,"view")||$r(e,"width")||$r(e,"height")}const SL=Qi({align:1,bounds:1,center:1,columns:1,spacing:1});function EL(e,t){return e[t]??e["width"===t?"continuousWidth":"continuousHeight"]}function FL(e,t){const n=CL(e,t);return DL(n)?n.step:ML}function CL(e,t){return hr(e[t]??e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const ML=20,zL={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:ML},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:eP,circle:{},geoshape:{},image:{},line:{},point:{},rect:ZB,rule:{color:"black"},square:{},text:{color:"black"},tick:tP,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:gL,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},OL=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],NL={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},RL={blue:OL[0],orange:OL[1],red:OL[2],teal:OL[3],green:OL[4],yellow:OL[5],purple:OL[6],pink:OL[7],brown:OL[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function TL(e){const t=Qi(e||{}),n={};for(const i of t){const t=e[i];n[i]=wj(t)?ts(t):ns(t)}return n}const BL=[...JB,...Sj,...hL,"background","padding","legend","lineBreak","scale","style","title","view"];function PL(e={}){const{color:t,font:n,fontSize:i,selection:o,...a}=e,l=Ie({},Oi(zL),n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:s(e)?{...RL,...e}:RL}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:s(e)?{...NL,...e}:NL}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},a||{});o&&r(l,"selection",o,!0);const u=Ti(l,BL);for(const r of["background","lineBreak","padding"])l[r]&&(u[r]=ns(l[r]));for(const r of JB)l[r]&&(u[r]=Ga(l[r]));for(const r of Sj)l[r]&&(u[r]=TL(l[r]));for(const r of hL)l[r]&&(u[r]=Ga(l[r]));if(l.legend&&(u.legend=Ga(l.legend)),l.scale){const{invalid:e,...t}=l.scale,n=Ga(e,{level:1});u.scale={...Ga(t),...Qi(n).length>0?{invalid:n}:{}}}return l.style&&(u.style=function(e){const t=Qi(e),n={};for(const i of t)n[i]=TL(e[i]);return n}(l.style)),l.title&&(u.title=Ga(l.title)),l.view&&(u.view=Ga(l.view)),u}const jL=new Set(["view",...WB]),LL=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],qL={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...XB};function UL(e){e=Oi(e);for(const t of LL)delete e[t];if(e.axis)for(const t in e.axis)wj(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of lL)delete e.legend[t];if(e.mark){for(const t of VB)delete e.mark[t];e.mark.tooltip&&s(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(xL(e.params)),delete e.params);for(const t of jL){for(const i of VB)delete e[t][i];const n=qL[t];if(n)for(const i of n)delete e[t][i];IL(e,t)}for(const t of Qi(aL))delete e[t];!function(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=Va(e.title);Ji(t)||(e.style["group-title"]={...e.style["group-title"],...t});Ji(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n});Ji(i)?delete e.title:e.title=i}(e);for(const t in e)s(e[t])&&Ji(e[t])&&delete e[t];return Ji(e)?void 0:e}function IL(e,t,n,i){"view"===t&&(n="cell");const r={...e[t],...e.style[n??t]};Ji(r)||(e.style[n??t]=r),delete e[t]}function WL(e){return $r(e,"layer")}class HL{map(e,t){return CP(e)?this.mapFacet(e,t):function(e){return $r(e,"repeat")}(e)?this.mapRepeat(e,t):kL(e)?this.mapHConcat(e,t):_L(e)?this.mapVConcat(e,t):wL(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(WL(e))return this.mapLayer(e,t);if(Ej(e))return this.mapUnit(e,t);throw new Error(SR(e))}mapLayer(e,t){return{...e,layer:e.layer.map((e=>this.mapLayerOrUnit(e,t)))}}mapHConcat(e,t){return{...e,hconcat:e.hconcat.map((e=>this.map(e,t)))}}mapVConcat(e,t){return{...e,vconcat:e.vconcat.map((e=>this.map(e,t)))}}mapConcat(e,t){const{concat:n,...i}=e;return{...i,concat:n.map((e=>this.map(e,t)))}}mapFacet(e,t){return{...e,spec:this.map(e.spec,t)}}mapRepeat(e,t){return{...e,spec:this.map(e.spec,t)}}}const GL={zero:1,center:1,normalize:1};const VL=new Set([EB,CB,FB,RB,OB,jB,LB,zB,TB,BB]),YL=new Set([CB,FB,EB]);function XL(e){return LP(e)&&"quantitative"===qP(e)&&!e.bin}function JL(e,t,{orient:n,type:i}){const r="x"===t?"y":"radius",o="x"===t&&["bar","area"].includes(i),a=e[t],s=e[r];if(LP(a)&&LP(s))if(XL(a)&&XL(s)){if(a.stack)return t;if(s.stack)return r;const e=LP(a)&&!!a.aggregate;if(e!==(LP(s)&&!!s.aggregate))return e?t:r;if(o){if("vertical"===n)return r;if("horizontal"===n)return t}}else{if(XL(a))return t;if(XL(s))return r}else{if(XL(a)){if(o&&"vertical"===n)return;return t}if(XL(s)){if(o&&"horizontal"===n)return;return r}}}function QL(e,n){var i,r;const o=HB(e)?e:{type:e},a=o.type;if(!VL.has(a))return null;const s=JL(n,"x",o)||JL(n,"theta",o);if(!s)return null;const u=n[s],f=LP(u)?ej(u,{}):void 0,d=function(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(s),h=[],p=new Set;if(n[d]){const e=n[d],t=LP(e)?ej(e,{}):void 0;t&&t!==f&&(h.push(d),p.add(t))}const m="x"===d?"xOffset":"yOffset",g=n[m],y=LP(g)?ej(g,{}):void 0;y&&y!==f&&(h.push(m),p.add(y));const v=ta.reduce(((e,t)=>{if("tooltip"!==t&&Cj(n,t)){const i=n[t];for(const n of c(i)){const i=uj(n);if(i.aggregate)continue;const r=ej(i,{});r&&p.has(r)||e.push({channel:t,fieldDef:i})}}return e}),[]);let b;return void 0!==u.stack?b=l(u.stack)?u.stack?"zero":null:u.stack:YL.has(a)&&(b="zero"),b&&t(GL,b)?Oj(n)&&0===v.length?null:((null==(i=null==u?void 0:u.scale)?void 0:i.type)&&(null==(r=null==u?void 0:u.scale)?void 0:r.type)!==YT&&(null==u?void 0:u.stack)&&sT(`Stack is applied to a non-linear scale (${u.scale.type}).`),GP(n[No(s)])?(void 0!==u.stack&&sT(`Cannot stack "${x=s}" if there is already "${x}2".`),null):(LP(u)&&u.aggregate&&!Ba.has(u.aggregate)&&sT(`Stacking is applied even though the aggregate function is non-summative ("${u.aggregate}").`),{groupbyChannels:h,groupbyFields:p,fieldChannel:s,impute:null!==u.impute&&UB(a),stackBy:v,offset:b})):null;var x}function KL(e,t,n){const i=Ga(e),r=us("orient",i,n);if(i.orient=function(e,t,n){switch(e){case OB:case jB:case LB:case TB:case NB:case MB:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case CB:if(LP(i)&&(qa(i.bin)||LP(r)&&r.aggregate&&!i.aggregate))return"vertical";if(LP(r)&&(qa(r.bin)||LP(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o)return(LP(i)&&i.type===IT&&!La(i.bin)||HP(i))&&LP(r)&&qa(r.bin)?"horizontal":"vertical";if(!a)return(LP(r)&&r.type===IT&&!La(r.bin)||HP(r))&&LP(i)&&qa(i.bin)?"vertical":"horizontal"}case RB:if(o&&(!LP(i)||!qa(i.bin))&&a&&(!LP(r)||!qa(r.bin)))return;case FB:if(a)return LP(r)&&qa(r.bin)?"horizontal":"vertical";if(o)return LP(i)&&qa(i.bin)?"vertical":"horizontal";if(e===RB){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case zB:case BB:{const t=WP(i),o=WP(r);if(n)return n;if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o)return"vertical";{const e=VP(i)&&i.type===HT,t=VP(r)&&r.type===HT;if(e&&!t)return"vertical";if(!e&&t)return"horizontal"}return}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&sT(`Specified orient "${i.orient}" overridden with "${r}".`),"bar"===i.type&&i.orient){const e=us("cornerRadiusEnd",i,n);if(void 0!==e){const n="horizontal"===i.orient&&t.x2||"vertical"===i.orient&&t.y2?["cornerRadius"]:KB[i.orient];for(const t of n)i[t]=e;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}const o=us("opacity",i,n),a=us("fillOpacity",i,n);void 0===o&&void 0===a&&(i.opacity=function(e,t){if(ji([OB,BB,jB,LB],e)&&!Oj(t))return.7;return}(i.type,t));return void 0===us("cursor",i,n)&&(i.cursor=function(e,t,n){if(t.href||e.href||us("href",e,n))return"pointer";return e.cursor}(i,t,n)),i}function ZL(e){const{point:t,line:n,...i}=e;return Qi(i).length>1?i:i.type}function eq(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Ti(e[t],["point","line"])});return e}function tq(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?s(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?s(t.point)?t.point:{}:void 0}function nq(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class iq{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(Ej(e)){const{mark:n,encoding:i}=e,r=HB(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!tq(r,t[r.type],i);case"area":return!!tq(r,t[r.type],i)||!!nq(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{params:r,projection:o,mark:a,name:s,encoding:l,...u}=e,c=Tj(l,i),f=HB(a)?a:{type:a},d=tq(f,i[f.type],c),h="area"===f.type&&nq(f,i[f.type]),p=[{name:s,...r?{params:r}:{},mark:ZL({..."area"===f.type&&void 0===f.opacity&&void 0===f.fillOpacity?{opacity:.7}:{},...f}),encoding:Ti(c,["shape"])}],m=QL(KL(f,c,i),c);let g=c;if(m){const{fieldChannel:e,offset:t}=m;g={...c,[e]:{...c[e],...t?{stack:t}:{}}}}return g=Ti(g,["y2","x2"]),h&&p.push({...o?{projection:o}:{},mark:{type:"line",...Ri(f,["clip","interpolate","tension","tooltip"]),...h},encoding:g}),d&&p.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...Ri(f,["clip","tooltip"]),...d},encoding:g}),n({...u,layer:p},{...t,config:eq(i)})}}function rq(e,t){return t?EP(e)?cq(e,t):sq(e,t):e}function oq(e,t){return t?cq(e,t):e}function aq(e,t,n){const r=t[e];return!i(o=r)&&$r(o,"repeat")?r.repeat in n?{...t,[e]:n[r.repeat]}:void sT(function(e){return`Unknown repeated value "${e}".`}(r.repeat)):t;var o}function sq(e,t){if(void 0!==(e=aq("field",e,t))){if(null===e)return null;if(zP(e)&&AP(e.sort)){const n=aq("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function lq(e,t){if(LP(e))return sq(e,t);{const n=aq("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function uq(e,t){if(!GP(e)){if(jP(e)){const n=lq(e.condition,t);if(n)return{...e,condition:n};{const{condition:t,...n}=e;return n}}return e}{const n=lq(e,t);if(n)return n;if(BP(e))return{condition:e.condition}}}function cq(e,t){const n={};for(const i in e)if($r(e,i)){const r=e[i];if(u(r))n[i]=r.map((e=>uq(e,t))).filter((e=>e));else{const e=uq(r,t);void 0!==e&&(n[i]=e)}}return n}class fq{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(Ej(e)){const{encoding:t,mark:n}=e;if("line"===n||HB(n)&&"line"===n.type)for(const e of Co){const n=t[zo(e)];if(t[e]&&(LP(n)&&!qa(n.bin)||UP(n)))return!0}}return!1}run(e,t,n){const{encoding:i,mark:r}=e;var o,a;return sT((o=!!i.x2,a=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&a?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),n({...e,mark:s(r)?{...r,type:"rule"}:"rule"},t)}}function dq({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...Qi(e),...Qi(t)]);for(const o of r){const r=t[o],a=e[o];if(GP(r)){const e={...a,...r};i[o]=e}else jP(r)?i[o]={...r,condition:{...a,...r.condition}}:r||null===r?i[o]=r:(n||YP(a)||Xa(a)||GP(a)||u(a))&&(i[o]=a)}}else i=t;return!i||Ji(i)?void 0:i}function hq(e){const{parentProjection:t,projection:n}=e;return t&&n&&sT(function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${kr(t)} is overridden by a child projection ${kr(n)}.`}({parentProjection:t,projection:n})),n??t}function pq(e){return $r(e,"filter")}function mq(e){return $r(e,"lookup")}function gq(e){return $r(e,"pivot")}function yq(e){return $r(e,"density")}function vq(e){return $r(e,"quantile")}function bq(e){return $r(e,"regression")}function xq(e){return $r(e,"loess")}function wq(e){return $r(e,"sample")}function _q(e){return $r(e,"window")}function kq(e){return $r(e,"joinaggregate")}function $q(e){return $r(e,"flatten")}function Dq(e){return $r(e,"calculate")}function Aq(e){return $r(e,"bin")}function Sq(e){return $r(e,"impute")}function Eq(e){return $r(e,"timeUnit")}function Fq(e){return $r(e,"aggregate")}function Cq(e){return $r(e,"stack")}function Mq(e){return $r(e,"fold")}function zq(e){return $r(e,"extent")&&!$r(e,"density")&&!$r(e,"regression")}function Oq(e,t){const{transform:n,...i}=e;if(n){return{...i,transform:n.map((e=>{if(pq(e))return{filter:Tq(e,t)};if(Aq(e)&&Ua(e.bin))return{...e,bin:Rq(e.bin)};if(mq(e)){const{selection:t,...n}=e.from;return t?{...e,from:{param:t,...n}}:e}return e}))}}return e}function Nq(e,t){var n,i;const r=Oi(e);if(LP(r)&&Ua(r.bin)&&(r.bin=Rq(r.bin)),XP(r)&&(null==(i=null==(n=r.scale)?void 0:n.domain)?void 0:i.selection)){const{selection:e,...t}=r.scale.domain;r.scale.domain={...t,...e?{param:e}:{}}}if(BP(r))if(u(r.condition))r.condition=r.condition.map((e=>{const{selection:n,param:i,test:r,...o}=e;return i?e:{...o,test:Tq(e,t)}}));else{const{selection:e,param:n,test:i,...o}=Nq(r.condition,t);r.condition=n?r.condition:{...o,test:Tq(r.condition,t)}}return r}function Rq(e){const t=e.extent;if(null==t?void 0:t.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function Tq(e,t){const n=e=>zi(e,(e=>{var n;const i={param:e,empty:t.emptySelections[e]??!0};return(n=t.selectionPredicates)[e]??(n[e]=[]),t.selectionPredicates[e].push(i),i}));return e.selection?n(e.selection):zi(e.test||e.filter,(e=>e.selection?n(e.selection):e))}class Bq extends HL{map(e,t){const n=t.selections??[];if(e.params&&!Ej(e)){const t=[];for(const i of e.params)bL(i)?n.push(i):t.push(i);e.params=t}return t.selections=n,super.map(e,t)}mapUnit(e,t){const n=t.selections;if(!n||!n.length)return e;const r=(t.path??[]).concat(e.name),o=[];for(const a of n)if(a.views&&a.views.length)for(const t of a.views)(i(t)&&(t===e.name||r.includes(t))||u(t)&&t.map((e=>r.indexOf(e))).every(((e,t,n)=>-1!==e&&(0===t||e>n[t-1]))))&&o.push(a);else o.push(a);return o.length&&(e.params=o),e}}for(const SV of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=Bq.prototype[SV];Bq.prototype[SV]=function(t,n){return e.call(this,t,Pq(t,n))}}function Pq(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function jq(e,t){void 0===t&&(t=PL(e.config));const n=function(e,t={}){const n={config:t};return Uq.map(Lq.map(qq.map(e,n),n),n)}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=Ej(e)||WL(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(sT(FR("width")),i=void 0),"container"==r&&(sT(FR("height")),r=void 0));const s={type:"pad",...a,...n?Iq(n.autosize):{},...Iq(e.autosize)};"fit"!==s.type||o||(sT(ER),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&sT(CR("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&sT(CR("height"));if(_r(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const Lq=new class extends HL{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Vj,Kj,rL,new iq,new fq]}map(e,t){if(Ej(e)){const n=Cj(e.encoding,Dr),i=Cj(e.encoding,Ar),r=Cj(e.encoding,Sr);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=oq(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(o,t.config))return s.run(o,t,a);return o}mapRepeat(e,t){return function(e){return!u(e.repeat)&&$r(e.repeat,"layer")}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}mapLayerRepeat(e,t){const{repeat:n,spec:i,...r}=e,{row:o,column:a,layer:s}=n,{repeater:l={},repeaterPrefix:u=""}=t;return o||a?this.mapRepeat({...e,repeat:{...o?{row:o}:{},...a?{column:a}:{}},spec:{repeat:{layer:s},spec:i}},t):{...r,layer:s.map((e=>{const n={...l,layer:e},r=`${(i.name?`${i.name}_`:"")+u}child__layer_${tr(e)}`,o=this.mapLayerOrUnit(i,{...t,repeater:n,repeaterPrefix:r});return o.name=r,o}))}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!u(n)&&e.columns&&(e=Ti(e,["columns"]),sT(BR("repeat")));const a=[],{repeater:s={},repeaterPrefix:l=""}=t,c=!u(n)&&n.row||[s?s.row:null],f=!u(n)&&n.column||[s?s.column:null],d=u(n)&&n||[s?s.repeat:null];for(const p of d)for(const e of c)for(const r of f){const o={repeat:p,row:e,column:r,layer:s.layer},c=(i.name?`${i.name}_`:"")+l+"child__"+(u(n)?`${tr(p)}`:(n.row?`row_${tr(e)}`:"")+(n.column?`column_${tr(r)}`:"")),f=this.map(i,{...t,repeater:o,repeaterPrefix:c});f.name=c,a.push(Ti(f,["data"]))}const h=u(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:h,concat:a}}mapFacet(e,t){const{facet:n}=e;return EP(n)&&e.columns&&(e=Ti(e,["columns"]),sT(BR("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=hq({parentProjection:o,projection:i}),l=dq({parentEncoding:r,encoding:oq(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:l,height:u,view:c,params:f,encoding:d,...h}=e,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),g=oq(o,t.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...u?{height:u}:{},...c?{view:c}:{},...l?{projection:l}:{},mark:a,encoding:g,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&sT(`Facet encoding dropped as ${(o=[...n?[Dr]:[],...i?[Ar]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const t={},a={};for(const n of[Dr,Ar]){const i=e[n];if(i){const{align:e,center:r,spacing:o,columns:s,...l}=i;t[n]=l;for(const t of["align","center","spacing"])void 0!==i[t]&&(a[t]??(a[t]={}),a[t][n]=i[t])}}return{facetMapping:t,layout:a}}{const{align:e,center:n,spacing:i,columns:o,...a}=r;return{facetMapping:rq(a,t.repeater),layout:{...e?{align:e}:{},...n?{center:n}:{},...i?{spacing:i}:{},...o?{columns:o}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:dq({parentEncoding:t,encoding:r,layer:!0}),parentProjection:hq({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{}},s)}},qq=new class extends HL{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=Oq(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=Oq(e,t)).encoding){const n={};for(const[i,r]of Zi(e.encoding))n[i]=Nq(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:Zi(n).map((([e,n])=>{const{init:i,bind:r,empty:o,...a}=n;"single"===a.type?(a.type="point",a.toggle=!1):"multi"===a.type&&(a.type="point"),t.emptySelections[e]="none"!==o;for(const s of Ki(t.selectionPredicates[e]??{}))s.empty="none"!==o;return{name:e,value:i,select:a,bind:r}}))}:e}},Uq=new Bq;function Iq(e){return i(e)?{type:e}:e??{}}const Wq=["background","padding"];function Hq(e,t){const n={};for(const i of Wq)e&&void 0!==e[i]&&(n[i]=ns(e[i]));return t&&(n.params=e.params),n}class Gq{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new Gq(Oi(this.explicit),Oi(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(e){return hr(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:t,explicit:n}){void 0!==t&&this.set(e,t,n)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,{explicit:t,implicit:n}){void 0!==t[e]?this.set(e,t[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of Qi(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function Vq(e){return{explicit:!0,value:e}}function Yq(e){return{explicit:!1,value:e}}function Xq(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:Jq(t,n,i,r)}}function Jq(e,t,n,i){return e.explicit&&t.explicit&&sT(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using ${kr(n)}.`}(n,i,e.value,t.value)),e}function Qq(e,t,n,i,r=Jq){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:_r(e.value,t.value)?e:r(e,t,n,i)}class Kq extends Gq{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function Zq(e){return $r(e,"url")}function eU(e){return $r(e,"values")}function tU(e){return $r(e,"name")&&!Zq(e)&&!eU(e)&&!nU(e)}function nU(e){return e&&(iU(e)||rU(e)||oU(e))}function iU(e){return $r(e,"sequence")}function rU(e){return $r(e,"sphere")}function oU(e){return $r(e,"graticule")}var aU,sU;function lU({invalid:e,isPath:t}){switch(nP(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(sU=aU||(aU={}))[sU.Raw=0]="Raw",sU[sU.Main=1]="Main",sU[sU.Row=2]="Row",sU[sU.Column=3]="Column",sU[sU.Lookup=4]="Lookup",sU[sU.PreFilterInvalid=5]="PreFilterInvalid",sU[sU.PostFilterInvalid=6]="PostFilterInvalid";class uU{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.includes(e)?sT("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const i of this._children)i.parent=e;this._children=[],e.removeChild(this);const n=e.parent.removeChild(e);this._parent=t,t.addChild(this,n),e.parent=this}}class cU extends uU{clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${mr()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}function fU(e){return void 0!==e.as}function dU(e){return`${e}_end`}class hU extends uU{clone(){return new hU(null,Oi(this.timeUnits))}constructor(e,t){super(e),this.timeUnits=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{const{field:r,timeUnit:o}=n;if(o){let a;if(yT(o)){if(SG(t)){const{mark:e,markDef:i,config:s}=t,l=OP({fieldDef:n,markDef:i,config:s});(IB(e)||l)&&(a={timeUnit:AT(o),field:r})}}else a={as:ej(n,{forAs:!0}),field:r,timeUnit:o};if(SG(t)){const{mark:e,markDef:r,config:o}=t,s=OP({fieldDef:n,markDef:r,config:o});IB(e)&&ra(i)&&.5!==s&&(a.rectBandPosition=s)}a&&(e[Bi(a)]=a)}return e}),{});return Ji(n)?null:new hU(e,n)}static makeFromTransform(e,t){const{timeUnit:n,...i}={...t},r={...i,timeUnit:AT(n)};return new hU(e,{[Bi(r)]:r})}merge(e){this.timeUnits={...this.timeUnits};for(const t in e.timeUnits)this.timeUnits[t]||(this.timeUnits[t]=e.timeUnits[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}removeFormulas(e){const t={};for(const[n,i]of Zi(this.timeUnits)){const r=fU(i)?i.as:`${i.field}_end`;e.has(r)||(t[n]=i)}this.timeUnits=t}producedFields(){return new Set(Ki(this.timeUnits).map((e=>fU(e)?e.as:dU(e.field))))}dependentFields(){return new Set(Ki(this.timeUnits).map((e=>e.field)))}hash(){return`TimeUnit ${Bi(this.timeUnits)}`}assemble(){const e=[];for(const t of Ki(this.timeUnits)){const{rectBandPosition:n}=t,i=AT(t.timeUnit);if(fU(t)){const{field:r,as:o}=t,{unit:a,utc:s,...l}=i,u=[o,`${o}_end`];e.push({field:ur(r),type:"timeunit",...a?{units:wT(a)}:{},...s?{timezone:"utc"}:{},...l,as:u}),e.push(...yU(u,n,i))}else if(t){const{field:r}=t,o=r.replaceAll("\\.","."),a=gU({timeUnit:i,field:o}),s=dU(o);e.push({type:"formula",expr:a,as:s}),e.push(...yU([o,s],n,i))}}return e}}const pU="offsetted_rect_start",mU="offsetted_rect_end";function gU({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=_T(i),{part:a,step:s}=FT(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', ${sr(t)}, ${n?-s:s})`}function yU([e,t],n,i){if(void 0!==n&&.5!==n){const r=sr(e),o=sr(t);return[{type:"formula",expr:vU([gU({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${pU}`},{type:"formula",expr:vU([r,o],n+.5),as:`${e}_${mU}`}]}return[]}function vU([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const bU="_tuple_fields";class xU{constructor(...e){this.items=e,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const wU={defined:()=>!0,parse:(e,n,i)=>{const r=n.name,o=n.project??(n.project=new xU),a={},l={},u=new Set,f=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=tr(`${r}_${n}`);for(let o=1;u.has(i);o++)i=tr(`${r}_${n}_${o}`);return u.add(i),{[t]:i}},d=n.type,h=e.config.selection[d],p=void 0!==i.value?c(i.value):null;let{fields:m,encodings:g}=s(i.select)?i.select:{};if(!m&&!g&&p)for(const c of p)if(s(c))for(const e of Qi(c))t(Eo,e)?(g||(g=[])).push(e):"interval"===d?(sT('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),g=h.encodings):(m??(m=[])).push(e);m||g||(g=h.encodings,"fields"in h&&(m=h.fields));for(const t of g??[]){const n=e.fieldDef(t);if(n){let i=n.field;if(n.aggregate){sT(NR(t,n.aggregate));continue}if(!i){sT(OR(t));continue}if(n.timeUnit&&!yT(n.timeUnit)){i=e.vgField(t);const r={timeUnit:n.timeUnit,as:i,field:n.field};l[Bi(r)]=r}if(!a[i]){const r={field:i,channel:t,type:"interval"===d&&$a(t)&&hB(e.getScaleComponent(t).get("type"))?"R":n.bin?"R-RE":"E",index:o.items.length};r.signals={...f(r,"data"),...f(r,"visual")},o.items.push(a[i]=r),o.hasField[i]=a[i],o.hasSelectionId=o.hasSelectionId||i===mL,ho(t)?(r.geoChannel=t,r.channel=fo(t),o.hasChannel[r.channel]=a[i]):o.hasChannel[t]=a[i]}}else sT(OR(t))}for(const t of m??[]){if(o.hasField[t])continue;const e={type:"E",field:t,index:o.items.length};e.signals={...f(e,"data")},o.items.push(e),o.hasField[t]=e,o.hasSelectionId=o.hasSelectionId||t===mL}p&&(n.init=p.map((e=>o.items.map((t=>s(e)?void 0!==e[t.geoChannel||t.channel]?e[t.geoChannel||t.channel]:e[t.field]:e))))),Ji(l)||(o.timeUnit=new hU(null,l))},signals:(e,t,n)=>{const i=t.name+bU;return n.filter((e=>e.name===i)).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(zU)})}},_U="_curr",kU="anim_value",$U="anim_clock",DU="eased_anim_clock",AU="min_extent",SU="max_range_extent",EU="last_tick_at",FU="is_playing",CU=1/60*1e3,MU={defined:e=>"point"===e.type,topLevelSignals:(e,t,n)=>(VI(t)&&(n=n.concat([{name:$U,init:"0",on:[{events:{type:"timer",throttle:CU},update:`${FU} ? (${$U} + (now() - ${EU}) > ${SU} ? 0 : ${$U} + (now() - ${EU})) : ${$U}`}]},{name:EU,init:"now()",on:[{events:[{signal:$U},{signal:FU}],update:"now()"}]},{name:FU,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+bU,o=t.project,s="(item().isVoronoi ? datum.datum : datum)",l=Ki(e.component.selection??{}).reduce(((e,t)=>"interval"===t.type?e.concat(t.name+qU):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(l?` && ${l}`:"");let c=`unit: ${WI(e)}, `;if(t.project.hasSelectionId)c+=`${mL}: ${s}[${a(mL)}]`;else if(VI(t))c+=`fields: ${r}, values: [${kU} ? ${kU} : ${AU}]`;else{c+=`fields: ${r}, values: [${o.items.map((t=>{const n=e.fieldDef(t.channel);return(null==n?void 0:n.bin)?`[${s}[${a(e.vgField(t.channel,{}))}], ${s}[${a(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${s}[${a(t.field)}]`})).join(", ")}]`}if(VI(t))return n.concat((f=t.name,d=e.scaleName(Ur),[{name:DU,update:$U},{name:`${f}_domain`,init:`domain('${d}')`},{name:AU,init:`extent(${f}_domain)[0]`},{name:SU,init:`extent(range('${d}'))[1]`},{name:kU,update:`invert('${d}', ${DU})`}]),[{name:i+LI,on:[{events:[{signal:DU},{signal:kU}],update:`{${c}}`,force:!0}]}]);{const e=t.events;return n.concat([{name:i+LI,on:e?[{events:e,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}var f,d}};function zU(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=ur(r.field),r}function OU(e,t=!0,n=m){if(u(e)){const i=e.map((e=>OU(e,t,n)));return t?`[${i.join(", ")}]`:i}return lT(e)?n(t?pT(e):function(e){const t=hT(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(kr(e)):e}function NU(e,t){for(const n of Ki(e.component.selection??{})){const i=n.name;let r=`${i}${LI}, ${"global"===n.resolve?"true":`{unit: ${WI(e)}}`}`;for(const o of II)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+qI,on:[{events:{signal:n.name+LI},update:`modify(${a(n.name+jI)}, ${r})`}]})}return BU(t)}function RU(e,t){if(e.component.selection&&Qi(e.component.selection).length){const n=a(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:zM("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return BU(t)}function TU(e,t){for(const n of Ki(e.component.selection??{}))for(const i of II)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function BU(e){return e.map((e=>(e.on&&!e.on.length&&delete e.on,e)))}const PU={defined:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!$a(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;"sequential"==a&&sT("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&hB(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):sT("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter((e=>0===n.filter((t=>t.name===e.signals.data)).length));if(!e.parent||LU(e)||0===i.length)return n;const r=n.find((e=>e.name===t.name));let o=r.update;if(o.includes(UI))r.update=`{${i.map((e=>`${a(ur(e.field))}: ${e.signals.data}`)).join(", ")}}`;else{for(const e of i){const t=`${a(ur(e.field))}: ${e.signals.data}`;o.includes(t)||(o=`${o.substring(0,o.length-1)}, ${t}}`)}r.update=o}return n.concat(i.map((e=>({name:e.signals.data}))))},signals:(e,t,n)=>{if(e.parent&&!LU(e))for(const i of t.scales){const e=n.find((e=>e.name===i.signals.data));e.push="outer",delete e.value,delete e.update}return n}};function jU(e,t){return`domain(${a(e.scaleName(t))})`}function LU(e){return e.parent&&CG(e.parent)&&(!e.parent.parent||LU(e.parent.parent))}const qU="_brush",UU="_scale_trigger",IU="geo_interval_init_tick",WU="_init",HU={defined:e=>"interval"===e.type,parse:(e,t,n)=>{var i;if(e.hasProjection){const e={...s(n.select)?n.select:{}};e.fields=[mL],e.encodings||(e.encodings=n.value?Qi(n.value):[jr,Pr]),n.select={type:"interval",...e}}if(t.translate&&!PU.defined(t)){const e=`!event.item || event.item.mark.name !== ${a(t.name+qU)}`;for(const n of t.events){if(!n.between){sT(`${n} is not an ordered event stream for interval selections.`);continue}const t=c((i=n.between[0]).filter??(i.filter=[]));t.includes(e)||t.push(e)}}},signals:(e,t,n)=>{const i=t.name,r=i+LI,o=Ki(t.project.hasChannel).filter((e=>e.channel===Er||e.channel===Fr)),s=t.init?t.init[0]:null;if(n.push(...o.reduce(((n,i)=>n.concat(function(e,t,n,i){const r=!e.hasProjection,o=n.channel,s=n.signals.visual,l=a(r?e.scaleName(o):e.projectionName()),u=e=>`scale(${l}, ${e})`,c=e.getSizeSignalRef(o===Er?"width":"height").signal,f=`${o}(unit)`,d=t.events.reduce(((e,t)=>[...e,{events:t.between[0],update:`[${f}, ${f}]`},{events:t,update:`[${s}[0], clamp(${f}, 0, ${c})]`}]),[]);if(r){const r=n.signals.data,a=PU.defined(t),c=e.getScaleComponent(o),f=c?c.get("type"):void 0,h=i?{init:OU(i,!0,u)}:{value:[]};return d.push({events:{signal:t.name+UU},update:hB(f)?`[${u(`${r}[0]`)}, ${u(`${r}[1]`)}]`:"[0, 0]"}),a?[{name:r,on:[]}]:[{name:s,...h,on:d},{name:r,...i?{init:OU(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${l}, ${s})`}]}]}{const e=o===Er?0:1,n=t.name+WU;return[{name:s,...i?{init:`[${n}[0][${e}], ${n}[1][${e}]]`}:{value:[]},on:d}]}}(e,t,i,s&&s[i.index]))),[])),e.hasProjection){const l=a(e.projectionName()),u=e.projectionName()+"_center",{x:c,y:f}=t.project.hasChannel,d=c&&c.signals.visual,h=f&&f.signals.visual,p=c?s&&s[c.index]:`${u}[0]`,m=f?s&&s[f.index]:`${u}[1]`,g=t=>e.getSizeSignalRef(t).signal,y=`[[${d?d+"[0]":"0"}, ${h?h+"[0]":"0"}],[${d?d+"[1]":g("width")}, ${h?h+"[1]":g("height")}]]`;if(s&&(n.unshift({name:i+WU,init:`[scale(${l}, [${c?p[0]:p}, ${f?m[0]:m}]), scale(${l}, [${c?p[1]:p}, ${f?m[1]:m}])]`}),!c||!f)){n.find((e=>e.name===u))||n.unshift({name:u,update:`invert(${l}, [${g("width")}/2, ${g("height")}/2])`})}const v=`vlSelectionTuples(${`intersect(${y}, {markname: ${a(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${WI(e)}}`})`,b=o.map((e=>e.signals.visual));return n.concat({name:r,on:[{events:[...b.length?[{signal:b.join(" || ")}]:[],...s?[{signal:IU}]:[]],update:v}]})}{if(!PU.defined(t)){const t=i+UU,r=o.map((t=>{const n=t.channel,{data:i,visual:r}=t.signals,o=a(e.scaleName(n)),s=hB(e.getScaleComponent(n).get("type"))?"+":"";return`(!isArray(${i}) || (${s}invert(${o}, ${r})[0] === ${s}${i}[0] && ${s}invert(${o}, ${r})[1] === ${s}${i}[1]))`}));r.length&&n.push({name:t,value:{},on:[{events:o.map((t=>({scale:e.scaleName(t.channel)}))),update:r.join(" && ")+` ? ${t} : {}`}]})}const l=o.map((e=>e.signals.data)),u=`unit: ${WI(e)}, fields: ${i+bU}, values`;return n.concat({name:r,...s?{init:`{${u}: ${OU(s)}}`}:{},...l.length?{on:[{events:[{signal:l.join(" || ")}],update:`${l.join(" && ")} ? {${u}: [${l}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>{if(SG(e)&&e.hasProjection&&t.init){n.filter((e=>e.name===IU)).length||n.unshift({name:IU,value:null,on:[{events:"timer{1}",update:`${IU} === null ? {} : ${IU}`}]})}return n},marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,s=null==r?void 0:r.signals.visual,l=null==o?void 0:o.signals.visual,u=`data(${a(t.name+jI)})`;if(PU.defined(t)||!r&&!o)return n;const c={x:void 0!==r?{signal:`${s}[0]`}:{value:0},y:void 0!==o?{signal:`${l}[0]`}:{value:0},x2:void 0!==r?{signal:`${s}[1]`}:{field:{group:"width"}},y2:void 0!==o?{signal:`${l}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const a of Qi(c))c[a]=[{test:`${u}.length && ${u}[0].unit === ${WI(e)}`,...c[a]},{value:0}];const{fill:f,fillOpacity:d,cursor:h,...p}=t.mark,m=Qi(p).reduce(((e,t)=>(e[t]=[{test:[void 0!==r&&`${s}[0] !== ${s}[1]`,void 0!==o&&`${l}[0] !== ${l}[1]`].filter((e=>e)).join(" && "),value:p[t]},{value:null}],e)),{}),g=h??(t.translate?"move":null);return[{name:`${i+qU}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:c}},...n,{name:i+qU,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...c,...m}}}]}};function GU({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=BP(t)&&t.condition;let a=[];if(o){a=c(o).map((t=>{const n=r(t);if(function(e){return $r(e,"param")}(t)){const{param:i,empty:r}=t;return{test:KI(e,{param:i,empty:r}),...n}}return{test:eW(e,t.test),...n}}))}void 0!==i&&a.push(i);const s=r(t);return void 0!==s&&a.push(s),a.length>1||1===a.length&&Boolean(a[0].test)?{[n]:a}:1===a.length?{[n]:a[0]}:{}}function VU(e,t="text"){const n=e.encoding[t];return GU({model:e,channelDef:n,vgChannel:t,mainRefFn:t=>YU(t,e.config),invalidValueRef:void 0})}function YU(e,t,n="datum"){if(e){if(YP(e))return rs(e.value);if(GP(e)){const{format:i,formatType:r}=lj(e);return pP({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function XU(e,t={}){const{encoding:n,markDef:r,config:o,stack:a}=e,l=n.tooltip;if(u(l))return{tooltip:QU({tooltip:l},a,o,t)};{const u=t.reactiveGeom?"datum.datum":"datum";return GU({model:e,channelDef:l,vgChannel:"tooltip",mainRefFn:e=>{const l=YU(e,o,u);if(l)return l;if(null===e)return;let c=us("tooltip",r,o);return!0===c&&(c={content:"encoding"}),i(c)?{value:c}:s(c)?Xa(c)?c:"encoding"===c.content?QU(n,a,o,t):{signal:u}:void 0},invalidValueRef:void 0})}}function JU(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function l(n,i){const l=zo(i),u=VP(n)?n:{...n,type:e[l].type},f=u.title||sj(u,r),d=c(f).join(", ").replaceAll(/"/g,'\\"');let h;if(ra(i)){const t="x"===i?"x2":"y2",n=uj(e[t]);if(qa(u.bin)&&n){const e=ej(u,{expr:a}),i=ej(n,{expr:a}),{format:s,formatType:l}=lj(u);h=_P(e,i,s,l,r),o.add(t)}}if((ra(i)||i===Tr||i===Nr)&&t&&t.fieldChannel===i&&"normalize"===t.offset){const{format:e,formatType:t}=lj(u);h=pP({fieldOrDatumDef:u,format:e,formatType:t,expr:a,config:r,normalizeStack:!0}).signal}h??(h=YU(u,r,a).signal),s.push({channel:i,key:d,value:h})}Bj(e,((e,t)=>{LP(e)?l(e,t):PP(e)&&l(e.condition,t)}));const u={};for(const{channel:c,key:f,value:d}of s)o.has(c)||u[f]||(u[f]=d);return u}function QU(e,t,n,{reactiveGeom:i}={}){const r=JU(e,t,n,{reactiveGeom:i}),o=Zi(r).map((([e,t])=>`"${e}": ${t}`));return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function KU(e){const{markDef:t,config:n}=e,i=us("aria",t,n);return!1===i?{}:{...i?{aria:i}:{},...ZU(e),...eI(e)}}function ZU(e){const{mark:n,markDef:i,config:r}=e;if(!1===r.aria)return{};const o=us("ariaRoleDescription",i,r);return null!=o?{ariaRoleDescription:{value:o}}:t(Za,n)?{}:{ariaRoleDescription:{value:n}}}function eI(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return GU({model:e,channelDef:o,vgChannel:"description",mainRefFn:t=>YU(t,e.config),invalidValueRef:void 0});const a=us("description",n,i);if(null!=a)return{description:rs(a)};if(!1===i.aria)return{};const s=JU(t,r,i);return Ji(s)?void 0:{description:{signal:Zi(s).map((([e,t],n)=>`"${n>0?"; ":""}${e}: " + (${t})`)).join(" + ")}}}function tI(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:l}=n;const u=r[e];void 0===s&&(l??(l=us(e,i,o,{vgChannel:a,ignoreVgConfig:!BP(u)})),void 0!==l&&(s=rs(l)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=oP({...c,scaleChannel:e,channelDef:u});return GU({model:t,channelDef:u,vgChannel:a??e,invalidValueRef:f,mainRefFn:t=>cP({...c,channel:e,channelDef:t,stack:null,defaultRef:s})})}function nI(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??us("filled",n,r),s=ji(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,l=us(!0===a?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[!0===a&&"color"]??s,u=us(!1===a?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[!1===a&&"color"],c=a?"fill":"stroke",f={...l?{fill:rs(l)}:{},...u?{stroke:rs(u)}:{}};return n.color&&(a?n.fill:n.stroke)&&sT(IR("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...tI("color",e,{vgChannel:c,defaultValue:a?l:u}),...tI("fill",e,{defaultValue:i.fill?l:void 0}),...tI("stroke",e,{defaultValue:i.stroke?u:void 0})}}function iI(e){const{encoding:t,mark:n}=e,i=t.order;return!UB(n)&&YP(i)?GU({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:e=>rs(e.value),invalidValueRef:void 0}):{}}function rI({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if(("xOffset"===o||"yOffset"===o)&&s){return{offsetType:"encoding",offset:cP({channel:o,channelDef:s,markDef:t,config:null==i?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:rs(a),bandPosition:r})}}const l=t[o];return l?{offsetType:"visual",offset:l}:{}}function oI(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,l=r[e],u=r[No(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=rI({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=aI({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),m=!l&&ra(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=e;if(GP(n)&&r&&t===r.fieldChannel){if(LP(n)){let e=n.bandPosition;if(void 0!==e||"text"!==a.type||"radius"!==t&&"theta"!==t||(e=.5),void 0!==e)return uP({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:e,offset:o})}return lP(n,i,{suffix:"end"},{offset:o})}return sP(e)}({channel:e,channelDef:l,channel2Def:u,markDef:o,config:a,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:"encoding"===h?0:void 0});return m?{[i||e]:m}:void 0}function aI({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=zo(n),l=Oo(n),u=us(n,o,a,{vgChannel:l});if(void 0!==u)return fP(n,u);switch(t){case"zeroOrMin":return sI({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return sI({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Ro(n)],mult:.5}}}}function sI({mainChannel:e,config:t,...n}){const i=rP(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if("zeroOrMin"===r)return{value:0};const{widthSignal:e,heightSignal:t}=r.zeroOrMax;return{signal:`min(${e},${t})/2`}}case"theta":return"zeroOrMin"===r?{value:0}:{signal:"2*PI"};case"x":return"zeroOrMin"===r?{value:0}:{field:{group:"width"}};case"y":return"zeroOrMin"===r?{field:{group:"height"}}:{value:0}}}const lI={left:"x",center:"xc",right:"x2"},uI={top:"y",middle:"yc",bottom:"y2"};function cI(e,t,n,i="middle"){if("radius"===e||"theta"===e)return Oo(e);const r="x"===e?"align":"baseline",o=us(r,t,n);let a;return Xa(o)?(sT(function(e){return`The ${e} for range marks cannot be an expression`}(r)),a=void 0):a=o,"x"===e?lI[a||("top"===i?"left":"center")]:uI[a||i]}function fI(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?dI(e,t,{defaultPos:n,defaultPos2:i}):oI(e,t,{defaultPos:n})}function dI(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=No(e),s=Ro(e),l=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,l=zo(n),u=Ro(n),c=Oo(n),f=i[l],d=e.scaleName(l),h=e.getScaleComponent(l),{offset:p}=rI(n in i||n in o?{channel:n,markDef:o,encoding:i,model:e}:{channel:l,markDef:o,encoding:i,model:e});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const t=Ro(n),i=e.markDef[t];return null!=i?{[t]:{value:i}}:{[c]:{field:e.getName(n)}}}const m=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u}){if(GP(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return lP(t,o,{suffix:"start"},{offset:l});return sP({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:l,defaultRef:u})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:h,stack:a,offset:p,defaultRef:void 0});if(void 0!==m)return{[c]:m};return hI(n,o)||hI(n,{[n]:fs(n,o,s.style),[u]:fs(u,o,s.style)})||hI(n,s[r])||hI(n,s.mark)||{[c]:aI({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}(t,i,a);return{...oI(e,t,{defaultPos:n,vgChannel:l[s]?cI(e,r,o):Oo(e)}),...l}}function hI(e,t){const n=Ro(e),i=Oo(e);if(void 0!==t[i])return{[i]:fP(e,t[i])};if(void 0!==t[e])return{[i]:fP(e,t[e])};if(t[n]){const i=t[n];if(!QB(i))return{[n]:fP(e,i)};sT(function(e){return`Position range does not support relative band size for ${e}.`}(n))}}function pI(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=No(t),s=Ro(t),l=i[t],c=i[a],f=e.getScaleComponent(t),d=f?f.get("type"):void 0,h=r.orient,p=i[s]??i.size??us("size",r,n,{vgChannel:s}),m=To(t),g="bar"===o&&("x"===t?"vertical"===h:"horizontal"===h)||"tick"===o&&("y"===t?"vertical"===h:"horizontal"===h);return!LP(l)||!(La(l.bin)||qa(l.bin)||l.timeUnit&&!c)||p&&!QB(p)||i[m]||dB(d)?(GP(l)&&dB(d)||g)&&!c?function(e,t,n){var i,r;const{markDef:o,encoding:a,config:s,stack:l}=n,c=o.orient,f=n.scaleName(t),d=n.getScaleComponent(t),h=Ro(t),p=No(t),m=To(t),g=n.scaleName(m),y=n.getScaleComponent(Bo(t)),v="tick"===o.type||"horizontal"===c&&"y"===t||"vertical"===c&&"x"===t;let b;(a.size||o.size)&&(v?b=tI("size",n,{vgChannel:h,defaultRef:rs(o.size)}):sT(function(e){return`Cannot apply size to non-oriented mark "${e}".`}(o.type)));const x=!!b,w=NP({channel:t,fieldDef:e,markDef:o,config:s,scaleType:null==(i=d||y)?void 0:i.get("type"),useVlSizeChannel:v});b=b||{[h]:mI(h,g||f,y||d,s,w,!!e,o.type)};const _="band"===(null==(r=d||y)?void 0:r.get("type"))&&QB(w)&&!x?"top":"middle",k=cI(t,o,s,_),$="xc"===k||"yc"===k,{offset:D,offsetType:A}=rI({channel:t,markDef:o,encoding:a,model:n,bandPosition:$?.5:0}),S=sP({channel:t,channelDef:e,markDef:o,config:s,scaleName:f,scale:d,stack:l,offset:D,defaultRef:aI({model:n,defaultPos:"mid",channel:t,scaleName:f,scale:d}),bandPosition:$?"encoding"===A?0:.5:Xa(w)?{signal:`(1-${w})/2`}:QB(w)?(1-w.band)/2:0});if(h)return{[k]:S,...b};{const e=Oo(p),t=b[h],n=D?{...t,offset:D}:t;return{[k]:S,[e]:u(S)?[S[0],{...S[1],offset:n}]:{...S,offset:n}}}}(l,t,e):dI(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:e,fieldDef2:t,channel:n,model:i}){var r;const{config:o,markDef:a,encoding:s}=i,l=i.getScaleComponent(n),u=i.scaleName(n),c=l?l.get("type"):void 0,f=l.get("reverse"),d=NP({channel:n,fieldDef:e,markDef:a,config:o,scaleType:c}),h=null==(r=i.component.axes[n])?void 0:r[0],p=(null==h?void 0:h.get("translate"))??.5,m=ra(n)?us("binSpacing",a,o)??0:0,g=No(n),y=Oo(n),v=Oo(g),b=cs("minBandSize",a,o),{offset:x}=rI({channel:n,markDef:a,encoding:s,model:i,bandPosition:0}),{offset:w}=rI({channel:g,markDef:a,encoding:s,model:i,bandPosition:0}),_=function({scaleName:e,fieldDef:t}){const n=ej(t,{expr:"datum"});return`abs(scale("${e}", ${ej(t,{expr:"datum",suffix:"end"})}) - scale("${e}", ${n}))`}({fieldDef:e,scaleName:u}),k=gI(n,m,f,p,x,b,_),$=gI(g,m,f,p,w??x,b,_),D=Xa(d)?{signal:`(1-${d.signal})/2`}:QB(d)?(1-d.band)/2:.5,A=OP({fieldDef:e,fieldDef2:t,markDef:a,config:o});if(La(e.bin)||e.timeUnit){const t=e.timeUnit&&.5!==A;return{[v]:yI({fieldDef:e,scaleName:u,bandPosition:D,offset:$,useRectOffsetField:t}),[y]:yI({fieldDef:e,scaleName:u,bandPosition:Xa(D)?{signal:`1-${D.signal}`}:1-D,offset:k,useRectOffsetField:t})}}if(qa(e.bin)){const n=lP(e,u,{},{offset:$});if(LP(t))return{[v]:n,[y]:lP(t,u,{},{offset:k})};if(Ua(e.bin)&&e.bin.step)return{[v]:n,[y]:{signal:`scale("${u}", ${ej(e,{expr:"datum"})} + ${e.bin.step})`,offset:k}}}return void sT(iT(g))}({fieldDef:l,fieldDef2:c,channel:t,model:e})}function mI(e,t,i,r,o,a,s){if(QB(o)){if(!i)return{mult:o.band,field:{group:e}};{const e=i.get("type");if("band"===e){let e=`bandwidth('${t}')`;1!==o.band&&(e=`${o.band} * ${e}`);const n=cs("minBandSize",{type:s},r);return{signal:n?`max(${as(n)}, ${e})`:e}}1!==o.band&&(sT(function(e){return`Cannot use the relative band size with ${e} scale.`}(e)),o=void 0)}}else{if(Xa(o))return o;if(o)return{value:o}}if(i){const e=i.get("range");if(Ja(e)&&n(e.step))return{value:e.step-2}}if(!a){const{bandPaddingInner:t,barBandPaddingInner:i,rectBandPaddingInner:o,tickBandPaddingInner:a}=r.scale,l=hr(t,"tick"===s?a:"bar"===s?i:o);if(Xa(l))return{signal:`(1 - (${l.signal})) * ${e}`};if(n(l))return{signal:`${1-l} * ${e}`}}return{value:FL(r.view,e)-2}}function gI(e,t,n,i,r,o,a){if(uo(e))return 0;const s="x"===e||"y2"===e,l=s?-t/2:t/2;if(Xa(n)||Xa(r)||Xa(i)||o){const e=as(n),t=as(r),u=as(i),c=as(o),f=o?`(${a} < ${c} ? ${s?"":"-"}0.5 * (${c} - (${a})) : ${l})`:l;return{signal:(u?`${u} + `:"")+(e?`(${e} ? -1 : 1) * `:"")+(t?`(${t} + ${f})`:f)}}return r=r||0,i+(n?-r-l:+r+l)}function yI({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return uP({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:pU,endSuffix:mU}:{}})}const vI=new Set(["aria","width","height"]);function bI(e,t){const{fill:n,stroke:i}="include"===t.color?nI(e):{};return{...wI(e.markDef,t),...xI("fill",n),...xI("stroke",i),...tI("opacity",e),...tI("fillOpacity",e),...tI("strokeOpacity",e),...tI("strokeWidth",e),...tI("strokeDash",e),...iI(e),...XU(e),...VU(e,"href"),...KU(e)}}function xI(e,t){return t?{[e]:t}:{}}function wI(e,t){return Ka.reduce(((n,i)=>(!vI.has(i)&&$r(e,i)&&"ignore"!==t[i]&&(n[i]=rs(e[i])),n)),{})}function _I(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef(((r,o)=>{var a;let s;if(!$a(o)||!(s=e.getScaleType(o)))return;const l=Ta(r.aggregate),u=iP({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:l});if("break-paths-filter-domains"===(c=u)||"break-paths-show-domains"===c){const t=e.vgField(o,{expr:"datum",binSuffix:(null==(a=e.stack)?void 0:a.impute)?"mid":void 0});t&&i.add(t)}var c})),i.size>0){return{defined:{signal:[...i].map((e=>LT(e,!0))).join(" && ")}}}}function kI(e,t){if(void 0!==t)return{[e]:rs(t)}}const $I="voronoi",DI={defined:e=>"point"===e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName($I)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(UB(o))return sT(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName($I),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...XU(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,l=!1;return n.forEach(((t,n)=>{const i=t.name??"";i===e.component.mark[0].name?s=n:i.includes($I)&&(l=!0)})),l||n.splice(s+1,0,a),n}},AI={defined:e=>"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!yL(e.bind),parse:(e,t,n)=>GI(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,s=t.init&&t.init[0],l=DI.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach(((e,r)=>{const u=tr(`${i}_${e.field}`);n.filter((e=>e.name===u)).length||n.unshift({name:u,...s?{init:OU(s[r])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${l}[${a(e.field)}] : null`}]:[],bind:o[e.field]??o[e.channel]??o})})),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+LI)),a=i+bU,s=r.items.map((e=>tr(`${i}_${e.field}`))),l=s.map((e=>`${e} !== null`)).join(" && ");return s.length&&(o.update=`${l} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},SI="_toggle",EI={defined:e=>"point"===e.type&&!VI(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+SI,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+LI,i=t.name+SI;return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${WI(e)}}, `)+`${i} ? ${n} : null`}},FI={defined:e=>void 0!==e.clear&&!1!==e.clear&&!VI(e),parse:(e,t)=>{t.clear&&(t.clear=i(t.clear)?zM(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(AI.defined(t))for(const i of t.project.items){const e=n.findIndex((e=>e.name===tr(`${t.name}_${i.field}`)));-1!==e&&n[e].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)for(const r of t.project.items){const e=n.findIndex((e=>e.name===r.signals.visual));if(i(e,"[0, 0]"),-1===e){i(n.findIndex((e=>e.name===r.signals.data)),"null")}}else{let e=n.findIndex((e=>e.name===t.name+LI));i(e,"null"),EI.defined(t)&&(e=n.findIndex((e=>e.name===t.name+SI)),i(e,"false"))}return n}},CI={defined:e=>{const t="global"===e.resolve&&e.bind&&yL(e.bind),n=1===e.project.items.length&&e.project.items[0].field!==mL;return t&&!n&&sT("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const r=Oi(n);if(r.select=i(r.select)?{type:r.select,toggle:t.toggle}:{...r.select,toggle:t.toggle},GI(t,r),s(n.select)&&(n.select.on||n.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=c(n.filter??[]),n.filter.includes(e)||n.filter.push(e)}const o=vL(t.bind)?t.bind.legend:"click",a=i(o)?zM(o,"view"):c(o);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=vL(t.bind)&&t.bind.legend,o=e=>t=>{const n=Oi(t);return n.markname=e,n};for(const a of t.project.items){if(!a.hasLegend)continue;const e=`${tr(a.field)}_legend`,s=`${i}_${e}`;if(0===n.filter((e=>e.name===s)).length){const i=r.merge.map(o(`${e}_symbols`)).concat(r.merge.map(o(`${e}_labels`))).concat(r.merge.map(o(`${e}_entries`)));n.unshift({name:s,...t.init?{}:{value:null},on:[{events:i,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+LI)),a=i+bU,s=r.items.filter((e=>e.hasLegend)).map((e=>tr(`${i}_${tr(e.field)}_legend`))),l=`${s.map((e=>`${e} !== null`)).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map((e=>({signal:e}))),update:l}):s.length>0&&(o.update=l,delete o.value,delete o.on);const u=n.find((e=>e.name===i+SI)),c=vL(t.bind)&&t.bind.legend;return u&&(t.events?u.on.push({...u.on[0],events:c}):u.on[0].events=c),n}};const MI="_translate_anchor",zI="_translate_delta",OI={defined:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=PU.defined(t),o=i+MI,{x:a,y:s}=t.project.hasChannel;let l=zM(t.translate,"scope");return r||(l=l.map((e=>(e.between[0].markname=i+qU,e)))),n.push({name:o,value:{},on:[{events:l.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==a?`, extent_x: ${r?jU(e,Er):`slice(${a.signals.visual})`}`:"")+(void 0!==s?`, extent_y: ${r?jU(e,Fr):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+zI,value:{},on:[{events:l,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&NI(e,t,a,"width",n),void 0!==s&&NI(e,t,s,"height",n),n}};function NI(e,t,n,i,r){const o=t.name,a=o+MI,s=o+zI,l=n.channel,u=PU.defined(t),c=r.find((e=>e.name===n.signals[u?"data":"visual"])),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(l),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${a}.extent_${l}`,g=`${u&&d?"log"===h?"panLog":"symlog"===h?"panSymlog":"pow"===h?"panPow":"panLinear":"panLinear"}(${m}, ${`${u?l===Er?p?"":"-":p?"-":"":""}${s}.${l} / ${u?`${f}`:`span(${m})`}`}${u?"pow"===h?`, ${d.get("exponent")??1}`:"symlog"===h?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:u?g:`clampRange(${g}, 0, ${f})`})}const RI="_zoom_anchor",TI="_zoom_delta",BI={defined:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=PU.defined(t),o=i+TI,{x:s,y:l}=t.project.hasChannel,u=a(e.scaleName(Er)),c=a(e.scaleName(Fr));let f=zM(t.zoom,"scope");return r||(f=f.map((e=>(e.markname=i+qU,e)))),n.push({name:i+RI,on:[{events:f,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter((e=>e)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==s&&PI(e,t,s,"width",n),void 0!==l&&PI(e,t,l,"height",n),n}};function PI(e,t,n,i,r){const o=t.name,a=n.channel,s=PU.defined(t),l=r.find((e=>e.name===n.signals[s?"data":"visual"])),u=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(a),f=c&&c.get("type"),d=s?jU(e,a):l.name,h=o+TI,p=`${s&&c?"log"===f?"zoomLog":"symlog"===f?"zoomSymlog":"pow"===f?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${RI}.${a}`}, ${h}${s?"pow"===f?`, ${c.get("exponent")??1}`:"symlog"===f?`, ${c.get("constant")??1}`:"":""})`;l.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${u})`})}const jI="_store",LI="_tuple",qI="_modify",UI="vlSelectionResolve",II=[MU,HU,wU,EI,AI,PU,CI,FI,OI,BI,DI];function WI(e,{escape:t}={escape:!0}){let n=t?a(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!EG(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of vo)e[t]&&(n+=` + '__facet_${t}_' + (facet[${a(i.vgField(t))}])`)}return n}function HI(e){return Ki(e.component.selection??{}).reduce(((e,t)=>e||t.project.hasSelectionId),!1)}function GI(e,t){!i(t.select)&&t.select.on||delete e.events,!i(t.select)&&t.select.clear||delete e.clear,!i(t.select)&&t.select.toggle||delete e.toggle}function VI(e){var t;return null==(t=e.events)?void 0:t.find((e=>"type"in e&&"timer"===e.type))}function YI(e){const t=[];return"Identifier"===e.type?[e.name]:"Literal"===e.type?[e.value]:("MemberExpression"===e.type&&(t.push(...YI(e.object)),t.push(...YI(e.property))),t)}function XI(e){return"MemberExpression"===e.object.type?XI(e.object):"datum"===e.object.name}function JI(e){const t=ME(e),n=new Set;return t.visit((e=>{"MemberExpression"===e.type&&XI(e)&&n.add(YI(e).slice(1).join("."))})),n}class QI extends uU{clone(){return new QI(null,this.model,Oi(this.filter))}constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=eW(this.model,this.filter,this),this._dependentFields=JI(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function KI(e,t,n,r="datum"){const o=i(t)?t:t.param,s=tr(o),l=a(s+jI);let u;try{u=e.getSelectionComponent(s,o)}catch(d){return`!!${s}`}if(u.project.timeUnit){const t=n??e.component.data.raw,i=u.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}const c=`${u.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${l}, ${r}${"global"===u.resolve?")":`, ${a(u.resolve)})`}`,f=`length(data(${l}))`;return!1===t.empty?`${f} && ${c}`:`!${f} || ${c}`}function ZI(e,t,n){const i=tr(t),r=n.encoding;let o,s=n.field;try{o=e.getSelectionComponent(i,t)}catch(l){return i}if(r||s){if(r&&!s){const e=o.project.items.filter((e=>e.channel===r));!e.length||e.length>1?(s=o.project.items[0].field,sT(function(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${a(t)} encoding found for selection ${a(n.param)}. Using "field": ${a(i)}.`}(e,r,n,s))):s=e[0].field}}else s=o.project.items[0].field,o.project.items.length>1&&sT(function(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${a(e)}.`}(s));return`${o.name}[${a(ur(s))}]`}function eW(e,t,n){return nr(t,(t=>i(t)?t:function(e){return $r(e,"param")}(t)?KI(e,t,n):jT(t)))}function tW(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function nW(e,t,n,i={header:!1}){var r,o;const{disable:a,orient:s,scale:l,labelExpr:f,title:d,zindex:h,...p}=e.combine();if(!a){for(const e in p){const n=e,i=kj[n],r=p[n];if(i&&i!==t&&"both"!==i)delete p[n];else if(wj(r)){const{condition:e,...t}=r,i=c(e),o=xj[n];if(o){const{vgProp:e,part:r}=o;tW(p,r,e,[...i.map((e=>{const{test:t,...n}=e;return{test:eW(null,t),...n}})),t]),delete p[n]}else if(null===o){const e={signal:i.map((e=>{const{test:t,...n}=e;return`${eW(null,t)} ? ${os(n)} : `})).join("")+os(t)};p[n]=e}}else if(Xa(r)){const e=xj[n];if(e){const{vgProp:t,part:i}=e;tW(p,i,t,r),delete p[n]}}ji(["labelAlign","labelBaseline"],n)&&null===p[n]&&delete p[n]}if("grid"===t){if(!p.grid)return;if(p.encode){const{grid:e}=p.encode;p.encode={...e?{grid:e}:{}},Ji(p.encode)&&delete p.encode}return{scale:l,orient:s,...p,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:hr(h,0)}}{if(!i.header&&e.mainExtracted)return;if(void 0!==f){let e=f;(null==(o=null==(r=p.encode)?void 0:r.labels)?void 0:o.update)&&Xa(p.encode.labels.update.text)&&(e=cr(f,"datum.label",p.encode.labels.update.text.signal)),tW(p,"labels","text",{signal:e})}if(null===p.labelAlign&&delete p.labelAlign,p.encode){for(const t of _j)e.hasAxisPart(t)||delete p.encode[t];Ji(p.encode)&&delete p.encode}const t=function(e,t){if(e)return u(e)&&!Ya(e)?e.map((e=>sj(e,t))).join(", "):e}(d,n);return{scale:l,orient:s,grid:!1,...t?{title:t}:{},...p,...!1===n.aria?{aria:!1}:{},zindex:hr(h,0)}}}}function iW(e){const{axes:t}=e.component,n=[];for(const i of ia)if(t[i])for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const t="x"===i?"height":"width",r=e.getSizeSignalRef(t).signal;t!==r&&n.push({name:t,update:r})}return n}function rW(e,t,n,i){return Object.assign.apply(null,[{},...e.map((e=>{if("axisOrient"===e){const e="x"===n?"bottom":"left",r=t["x"===n?"axisBottom":"axisLeft"]||{},o=t["x"===n?"axisTop":"axisRight"]||{},a=new Set([...Qi(r),...Qi(o)]),s={};for(const t of a.values())s[t]={signal:`${i.signal} === "${e}" ? ${as(r[t])} : ${as(o[t])}`};return s}return t[e]}))])}function oW(e,t){var n;const i=[{}];for(const r of e){let e=null==(n=t[r])?void 0:n.style;if(e){e=c(e);for(const n of e)i.push(t.style[n])}}return Object.assign.apply(null,i)}function aW(e,t,n,i={}){var r;const o=ds(e,n,t);if(void 0!==o)return{configFrom:"style",configValue:o};for(const a of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(void 0!==(null==(r=i[a])?void 0:r[e]))return{configFrom:a,configValue:i[a][e]};return{}}const sW={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??function(e,t){return!dB(e)&&LP(t)&&!La(null==t?void 0:t.bin)&&!qa(null==t?void 0:t.bin)}(n,e),gridScale:({model:e,channel:t})=>function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n);return}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||cW(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||uW(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??function(e,t){if("x"===t&&ji(["quantitative","temporal"],e))return!0;return}(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??function(e,t,n,i){if(n&&!s(i)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy";return}(t.type,n,LP(t)&&!!t.timeUnit,LP(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o="x"===e?"width":"y"===e?"height":void 0,a=o?t.getSizeSignalRef(o):void 0;return n.tickCount??function({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){var r;if(!i&&!dB(t)&&"log"!==t){if(LP(e)){if(La(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&ji(["month","hours","day","quarter"],null==(r=AT(e.timeUnit))?void 0:r.unit))return}return{signal:`ceil(${n.signal}/40)`}}return}({fieldOrDatumDef:i,scaleType:r,size:a,values:n.values})},tickMinStep:function({format:e,fieldOrDatumDef:t}){if("d"===e)return 1;if(LP(t)){const{timeUnit:e}=t;if(e){const t=ST(e);if(t)return{signal:t}}}return},title:({axis:e,model:t,channel:n})=>{if(void 0!==e.title)return e.title;const i=fW(t,n);if(void 0!==i)return i;const r=t.typedFieldDef(n),o="x"===n?"x2":"y2",a=t.fieldDef(o);return ps(r?[MP(r)]:[],LP(a)?[MP(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(e,t){const n=e.values;if(u(n))return vj(t,n);if(Xa(n))return n;return}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??function(e,t){if("rect"===e&&tj(t))return 1;return 0}(n,t)};function lW(e){return`(((${e.signal} % 360) + 360) % 360)`}function uW(e,t,n,i){if(void 0!==e){if("x"===n){if(Xa(e)){const n=lW(e);return{signal:`(45 < ${n} && ${n} < 135) || (225 < ${n} && ${n} < 315) ? "middle" :(${n} <= 45 || 315 <= ${n}) === ${Xa(t)?`(${t.signal} === "top")`:"top"===t} ? "bottom" : "top"`}}if(45{if(XP(t)&&SP(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map(((e,t)=>`${jT({field:i,timeUnit:r,equal:e})} ? ${t} : `)).join("")+o.length;e=new dW(e,{calculate:a,as:hW(t,n,{forAs:!0})})}})),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Bi(this.transform)}`}}function hW(e,t,n){return ej(e,{prefix:t,suffix:"sort_index",...n})}function pW(e,t){return ji(["top","bottom"],t)?"column":ji(["left","right"],t)||"row"===e?"row":"column"}function mW(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return hr((t||{})[e],r[e],n.header[e])}function gW(e,t,n,i){const r={};for(const o of e){const e=mW(o,t||{},n,i);void 0!==e&&(r[o]=e)}return r}const yW=["row","column"],vW=["header","footer"];function bW(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=gW(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),l=pW(t,s),u=br(a);return{name:`${t}-title`,type:"group",role:`${l}-title`,title:{text:n,..."row"===t?{orient:"left"}:{},style:"guide-title",...wW(u,l),...xW(l,u,o),...EW(i,r,t,fL,uL)}}}function xW(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=cW(t,"row"===e?"left":"top","row"===e?"y":"x");return i?{align:i}:{}}function wW(e,t){const n=uW(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return n?{baseline:n}:{}}function _W(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of vW)if(n[r])for(const o of n[r]){const a=DW(e,t,r,n,o);null!=a&&i.push(a)}return i}function kW(e,t){const{sort:n}=e;return AP(n)?{field:ej(n,{expr:"datum"}),order:n.order??"ascending"}:u(n)?{field:hW(e,t,{expr:"datum"}),order:"ascending"}:{field:ej(e,{expr:"datum"}),order:n??"ascending"}}function $W(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:l}=gW(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),u=pP({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=pW(t,s);return{text:{signal:l?cr(cr(l,"datum.label",u),"datum.value",ej(e,{expr:"parent"})):u},..."row"===t?{orient:"left"}:{},style:"guide-label",frame:"group",...wW(o,c),...xW(c,o,a),...EW(n,e,t,dL,cL)}}function DW(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=gW(["labelOrient"],a.header,s,t);("row"===t&&!ji(["top","bottom"],e)||"column"===t&&!ji(["left","right"],e))&&(o=$W(a,t,s))}const l=EG(e)&&!EP(e.facet),u=r.axes,c=(null==u?void 0:u.length)>0;if(o||c){const s="row"===t?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:kW(a,t)}:{},...c&&l?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},...c?{axes:u}:{}}}}return null}const AW={column:{start:0,end:1},row:{start:1,end:0}};function SW(e,t){return AW[t][e]}function EW(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=mW(a,null==t?void 0:t.header,e,n);void 0!==i&&(o[r[a]]=i)}return o}function FW(e){return[...CW(e,"width"),...CW(e,"height"),...CW(e,"childWidth"),...CW(e,"childHeight")]}function CW(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(dB(i)&&Ja(o)){const i=e.scaleName(n);if(EG(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[MW(i,o)]}return[MW(i,o),{name:r,update:zW(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${EL(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function MW(e,t){const n=`${e}_step`;return Xa(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function zW(e,t,n){const i=t.get("type"),r=t.get("padding"),o=hr(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${as(a)}, ${as(o)}) * ${e}_step`}function OW(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function NW(e,t){return Qi(e).reduce(((n,i)=>({...n,...GU({model:t,channelDef:e[i],vgChannel:i,mainRefFn:e=>rs(e.value),invalidValueRef:void 0})})),{})}function RW(e,t){if(EG(t))return"theta"===e?"independent":"shared";if(CG(t))return"shared";if(FG(t))return ra(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function TW(e,t){const n=e.scale[t],i=ra(t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&sT(function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}(t)),"independent"):e[i][t]||"shared"}const BW=Qi({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class PW extends Gq{}const jW={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if("symbol"!==o)return;const{markDef:a,encoding:s,config:l,mark:c}=n,f=a.filled&&"trail"!==c;let d={...ss({},n,GB),...nI(n,{filled:f})};const h=r.get("symbolOpacity")??l.legend.symbolOpacity,p=r.get("symbolFillColor")??l.legend.symbolFillColor,m=r.get("symbolStrokeColor")??l.legend.symbolStrokeColor,g=void 0===h?LW(s.opacity)??a.opacity:void 0;if(d.fill)if("fill"===i||f&&i===Ir)delete d.fill;else if($r(d.fill,"field"))p?delete d.fill:(d.fill=rs(l.legend.symbolBaseFillColor??"black"),d.fillOpacity=rs(g??1));else if(u(d.fill)){const e=qW(s.fill??s.color)??a.fill??(f&&a.color);e&&(d.fill=rs(e))}if(d.stroke)if("stroke"===i||!f&&i===Ir)delete d.stroke;else if($r(d.stroke,"field")||m)delete d.stroke;else if(u(d.stroke)){const e=hr(qW(s.stroke||s.color),a.stroke,f?a.color:void 0);e&&(d.stroke={value:e})}if(i!==Xr){const e=LP(t)&&IW(n,r,t);e?d.opacity=[{test:e,...rs(g??1)},rs(l.legend.unselectedOpacity)]:g&&(d.opacity=rs(g))}return d={...d,...e},Ji(d)?void 0:d},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){if("gradient"!==n)return;const{config:r,markDef:o,encoding:a}=t;let s={};const l=void 0===(i.get("gradientOpacity")??r.legend.gradientOpacity)?LW(a.opacity)||o.opacity:void 0;l&&(s.opacity=rs(l));return s={...s,...e},Ji(s)?void 0:s},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=LP(t)?IW(n,r,t):void 0,l=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:u,formatType:c}=o;let f;dP(c)?f=gP({fieldOrDatumDef:t,field:"datum.value",format:u,formatType:c,config:a}):void 0===u&&void 0===c&&a.customFormatTypes&&("quantitative"===t.type&&a.numberFormatType?f=gP({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):"temporal"===t.type&&a.timeFormatType&&LP(t)&&void 0===t.timeUnit&&(f=gP({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d={...l?{opacity:l}:{},...f?{text:f}:{},...e};return Ji(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return(null==n?void 0:n.length)?{...e,fill:{value:"transparent"}}:e}};function LW(e){return UW(e,((e,t)=>Math.max(e,t.value)))}function qW(e){return UW(e,((e,t)=>hr(e,t.value)))}function UW(e,t){return function(e){const t=null==e?void 0:e.condition;return!!t&&(u(t)||YP(t))}(e)?c(e.condition).reduce(t,e.value):YP(e)?e.value:void 0}function IW(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=a(n.field);return i.map((e=>`(!length(data(${a(tr(e)+jI)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`)).join(" || ")}const WW={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return yP(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return vP(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??function({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:l}=e;if(pB(r))return"horizontal"===n?"top"===i||"bottom"===i?GW(t,"width",a,o):a:GW(t,"height",l,s);return}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??function(e){if(ji(["quantile","threshold","log","symlog"],e))return"greedy";return}(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??function(e,t,n,i){if("shape"!==t){const e=qW(n)??i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>oj(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(go(n)&&pB(t)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(e,t){const n=e.values;if(u(n))return vj(t,n);if(Xa(n))return n;return}(t,e)};function HW(e){const{legend:t}=e;return hr(t.type,function({channel:e,timeUnit:t,scaleType:n}){if(go(e)){if(ji(["quarter","month","day"],t))return"symbol";if(pB(n))return"gradient"}return"symbol"}(e))}function GW(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function VW(e){const t=SG(e)?function(e){const{encoding:t}=e,n={};for(const i of[Ir,...pL]){const r=cj(t[i]);r&&e.getScaleComponent(i)&&(i===Gr&&LP(r)&&r.type===VT||(n[i]=XW(e,i)))}return n}(e):function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){VW(i);for(const r of Qi(i.component.legends))n.legend[r]=TW(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=JW(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of Qi(t))for(const t of e.children)t.component.legends[i]&&"shared"===n.legend[i]&&delete t.component.legends[i];return t}(e);return e.component.legends=t,t}function YW(e,t,n,i){switch(t){case"disable":return void 0!==n;case"values":return!!(null==n?void 0:n.values);case"title":if("title"===t&&e===(null==i?void 0:i.title))return!0}return e===(n||{})[t]}function XW(e,t){var n;let i=e.legend(t);const{markDef:r,encoding:o,config:a}=e,s=a.legend,l=new PW({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}return"color"===t?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}(e,t));!function(e,t,n){var i;const r=null==(i=e.fieldDef(t))?void 0:i.field;for(const o of Ki(e.component.selection??{})){const e=o.project.hasField[r]??o.project.hasChannel[t];if(e&&CI.defined(o)){const t=n.get("selections")??[];t.push(o.name),n.set("selections",t,!1),e.hasLegend=!0}}}(e,t,l);const u=void 0!==i?!i:s.disable;if(l.set("disable",u,void 0!==i),u)return l;i=i||{};const c=e.getScaleComponent(t).get("type"),f=cj(o[t]),d=LP(f)?null==(n=AT(f.timeUnit))?void 0:n.unit:void 0,h=i.orient||a.legend.orient||"right",p=HW({legend:i,channel:t,timeUnit:d,scaleType:c}),m=function({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(n,t)}({legend:i,legendType:p,orient:h,legendConfig:s}),g={legend:i,channel:t,model:e,markDef:r,encoding:o,fieldOrDatumDef:f,legendConfig:s,config:a,scaleType:c,orient:h,legendType:p,direction:m};for(const w of BW){if("gradient"===p&&w.startsWith("symbol")||"symbol"===p&&w.startsWith("gradient"))continue;const n=w in WW?WW[w](g):i[w];if(void 0!==n){const r=YW(n,w,i,e.fieldDef(t));(r||void 0===a.legend[w])&&l.set(w,n,r)}}const y=(null==i?void 0:i.encoding)??{},v=l.get("selections"),b={},x={fieldOrDatumDef:f,model:e,channel:t,legendCmpt:l,legendType:p};for(const w of["labels","legend","title","symbols","gradient","entries"]){const t=NW(y[w]??{},e),n=w in jW?jW[w](t,x):t;void 0===n||Ji(n)||(b[w]={...(null==v?void 0:v.length)&&LP(f)?{name:`${tr(f.field)}_legend_${w}`}:{},...(null==v?void 0:v.length)?{interactive:!!v}:{},update:n})}return Ji(b)||l.set("encode",b,!!(null==i?void 0:i.encoding)),l}function JW(e,t){var n,i,r,o;if(!e)return t.clone();const a=e.getWithExplicit("orient"),s=t.getWithExplicit("orient");if(a.explicit&&s.explicit&&a.value!==s.value)return;let l=!1;for(const u of BW){const n=Qq(e.getWithExplicit(u),t.getWithExplicit(u),u,"legend",((e,t)=>{switch(u){case"symbolType":return QW(e,t);case"title":return gs(e,t);case"type":return l=!0,Yq("symbol")}return Jq(e,t,u,"legend")}));e.setWithExplicit(u,n)}return l&&((null==(i=null==(n=e.implicit)?void 0:n.encode)?void 0:i.gradient)&&ir(e.implicit,["encode","gradient"]),(null==(o=null==(r=e.explicit)?void 0:r.encode)?void 0:o.gradient)&&ir(e.explicit,["encode","gradient"])),e}function QW(e,t){return"circle"===t.value?t:e}function KW(e){const t=e.component.legends,n={};for(const i of Qi(t)){const r=kr(e.getScaleComponent(i).get("domains"));if(n[r])for(const e of n[r]){JW(e,t[i])||n[r].push(t[i])}else n[r]=[t[i].clone()]}return Ki(n).flat().map((t=>function(e,t){var n,i,r;const{disable:o,labelExpr:a,selections:s,...l}=e.combine();if(o)return;!1===t.aria&&null==l.aria&&(l.aria=!1);if(null==(n=l.encode)?void 0:n.symbols){const e=l.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||l.stroke||(e.stroke={value:"transparent"});for(const t of pL)l[t]&&delete e[t]}l.title||delete l.title;if(void 0!==a){let e=a;(null==(r=null==(i=l.encode)?void 0:i.labels)?void 0:r.update)&&Xa(l.encode.labels.update.text)&&(e=cr(a,"datum.label",l.encode.labels.update.text.signal)),function(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}(l,"labels","text",{signal:e})}return l}(t,e.config))).filter((e=>void 0!==e))}function ZW(e){return CG(e)||FG(e)?function(e){return e.children.reduce(((e,t)=>e.concat(t.assembleProjections())),eH(e))}(e):eH(e)}function eH(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map((e=>e.signal)).join(", ")}]`},o=t.data.reduce(((t,n)=>{const i=Xa(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return ji(t,i)||t.push(i),t}),[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const tH=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class nH extends Gq{constructor(e,t,n,i){super({...t},{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function iH(e){e.component.projection=SG(e)?function(e){if(e.hasProjection){const t=Ga(e.specifiedProjection),n=!(null!=t.scale||null!=t.translate),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?function(e){const t=[],{encoding:n}=e;for(const i of[[jr,Pr],[qr,Lr]])(cj(n[i[0]])||cj(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(Gr)&&e.typedFieldDef(Gr).type===VT&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(aU.Main));return t}(e):void 0,o=new nH(e.projectionName(!0),{...Ga(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}return}(e):function(e){if(0===e.children.length)return;let n;for(const t of e.children)iH(t);const i=qi(e.children,(e=>{const i=e.component.projection;if(i){if(n){const e=function(e,n){const i=qi(tH,(i=>!t(e.explicit,i)&&!t(n.explicit,i)||!!(t(e.explicit,i)&&t(n.explicit,i)&&_r(e.get(i),n.get(i)))));if(_r(e.size,n.size)){if(i)return e;if(_r(e.explicit,{}))return n;if(_r(n.explicit,{}))return e}return null}(n,i);return e&&(n=e),!!e}return n=i,!0}return!0}));if(n&&i){const t=e.projectionName(!0),i=new nH(t,n.specifiedProjection,n.size,Oi(n.data));for(const n of e.children){const e=n.component.projection;e&&(e.isFit&&i.data.push(...n.component.projection.data),n.renameProjection(e.get("name"),t),e.merged=!0)}return i}return}(e)}function rH(e,t,n,i){if(bj(t,n)){const r=SG(e)?e.axis(n)??e.legend(n)??{}:{},o=ej(t,{expr:"datum"}),a=ej(t,{expr:"datum",binSuffix:"end"});return{formulaAs:ej(t,{binSuffix:"range",forAs:!0}),formula:_P(o,a,r.format,r.formatType,i)}}return{}}function oH(e,t){return`${ja(e)}_${t}`}function aH(e,t,n){const i=oH(pj(n,void 0)??{},t);return e.getName(`${i}_bins`)}function sH(e,t,n){let r,o;r=function(e){return"as"in e}(e)?i(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[ej(e,{forAs:!0}),ej(e,{binSuffix:"end",forAs:!0})];const a={...pj(t,void 0)},s=oH(a,e.field),{signal:l,extentSignal:u}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,s);if(Ia(a.extent)){const e=a.extent;o=ZI(n,e.param,e),delete a.extent}return{key:s,binComponent:{bin:a,field:e.field,as:[r],...l?{signal:l}:{},...u?{extentSignal:u}:{},...o?{span:o}:{}}}}class lH extends uU{clone(){return new lH(null,Oi(this.bins))}constructor(e,t){super(e),this.bins=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{if(VP(n)&&La(n.bin)){const{key:r,binComponent:o}=sH(n,n.bin,t);e[r]={...o,...e[r],...rH(t,n,i,t.config)}}return e}),{});return Ji(n)?null:new lH(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=sH(t,t.bin,n);return new lH(e,{[i]:r})}merge(e,t){for(const n of Qi(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=Wi([...this.bins[n].as,...e.bins[n].as],Bi)):this.bins[n]=e.bins[n];for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}producedFields(){return new Set(Ki(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(Ki(this.bins).map((e=>e.field)))}hash(){return`Bin ${Bi(this.bins)}`}assemble(){return Ki(this.bins).flatMap((e=>{const t=[],[n,...i]=e.as,{extent:r,...o}=e.bin,a={type:"bin",field:ur(e.field),as:n,signal:e.signal,...Ia(r)?{extent:null}:{extent:r},...e.span?{span:{signal:`span(${e.span})`}}:{},...o};!r&&e.extentSignal&&(t.push({type:"extent",field:ur(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),t.push(a);for(const s of i)for(let e=0;e<2;e++)t.push({type:"formula",expr:ej({field:n[e]},{expr:"datum"}),as:s[e]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}function uH(e,t,n,i){var r;const o=SG(i)?i.encoding[No(t)]:void 0;if(VP(n)&&SG(i)&&RP(n,o,i.markDef,i.config)){e.add(ej(n,{})),e.add(ej(n,{suffix:"end"}));const{mark:r,markDef:o,config:a}=i,s=OP({fieldDef:n,markDef:o,config:a});IB(r)&&.5!==s&&ra(t)&&(e.add(ej(n,{suffix:pU})),e.add(ej(n,{suffix:mU}))),n.bin&&bj(n,t)&&e.add(ej(n,{binSuffix:"range"}))}else if(ho(t)){const n=fo(t);e.add(i.getName(n))}else e.add(ej(n));var a;return XP(n)&&(a=null==(r=n.scale)?void 0:r.range,s(a)&&"field"in a)&&e.add(n.scale.range.field),e}class cH extends uU{clone(){return new cH(null,new Set(this.dimensions),Oi(this.measures))}constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef((e=>{e.aggregate&&(n=!0)}));const i={},r=new Set;return n?(t.forEachFieldDef(((e,n)=>{const{aggregate:o,field:a}=e;if(o)if("count"===o)i["*"]??(i["*"]={}),i["*"].count=new Set([ej(e,{forAs:!0})]);else{if(za(o)||Oa(o)){const e=za(o)?"argmin":"argmax",t=o[e];i[t]??(i[t]={}),i[t][e]=new Set([ej({op:e,field:t},{forAs:!0})])}else i[a]??(i[a]={}),i[a][o]=new Set([ej(e,{forAs:!0})]);$a(n)&&"unaggregated"===t.scaleDomain(n)&&(i[a]??(i[a]={}),i[a].min=new Set([ej({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([ej({field:a,aggregate:"max"},{forAs:!0})]))}else uH(r,n,e,t)})),r.size+Qi(i).length===0?null:new cH(e,r,i)):null}static makeFromTransform(e,t){var n;const i=new Set,r={};for(const o of t.aggregate){const{op:e,field:t,as:i}=o;e&&("count"===e?(r["*"]??(r["*"]={}),r["*"].count=new Set([i||ej(o,{forAs:!0})])):(r[t]??(r[t]={}),(n=r[t])[e]??(n[e]=new Set),r[t][e].add(i||ej(o,{forAs:!0}))))}for(const o of t.groupby??[])i.add(o);return i.size+Qi(r).length===0?null:new cH(e,i,r)}merge(e){return Gi(this.dimensions,e.dimensions)?(function(e,t){for(const n of Qi(t)){const i=t[n];for(const t of Qi(i))n in e?e[n][t]=new Set([...e[n][t]??[],...i[t]]):e[n]={[t]:i[t]}}}(this.measures,e.measures),!0):(function(...e){oT.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Qi(this.measures)])}producedFields(){const e=new Set;for(const t of Qi(this.measures))for(const n of Qi(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Bi({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of Qi(this.measures))for(const r of Qi(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ur(i));return{type:"aggregate",groupby:[...this.dimensions].map(ur),ops:e,fields:t,as:n}}}class fH extends uU{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const r of vo){const e=t.facet[r];if(e){const{bin:n,sort:i}=e;this[r]={name:t.getName(`${r}_domain`),fields:[ej(e),...La(n)?[ej(e,{binSuffix:"end"})]:[]],...AP(i)?{sortField:i}:u(i)?{sortIndexField:hW(e,r)}:{}}}}this.childModel=t.child}hash(){let e="Facet";for(const t of vo)this[t]&&(e+=` ${t.charAt(0)}:${Bi(this[t])}`);return e}get fields(){var e;const t=[];for(const n of vo)(null==(e=this[n])?void 0:e.fields)&&t.push(...this[n].fields);return t}dependentFields(){const e=new Set(this.fields);for(const t of vo)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of ia){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(dB(i)&&Ja(r)){const n=rG(oG(this.childModel,t));n?e[t]=n:sT(zR(t))}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x",facet:void 0}[e],r=[],o=[],a=[];i&&n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:l}=this[e];if(s){const{op:e=kP,field:t}=s;r.push(t),o.push(e),a.push(ej(s,{forAs:!0}))}else l&&(r.push(l),o.push("max"),a.push(l));return{name:this[e].name,source:t??this.data,transform:[{type:"aggregate",groupby:this[e].fields,...r.length?{fields:r,ops:o,as:a}:{}}]}}assembleFacetHeaderData(e){var t;const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const l of yW){for(const e of vW){const n=(i[l]&&i[l][e])??[];for(const e of n)if((null==(t=e.axes)?void 0:t.length)>0){o[l]=!0;break}}if(o[l]){const e=`length(data("${this.facet.name}"))`,t="row"===l?n?{signal:`ceil(${e} / ${n})`}:1:n?{signal:`min(${e}, ${n})`}:{signal:e};r.push({name:`${this.facet.name}_${l}`,transform:[{type:"sequence",start:0,stop:t}]})}}const{row:a,column:s}=o;return(a||s)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,e)),r}assemble(){const e=[];let t=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){t=`cross_${this.column.name}_${this.row.name}`;const i=[].concat(n.x??[],n.y??[]),r=i.map((()=>"distinct"));e.push({name:t,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const a of[Ar,Dr])this[a]&&e.push(this.assembleRowColumnHeaderData(a,t,n));if(o){const t=this.assembleFacetHeaderData(n);t&&e.push(...t)}return e}}function dH(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function hH(e){const t={};return Mi(e.filter,(e=>{if(BT(e)){let r=null;CT(e)?r=ns(e.equal):zT(e)?r=ns(e.lte):MT(e)?r=ns(e.lt):OT(e)?r=ns(e.gt):NT(e)?r=ns(e.gte):RT(e)?r=e.range[0]:TT(e)&&(r=(e.oneOf??e.in)[0]),r&&(lT(r)?t[e.field]="date":n(r)?t[e.field]="number":i(r)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}function pH(e){const t={};function n(e){var n;gj(e)?t[e.field]="date":"quantitative"===e.type&&(n=e.aggregate,i(n)&&ji(["min","max"],n))?t[e.field]="number":dr(e.field)>1?e.field in t||(t[e.field]="flatten"):XP(e)&&AP(e.sort)&&dr(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((SG(e)||EG(e))&&e.forEachFieldDef(((t,i)=>{if(VP(t))n(t);else{const r=zo(i),o=e.fieldDef(r);n({...t,type:o.type})}})),SG(e)){const{mark:n,markDef:i,encoding:r}=e;if(UB(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];LP(e)&&"quantitative"===e.type&&!(e.field in t)&&(t[e.field]="number")}}return t}class mH extends uU{clone(){return new mH(null,Oi(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${Bi(this._parse)}`}static makeExplicit(e,t,n){var i;let r={};const o=t.data;return!nU(o)&&(null==(i=null==o?void 0:o.format)?void 0:i.parse)&&(r=o.format.parse),this.makeWithAncestors(e,r,{},n)}static makeWithAncestors(e,t,n,i){for(const a of Qi(n)){const e=i.getWithExplicit(a);void 0!==e.value&&(e.explicit||e.value===n[a]||"derived"===e.value||"flatten"===n[a]?delete n[a]:sT(jR(a,n[a],e.value)))}for(const a of Qi(t)){const e=i.get(a);void 0!==e&&(e===t[a]?delete t[a]:sT(jR(a,t[a],e)))}const r=new Gq(t,n);i.copyAll(r);const o={};for(const a of Qi(r.combine())){const e=r.get(a);null!==e&&(o[a]=e)}return 0===Qi(o).length||i.parseNothing?null:new mH(e,o)}get parse(){return this._parse}merge(e){this._parse={...this._parse,...e.parse},e.remove()}assembleFormatParse(){const e={};for(const t of Qi(this._parse)){const n=this._parse[t];1===dr(t)&&(e[t]=n)}return e}producedFields(){return new Set(Qi(this._parse))}dependentFields(){return new Set(Qi(this._parse))}assembleTransforms(e=!1){return Qi(this._parse).filter((t=>!e||dr(t)>1)).map((e=>{const t=function(e,t){const n=or(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(t.startsWith("date:"))return`timeParse(${n},'${dH(t.slice(5,t.length))}')`;if(t.startsWith("utc:"))return`utcParse(${n},'${dH(t.slice(4,t.length))}')`;return sT(`Unrecognized parse "${t}".`),null}(e,this._parse[e]);if(!t)return null;return{type:"formula",expr:t,as:fr(e)}})).filter((e=>null!==e))}}class gH extends uU{clone(){return new gH(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([mL])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:mL}}}class yH extends uU{clone(){return new yH(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Bi(this.params)}`}assemble(){return{type:"graticule",...!0===this.params?{}:this.params}}}class vH extends uU{clone(){return new vH(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${Bi(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class bH extends uU{constructor(e){let t;if(super(null),e??(e={name:"source"}),nU(e)||(t=e.format?{...Ti(e.format,["parse"])}:{}),eU(e))this._data={values:e.values};else if(Zq(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];ji(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else rU(e)?this._data={values:[{type:"Sphere"}]}:(tU(e)||nU(e))&&(this._data={});this._generator=nU(e),e.name&&(this._name=e.name),t&&!Ji(t)&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var xH,wH=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n};function _H(e){return e instanceof bH||e instanceof yH||e instanceof vH}class kH{constructor(){xH.set(this,void 0),wH(this,xH,!1,"f")}setModified(){wH(this,xH,!0,"f")}get modifiedFlag(){return function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}(this,xH,"f")}}xH=new WeakMap;class $H extends kH{getNodeDepths(e,t,n){n.set(e,t);for(const i of e.children)this.getNodeDepths(i,t+1,n);return n}optimize(e){const t=[...this.getNodeDepths(e,0,new Map).entries()].sort(((e,t)=>t[1]-e[1]));for(const n of t)this.run(n[0]);return this.modifiedFlag}}class DH extends kH{optimize(e){this.run(e);for(const t of e.children)this.optimize(t);return this.modifiedFlag}}class AH extends DH{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map((e=>e.hash())),n={};for(let i=0;i1&&(this.setModified(),this.mergeNodes(e,n[i]))}}class SH extends DH{constructor(e){super(),this.requiresSelectionId=e&&HI(e)}run(e){e instanceof gH&&(this.requiresSelectionId&&(_H(e.parent)||e.parent instanceof cH||e.parent instanceof mH)||(this.setModified(),e.remove()))}}class EH extends kH{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,t){let n=new Set;e instanceof hU&&(n=e.producedFields(),Vi(n,t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove()));for(const i of e.children)this.run(i,new Set([...t,...n]))}}class FH extends DH{constructor(){super()}run(e){e instanceof cU&&!e.isRequired()&&(this.setModified(),e.remove())}}class CH extends $H{run(e){if(!(_H(e)||e.numChildren()>1))for(const t of e.children)if(t instanceof mH)if(e instanceof mH)this.setModified(),e.merge(t);else{if(Xi(e.producedFields(),t.dependentFields()))continue;this.setModified(),t.swapWithParent()}}}class MH extends $H{run(e){const t=[...e.children],n=e.children.filter((e=>e instanceof mH));if(e.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const e of n){const t=e.parse;for(const e of Qi(t))e in i?i[e]!==t[e]&&r.add(e):i[e]=t[e]}for(const e of r)delete i[e];if(!Ji(i)){this.setModified();const n=new mH(e,i);for(const r of t){if(r instanceof mH)for(const e of Qi(i))delete r.parse[e];e.removeChild(r),r.parent=n,r instanceof mH&&0===Qi(r.parse).length&&r.remove()}}}}}class zH extends $H{run(e){e instanceof cU||e.numChildren()>0||e instanceof fH||e instanceof bH||(this.setModified(),e.remove())}}class OH extends $H{run(e){const t=e.children.filter((e=>e instanceof hU)),n=t.pop();for(const i of t)this.setModified(),n.merge(i)}}class NH extends $H{run(e){const t=e.children.filter((e=>e instanceof cH)),n={};for(const i of t){const e=Bi(i.groupBy);e in n||(n[e]=[]),n[e].push(i)}for(const i of Qi(n)){const t=n[i];if(t.length>1){const n=t.pop();for(const i of t)n.merge(i)&&(e.removeChild(i),i.parent=n,i.remove(),this.setModified())}}}}class RH extends $H{constructor(e){super(),this.model=e}run(e){const t=!(_H(e)||e instanceof QI||e instanceof mH||e instanceof gH),n=[],i=[];for(const r of e.children)r instanceof lH&&(t&&!Xi(e.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const t=n.pop();for(const e of n)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof lH?e.merge(t,this.model.renameSignal.bind(this.model)):t.swapWithParent()}if(i.length>1){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified()}}}class TH extends $H{run(e){const t=[...e.children];if(!Li(t,(e=>e instanceof cU))||e.numChildren()<=1)return;const n=[];let i;for(const r of t)if(r instanceof cU){let t=r;for(;1===t.numChildren();){const[e]=t.children;if(!(e instanceof cU))break;t=e}n.push(...t.children),i?(e.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=t,this.setModified()):i=t}else n.push(r);if(n.length){this.setModified();for(const e of n)e.parent.removeChild(e),e.parent=i}}}class BH extends uU{clone(){return new BH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){return e.as??ej(e)}hash(){return`JoinAggregateTransform ${Bi(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const r of this.transform.joinaggregate)t.push(r.op),n.push(this.getDefaultName(r)),e.push(void 0===r.field?null:r.field);const i=this.transform.groupby;return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==i?{groupby:i}:{}}}}class PH extends uU{clone(){return new PH(null,{...this.filter})}constructor(e,t){super(e),this.filter=t}static make(e,t,n){const{config:i,markDef:r}=t,{marks:o,scales:a}=n;if("include-invalid-values"===o&&"include-invalid-values"===a)return null;const s=t.reduceFieldDef(((e,n,o)=>{const a=$a(o)&&t.getScaleComponent(o);if(a){const t=a.get("type"),{aggregate:s}=n,l=iP({scaleChannel:o,markDef:r,config:i,scaleType:t,isCountAggregate:Ta(s)});"show"!==l&&"always-valid"!==l&&(e[n.field]=n)}return e}),{});return Qi(s).length?new PH(e,s):null}dependentFields(){return new Set(Qi(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Bi(this.filter)}`}assemble(){const e=Qi(this.filter).reduce(((e,t)=>{const n=this.filter[t],i=ej(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (${jH(i)}))`):"quantitative"===n.type&&e.push(jH(i))),e}),[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}function jH(e){return`isValid(${e}) && isFinite(+${e})`}class LH extends uU{clone(){return new LH(null,Oi(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:r,as:o,offset:a="zero"}=t,s=[],l=[];if(void 0!==t.sort)for(const i of t.sort)s.push(i.field),l.push(hr(i.order,"ascending"));const c={field:s,order:l};let f;return f=function(e){return u(e)&&e.every((e=>i(e)))&&e.length>1}(o)?o:i(o)?[o,`${o}_end`]:[`${t.stack}_start`,`${t.stack}_end`],new LH(e,{dimensionFieldDefs:[],stackField:n,groupby:r,offset:a,sort:c,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;const{groupbyChannels:r,fieldChannel:o,offset:a,impute:s}=n,l=r.map((e=>uj(i[e]))).filter((e=>!!e)),c=function(e){return e.stack.stackBy.reduce(((e,t)=>{const n=ej(t.fieldDef);return n&&e.push(n),e}),[])}(t),f=t.encoding.order;let d;if(u(f)||LP(f))d=hs(f);else{const e=TP(f)?f.sort:"y"===o?"descending":"ascending";d=c.reduce(((t,n)=>(t.field.includes(n)||(t.field.push(n),t.order.push(e)),t)),{field:[],order:[]})}return new LH(e,{dimensionFieldDefs:l,stackField:t.vgField(o),facetby:[],stackby:c,sort:d,offset:a,impute:s,as:[t.vgField(o,{suffix:"start",forAs:!0}),t.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Bi(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:t,groupby:n}=this._stack;return e.length>0?e.map((e=>e.bin?t?[ej(e,{binSuffix:"mid"})]:[ej(e,{}),ej(e,{binSuffix:"end"})]:[ej(e)])).flat():n??[]}assemble(){const e=[],{facetby:t,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:l}=this._stack;if(s)for(const u of n){const{bandPosition:n=.5,bin:o}=u;if(o){const t=ej(u,{expr:"datum"}),i=ej(u,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${jH(t)} ? ${n}*${t}+${1-n}*${i} : ${t}`,as:ej(u,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...r,...t],key:ej(u,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:l,offset:a}),e}}class qH extends uU{clone(){return new qH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return(this.transform.groupby??[]).forEach(e.add,e),(this.transform.sort??[]).forEach((t=>e.add(t.field))),this.transform.window.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){return e.as??ej(e)}hash(){return`WindowTransform ${Bi(this.transform)}`}assemble(){const e=[],t=[],n=[],i=[];for(const c of this.transform.window)t.push(c.op),n.push(this.getDefaultName(c)),i.push(void 0===c.param?null:c.param),e.push(void 0===c.field?null:c.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&t.every((e=>Na(e))))return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==o?{groupby:o}:{}};const a=[],s=[];if(void 0!==this.transform.sort)for(const c of this.transform.sort)a.push(c.field),s.push(c.order??"ascending");const l={field:a,order:s},u=this.transform.ignorePeers;return{type:"window",params:i,as:n,ops:t,fields:e,sort:l,...void 0!==u?{ignorePeers:u}:{},...void 0!==o?{groupby:o}:{},...void 0!==r?{frame:r}:{}}}}function UH(e){if(e instanceof fH)if(1!==e.numChildren()||e.children[0]instanceof cU){const n=e.model.component.data.main;IH(n);const i=(t=e,function e(n){if(!(n instanceof fH)){const i=n.clone();if(i instanceof cU){const e=WH+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof cH||i instanceof LH||i instanceof qH||i instanceof BH)&&i.addDimensions(t.fields);for(const t of n.children.flatMap(e))t.parent=i;return[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof cH||t instanceof LH||t instanceof qH||t instanceof BH)&&t.addDimensions(e.fields),t.swapWithParent(),UH(e)}else e.children.map(UH);var t}function IH(e){if(e instanceof cU&&e.type===aU.Main&&1===e.numChildren()){const t=e.children[0];t instanceof fH||(t.swapWithParent(),IH(e))}}const WH="scale_";function HH(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return!1;if(!HH(t.children))return!1}return!0}function GH(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function VH(e,t,n){let i=e.sources,r=!1;return r=GH(new FH,i)||r,r=GH(new SH(t),i)||r,i=i.filter((e=>e.numChildren()>0)),r=GH(new zH,i)||r,i=i.filter((e=>e.numChildren()>0)),n||(r=GH(new CH,i)||r,r=GH(new RH(t),i)||r,r=GH(new EH,i)||r,r=GH(new MH,i)||r,r=GH(new NH,i)||r,r=GH(new OH,i)||r,r=GH(new AH,i)||r,r=GH(new TH,i)||r),e.sources=i,r}class YH{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new YH((()=>e(t)))}}function XH(e){SG(e)?function(e){const t=e.component.scales;for(const n of Qi(t)){const i=JH(e,n);if(t[n].setWithExplicit("domains",i),eG(e,n),e.component.data.isFaceted){let t=e;for(;!EG(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Qa(e)&&(e.data=WH+e.data.replace(WH,""))}}}(e):function(e){for(const n of e.children)XH(n);const t=e.component.scales;for(const n of Qi(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):Qq(i,e.getWithExplicit("domains"),"domains","scale",nG);const t=e.get("selectionExtent");r&&t&&r.param!==t.param&&sT(TR),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function JH(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=tG(t,n);if(!e)return void sT(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=tG(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),"x"===t&&cj(i.x2)?cj(i.x)?Qq(KH(n,r,e,"x"),KH(n,r,e,"x2"),"domain","scale",nG):KH(n,r,e,"x2"):"y"===t&&cj(i.y2)?cj(i.y)?Qq(KH(n,r,e,"y"),KH(n,r,e,"y2"),"domain","scale",nG):KH(n,r,e,"y2"):KH(n,r,e,t)}function QH(e,t,n){var i;const r=null==(i=AT(n))?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map((e=>({signal:`{data: ${yj(e,{timeUnit:n,type:t})}}`})))}(e,t,r):[e]}function KH(e,t,n,i){const{encoding:r,markDef:o,mark:a,config:l,stack:u}=n,c=cj(r[i]),{type:f}=c,d=c.timeUnit,h=function(e){const{marks:t,scales:n}=lU(e);return t===n?aU.Main:"include-invalid-values"===n?aU.PreFilterInvalid:aU.PostFilterInvalid}({invalid:cs("invalid",o,l),isPath:UB(a)});if(function(e){return $r(e,"unionWith")}(t)){const r=KH(e,void 0,n,i);return Vq([...QH(t.unionWith,f,d),...r.value])}if(Xa(t))return Vq([t]);if(t&&"unaggregated"!==t&&!gB(t))return Vq(QH(t,f,d));if(u&&i===u.fieldChannel){if("normalize"===u.offset)return Yq([[0,1]]);const e=n.requestDataName(h);return Yq([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const p=$a(i)&&LP(c)?function(e,t,n){if(!dB(n))return;const i=e.fieldDef(t),r=i.sort;if(SP(r))return{op:"min",field:hW(i,t),order:"ascending"};const{stack:o}=e,a=o?new Set([...o.groupbyFields,...o.stackBy.map((e=>e.fieldDef.field))]):void 0;if(AP(r)){return ZH(r,o&&!a.has(r.field))}if(function(e){return $r(e,"encoding")}(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:l}=i,u=o&&!a.has(l);if(za(s)||Oa(s))return ZH({field:ej(i),order:n},u);if(Na(s)||!s)return ZH({op:s,field:l,order:n},u)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(ji(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if(UP(c)){return Yq(QH([c.datum],f,d))}const m=c;if("unaggregated"===t){const{field:e}=c;return Yq([{data:n.requestDataName(h),field:ej({field:e,aggregate:"min"})},{data:n.requestDataName(h),field:ej({field:e,aggregate:"max"})}])}if(La(m.bin)){if(dB(e))return Yq("bin-ordinal"===e?[]:[{data:er(p)?n.requestDataName(h):n.requestDataName(aU.Raw),field:n.vgField(i,bj(m,i)?{binSuffix:"range"}:{}),sort:!0!==p&&s(p)?p:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=m;if(La(e)){const t=aH(n,m.field,e);return Yq([new YH((()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`}))])}return Yq([{data:n.requestDataName(h),field:n.vgField(i,{})}])}}if(m.timeUnit&&ji(["time","utc"],e)){const e=r[No(i)];if(RP(m,e,o,l)){const t=n.requestDataName(h),r=OP({fieldDef:m,fieldDef2:e,markDef:o,config:l}),s=IB(a)&&.5!==r&&ra(i);return Yq([{data:t,field:n.vgField(i,s?{suffix:pU}:{})},{data:t,field:n.vgField(i,{suffix:s?mU:"end"})}])}}return Yq(p?[{data:er(p)?n.requestDataName(h):n.requestDataName(aU.Raw),field:n.vgField(i),sort:p}]:[{data:n.requestDataName(h),field:n.vgField(i)}])}function ZH(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":kP),...i?{field:ur(i)}:{},...r?{order:r}:{}}}function eG(e,t){var n;const i=e.component.scales[t],r=e.specifiedScales[t].domain,o=null==(n=e.fieldDef(t))?void 0:n.bin,a=gB(r)?r:void 0,s=Ua(o)&&Ia(o.extent)?o.extent:void 0;(a||s)&&i.set("selectionExtent",a??s,!0)}function tG(e,t){const{aggregate:n,type:r}=e;return n?i(n)&&!Pa.has(n)?{valid:!1,reason:JR(n)}:"quantitative"===r&&"log"===t?{valid:!1,reason:QR(e)}:{valid:!0}:{valid:!1,reason:XR(e)}}function nG(e,t,n,i){return e.explicit&&t.explicit&&sT(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function iG(e){const n=Wi(e.map((e=>{if(Qa(e)){const{sort:t,...n}=e;return n}return e})),Bi),r=Wi(e.map((e=>{if(Qa(e)){const t=e.sort;return void 0===t||er(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((e=>void 0!==e)),Bi);if(0===n.length)return;if(1===n.length){const t=e[0];if(Qa(t)&&r.length>0){let e=r[0];if(r.length>1){sT(eT);const t=r.filter((e=>s(e)&&"op"in e&&"min"!==e.op));e=!r.every((e=>s(e)&&"op"in e))||1!==t.length||t[0]}else if(s(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return{...t,sort:e}}return t}const o=Wi(r.map((e=>er(e)||!("op"in e)||i(e.op)&&t(Ma,e.op)?e:(sT(function(e){return`Dropping sort property ${kr(e)} as unioned domains only support boolean or op "count", "min", and "max".`}(e)),!0))),Bi);let a;1===o.length?a=o[0]:o.length>1&&(sT(eT),a=!0);const l=Wi(e.map((e=>Qa(e)?e.data:null)),(e=>e));if(1===l.length&&null!==l[0]){return{data:l[0],fields:n.map((e=>e.field)),...a?{sort:a}:{}}}return{fields:n,...a?{sort:a}:{}}}function rG(e){if(Qa(e)&&i(e.field))return e.field;if(function(e){return!u(e)&&$r(e,"fields")&&!$r(e,"data")}(e)){let t;for(const n of e.fields)if(Qa(n)&&i(n.field))if(t){if(t!==n.field)return sT("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return sT("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),t}if(function(e){return!u(e)&&$r(e,"fields")&&$r(e,"data")}(e)){sT("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return i(t)?t:void 0}}function oG(e,t){return iG(e.component.scales[t].get("domains").map((t=>(Qa(t)&&(t.data=e.lookupDataSource(t.data)),t))))}function aG(e){return CG(e)||FG(e)?e.children.reduce(((e,t)=>e.concat(aG(t))),sG(e)):sG(e)}function sG(e){return Qi(e.component.scales).reduce(((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:a,selectionExtent:l,domains:c,range:f,reverse:d,...h}=r,p=function(e,t,n,i){if(ra(n)){if(Ja(e))return{step:{signal:`${t}_step`}}}else if(s(e)&&Qa(e))return{...e,data:i.lookupDataSource(e.data)};return e}(r.range,o,n,e),m=oG(e,n),g=l?function(e,t,n,i){const r=ZI(e,t.param,t);return{signal:hB(n.get("type"))&&u(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}(e,l,i,m):null;return t.push({name:o,type:a,...m?{domain:m}:{},...g?{domainRaw:g}:{},range:p,...void 0!==d?{reverse:d}:{},...h}),t}),[])}class lG extends Gq{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainHasZero(){const e=this.get("type");if(ji([XT,KT,ZT],e))return"definitely-not";const t=this.get("zero");if(!0===t||void 0===t&&ji([YT,QT,JT],e))return"definitely";const i=this.get("domains");if(i.length>0){let e=!1,t=!1,r=!1;for(const o of i){if(u(o)){const i=o[0],r=o[o.length-1];if(n(i)&&n(r)){if(i<=0&&r>=0){e=!0;continue}t=!0;continue}}r=!0}if(e)return"definitely";if(t&&!r)return"definitely-not"}return"maybe"}}const uG=["range","scheme"];function cG(e,t){const n=e.fieldDef(t);if(null==n?void 0:n.bin){const{bin:i,field:r}=n,o=Ro(t),a=e.getName(o);if(s(i)&&i.binned&&void 0!==i.step)return new YH((()=>{const n=e.scaleName(t),r=`(domain("${n}")[1] - domain("${n}")[0]) / ${i.step}`;return`${e.getSignalName(a)} / (${r})`}));if(La(i)){const t=aH(e,r,i);return new YH((()=>{const n=e.getSignalName(t),i=`(${n}.stop - ${n}.start) / ${n}.step`;return`${e.getSignalName(a)} / (${i})`}))}}}function fG(e,t){const i=t.specifiedScales[e],{size:r}=t,o=t.getScaleComponent(e).get("type");for(const n of uG)if(void 0!==i[n]){const r=DB(o,n),a=AB(e,n);if(r)if(a)sT(a);else switch(n){case"range":{const n=i.range;if(u(n)){if(ra(e))return Vq(n.map((e=>{if("width"===e||"height"===e){const n=t.getName(e),i=t.getSignalName.bind(t);return YH.fromName(i,n)}return e})))}else if(s(n))return Vq({data:t.requestDataName(aU.Main),field:n.field,sort:{op:"min",field:t.vgField(e)}});return Vq(n)}case"scheme":return Vq(dG(i[n]))}else sT(KR(o,n,e))}const a=e===Er||"xOffset"===e?"width":"height",l=r[a];if(DL(l))if(ra(e))if(dB(o)){const n=pG(l,t,e);if(n)return Vq({step:n})}else sT(ZR(a));else if(ua(e)){const n=e===zr?"x":"y";if("band"===t.getScaleComponent(n).get("type")){const e=mG(l,o);if(e)return Vq(e)}}const{rangeMin:c,rangeMax:f}=i,d=function(e,t){const{size:i,config:r,mark:o,encoding:a}=t,{type:s}=cj(a[e]),l=t.getScaleComponent(e),c=l.get("type"),{domain:f,domainMid:d}=t.specifiedScales[e];switch(e){case Er:case Fr:if(ji(["point","band"],c)){const n=gG(e,i,r.view);if(DL(n)){return{step:pG(n,t,e)}}}return hG(e,t,c);case zr:case Or:return function(e,t,n){const i=e===zr?"x":"y",r=t.getScaleComponent(i);if(!r)return hG(i,t,n,{center:!0});const o=r.get("type"),a=t.scaleName(i),{markDef:s,config:l}=t;if("band"===o){const e=gG(i,t.size,t.config.view);if(DL(e)){const t=mG(e,n);if(t)return t}return[0,{signal:`bandwidth('${a}')`}]}{const n=t.encoding[i];if(LP(n)&&n.timeUnit){const e=ST(n.timeUnit,(e=>`scale('${a}', ${e})`)),i=t.config.scale.bandWithNestedOffsetPaddingInner,r=OP({fieldDef:n,markDef:s,config:l})-.5,o=0!==r?` + ${r}`:"";if(i){return[{signal:`${Xa(i)?`${i.signal}/2`+o:`${i/2+r}`} * (${e})`},{signal:`${Xa(i)?`(1 - ${i.signal}/2)`+o:`${1-i/2+r}`} * (${e})`}]}return[0,{signal:e}]}return Ni(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}(e,t,c);case Vr:{const a=function(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(HR("size",e))}(o,r),s=function(e,t,i,r){const o={x:cG(i,"x"),y:cG(i,"y")};switch(e){case"bar":case"tick":{if(void 0!==r.scale.maxBandSize)return r.scale.maxBandSize;const e=vG(t,o,r.view);return n(e)?e-1:new YH((()=>`${e.signal} - 1`))}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const e=vG(t,o,r.view);return n(e)?Math.pow(yG*e,2):new YH((()=>`pow(${yG} * ${e.signal}, 2)`))}}throw new Error(HR("size",e))}(o,i,t,r);return mB(c)?function(e,t,n){const i=()=>{const i=as(t),r=as(e),o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return Xa(t)?new YH(i):{signal:i()}}(a,s,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&u(n)?n.length+1:(sT(function(e){return`Domain for ${e} is required for threshold scale.`}(i)),3)}}(c,r,f,e)):[a,s]}case Tr:return[0,2*Math.PI];case Yr:return[0,360];case Nr:return[0,new YH((()=>`min(${t.getSignalName(EG(t.parent)?"child_width":"width")},${t.getSignalName(EG(t.parent)?"child_height":"height")})/2`))];case Ur:return{step:1e3/r.scale.framesPerSecond};case Kr:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Zr:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Gr:return"symbol";case Ir:case Wr:case Hr:return"ordinal"===c?"nominal"===s?"category":"ordinal":void 0!==d?"diverging":"rect"===o||"geoshape"===o?"heatmap":"ramp";case Xr:case Jr:case Qr:return[r.scale.minOpacity,r.scale.maxOpacity]}}(e,t);return(void 0!==c||void 0!==f)&&DB(o,"rangeMin")&&u(d)&&2===d.length?Vq([c??d[0],f??d[1]]):Yq(d)}function dG(e){return function(e){return!i(e)&&$r(e,"name")}(e)?{scheme:e.name,...Ti(e,["name"])}:{scheme:e}}function hG(e,t,n,{center:i}={}){const r=Ro(e),o=t.getName(r),a=t.getSignalName.bind(t);return e===Fr&&hB(n)?i?[YH.fromName((e=>`${a(e)}/2`),o),YH.fromName((e=>`-${a(e)}/2`),o)]:[YH.fromName(a,o),0]:i?[YH.fromName((e=>`-${a(e)}/2`),o),YH.fromName((e=>`${a(e)}/2`),o)]:[0,YH.fromName(a,o)]}function pG(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=Bo(n),s=i[o];if("offset"===$L({step:e,offsetIsDiscrete:GP(s)&&UT(s.type)})&&Mj(i,o)){const n=t.getScaleComponent(o);let i=`domain('${t.scaleName(o)}').length`;if("band"===n.get("type")){i=`bandspace(${i}, ${n.get("paddingInner")??n.get("padding")??0}, ${n.get("paddingOuter")??n.get("padding")??0})`}const s=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${i} / (1-${l=s,Xa(l)?l.signal:a(l)})`}}return e.step;var l}function mG(e,t){if("offset"===$L({step:e,offsetIsDiscrete:dB(t)}))return{step:e.step}}function gG(e,t,n){const i=e===Er?"width":"height",r=t[i];return r||CL(n,i)}const yG=.95;function vG(e,t,n){const i=DL(e.width)?e.width.step:FL(n,"width"),r=DL(e.height)?e.height.step:FL(n,"height");return t.x||t.y?new YH((()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`)):Math.min(i,r)}function bG(e,t){SG(e)?function(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=e;for(const s of Qi(n)){const l=a[s],u=n[s],c=e.getScaleComponent(s),f=cj(r[s]),d=l[t],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=DB(h,t),y=AB(s,t);if(void 0!==d&&(g?y&&sT(y):sT(KR(h,t,s))),g&&void 0===y)if(void 0!==d){const e=f.timeUnit,n=f.type;switch(t){case"domainMax":case"domainMin":lT(l[t])||"temporal"===n||e?u.set(t,{signal:yj(l[t],{type:n,timeUnit:e})},!0):u.set(t,l[t],!0);break;default:u.copyKeyFromObject(t,l)}}else{const n=$r(xG,t)?xG[t]({model:e,channel:s,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:o,config:i,hasNestedOffsetScale:zj(r,s),hasSecondaryRangeChannel:!!r[No(s)]}):i.scale[t];void 0!==n&&u.set(t,n,!1)}}}(e,t):_G(e,t)}const xG={bins:({model:e,fieldOrDatumDef:t})=>LP(t)?function(e,t){const n=t.bin;if(La(n)){const i=aH(e,t.field,n);return new YH((()=>e.getSignalName(i)))}if(qa(n)&&Ua(n)&&void 0!==n.step)return{step:n.step};return}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(e,t){if(ji([Ir,Wr,Hr],e)&&"nominal"!==t)return"hcl";return}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(e,t,n,i,r,o){var a;if((null==(a=uj(o))?void 0:a.bin)||u(n)||null!=r||null!=i||ji([KT,ZT],e))return;return!!ra(t)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(e,t,n,i,r,o){if(ra(e)){if(pB(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&(!LP(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===eB)return n.pointPadding}return}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:i,tickBandPaddingInner:a,bandWithNestedOffsetPaddingInner:s}=r;return o?s:hr(e,"bar"===n?t:"tick"===n?a:i)}if(ua(t)&&i===tB)return r.offsetBandPaddingInner;return}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:t}=r;if(o)return t;if(n===tB)return hr(e,Xa(i)?{signal:`${i.signal}/2`}:i/2)}else if(ua(t)){if(n===eB)return.5;if(n===tB)return r.offsetBandPaddingOuter}return}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(e,t,n,i){if("x"===n&&void 0!==i.xReverse)return hB(e)&&"descending"===t?Xa(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(hB(e)&&"descending"===t)return!0;return}(t,LP(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:i,markDef:r,scaleType:o,config:a,hasSecondaryRangeChannel:s})=>function(e,t,i,r,o,a,s){if(i&&"unaggregated"!==i&&hB(o)){if(u(i)){const e=i[0],t=i[i.length-1];if(n(e)&&e<=0&&n(t)&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!mB(o))return!0;if((!LP(t)||!t.bin)&&ji([...ia,...aa],e)){const{orient:t,type:n}=r;return(!ji(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e))&&(!(!ji(["bar","area"],n)||s)||(null==a?void 0:a.zero))}return!1}(e,t,i,r,o,a.scale,s)};function wG(e){SG(e)?function(e){const t=e.component.scales;for(const n of ka){const i=t[n];if(!i)continue;const r=fG(n,e);i.setWithExplicit("range",r)}}(e):_G(e,"range")}function _G(e,t){const n=e.component.scales;for(const i of e.children)"range"===t?wG(i):bG(i,t);for(const i of Qi(n)){let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=Qq(r,e.getWithExplicit(t),t,"scale",Xq(((e,n)=>"range"===t&&e.step&&n.step?e.step-n.step:0)))}}n[i].setWithExplicit(t,r)}}function kG(e,t,n,i,r=!1){const o=function(e,t,n,i){var r;switch(t.type){case"nominal":case"ordinal":if(go(e)||"discrete"===Fa(e))return"shape"===e&&"ordinal"===t.type&&sT(YR(e,"ordinal")),"ordinal";if(fa(e))return"band";if(ra(e)||ua(e)){if(ji(["rect","bar","image","rule","tick"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&e in oa)return"band";return QB(n[Ro(e)])||JP(t)&&(null==(r=t.axis)?void 0:r.tickBand)?"band":"point";case"temporal":return go(e)?"time":"discrete"===Fa(e)?(sT(YR(e,"temporal")),"ordinal"):LP(t)&&t.timeUnit&&AT(t.timeUnit).utc?"utc":fa(e)?"band":"time";case"quantitative":return go(e)?LP(t)&&La(t.bin)?"bin-ordinal":"linear":"discrete"===Fa(e)?(sT(YR(e,"quantitative")),"ordinal"):fa(e)?"band":"linear";case"geojson":return}throw new Error(UR(t.type))}(t,n,i,r),{type:a}=e;return $a(t)?void 0!==a?function(e,t,n=!1){if(!$a(e))return!1;switch(e){case Er:case Fr:case zr:case Or:case Tr:case Nr:return!!pB(t)||"band"===t||"point"===t&&!n;case Ur:return ji(["linear","band"],t);case Vr:case Kr:case Xr:case Jr:case Qr:case Yr:return pB(t)||mB(t)||ji(["band","point","ordinal"],t);case Ir:case Wr:case Hr:return"band"!==t;case Zr:case Gr:return"ordinal"===t||mB(t)}}(t,a)?LP(n)&&(s=a,l=n.type,!(ji([WT,GT],l)?void 0===s||dB(s):l===HT?ji([KT,ZT,void 0],s):l!==IT||lB(s)||mB(s)||void 0===s))?(sT(function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}(a,o)),o):a:(sT(function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}(t,a,o)),o):o:null;var s,l}function $G(e){SG(e)?e.component.scales=function(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of ka){const a=cj(t[o]);if(a&&n===qB&&o===Gr&&a.type===VT)continue;let s=a&&a.scale;if(a&&null!==s&&!1!==s){s??(s={});const n=kG(s,o,a,i,zj(t,o));r[o]=new lG(e.scaleName(`${o}`,!0),{value:n,explicit:s.type===n})}}return r}(e):e.component.scales=function(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){$G(o);for(const n of Qi(o.component.scales))if((t=r.scale)[n]??(t[n]=RW(n,e)),"shared"===r.scale[n]){const e=i[n],t=o.component.scales[n].getWithExplicit("type");e?iB(e.value,t.value)?i[n]=Qq(e,t,"type","scale",DG):(r.scale[n]="independent",delete i[n]):i[n]=t}}for(const o of Qi(i)){const t=e.scaleName(o,!0),r=i[o];n[o]=new lG(t,r);for(const n of e.children){const e=n.component.scales[o];e&&(n.renameScale(e.get("name"),t),e.merged=!0)}}return n}(e)}const DG=Xq(((e,t)=>oB(e)-oB(t)));class AG{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function SG(e){return"unit"===(null==e?void 0:e.type)}function EG(e){return"facet"===(null==e?void 0:e.type)}function FG(e){return"concat"===(null==e?void 0:e.type)}function CG(e){return"layer"===(null==e?void 0:e.type)}class MG{constructor(e,t,i,r,o,a,s){this.type=t,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Ga(s),this.name=e.name??r,this.title=Ya(e.title)?{text:e.title}:e.title?Ga(e.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new AG,this.projectionNameMap=i?i.projectionNameMap:new AG,this.signalNameMap=i?i.signalNameMap:new AG,this.data=e.data,this.description=e.description,this.transforms=(e.transform??[]).map((e=>pq(e)?{filter:zi(e.filter,qT)}:e)),this.layout="layer"===t||"unit"===t?{}:function(e,t,i){const r=i[t],o={},{spacing:a,columns:s}=r;void 0!==a&&(o.spacing=a),void 0!==s&&(CP(e)&&!EP(e.facet)||wL(e))&&(o.columns=s),_L(e)&&(o.columns=1);for(const l of SL)if(void 0!==e[l])if("spacing"===l){const t=e[l];o[l]=n(t)?t:{row:t.row??a,column:t.column??a}}else o[l]=e[l];return o}(e,t,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:CP(e)||(null==i?void 0:i.component.data.isFaceted)&&void 0===e.data},layoutSize:new Gq,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...a?Oi(a):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){$G(e),XH(e);for(const n of $B)bG(e,n);t||wG(e)}(this)}parseProjection(){iH(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){VW(this)}assembleEncodeFromView(e){const{style:t,...n}=e,i={};for(const r of Qi(n)){const e=n[r];void 0!==e&&(i[r]=rs(e))}return i}assembleGroupEncodeEntry(e){let t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=rs(this.description)),"unit"!==this.type&&"layer"!==this.type)?Ji(t)?void 0:t:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...t}}assembleLayout(){if(!this.layout)return;const{spacing:e,...t}=this.layout,{component:n,config:i}=this,r=function(e,t){const n={};for(const i of vo){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=gW(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=pW(i,o),s=SW(e,a);void 0!==s&&(n[a]=s)}}return Ji(n)?void 0:n}(n.layoutHeaders,i);return{padding:e,...this.assembleDefaultLayout(),...t,...r?{titleBand:r}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of vo)e[n].title&&t.push(bW(this,n));for(const n of yW)t=t.concat(_W(this,n));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map((e=>nW(e,"grid",t))),...i.map((e=>nW(e,"grid",t))),...n.map((e=>nW(e,"main",t))),...i.map((e=>nW(e,"main",t)))].filter((e=>e))}(this.component.axes,this.config)}assembleLegends(){return KW(this)}assembleProjections(){return ZW(this)}assembleTitle(){const{encoding:e,...t}=this.title??{},n={...Va(this.config.title).nonMarkTitleProperties,...t,...e?{encode:{update:e}}:{}};if(n.text)return ji(["unit","layer"],this.type)?ji(["middle",void 0],n.anchor)&&(n.frame??(n.frame="group")):n.anchor??(n.anchor="start"),Ji(n)?void 0:n}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||EG(this.parent)?aG(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return tr((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(aU[e].toLowerCase())}requestDataName(e){const t=this.getDataName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(EG(this.parent)){const t=sa(OW(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(dB(e)&&Ja(i)){const e=n.get("name"),i=rG(oG(this,t));if(i){return{signal:zW(e,n,ej({aggregate:"distinct",field:i},{expr:"datum"}))}}return sT(zR(t)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):Fo(e)&&$a(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getScaleType(e){const t=this.getScaleComponent(e);return t?t.get("type"):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(`Cannot find a selection named "${t}".`);return n}hasAxisOrientSignalRef(){var e,t;return(null==(e=this.component.axes.x)?void 0:e.some((e=>e.hasOrientSignalRef())))||(null==(t=this.component.axes.y)?void 0:t.some((e=>e.hasOrientSignalRef())))}}class zG extends MG{vgField(e,t={}){const n=this.fieldDef(e);if(n)return ej(n,t)}reduceFieldDef(e,t){return function(e,t,n,i){return e?Qi(e).reduce(((n,r)=>{const o=e[r];return u(o)?o.reduce(((e,n)=>t.call(i,e,n,r)),n):t.call(i,n,o,r)}),n):n}(this.getMapping(),((t,n,i)=>{const r=uj(n);return r?e(t,r,i):t}),t)}forEachFieldDef(e,t){Bj(this.getMapping(),((t,n)=>{const i=uj(t);i&&e(i,n)}),t)}}class OG extends uU{clone(){return new OG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"value",n[1]??"density"];const i=this.transform.resolve??"shared";this.transform.resolve=i}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Bi(this.transform)}`}assemble(){const{density:e,...t}=this.transform,n={type:"kde",field:e,...t};return n.resolve=this.transform.resolve,n}}class NG extends uU{clone(){return new NG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Bi(this.transform)}`}assemble(){const{extent:e,param:t}=this.transform;return{type:"extent",field:e,signal:t}}}class RG extends uU{clone(){return new RG(this.parent,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map(((e,t)=>i[t]??e))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Bi(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class TG extends uU{clone(){return new TG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"key",n[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Bi(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class BG extends uU{clone(){return new BG(null,Oi(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[[jr,Pr],[qr,Lr]]){const r=i.map((e=>{const n=cj(t.encoding[e]);return LP(n)?n.field:UP(n)?{expr:`${n.datum}`}:YP(n)?{expr:`${n.value}`}:void 0}));(r[0]||r[1])&&(e=new BG(e,r,null,t.getName("geojson_"+n++)))}if(t.channelHasField(Gr)){const i=t.typedFieldDef(Gr);i.type===VT&&(e=new BG(e,null,i.field,t.getName("geojson_"+n++)))}return e}constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}dependentFields(){const e=(this.fields??[]).filter(i);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Bi(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class PG extends uU{clone(){return new PG(null,this.projection,Oi(this.fields),Oi(this.as))}constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[[jr,Pr],[qr,Lr]]){const i=n.map((e=>{const n=cj(t.encoding[e]);return LP(n)?n.field:UP(n)?{expr:`${n.datum}`}:YP(n)?{expr:`${n.value}`}:void 0})),r=n[0]===qr?"2":"";(i[0]||i[1])&&(e=new PG(e,t.projectionName(),i,[t.getName(`x${r}`),t.getName(`y${r}`)]))}return e}dependentFields(){return new Set(this.fields.filter(i))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Bi(this.fields)} ${Bi(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class jG extends uU{clone(){return new jG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new jG(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(LP(i)&&LP(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:l,frame:u,keyvals:c}=o.impute,f=Pj(t.mark,n);return new jG(e,{impute:o.field,key:a.field,...s?{method:s}:{},...void 0!==l?{value:l}:{},...u?{frame:u}:{},...void 0!==c?{keyvals:c}:{},...f.length?{groupby:f}:{}})}return null}hash(){return`Impute ${Bi(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s={type:"impute",field:e,key:t,...n?{keyvals:(l=n,$r(l,"stop")?this.processSequence(n):n)}:{},method:"value",...r?{groupby:r}:{},value:i&&"value"!==i?null:o};var l;if(i&&"value"!==i){return[s,{type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1,...r?{groupby:r}:{}},{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class LG extends uU{clone(){return new LG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Bi(this.transform)}`}assemble(){const{loess:e,on:t,...n}=this.transform;return{type:"loess",x:t,y:e,...n}}}class qG extends uU{clone(){return new qG(null,Oi(this.transform),this.secondary)}constructor(e,t,n){super(e),this.transform=t,this.secondary=n}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return $r(e,"data")}(o)){let e=tV(o.data,r);e||(e=new bH(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new cU(e,n,aU.Lookup,t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return $r(e,"param")}(o)){const e=o.param;let i;n={as:e,...n};try{i=t.getSelectionComponent(tr(e),e)}catch(s){throw new Error(`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`)}if(a=i.materialized,!a)throw new Error(function(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}(e))}return new qG(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?c(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Bi({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e={values:this.transform.from.fields,...this.transform.as?{as:c(this.transform.as)}:{}};else{let t=this.transform.as;i(t)||(sT('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),t="_lookup"),e={as:[t]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...e,...this.transform.default?{default:this.transform.default}:{}}}}class UG extends uU{clone(){return new UG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"prob",n[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Bi(this.transform)}`}assemble(){const{quantile:e,...t}=this.transform;return{type:"quantile",field:e,...t}}}class IG extends uU{clone(){return new IG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Bi(this.transform)}`}assemble(){const{regression:e,on:t,...n}=this.transform;return{type:"regression",x:t,y:e,...n}}}class WG extends uU{clone(){return new WG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi((this.transform.groupby??[]).concat(e),(e=>e))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Bi(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return{type:"pivot",field:e,value:t,...void 0!==i?{limit:i}:{},...void 0!==r?{op:r}:{},...void 0!==n?{groupby:n}:{}}}}class HG extends uU{clone(){return new HG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Bi(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function GG(e){let t=0;return function n(i,r){if(i instanceof bH&&!i.isGenerator&&!Zq(i.data)){e.push(r);r={name:null,source:r.name,transform:[]}}if(i instanceof mH&&(i.parent instanceof bH&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof fH)return r.name||(r.name="data_"+t++),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void e.push(...i.assemble());if((i instanceof yH||i instanceof vH||i instanceof PH||i instanceof QI||i instanceof dW||i instanceof PG||i instanceof cH||i instanceof qG||i instanceof qH||i instanceof BH||i instanceof TG||i instanceof RG||i instanceof OG||i instanceof LG||i instanceof UG||i instanceof IG||i instanceof gH||i instanceof HG||i instanceof WG||i instanceof NG)&&r.transform.push(i.assemble()),(i instanceof lH||i instanceof hU||i instanceof jG||i instanceof LH||i instanceof BG)&&r.transform.push(...i.assemble()),i instanceof cU)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof cU)i.setSource(r.name);else if(r.name||(r.name="data_"+t++),i.setSource(r.name),1===i.numChildren()){e.push(r);r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof cU&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name="data_"+t++);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const e of i.children){n(e,{name:null,source:o,transform:[]})}break}}}}function VG(e,t){var n;const{facet:i,config:r,child:o,component:a}=e;if(e.channelHasField(t)){const s=i[t],l=mW("title",null,r,t);let c=oj(s,r,{allowDisabling:!0,includeDefault:void 0===l||!!l});o.component.layoutHeaders[t].title&&(c=u(c)?c.join(", "):c,c+=` / ${o.component.layoutHeaders[t].title}`,o.component.layoutHeaders[t].title=null);const f=mW("labelOrient",s.header,r,t),d=null!==s.header&&hr(null==(n=s.header)?void 0:n.labels,r.header.labels,!0),h=ji(["bottom","right"],f)?"footer":"header";a.layoutHeaders[t]={title:null!==s.header?c:null,facetFieldDef:s,[h]:"facet"===t?[]:[YG(e,t,d)]}}}function YG(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function XG(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:r,resolve:o}=e.component;if(o.axis[t]=TW(o,t),"shared"===o.axis[t]){const o="x"===t?"column":"row",a=r[o];for(const r of n.component.axes[t]){const t="top"===(i=r.get("orient"))||"left"===i||Xa(i)?"header":"footer";a[t]??(a[t]=[YG(e,o,!1)]);const n=nW(r,"main",e.config,{header:!0});n&&a[t][0].axes.push(n),r.mainExtracted=!0}}}var i}function JG(e){for(const t of e.children)t.parseLayoutSize()}function QG(e,t){const n=OW(t),i=sa(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const s of e.children){const t=s.component.layoutSize.getWithExplicit(n),o=r.scale[i]??RW(i,e);if("independent"===o&&"step"===t.value){a=void 0;break}if(a){if("independent"===o&&a.value!==t.value){a=void 0;break}a=Qq(a,t,n,"")}else a=t}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function KG(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(dB(e)){const e=CL(i.view,t);return Ja(n)||DL(e)?"step":e}return EL(i.view,t)}if(e.hasProjection||"arc"===e.mark)return EL(i.view,t);{const e=CL(i.view,t);return DL(e)?e.step:e}}function ZG(e,t,n){return ej(t,{suffix:`by_${ej(e)}`,...n})}class eV extends zG{constructor(e,t,n,i){super(e,"facet",t,n,i,e.resolve),this.child=DV(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!EP(e))return{facet:this.initFacetFieldDef(e,"facet")};const t=Qi(e),n={};for(const i of t){if(![Dr,Ar].includes(i)){sT(HR(i,"facet"));break}const t=e[i];if(void 0===t.field){sT(WR(t,i));break}n[i]=this.initFacetFieldDef(t,i)}return n}initFacetFieldDef(e,t){const n=hj(e,t);return n.header?n.header=Ga(n.header):null===n.header&&(n.header=null),n}channelHasField(e){return $r(this.facet,e)}fieldDef(e){return this.facet[e]}parseData(){this.component.data=nV(this),this.child.parseData()}parseLayoutSize(){JG(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some((e=>VI(e)))&&aT(PR)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of vo)VG(e,t);XG(e,"x"),XG(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){const e={};for(const t of vo)for(const n of vW){const i=this.component.layoutHeaders[t],r=i[n],{facetFieldDef:o}=i;if(o){const n=mW("titleOrient",o.header,this.config,t);if(["right","bottom"].includes(n)){const i=pW(t,n);e.titleAnchor??(e.titleAnchor={}),e.titleAnchor[i]="end"}}if(null==r?void 0:r[0]){const r="row"===t?"height":"width",o="header"===n?"headerBand":"footerBand";"facet"===t||this.child.component.layoutSize.get(r)||(e[o]??(e[o]={}),e[o][t]=.5),i.title&&(e.offset??(e.offset={}),e.offset["row"===t?"rowTitle":"columnTitle"]=10)}}return e}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),{...this.getHeaderLayoutMixins(),...n?{columns:n}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof eV)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof eV?{...this.channelHasField("column")?{encode:{update:{columns:{field:ej(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(e)}:super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof eV){if(this.child.channelHasField("column")){const i=ej(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of ia){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(dB(o)&&Ja(a)){const r=rG(oG(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):sT(zR(i))}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:o,as:a}=this.getCardinalityAggregateForChild(),s=[];for(const c of vo){const e=this.facet[c];if(e){s.push(ej(e));const{bin:t,sort:l}=e;if(La(t)&&s.push(ej(e,{binSuffix:"end"})),AP(l)){const{field:t,op:s=kP}=l,u=ZG(e,l);n&&i?(r.push(u),o.push("max"),a.push(u)):(r.push(t),o.push(s),a.push(u))}else if(u(l)){const t=hW(e,c);r.push(t),o.push("max"),a.push(t)}}}const l=!!n&&!!i;return{name:e,data:t,groupby:s,...l||r.length>0?{aggregate:{...l?{cross:l}:{},...r.length?{fields:r,ops:o,as:a}:{}}}:{}}}facetSortFields(e){const{facet:t}=this,n=t[e];return n?AP(n.sort)?[ZG(n,n.sort,{expr:"datum"})]:u(n.sort)?[hW(n,e,{expr:"datum"})]:[ej(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(AP(e)?e.order:!u(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:t,config:n}=this;if(t.facet)return $W(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of yW)if(t[r]){const o=mW("labelOrient",null==(e=t[r])?void 0:e.header,n,r);if(i[r].includes(o))return $W(t[r],r,n)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=GG(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...r?{style:r}:{},from:{facet:this.assembleFacet()},sort:{field:vo.map((e=>this.facetSortFields(e))).flat(),order:vo.map((e=>this.facetSortOrder(e))).flat()},...t.length>0?{data:t}:{},...n?{encode:{update:n}}:{},...e.assembleGroup(RU(this,[]))}]}getMapping(){return this.facet}}function tV(e,t){var n,i,r,o;for(const a of t){const t=a.data;if(e.name&&a.hasName()&&e.name!==a.dataName)continue;const s=null==(n=e.format)?void 0:n.mesh,l=null==(i=t.format)?void 0:i.feature;if(s&&l)continue;const u=null==(r=e.format)?void 0:r.feature;if((u||l)&&u!==l)continue;const c=null==(o=t.format)?void 0:o.mesh;if(!s&&!c||s===c)if(eU(e)&&eU(t)){if(_r(e.values,t.values))return a}else if(Zq(e)&&Zq(t)){if(e.url===t.url)return a}else if(tU(e)&&e.name===a.dataName)return a}return null}function nV(e){var t;let n=function(e,t){if(e.data||!e.parent){if(null===e.data){const e=new bH({values:[]});return t.push(e),e}const n=tV(e.data,t);if(n)return nU(e.data)||(n.data.format=Ui({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new bH(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:i,outputNodeRefCounts:r}=e.component.data,o=e.data,a=!(o&&(nU(o)||Zq(o)||eU(o)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Kq;nU(o)?(iU(o)?n=new vH(n,o.sequence):oU(o)&&(n=new yH(n,o.graticule)),a.parseNothing=!0):null===(null==(t=null==o?void 0:o.format)?void 0:t.parse)&&(a.parseNothing=!0),n=mH.makeExplicit(n,e,a)??n,n=new gH(n);const s=e.parent&&CG(e.parent);(SG(e)||EG(e))&&s&&(n=lH.makeFromEncoding(n,e)??n),e.transforms.length>0&&(n=function(e,t,n){let i=0;for(const r of t.transforms){let o,a;if(Dq(r))a=e=new dW(e,r),o="derived";else if(pq(r)){const i=hH(r);a=e=mH.makeWithAncestors(e,{},i,n)??e,e=new QI(e,t,r.filter)}else if(Aq(r))a=e=lH.makeFromTransform(e,r,t),o="number";else if(Eq(r))o="date",void 0===n.getWithExplicit(r.field).value&&(e=new mH(e,{[r.field]:o}),n.set(r.field,o,!1)),a=e=hU.makeFromTransform(e,r);else if(Fq(r))a=e=cH.makeFromTransform(e,r),o="number",HI(t)&&(e=new gH(e));else if(mq(r))a=e=qG.make(e,t,r,i++),o="derived";else if(_q(r))a=e=new qH(e,r),o="number";else if(kq(r))a=e=new BH(e,r),o="number";else if(Cq(r))a=e=LH.makeFromTransform(e,r),o="derived";else if(Mq(r))a=e=new TG(e,r),o="derived";else if(zq(r))a=e=new NG(e,r),o="derived";else if($q(r))a=e=new RG(e,r),o="derived";else if(gq(r))a=e=new WG(e,r),o="derived";else if(wq(r))e=new HG(e,r);else if(Sq(r))a=e=jG.makeFromTransform(e,r),o="derived";else if(yq(r))a=e=new OG(e,r),o="derived";else if(vq(r))a=e=new UG(e,r),o="derived";else if(bq(r))a=e=new IG(e,r),o="derived";else{if(!xq(r)){sT(`Ignoring an invalid transform: ${kr(r)}.`);continue}a=e=new LG(e,r),o="derived"}if(a&&void 0!==o)for(const e of a.producedFields()??[])n.set(e,o,!1)}return e}(n,e,a));const l=function(e){const t={};if(SG(e)&&e.component.selection)for(const n of Qi(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&dr(e.field)>1&&(t[e.field]="flatten")}return t}(e),u=pH(e);n=mH.makeWithAncestors(n,{},{...l,...u},a)??n,SG(e)&&(n=BG.parseAll(n,e),n=PG.parseAll(n,e)),(SG(e)||EG(e))&&(s||(n=lH.makeFromEncoding(n,e)??n),n=hU.makeFromEncoding(n,e)??n,n=dW.parseAllForSortIndex(n,e));const c=n=iV(aU.Raw,e,n);if(SG(e)){const t=cH.makeFromEncoding(n,e);t&&(n=t,HI(e)&&(n=new gH(n))),n=jG.makeFromEncoding(n,e)??n,n=LH.makeFromEncoding(n,e)??n}let f,d;if(SG(e)){const{markDef:t,mark:i,config:r}=e,o=us("invalid",t,r),{marks:a,scales:s}=d=lU({invalid:o,isPath:UB(i)});a!==s&&"include-invalid-values"===s&&(f=n=iV(aU.PreFilterInvalid,e,n)),"exclude-invalid-values"===a&&(n=PH.make(n,e,d)??n)}const h=n=iV(aU.Main,e,n);let p;if(SG(e)&&d){const{marks:t,scales:i}=d;"include-invalid-values"===t&&"exclude-invalid-values"===i&&(n=PH.make(n,e,d)??n,p=n=iV(aU.PostFilterInvalid,e,n))}SG(e)&&function(e,t){for(const[n,i]of Zi(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new cU(new QI(t,e,{param:n}),r,aU.Lookup,e.component.data.outputNodeRefCounts)}}(e,h);let m=null;if(EG(e)){const t=e.getName("facet");n=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(AP(r.sort)){const{field:n,op:i=kP}=r.sort;e=t=new BH(e,{joinaggregate:[{op:i,field:n,as:ZG(r,r.sort,{forAs:!0})}],groupby:[ej(r)]})}return t}return null}(n,e.facet)??n,m=new fH(n,e,t,h.getSource()),i[t]=m}return{...e.component.data,outputNodes:i,outputNodeRefCounts:r,raw:c,main:h,facetRoot:m,ancestorParse:a,preFilterInvalid:f,postFilterInvalid:p}}function iV(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),a=new cU(n,o,e,r);return i[o]=a,a}class rV extends MG{constructor(e,t,n,i){var r,o,a,s;super(e,"concat",t,n,i,e.resolve),"shared"!==(null==(o=null==(r=e.resolve)?void 0:r.axis)?void 0:o.x)&&"shared"!==(null==(s=null==(a=e.resolve)?void 0:a.axis)?void 0:s.y)||sT("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(e).map(((e,t)=>DV(e,this,this.getName(`concat_${t}`),void 0,i)))}parseData(){this.component.data=nV(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>VI(e)))&&aT(PR)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return _L(e)?e.vconcat:kL(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){JG(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";QG(e,t),QG(e,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.forEach((e=>e.assembleSignals())),[]}assembleLayoutSignals(){const e=FW(this);for(const t of this.children)e.push(...t.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleMarks(){return this.children.map((e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return{type:"group",name:e.getName("group"),...t?{title:t}:{},...n?{style:n}:{},...i?{encode:{update:i}}:{},...e.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return{...null!=e?{columns:e}:{},bounds:"full",align:"each"}}}const oV={disable:1,gridScale:1,scale:1,...$j,labelExpr:1,encode:1},aV=Qi(oV);class sV extends Gq{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new sV(Oi(this.explicit),Oi(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}hasOrientSignalRef(){return Xa(this.explicit.orient)}}const lV={bottom:"top",top:"bottom",left:"right",right:"left"};function uV(e,t){if(!e)return t.map((e=>e.clone()));{if(e.length!==t.length)return;const n=e.length;for(let i=0;i{switch(n){case"title":return gs(e,t);case"gridScale":return{explicit:e.explicit,value:hr(e.value,t.value)}}return Jq(e,t,n,"axis")}));e.setWithExplicit(n,i)}return e}function fV(e,t,n,i,r){if("disable"===t)return void 0!==n;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Xa(n.labelAngle)?n.labelAngle:br(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===fW(i,r))return!0}return e===n[t]}const dV=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function hV(e,t){var n,i;let r=t.axis(e);const o=new sV,a=cj(t.encoding[e]),{mark:s,config:l}=t,u=(null==r?void 0:r.orient)||(null==(n=l["x"===e?"axisX":"axisY"])?void 0:n.orient)||(null==(i=l.axis)?void 0:i.orient)||function(e){return"x"===e?"bottom":"left"}(e),c=t.getScaleComponent(e).get("type"),f=function(e,t,n,i){const r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:lB(t)?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],o="x"===e?"axisX":"axisY",a=Xa(n)?"axisOrient":`axis${rr(n)}`,s=[...r,...r.map((e=>o+e.substr(4)))],l=["axis",a,o];return{vlOnlyAxisConfig:rW(s,i,e,n),vgAxisConfig:rW(l,i,e,n),axisConfigStyle:oW([...l,...s],i)}}(e,c,u,t.config),d=void 0!==r?!r:aW("disable",l.style,null==r?void 0:r.style,f).configValue;if(o.set("disable",d,void 0!==r),d)return o;r=r||{};const h=function(e,t,n,i,r){const o=null==t?void 0:t.labelAngle;if(void 0!==o)return Xa(o)?o:br(o);{const{configValue:o}=aW("labelAngle",i,null==t?void 0:t.style,r);return void 0!==o?br(o):n!==Er||!ji([GT,WT],e.type)||LP(e)&&e.timeUnit?void 0:270}}(a,r,e,l.style,f),p=vP(r.formatType,a,c),m=yP(a,a.type,r.format,r.formatType,l,!0),g={fieldOrDatumDef:a,axis:r,channel:e,model:t,scaleType:c,orient:u,labelAngle:h,format:m,formatType:p,mark:s,config:l};for(const b of aV){const n=b in sW?sW[b](g):Aj(b)?r[b]:void 0,i=void 0!==n,a=fV(n,b,r,t,e);if(i&&a)o.set(b,n,a);else{const{configValue:e,configFrom:t}=Aj(b)&&"values"!==b?aW(b,l.style,r.style,f):{},s=void 0!==e;i&&!s?o.set(b,n,a):("vgAxisConfig"!==t||dV.has(b)&&s||wj(e)||Xa(e))&&o.set(b,e,!1)}}const y=r.encoding??{},v=_j.reduce(((n,i)=>{if(!o.hasAxisPart(i))return n;const r=NW(y[i]??{},t),a="labels"===i?function(e,t,n){const{encoding:i,config:r}=e,o=cj(i[t])??cj(i[No(t)]),a=e.axis(t)||{},{format:s,formatType:l}=a;if(dP(l))return{text:gP({fieldOrDatumDef:o,field:"datum.value",format:s,formatType:l,config:r}),...n};if(void 0===s&&void 0===l&&r.customFormatTypes){if("quantitative"===qP(o)){if(JP(o)&&"normalize"===o.stack&&r.normalizedNumberFormatType)return{text:gP({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:gP({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if("temporal"===qP(o)&&r.timeFormatType&&LP(o)&&!o.timeUnit)return{text:gP({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}(t,e,r):r;return void 0===a||Ji(a)||(n[i]={update:a}),n}),{});return Ji(v)||o.set("encode",v,!!r.encoding||void 0!==r.labelAngle),o}function pV(e,t){const{config:n}=e;return{...bI(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...oI("x",e,{defaultPos:"mid"}),...oI("y",e,{defaultPos:"mid"}),...tI("size",e),...tI("angle",e),...mV(e,n,t)}}function mV(e,t,n){return n?{shape:{value:n}}:tI("shape",e)}function gV(e,t,n){if(void 0===us("align",e,n))return"center"}function yV(e,t,n){if(void 0===us("baseline",e,n))return"middle"}const vV={arc:{vgMark:"arc",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...oI("x",e,{defaultPos:"mid"}),...oI("y",e,{defaultPos:"mid"}),...pI(e,"radius"),...pI(e,"theta")})},area:{vgMark:"area",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...fI("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient}),...fI("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient}),..._I(e)})},bar:{vgMark:"rect",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...pI(e,"x"),...pI(e,"y")})},circle:{vgMark:"symbol",encodeEntry:e=>pV(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&LP(n)&&n.type===VT?{field:ej(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...pI(e,"x"),...pI(e,"y"),...VU(e,"url")})},line:{vgMark:"line",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...oI("x",e,{defaultPos:"mid"}),...oI("y",e,{defaultPos:"mid"}),...tI("size",e,{vgChannel:"strokeWidth"}),..._I(e)})},point:{vgMark:"symbol",encodeEntry:e=>pV(e)},rect:{vgMark:"rect",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...pI(e,"x"),...pI(e,"y")})},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?{...bI(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...fI("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n}),...fI("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n}),...tI("size",e,{vgChannel:"strokeWidth"})}:{}}},square:{vgMark:"symbol",encodeEntry:e=>pV(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...bI(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...oI("x",e,{defaultPos:"mid"}),...oI("y",e,{defaultPos:"mid"}),...VU(e),...tI("size",e,{vgChannel:"fontSize"}),...tI("angle",e),...kI("align",gV(e.markDef,n,t)),...kI("baseline",yV(e.markDef,n,t)),...oI("radius",e,{defaultPos:null}),...oI("theta",e,{defaultPos:null})}}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"x":"y",o="horizontal"===i?"y":"x",a="horizontal"===i?"height":"width";return{...bI(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...pI(e,r),...oI(o,e,{defaultPos:"mid",vgChannel:"y"===o?"yc":"xc"}),[a]:rs(us("thickness",n,t))}}},trail:{vgMark:"trail",encodeEntry:e=>({...bI(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...oI("x",e,{defaultPos:"mid"}),...oI("y",e,{defaultPos:"mid"}),...tI("size",e),..._I(e)})}};function bV(e){if(ji([zB,FB,PB],e.mark)){const t=Pj(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:xV+e.requestDataName(aU.Main),data:e.requestDataName(aU.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:_V(e,{fromPrefix:xV})}]}(e,t)}else if(e.mark===CB){const t=es.some((t=>us(t,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&t)return function(e){var t;const[n]=_V(e,{fromPrefix:wV}),i=e.scaleName(e.stack.fieldChannel),r=(t={})=>e.vgField(e.stack.fieldChannel,t),o=(e,t)=>`${e}(${[r({prefix:"min",suffix:"start",expr:t}),r({prefix:"max",suffix:"start",expr:t}),r({prefix:"min",suffix:"end",expr:t}),r({prefix:"max",suffix:"end",expr:t})].map((e=>`scale('${i}',${e})`)).join(",")})`;let a,s;"x"===e.stack.fieldChannel?(a={...Ri(n.encode.update,["y","yc","y2","height",...es]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update={...Ti(n.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...Ri(n.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update={...Ti(n.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const u of es){const t=cs(u,e.markDef,e.config);n.encode.update[u]?(a[u]=n.encode.update[u],delete n.encode.update[u]):t&&(a[u]=rs(t)),t&&(n.encode.update[u]={value:0})}const l=[];if((null==(t=e.stack.groupbyChannels)?void 0:t.length)>0)for(const u of e.stack.groupbyChannels){const t=e.fieldDef(u),n=ej(t);n&&l.push(n),((null==t?void 0:t.bin)||(null==t?void 0:t.timeUnit))&&l.push(ej(t,{binSuffix:"end"}))}a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((t,i)=>{if(n.encode.update[i])return{...t,[i]:n.encode.update[i]};{const n=cs(i,e.markDef,e.config);return void 0!==n?{...t,[i]:rs(n)}:t}}),a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0});return[{type:"group",from:{facet:{data:e.requestDataName(aU.Main),name:wV+e.requestDataName(aU.Main),groupby:l,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[n]}]}]}(e)}return _V(e)}const xV="faceted_path_";const wV="stack_group_";function _V(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=hr(i.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!(!(null==t?void 0:t.get("selectionExtent"))&&!(null==n?void 0:n.get("selectionExtent")))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),s=ls(i),l=r.key,c=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,a=t.order;if(!(!u(a)&&YP(a)&&Pi(a.value)||!a&&Pi(us("order",r,o)))){if((u(a)||LP(a))&&!n)return hs(a,{expr:"datum"});if(UB(i)){const e="horizontal"===r.orient?"y":"x";if(LP(t[e]))return{field:e}}}}(e),f=function(e){if(!e.component.selection)return null;const t=Qi(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=Qi(i.component.selection).length,i=i.parent;return n?{interactive:t>0||"geoshape"===e.mark||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}(e),d=us("aria",i,o),h=vV[n].postEncodingTransform?vV[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:vV[n].vgMark,...a?{clip:a}:{},style:s,...l?{key:l.field}:{},...c?{sort:c}:{},...f||{},...!1===d?{aria:d}:{},from:{data:t.fromPrefix+e.requestDataName(aU.Main)},encode:{update:vV[n].encodeEntry(e)},...h?{transform:h}:{}}]}class kV extends zG{constructor(e,t,n,i={},r){super(e,"unit",t,n,r,void 0,AL(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=e=>{var t,n,i;return(null==(t=e.from)?void 0:t.data)&&(e.from.data=this.lookupDataSource(e.from.data),"time"in this.encoding&&(e.from.data=e.from.data+_U)),(null==(i=null==(n=e.from)?void 0:n.facet)?void 0:i.data)&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e};const o=HB(e.mark)?{...e.mark}:{type:e.mark},a=o.type;void 0===o.filled&&(o.filled=function(e,t,{graticule:n}){if(n)return!1;const i=cs("filled",e,t),r=e.type;return hr(i,r!==OB&&r!==zB&&r!==RB)}(o,r,{graticule:e.data&&oU(e.data)}));const s=this.encoding=function(e,t,n,i){const r={};for(const s of Qi(e))Fo(s)||sT(`${o=s}-encoding is dropped as ${o} is not a valid encoding channel.`);var o,a;for(let s of jo){if(!e[s])continue;const o=e[s];if(ua(s)){const e=Po(s),t=r[e];if(LP(t)&&("quantitative"===(a=t.type)||"temporal"===a)&&LP(o)&&!t.timeUnit){sT(qR(e));continue}}if("angle"!==s||"arc"!==t||e.theta||(sT("Arc marks uses theta channel rather than angle, replacing angle with theta."),s=Tr),Rj(e,s,t)){if(s===Vr&&"line"===t){const t=uj(e[s]);if(null==t?void 0:t.aggregate){sT("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(s===Ir&&(n?"fill"in e:"stroke"in e))sT(IR("encoding",{fill:"fill"in e,stroke:"stroke"in e}));else if(s===no||s===to&&!u(o)&&!YP(o)||s===ro&&u(o)){if(o){if(s===to){const t=e[s];if(TP(t)){r[s]=t;continue}}r[s]=c(o).reduce(((e,t)=>(LP(t)?e.push(hj(t,s)):sT(WR(t,s)),e)),[])}}else{if(s===ro&&null===o)r[s]=null;else if(!(LP(o)||UP(o)||YP(o)||BP(o)||Xa(o))){sT(WR(o,s));continue}r[s]=fj(o,s,i)}}else sT(HR(s,t))}return r}(e.encoding||{},a,o.filled,r);this.markDef=KL(o,s,r),this.size=function({encoding:e,size:t}){for(const n of ia){const i=Ro(n);DL(t[i])&&IP(e[n])&&(delete t[i],sT(ZR(i)))}return t}({encoding:s,size:AL(e)?{...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}:i}),this.stack=QL(this.markDef,s),this.specifiedScales=this.initScales(a,s),this.specifiedAxes=this.initAxes(s),this.specifiedLegends=this.initLegends(s),this.specifiedProjection=e.projection,this.selection=(e.params??[]).filter((e=>bL(e)))}get hasProjection(){const{encoding:e}=this,t=this.mark===qB,n=e&&po.some((t=>GP(e[t])));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return ka.reduce(((e,n)=>{const i=cj(t[n]);return i&&(e[n]=this.initScale(i.scale??{})),e}),{})}initScale(e){const{domain:t,range:n}=e,i=Ga(e);return u(t)&&(i.domain=t.map(ns)),u(n)&&(i.range=n.map(ns)),i}initAxes(e){return ia.reduce(((t,n)=>{const i=e[n];if(GP(i)||n===Er&&GP(e.x2)||n===Fr&&GP(e.y2)){const e=GP(i)?i.axis:void 0;t[n]=e?this.initAxis({...e}):e}return t}),{})}initAxis(e){const t=Qi(e),n={};for(const i of t){const t=e[i];n[i]=wj(t)?ts(t):ns(t)}return n}initLegends(e){return wa.reduce(((t,n)=>{const i=cj(e[n]);if(i&&function(e){switch(e){case Ir:case Wr:case Hr:case Vr:case Gr:case Xr:case Kr:case Zr:return!0;case Jr:case Qr:case Yr:case Ur:return!1}}(n)){const e=i.legend;t[n]=e?Ga(e):e}return t}),{})}parseData(){this.component.data=nV(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ia){const r=Ro(i);if(t[r]){const e=t[r];n.layoutSize.set(r,DL(e)?"step":e,!0)}else{const t=KG(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){const n={},r=e.config.selection;if(!t||!t.length)return n;let o=0;for(const a of t){const t=tr(a.name),l=a.select,u=i(l)?l:l.type,f=s(l)?Oi(l):{type:u},d=r[u];for(const e in d)"fields"!==e&&"encodings"!==e&&("mark"===e&&(f.mark={...d.mark,...f.mark}),void 0!==f[e]&&!0!==f[e]||(f[e]=Oi(d[e]??f[e])));const h=n[t]={...f,name:t,type:u,init:a.value,bind:a.bind,events:i(f.on)?zM(f.on,"scope"):c(Oi(f.on))};if(VI(h)&&(o++,o>1)){delete n[t];continue}const p=Oi(a);for(const n of II)n.defined(h)&&n.parse&&n.parse(e,h,p)}return o>1&&sT("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),n}(this,this.selection)}parseMarkGroup(){this.component.mark=bV(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ia.reduce(((t,n)=>(e.component.scales[n]&&(t[n]=[hV(n,e)]),t)),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;for(const i of Ki(e.component.selection??{})){const r=i.name,o=a(r+jI);if(0===t.filter((e=>e.name===r)).length){const e="global"===i.resolve?"union":i.resolve,n="point"===i.type?", true, true)":")";t.push({name:i.name,update:`${UI}(${o}, ${a(e)}${n}`})}n=!0;for(const n of II)n.defined(i)&&n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))}n&&0===t.filter((e=>"unit"===e.name)).length&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]});return BU(t)}(this,e)}assembleSignals(){return[...iW(this),...NU(this,[])]}assembleSelectionData(e){return function(e,t){const n=[],i=[],r=WI(e,{escape:!1});for(const o of Ki(e.component.selection??{})){const a={name:o.name+jI};if(o.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:mL}}]),o.init){const e=o.project.items.map(zU);a.values=o.project.hasSelectionId?o.init.map((e=>({unit:r,[mL]:OU(e,!1)[0]}))):o.init.map((t=>({unit:r,fields:e,values:OU(t,!1)})))}if([...n,...t].filter((e=>e.name===o.name+jI)).length||n.push(a),VI(o)&&t.length){const n=e.lookupDataSource(e.getDataName(aU.Main)),r=t.find((e=>e.name===n)),o=r.transform.find((e=>"filter"===e.type&&e.expr.includes("vlSelectionTest")));if(o){r.transform=r.transform.filter((e=>e!==o));const e={name:r.name+_U,source:r.name,transform:[o]};i.push(e)}}}return n.concat(t,i)}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return FW(this)}assembleMarks(){let e=this.component.mark??[];return this.parent&&CG(this.parent)||(e=TU(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return Cj(this.encoding,e)}fieldDef(e){return uj(this.encoding[e])}typedFieldDef(e){const t=this.fieldDef(e);return VP(t)?t:null}}class $V extends MG{constructor(e,t,n,i,r){super(e,"layer",t,n,r,e.resolve,e.view);const o={...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}};this.children=e.layer.map(((e,t)=>{if(WL(e))return new $V(e,this,this.getName(`layer_${t}`),o,r);if(Ej(e))return new kV(e,this,this.getName(`layer_${t}`),o,r);throw new Error(SR(e))}))}parseData(){this.component.data=nV(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;JG(e=this),QG(e,"width"),QG(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>VI(e)))&&aT(PR)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const i of Qi(r.component.axes))n.axis[i]=TW(e.component.resolve,i),"shared"===n.axis[i]&&(t[i]=uV(t[i],r.component.axes[i]),t[i]||(n.axis[i]="independent",delete t[i]))}for(const r of ia){for(const o of e.children)if(o.component.axes[r]){if("independent"===n.axis[r]){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const e of o.component.axes[r]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(!Xa(t)){if(i[t]>0&&!n){const n=lV[t];i[t]>i[n]&&e.set("orient",n,!1)}i[t]++}}}delete o.component.axes[r]}if("independent"===n.axis[r]&&t[r]&&t[r].length>1)for(const[e,n]of(t[r]||[]).entries())e>0&&n.get("grid")&&!n.explicit.grid&&(n.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleSignals())),iW(this))}assembleLayoutSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleLayoutSignals())),FW(this))}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const n of this.children)for(const t of c(n.assembleGroupStyle()))e.add(t);const t=Array.from(e);return t.length>1?t:1===t.length?t[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)SG(n)&&(t=TU(n,t));return t}(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,t)=>e.concat(t.assembleLegends())),KW(this))}}function DV(e,t,n,i,r){if(CP(e))return new eV(e,t,n,r);if(WL(e))return new $V(e,t,n,i,r);if(Ej(e))return new kV(e,t,n,i,r);if(function(e){return _L(e)||kL(e)||wL(e)}(e))return new rV(e,t,n,r);throw new Error(SR(e))}function AV(e,t={}){var n;t.logger&&(n=t.logger,oT=n),t.fieldTitle&&rj(t.fieldTitle);try{const n=PL(Ie(t.config,e.config)),r=jq(e,n),o=DV(r,null,"",void 0,n);o.parse(),function(e,t){HH(e.sources);let n=0,i=0;for(let r=0;r<5&&VH(e,t,!0);r++)n++;e.sources.map(UH);for(let r=0;r<5&&VH(e,t,!1);r++)i++;HH(e.sources),5===Math.max(n,i)&&sT("Maximum optimization runs(5) reached.")}(o.component.data,o);const a=function(e,t,n={},i){const r=e.config?UL(e.config):void 0,o=function(e,t){const n=[],i=GG(n);let r=0;for(const a of e.sources){a.hasName()||(a.dataName="source_"+r++);const e=a.assemble();i(a,e)}for(const a of n)0===a.transform.length&&delete a.transform;let o=0;for(const[a,s]of n.entries())0!==(s.transform??[]).length||s.source||n.splice(o++,0,n.splice(a,1)[0]);for(const a of n)for(const t of a.transform??[])"lookup"===t.type&&(t.from=e.outputNodes[t.from].getSource());for(const a of n)a.name in t&&(a.values=t[a.name]);return n}(e.component.data,n),a=e.assembleSelectionData(o),s=e.assembleProjections(),l=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter((e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)));const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...l?{title:l}:{},...u?{style:u}:{},...c?{encode:{update:c}}:{},data:a,...s.length>0?{projections:s}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...xL(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}(o,function(e,t,n,r){const o=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");void 0===t?(t={type:"pad"},r.hasAxisOrientSignalRef()&&(t.resize=!0)):i(t)&&(t={type:t});if(o&&a&&(s=t.type,["fit","fit-x","fit-y"].includes(s)))if("step"===o&&"step"===a)sT(MR()),t.type="pad";else if("step"===o||"step"===a){const e="step"===o?"width":"height";sT(MR(sa(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${sa(e)}`:"fit"}(n)}var s;return{...1===Qi(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t},...Hq(n,!1),...Hq(e,!0)}}(e,r.autosize,n,o),e.datasets,e.usermeta);return{spec:a,normalized:r}}finally{t.logger&&(oT=rT),t.fieldTitle&&rj(nj)}}export{Ni as A,jq as B,br as C,Ti as D,Ri as E,Yi as F,fr as G,cr as H,ur as I,gr as J,Gi as K,Li as L,SB as M,kr as N,rr as O,Wi as P,mr as Q,Ki as R,tr as S,AR as T,Na as U,wa as V,bi as W,dr as a,or as b,sr as c,AV as d,ji as e,_r as f,ir as g,Oi as h,Zi as i,qi as j,Xi as k,ar as l,hr as m,Vi as n,$r as o,Bi as p,yr as q,er as r,Ji as s,Hi as t,vr as u,Pi as v,xr as w,Qi as x,nr as y,Ui as z}; diff --git a/public/examples/ui/assets/createWsUrl-Dvqu2lP_.js b/public/examples/ui/assets/createWsUrl-Dvqu2lP_.js new file mode 100644 index 0000000..a632046 --- /dev/null +++ b/public/examples/ui/assets/createWsUrl-Dvqu2lP_.js @@ -0,0 +1 @@ +import{S as s,K as t}from"./index-BnyyrSDd.js";function n(s){const n=new URLSearchParams(window.location.search);return n.set(t.sessionId,s),o(`ws?${n.toString()}`)}function o(t){if(t.startsWith("ws:")||t.startsWith("wss:"))return t;const n=new URL(document.baseURI),o="https:"===n.protocol?"wss:":"ws:",a=n.host,r=n.pathname;return`${o}//${a}${s.withoutTrailingSlash(r)}/${s.withoutLeadingSlash(t)}`}export{n as c,o as r}; diff --git a/public/examples/ui/assets/crystal-CRzZ78HM.js b/public/examples/ui/assets/crystal-CRzZ78HM.js new file mode 100644 index 0000000..54f1bc2 --- /dev/null +++ b/public/examples/ui/assets/crystal-CRzZ78HM.js @@ -0,0 +1 @@ +function e(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function t(e,t,n){return n.tokenize.push(e),e(t,n)}var n=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,r=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,a=/^(?:\[\][?=]?)/,u=/^(?:\.(?:\.{2})?|->|[?:])/,i=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,o=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,c=e(["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","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),s=e(["true","false","nil","self"]),f=e(["def","fun","macro","class","module","struct","lib","enum","union","do","for"]),l=e(["if","unless","case","while","until","begin","then"]),m=["end","else","elsif","rescue","ensure"],h=e(m),p=["\\)","\\}","\\]"],k=new RegExp("^(?:"+p.join("|")+")$"),d={def:g,fun:g,macro:function(e,t){if(e.eatSpace())return null;var n;if(n=e.match(i)){if("def"==n)return"keyword";e.eat(/[?!]/)}return t.tokenize.pop(),"def"},class:x,module:x,struct:x,lib:x,enum:x,union:x},F={"[":"]","{":"}","(":")","<":">"};function z(e,m){if(e.eatSpace())return null;if("\\"!=m.lastToken&&e.match("{%",!1))return t(b("%","%"),e,m);if("\\"!=m.lastToken&&e.match("{{",!1))return t(b("{","}"),e,m);if("#"==e.peek())return e.skipToEnd(),"comment";var h;if(e.match(i))return e.eat(/[?!]/),h=e.current(),e.eat(":")?"atom":"."==m.lastToken?"property":c.test(h)?(f.test(h)?"fun"==h&&m.blocks.indexOf("lib")>=0||"def"==h&&"abstract"==m.lastToken||(m.blocks.push(h),m.currentIndent+=1):"operator"!=m.lastStyle&&m.lastStyle||!l.test(h)?"end"==h&&(m.blocks.pop(),m.currentIndent-=1):(m.blocks.push(h),m.currentIndent+=1),d.hasOwnProperty(h)&&m.tokenize.push(d[h]),"keyword"):s.test(h)?"atom":"variable";if(e.eat("@"))return"["==e.peek()?t(_("[","]","meta"),e,m):(e.eat("@"),e.match(i)||e.match(o),"propertyName");if(e.match(o))return"tag";if(e.eat(":"))return e.eat('"')?t(I('"',"atom",!1),e,m):e.match(i)||e.match(o)||e.match(n)||e.match(r)||e.match(a)?"atom":(e.eat(":"),"operator");if(e.eat('"'))return t(I('"',"string",!0),e,m);if("%"==e.peek()){var p,k="string",z=!0;if(e.match("%r"))k="string.special",p=e.next();else if(e.match("%w"))z=!1,p=e.next();else if(e.match("%q"))z=!1,p=e.next();else if(p=e.match(/^%([^\w\s=])/))p=p[1];else{if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(e.eat("%"))return"operator"}return F.hasOwnProperty(p)&&(p=F[p]),t(I(p,k,z),e,m)}return(h=e.match(/^<<-('?)([A-Z]\w*)\1/))?t(function(e,t){return function(n,r){if(n.sol()&&(n.eatSpace(),n.match(e)))return r.tokenize.pop(),"string";for(var a=!1;n.peek();)if(a)n.next(),a=!1;else{if(n.match("{%",!1))return r.tokenize.push(b("%","%")),"string";if(n.match("{{",!1))return r.tokenize.push(b("{","}")),"string";if(t&&n.match("#{",!1))return r.tokenize.push(_("#{","}","meta")),"string";a="\\"==n.next()&&t}return"string"}}(h[2],!h[1]),e,m):e.eat("'")?(e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),e.eat("'"),"atom"):e.eat("0")?(e.eat("x")?e.match(/^[0-9a-fA-F_]+/):e.eat("o")?e.match(/^[0-7_]+/):e.eat("b")&&e.match(/^[01_]+/),"number"):e.eat(/^\d/)?(e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):e.match(n)?(e.eat("="),"operator"):e.match(r)||e.match(u)?"operator":(h=e.match(/[({[]/,!1))?t(_(h=h[0],F[h],null),e,m):e.eat("\\")?(e.next(),"meta"):(e.next(),null)}function _(e,t,n,r){return function(a,u){if(!r&&a.match(e))return u.tokenize[u.tokenize.length-1]=_(e,t,n,!0),u.currentIndent+=1,n;var i=z(a,u);return a.current()===t&&(u.tokenize.pop(),u.currentIndent-=1,i=n),i}}function b(e,t,n){return function(r,a){return!n&&r.match("{"+e)?(a.currentIndent+=1,a.tokenize[a.tokenize.length-1]=b(e,t,!0),"meta"):r.match(t+"}")?(a.currentIndent-=1,a.tokenize.pop(),"meta"):z(r,a)}}function g(e,t){return e.eatSpace()?null:(e.match(i)?e.eat(/[!?]/):e.match(n)||e.match(r)||e.match(a),t.tokenize.pop(),"def")}function x(e,t){return e.eatSpace()?null:(e.match(o),t.tokenize.pop(),"def")}function I(e,t,n){return function(r,a){for(var u=!1;r.peek();)if(u)r.next(),u=!1;else{if(r.match("{%",!1))return a.tokenize.push(b("%","%")),t;if(r.match("{{",!1))return a.tokenize.push(b("{","}")),t;if(n&&r.match("#{",!1))return a.tokenize.push(_("#{","}","meta")),t;var i=r.next();if(i==e)return a.tokenize.pop(),t;u=n&&"\\"==i}return t}}const w={name:"crystal",startState:function(){return{tokenize:[z],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t),r=e.current();return n&&"comment"!=n&&(t.lastToken=r,t.lastStyle=n),n},indent:function(e,t,n){return t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),h.test(t)||k.test(t)?n.unit*(e.currentIndent-1):n.unit*e.currentIndent},languageData:{indentOnInput:e(p.concat(m),!0),commentTokens:{line:"#"}}};export{w as crystal}; diff --git a/public/examples/ui/assets/css-ZjFoif2m.js b/public/examples/ui/assets/css-ZjFoif2m.js new file mode 100644 index 0000000..40ea638 --- /dev/null +++ b/public/examples/ui/assets/css-ZjFoif2m.js @@ -0,0 +1 @@ +function e(e){var t,r,o=(e={...z,...e}).inline,i=e.tokenHooks,a=e.documentTypes||{},n=e.mediaTypes||{},l=e.mediaFeatures||{},s=e.mediaValueKeywords||{},c=e.propertyKeywords||{},d=e.nonStandardPropertyKeywords||{},p=e.fontProperties||{},u=e.counterDescriptors||{},m=e.colorKeywords||{},g=e.valueKeywords||{},h=e.allowNested,b=e.lineComment,f=!0===e.supportsAtComponent,k=!1!==e.highlightNonStandardPropertyKeywords;function y(e,r){return t=r,e}function w(e,t){var r=e.next();if(i[r]){var o=i[r](e,t);if(!1!==o)return o}return"@"==r?(e.eatWhile(/[\w\\\-]/),y("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?y(null,"compare"):'"'==r||"'"==r?(t.tokenize=x(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),y("atom","hash")):"!"==r?(e.match(/^\s*\w*/),y("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),y("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?y(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?y("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?y(null,r):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=P),y("variableName.function","variable")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),y("property","word")):y(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),y("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?y("def","variable-definition"):y("variableName","variable")):e.match(/^\w+-/)?y("meta","meta"):void 0}function x(e){return function(t,r){for(var o,i=!1;null!=(o=t.next());){if(o==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==o}return(o==e||!i&&")"!=e)&&(r.tokenize=null),y("string","string")}}function P(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=x(")"),y(null,"(")}function j(e,t,r){this.type=e,this.indent=t,this.prev=r}function q(e,t,r,o){return e.context=new j(r,t.indentation()+(!1===o?0:t.indentUnit),e.context),r}function K(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function B(e,t,r){return A[r.context.type](e,t,r)}function _(e,t,r,o){for(var i=o||1;i>0;i--)r.context=r.context.prev;return B(e,t,r)}function O(e){var t=e.current().toLowerCase();r=g.hasOwnProperty(t)?"atom":m.hasOwnProperty(t)?"keyword":"variable"}var A={top:function(e,t,o){if("{"==e)return q(o,t,"block");if("}"==e&&o.context.prev)return K(o);if(f&&/@component/i.test(e))return q(o,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return q(o,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return q(o,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return o.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return q(o,t,"at");if("hash"==e)r="builtin";else if("word"==e)r="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return q(o,t,"interpolation");if(":"==e)return"pseudo";if(h&&"("==e)return q(o,t,"parens")}return o.context.type},block:function(e,t,o){if("word"==e){var i=t.current().toLowerCase();return c.hasOwnProperty(i)?(r="property","maybeprop"):d.hasOwnProperty(i)?(r=k?"string.special":"property","maybeprop"):h?(r=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(r="error","maybeprop")}return"meta"==e?"block":h||"hash"!=e&&"qualifier"!=e?A.top(e,t,o):(r="error","block")},maybeprop:function(e,t,r){return":"==e?q(r,t,"prop"):B(e,t,r)},prop:function(e,t,o){if(";"==e)return K(o);if("{"==e&&h)return q(o,t,"propBlock");if("}"==e||"{"==e)return _(e,t,o);if("("==e)return q(o,t,"parens");if("hash"!=e||/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t.current())){if("word"==e)O(t);else if("interpolation"==e)return q(o,t,"interpolation")}else r="error";return"prop"},propBlock:function(e,t,o){return"}"==e?K(o):"word"==e?(r="property","maybeprop"):o.context.type},parens:function(e,t,r){return"{"==e||"}"==e?_(e,t,r):")"==e?K(r):"("==e?q(r,t,"parens"):"interpolation"==e?q(r,t,"interpolation"):("word"==e&&O(t),"parens")},pseudo:function(e,t,o){return"meta"==e?"pseudo":"word"==e?(r="variableName.constant",o.context.type):B(e,t,o)},documentTypes:function(e,t,o){return"word"==e&&a.hasOwnProperty(t.current())?(r="tag",o.context.type):A.atBlock(e,t,o)},atBlock:function(e,t,o){if("("==e)return q(o,t,"atBlock_parens");if("}"==e||";"==e)return _(e,t,o);if("{"==e)return K(o)&&q(o,t,h?"block":"top");if("interpolation"==e)return q(o,t,"interpolation");if("word"==e){var i=t.current().toLowerCase();r="only"==i||"not"==i||"and"==i||"or"==i?"keyword":n.hasOwnProperty(i)?"attribute":l.hasOwnProperty(i)?"property":s.hasOwnProperty(i)?"keyword":c.hasOwnProperty(i)?"property":d.hasOwnProperty(i)?k?"string.special":"property":g.hasOwnProperty(i)?"atom":m.hasOwnProperty(i)?"keyword":"error"}return o.context.type},atComponentBlock:function(e,t,o){return"}"==e?_(e,t,o):"{"==e?K(o)&&q(o,t,h?"block":"top",!1):("word"==e&&(r="error"),o.context.type)},atBlock_parens:function(e,t,r){return")"==e?K(r):"{"==e||"}"==e?_(e,t,r,2):A.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,o){return"{"==e?q(o,t,"restricted_atBlock"):"word"==e&&"@counter-style"==o.stateArg?(r="variable","restricted_atBlock_before"):B(e,t,o)},restricted_atBlock:function(e,t,o){return"}"==e?(o.stateArg=null,K(o)):"word"==e?(r="@font-face"==o.stateArg&&!p.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==o.stateArg&&!u.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,o){return"word"==e?(r="variable","keyframes"):"{"==e?q(o,t,"top"):B(e,t,o)},at:function(e,t,o){return";"==e?K(o):"{"==e||"}"==e?_(e,t,o):("word"==e?r="tag":"hash"==e&&(r="builtin"),"at")},interpolation:function(e,t,o){return"}"==e?K(o):"{"==e||";"==e?_(e,t,o):("word"==e?r="variable":"variable"!=e&&"("!=e&&")"!=e&&(r="error"),"interpolation")}};return{name:e.name,startState:function(){return{tokenize:null,state:o?"block":"top",stateArg:null,context:new j(o?"block":"top",0,null)}},token:function(e,o){if(!o.tokenize&&e.eatSpace())return null;var i=(o.tokenize||w)(e,o);return i&&"object"==typeof i&&(t=i[1],i=i[0]),r=i,"comment"!=t&&(o.state=A[o.state](t,e,o)),r},indent:function(e,t,r){var o=e.context,i=t&&t.charAt(0),a=o.indent;return"prop"!=o.type||"}"!=i&&")"!=i||(o=o.prev),o.prev&&("}"!=i||"block"!=o.type&&"top"!=o.type&&"interpolation"!=o.type&&"restricted_atBlock"!=o.type?(")"!=i||"parens"!=o.type&&"atBlock_parens"!=o.type)&&("{"!=i||"at"!=o.type&&"atBlock"!=o.type)||(a=Math.max(0,o.indent-r.unit)):a=(o=o.prev).indent),a},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:b,block:{open:"/*",close:"*/"}},autocomplete:v}}}function t(e){for(var t={},r=0;r=&|~%^]/;const d={name:"cypher",startState:function(){return{tokenize:n,context:null,indent:0,col:0}},token:function(t,n){if(t.sol()&&(n.context&&null==n.context.align&&(n.context.align=!1),n.indent=t.indentation()),t.eatSpace())return null;var o=n.tokenize(t,n);if("comment"!==o&&n.context&&null==n.context.align&&"pattern"!==n.context.type&&(n.context.align=!0),"("===e)r(n,")",t.column());else if("["===e)r(n,"]",t.column());else if("{"===e)r(n,"}",t.column());else if(/[\]\}\)]/.test(e)){for(;n.context&&"pattern"===n.context.type;)a(n);n.context&&e===n.context.type&&a(n)}else"."===e&&n.context&&"pattern"===n.context.type?a(n):/atom|string|variable/.test(o)&&n.context&&(/[\}\]]/.test(n.context.type)?r(n,"pattern",t.column()):"pattern"!==n.context.type||n.context.align||(n.context.align=!0,n.context.col=t.column()));return o},indent:function(e,t,n){var r=t&&t.charAt(0),a=e.context;if(/[\]\}]/.test(r))for(;a&&"pattern"===a.type;)a=a.prev;var o=a&&r===a.type;return a?"keywords"===a.type?null:a.align?a.col+(o?0:1):a.indent+(o?0:n.unit):0}};export{d as cypher}; diff --git a/public/examples/ui/assets/cytoscape.esm-BOa7ANXG.js b/public/examples/ui/assets/cytoscape.esm-BOa7ANXG.js new file mode 100644 index 0000000..3afd94b --- /dev/null +++ b/public/examples/ui/assets/cytoscape.esm-BOa7ANXG.js @@ -0,0 +1,9 @@ +function e(t){return(e="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})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t,n){return t&&function(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw o}}}}var l="undefined"==typeof window?null:window,u=l?l.navigator:null;l&&l.document;var c=e(""),d=e({}),h=e((function(){})),p="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),f=function(e){return e&&e.instanceString&&v(e.instanceString)?e.instanceString():null},g=function(t){return null!=t&&e(t)==c},v=function(t){return null!=t&&e(t)===h},y=function(e){return!w(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},m=function(t){return null!=t&&e(t)===d&&!y(t)&&t.constructor===Object},b=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},x=function(e){return"undefined"===p?void 0:null!=e&&e instanceof HTMLElement},w=function(e){return E(e)||k(e)},E=function(e){return"collection"===f(e)&&e._private.single},k=function(e){return"collection"===f(e)&&!e._private.single},C=function(e){return"core"===f(e)},S=function(e){return"stylesheet"===f(e)},P=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},D=function(t){return function(t){return null!=t&&e(t)===d}(t)&&v(t.then)},T=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var e=[],t=0;tt?1:0},V=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n255)return;t.push(Math.floor(i))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t}(e)||function(e){var t,n,r,a,i,o,s,l;function u(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var c=new RegExp("^"+L+"$").exec(e);if(c){if((n=parseInt(c[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(c[2]))<0||r>100)return;if(r/=100,(a=parseFloat(c[3]))<0||a>100)return;if(a/=100,void 0!==(i=c[4])&&((i=parseFloat(i))<0||i>1))return;if(0===r)o=s=l=Math.round(255*a);else{var d=a<.5?a*(1+r):a+r-a*r,h=2*a-d;o=Math.round(255*u(h,d,n+1/3)),s=Math.round(255*u(h,d,n)),l=Math.round(255*u(h,d,n-1/3))}t=[o,s,l,i]}return t}(e)},j={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},q=function(e){for(var t=e.map,n=e.keys,r=n.length,a=0;a=t||n<0||d&&e-u>=i}function g(){var e=U();if(f(e))return v(e);s=setTimeout(g,function(e){var n=t-(e-l);return d?me(n,i-(e-u)):n}(e))}function v(e){return s=void 0,h&&r?p(e):(r=a=void 0,o)}function y(){var e=U(),n=f(e);if(r=arguments,a=this,l=e,n){if(void 0===s)return function(e){return u=e,s=setTimeout(g,t),c?p(e):o}(l);if(d)return clearTimeout(s),s=setTimeout(g,t),p(l)}return void 0===s&&(s=setTimeout(g,t)),o}return t=ve(t)||0,X(n)&&(c=!!n.leading,i=(d="maxWait"in n)?ye(ve(n.maxWait)||0,t):i,h="trailing"in n?!!n.trailing:h),y.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=a=s=void 0},y.flush=function(){return void 0===s?o:v(U())},y},xe=l?l.performance:null,we=xe&&xe.now?function(){return xe.now()}:function(){return Date.now()},Ee=function(){if(l){if(l.requestAnimationFrame)return function(e){l.requestAnimationFrame(e)};if(l.mozRequestAnimationFrame)return function(e){l.mozRequestAnimationFrame(e)};if(l.webkitRequestAnimationFrame)return function(e){l.webkitRequestAnimationFrame(e)};if(l.msRequestAnimationFrame)return function(e){l.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(we())}),1e3/60)}}(),ke=function(e){return Ee(e)},Ce=we,Se=9261,Pe=5381,De=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Se;!(t=e.next()).done;)n=65599*n+t.value|0;return n},Te=function(e){return 65599*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Se)+e|0},_e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Pe;return(t<<5)+t+e|0},Me=function(e){return 2097152*e[0]+e[1]},Be=function(e,t){return[Te(e[0],t[0]),_e(e[1],t[1])]},Ne=function(e,t){var n={value:0,done:!1},r=0,a=e.length;return De({next:function(){return r=0;r--)e[r]===t&&e.splice(r,1)},Qe=function(e){e.splice(0,e.length)},Je=function(e,t,n){return n&&(t=B(n,t)),e[t]},et=function(e,t,n,r){n&&(t=B(n,t)),e[t]=r},tt="undefined"!=typeof Map?Map:function(){function e(){t(this,e),this._obj={}}return n(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),nt=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var a=0;a2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&C(e)){var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===r||"edges"===r){this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new rt,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==a.position.x&&(a.position.x=0),null==a.position.y&&(a.position.y=0),t.renderedPosition){var i=t.renderedPosition,o=e.pan(),s=e.zoom();a.position={x:(i.x-o.x)/s,y:(i.y-o.y)/s}}var l=[];y(t.classes)?l=t.classes:g(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;ut?1:0},u=function(e,t,a,i,o){var s;if(null==a&&(a=0),null==o&&(o=n),a<0)throw new Error("lo must be non-negative");for(null==i&&(i=e.length);an;0<=n?t++:t--)u.push(t);return u}.apply(this).reverse()).length;ig;0<=g?++h:--h)v.push(i(e,r));return v},f=function(e,t,r,a){var i,o,s;for(null==a&&(a=n),i=e[r];r>t&&a(i,o=e[s=r-1>>1])<0;)e[r]=o,r=s;return e[r]=i},g=function(e,t,r){var a,i,o,s,l;for(null==r&&(r=n),i=e.length,l=t,o=e[t],a=2*t+1;a0;){var C=y.pop(),S=v(C),P=C.id();if(d[P]=S,S!==1/0)for(var D=C.neighborhood().intersect(p),T=0;T0)for(n.unshift(t);c[a];){var i=c[a];n.unshift(i.edge),n.unshift(i.node),a=(r=i.node).id()}return o.spawn(n)}}}},pt={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,a=n.length,i=new Array(a),o=n,s=function(e){for(var t=0;t0;){if(l=g.pop(),u=l.id(),v.delete(u),w++,u===d){for(var E=[],k=a,C=d,S=m[C];E.unshift(k),null!=S&&E.unshift(S),null!=(k=y[C]);)S=m[C=k.id()];return{found:!0,distance:h[u],path:this.spawn(E),steps:w}}f[u]=!0;for(var P=l._private.edges,D=0;DD&&(p[P]=D,m[P]=S,b[P]=w),!a){var T=S*u+C;!a&&p[T]>D&&(p[T]=D,m[T]=C,b[T]=w)}}}for(var _=0;_1&&void 0!==arguments[1]?arguments[1]:i,r=[],a=b(e);;){if(null==a)return t.spawn();var o=m(a),l=o.edge,u=o.pred;if(r.unshift(a[0]),a.same(n)&&r.length>0)break;null!=l&&r.unshift(l),a=u}return s.spawn(r)},hasNegativeWeightCycle:f,negativeWeightCycles:v}}},xt=Math.sqrt(2),wt=function(e,t,n){0===n.length&&Ye("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],a=r[1],i=r[2],o=t[a],s=t[i],l=n,u=l.length-1;u>=0;u--){var c=l[u],d=c[1],h=c[2];(t[d]===o&&t[h]===s||t[d]===s&&t[h]===o)&&l.splice(u,1)}for(var p=0;pr;){var a=Math.floor(Math.random()*t.length);t=wt(a,e,t),n--}return t},kt={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy((function(e){return e.isLoop()}));var a=n.length,i=r.length,o=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),s=Math.floor(a/xt);if(!(a<2)){for(var l=[],u=0;u0?1:e<0?-1:0},Mt=function(e,t){return Math.sqrt(Bt(e,t))},Bt=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},Nt=function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Ot=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},Rt=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},Vt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ft=function(e){var t,n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===o.length)t=n=r=i=o[0];else if(2===o.length)t=r=o[0],i=n=o[1];else if(4===o.length){var s=a(o,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},jt=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},qt=function(e,t){return!(e.x1>t.x2)&&(!(t.x1>e.x2)&&(!(e.x2t.y2)&&!(t.y1>e.y2)))))))},Yt=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},Xt=function(e,t){return Yt(e,t.x1,t.y1)&&Yt(e,t.x2,t.y2)},Wt=function(e,t,n,r,a,i,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?cn(a,i):u,d=a/2,h=i/2,p=(c=Math.min(c,d,h))!==d,f=c!==h;if(p){var g=r-h-o;if((s=rn(e,t,n,r,n-d+c-o,g,n+d-c+o,g,!1)).length>0)return s}if(f){var v=n+d+o;if((s=rn(e,t,n,r,v,r-h+c-o,v,r+h-c+o,!1)).length>0)return s}if(p){var y=r+h+o;if((s=rn(e,t,n,r,n-d+c-o,y,n+d-c+o,y,!1)).length>0)return s}if(f){var m=n-d-o;if((s=rn(e,t,n,r,m,r-h+c-o,m,r+h-c+o,!1)).length>0)return s}var b=n-d+c,x=r-h+c;if((l=tn(e,t,n,r,b,x,c+o)).length>0&&l[0]<=b&&l[1]<=x)return[l[0],l[1]];var w=n+d-c,E=r-h+c;if((l=tn(e,t,n,r,w,E,c+o)).length>0&&l[0]>=w&&l[1]<=E)return[l[0],l[1]];var k=n+d-c,C=r+h-c;if((l=tn(e,t,n,r,k,C,c+o)).length>0&&l[0]>=k&&l[1]>=C)return[l[0],l[1]];var S=n-d+c,P=r+h-c;return(l=tn(e,t,n,r,S,P,c+o)).length>0&&l[0]<=S&&l[1]>=P?[l[0],l[1]]:[]},Ht=function(e,t,n,r,a,i,o){var s=o,l=Math.min(n,a),u=Math.max(n,a),c=Math.min(r,i),d=Math.max(r,i);return l-s<=e&&e<=u+s&&c-s<=t&&t<=d+s},Kt=function(e,t,n,r,a,i,o,s,l){var u=Math.min(n,o,a)-l,c=Math.max(n,o,a)+l,d=Math.min(r,s,i)-l,h=Math.max(r,s,i)+l;return!(ec||th)},Gt=function(e,t,n,r,a,i,o,s){var l=[];!function(e,t,n,r,a){var i,o,s,l,u,c,d,h;0===e&&(e=1e-5),s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),i=(o=(3*n-t*t)/9)*o*o+(s/=54)*s,a[1]=0,d=t/3,i>0?(u=(u=s+Math.sqrt(i))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(i))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),a[0]=-d+u+c,d+=(u+c)/2,a[4]=a[2]=-d,d=Math.sqrt(3)*(-c+u)/2,a[3]=d,a[5]=-d):(a[5]=a[3]=0,0===i?(h=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),a[0]=2*h-d,a[4]=a[2]=-(h+d)):(l=(o=-o)*o*o,l=Math.acos(s/Math.sqrt(l)),h=2*Math.sqrt(o),a[0]=-d+h*Math.cos(l/3),a[2]=-d+h*Math.cos((l+2*Math.PI)/3),a[4]=-d+h*Math.cos((l+4*Math.PI)/3)))}(1*n*n-4*n*a+2*n*o+4*a*a-4*a*o+o*o+r*r-4*r*i+2*r*s+4*i*i-4*i*s+s*s,9*n*a-3*n*n-3*n*o-6*a*a+3*a*o+9*r*i-3*r*r-3*r*s-6*i*i+3*i*s,3*n*n-6*n*a+n*o-n*e+2*a*a+2*a*e-o*e+3*r*r-6*r*i+r*s-r*t+2*i*i+2*i*t-s*t,1*n*a-n*n+n*e-a*e+r*i-r*r+r*t-i*t,l);for(var u=[],c=0;c<6;c+=2)Math.abs(l[c+1])<1e-7&&l[c]>=0&&l[c]<=1&&u.push(l[c]);u.push(1),u.push(0);for(var d,h,p,f=-1,g=0;g=0?pl?(e-a)*(e-a)+(t-i)*(t-i):u-d},Zt=function(e,t,n){for(var r,a,i,o,s=0,l=0;l=e&&e>=i||r<=e&&e<=i))continue;(e-r)/(i-r)*(o-a)+a>t&&s++}return s%2!=0},$t=function(e,t,n,r,a,i,o,s,l){var u,c=new Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var d,h=Math.cos(-u),p=Math.sin(-u),f=0;f0){var g=Jt(c,-l);d=Qt(g)}else d=c;return Zt(e,t,d)},Qt=function(e){for(var t,n,r,a,i,o,s,l,u=new Array(e.length/2),c=0;c=0&&f<=1&&v.push(f),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,m=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,m]:[y,m,v[1]*s[0]+e,v[1]*s[1]+t]:[y,m]},nn=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},rn=function(e,t,n,r,a,i,o,s,l){var u=e-a,c=n-e,d=o-a,h=t-i,p=r-t,f=s-i,g=d*h-f*u,v=c*h-p*u,y=f*c-d*p;if(0!==y){var m=g/y,b=v/y,x=-.001;return x<=m&&m<=1.001&&x<=b&&b<=1.001||l?[e+m*c,t+m*p]:[]}return 0===g||0===v?nn(e,n,o)===o?[o,s]:nn(e,n,a)===a?[a,i]:nn(a,o,n)===n?[n,r]:[]:[]},an=function(e,t,n,r,a,i,o,s){var l,u,c,d,h,p,f=[],g=new Array(n.length),v=!0;if(null==i&&(v=!1),v){for(var y=0;y0){var m=Jt(g,-s);u=Qt(m)}else u=g}else u=n;for(var b=0;bu&&(u=t)},d=function(e){return l[e]},h=0;h0?b.edgesTo(m)[0]:m.edgesTo(b)[0];var w=r(x);m=m.id(),h[m]>h[v]+w&&(h[m]=h[v]+w,p.nodes.indexOf(m)<0?p.push(m):p.updateItem(m),u[m]=0,l[m]=[]),h[m]==h[v]+w&&(u[m]=u[m]+u[v],l[m].push(v))}else for(var E=0;E0;){for(var P=n.pop(),D=0;D0&&o.push(n[s]);0!==o.length&&a.push(r.collection(o))}return a}(c,l,t,r);return b=function(e){for(var t=0;t5&&void 0!==arguments[5]?arguments[5]:Bn,o=r,s=0;s=2?On(e,t,n,0,In,An):On(e,t,n,0,zn)},squaredEuclidean:function(e,t,n){return On(e,t,n,0,In)},manhattan:function(e,t,n){return On(e,t,n,0,zn)},max:function(e,t,n){return On(e,t,n,-1/0,Ln)}};function Vn(e,t,n,r,a,i){var o;return o=v(e)?e:Rn[e]||Rn.euclidean,0===t&&v(e)?o(a,i):o(t,n,r,a,i)}Rn["squared-euclidean"]=Rn.squaredEuclidean,Rn.squaredeuclidean=Rn.squaredEuclidean;var Fn=Ze({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),jn=function(e){return Fn(e)},qn=function(e,t,n,r,a){var i="kMedoids"!==a?function(e){return n[e]}:function(e){return r[e](n)},o=n,s=t;return Vn(e,r.length,i,(function(e){return r[e](t)}),o,s)},Yn=function(e,t,n){for(var r=n.length,a=new Array(r),i=new Array(r),o=new Array(t),s=null,l=0;ln)return!1}return!0},Kn=function(e,t,n){for(var r=0;ra&&(a=t[l][u],i=u);o[i].push(e[l])}for(var c=0;c=a.threshold||"dendrogram"===a.mode&&1===e.length)return!1;var p,f=t[o],g=t[r[o]];p="dendrogram"===a.mode?{left:f,right:g,key:f.key}:{value:f.value.concat(g.value),key:f.key},e[f.index]=p,e.splice(g.index,1),t[f.key]=p;for(var v=0;vn[g.key][y.key]&&(i=n[g.key][y.key])):"max"===a.linkage?(i=n[f.key][y.key],n[f.key][y.key]1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(n0&&e.splice(0,t)):e=e.slice(t,n);for(var i=0,o=e.length-1;o>=0;o--){var s=e[o];a?isFinite(s)||(e[o]=-1/0,i++):e.splice(o,1)}r&&e.sort((function(e,t){return e-t}));var l=e.length,u=Math.floor(l/2);return l%2!=0?e[u+1+i]:(e[u-1+i]+e[u+i])/2}(e):"mean"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,a=0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,a=t;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,a=t;ao&&(i=l,o=t[a*e+l])}i>0&&r.push(i)}for(var u=0;u=D?(T=D,D=M,_=B):M>T&&(T=M);for(var N=0;N0?1:0;C[k%u.minIterations*t+R]=V,O+=V}if(O>0&&(k>=u.minIterations-1||k==u.maxIterations-1)){for(var F=0,j=0;j0&&r.push(a);return r}(t,i,o),X=function(e,t,n){for(var r=dr(e,t,n),a=0;al&&(s=u,l=c)}n[a]=i[s]}return dr(e,t,n)}(t,r,Y),W={},H=0;H1)}}));var l=Object.keys(t).filter((function(e){return t[e].cutVertex})).map((function(t){return e.getElementById(t)}));return{cut:e.spawn(l),components:a}},vr=function(){var e=this,t={},n=0,r=[],a=[],i=e.spawn(e),o=function o(s){if(a.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach((function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))})),t[s].index===t[s].low){for(var l=e.spawn();;){var u=a.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),d=l.merge(c);r.push(d),i=i.difference(d)}};return e.forEach((function(e){if(e.isNode()){var n=e.id();n in t||o(n)}})),{cut:i,components:r}},yr={};[ot,ht,pt,gt,yt,bt,kt,fn,vn,mn,xn,Mn,Jn,sr,pr,{hierholzer:function(e){if(!m(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,a,i=fr(e),o=i.root,s=i.directed,l=this,u=!1;o&&(a=g(o)?this.filter(o)[0].id():o[0].id());var c={},d={};s?l.forEach((function(e){var t=e.id();if(e.isNode()){var a=e.indegree(!0),i=e.outdegree(!0),o=a-i,s=i-a;1==o?n?u=!0:n=t:1==s?r?u=!0:r=t:(s>1||o>1)&&(u=!0),c[t]=[],e.outgoers().forEach((function(e){e.isEdge()&&c[t].push(e.id())}))}else d[t]=[void 0,e.target().id()]})):l.forEach((function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(n?r?u=!0:r=t:n=t),c[t]=[],e.connectedEdges().forEach((function(e){return c[t].push(e.id())}))):d[t]=[e.source().id(),e.target().id()]}));var h={found:!1,trail:void 0};if(u)return h;if(r&&n)if(s){if(a&&r!=a)return h;a=r}else{if(a&&r!=a&&n!=a)return h;a||(a=r)}else a||(a=l[0].id());var p=function(e){for(var t,n,r,a=e,i=[e];c[a].length;)t=c[a].shift(),n=d[t][0],a!=(r=d[t][1])?(c[r]=c[r].filter((function(e){return e!=t})),a=r):s||a==n||(c[n]=c[n].filter((function(e){return e!=t})),a=n),i.unshift(t),i.unshift(a);return i},f=[],v=[];for(v=p(a);1!=v.length;)0==c[v[0]].length?(f.unshift(l.getElementById(v.shift())),f.unshift(l.getElementById(v.shift()))):v=p(v.shift()).concat(v);for(var y in f.unshift(l.getElementById(v.shift())),c)if(c[y].length)return h;return h.found=!0,h.trail=this.spawn(f,!0),h}},{hopcroftTarjanBiconnected:gr,htbc:gr,htb:gr,hopcroftTarjanBiconnectedComponents:gr},{tarjanStronglyConnected:vr,tsc:vr,tscc:vr,tarjanStronglyConnectedComponents:vr}].forEach((function(e){V(yr,e)})); +/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/ +var mr=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};mr.prototype={fulfill:function(e){return br(this,1,"fulfillValue",e)},reject:function(e){return br(this,2,"rejectReason",e)},then:function(e,t){var n=this,r=new mr;return n.onFulfilled.push(Er(e,r,"fulfill")),n.onRejected.push(Er(t,r,"reject")),xr(n),r.proxy}};var br=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,xr(e)),e},xr=function(e){1===e.state?wr(e,"onFulfilled",e.fulfillValue):2===e.state&&wr(e,"onRejected",e.rejectReason)},wr=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var a=function(){for(var e=0;e0:void 0}},clearQueue:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n-1};var da=function(e,t){var n=this.__data__,r=oa(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ha(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e0&&this.spawn(r).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){y(e)||(e=e.match(/\S+/g)||[]);for(var n=this,r=void 0===t,a=[],i=0,o=n.length;i0&&this.spawn(a).updateStyle().emit("class"),n},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};$a.className=$a.classNames=$a.classes;var Qa={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:z,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Qa.variable="(?:[\\w-.]|(?:\\\\"+Qa.metaChar+"))+",Qa.className="(?:[\\w-]|(?:\\\\"+Qa.metaChar+"))+",Qa.value=Qa.string+"|"+Qa.number,Qa.id=Qa.variable,function(){var e,t,n;for(e=Qa.comparatorOp.split("|"),n=0;n=0||"="!==t&&(Qa.comparatorOp+="|\\!"+t)}();var Ja=0,ei=1,ti=2,ni=3,ri=4,ai=5,ii=6,oi=7,si=8,li=9,ui=10,ci=11,di=12,hi=13,pi=14,fi=15,gi=16,vi=17,yi=18,mi=19,bi=20,xi=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return function(e,t){return-1*R(e,t)}(e.selector,t.selector)})),wi=function(){for(var e,t={},n=0;n0&&u.edgeCount>0)return We("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(u.edgeCount>1)return We("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===u.edgeCount&&We("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return g(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(a,i){return a.checks.reduce((function(o,s,l){return o+(i===a&&0===l?"$":"")+function(a,i){var o=a.type,s=a.value;switch(o){case Ja:var l=e(s);return l.substring(0,l.length-1);case ni:var u=a.field,c=a.operator;return"["+u+n(e(c))+t(s)+"]";case ai:var d=a.operator,h=a.field;return"["+e(d)+h+"]";case ri:return"["+a.field+"]";case ii:var p=a.operator;return"[["+a.field+n(e(p))+t(s)+"]]";case oi:return s;case si:return"#"+s;case li:return"."+s;case vi:case fi:return r(a.parent,i)+n(">")+r(a.child,i);case yi:case gi:return r(a.ancestor,i)+" "+r(a.descendant,i);case mi:var f=r(a.left,i),g=r(a.subject,i),v=r(a.right,i);return f+(f.length>0?" ":"")+g+v;case bi:return""}}(s,i)}),"")},a="",i=0;i1&&i=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(a=o||s?""+e:"",i=""+n),u&&(e=a=a.toLowerCase(),n=i=i.toLowerCase()),t){case"*=":r=a.indexOf(i)>=0;break;case"$=":r=a.indexOf(i,a.length-i.length)>=0;break;case"^=":r=0===a.indexOf(i);break;case"=":r=e===n;break;case">":d=!0,r=e>n;break;case">=":d=!0,r=e>=n;break;case"<":d=!0,r=e0;){var u=a.shift();t(u),i.add(u.id()),o&&r(a,i,u)}return e}function Fi(e,t,n){if(n.isParent())for(var r=n._private.children,a=0;a1&&void 0!==arguments[1])||arguments[1],Fi)},Ri.forEachUp=function(e){return Vi(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],ji)},Ri.forEachUpAndDown=function(e){return Vi(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],qi)},Ri.ancestors=Ri.parents,(Ai=Li={data:Ua.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Ua.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Ua.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ua.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Ua.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Ua.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Ai.data,Ai.removeAttr=Ai.removeData;var Yi,Xi,Wi=Li,Hi={};function Ki(e){return function(t){var n=this;if(void 0===t&&(t=!0),0!==n.length&&n.isNode()&&!n.removed()){for(var r=0,a=n[0],i=a._private.edges,o=0;ot})),minIndegree:Gi("indegree",(function(e,t){return et})),minOutdegree:Gi("outdegree",(function(e,t){return et}))}),V(Hi,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,c=u;u&&(l=l[0]);var d=c?l.position():{x:0,y:0};return a={x:s.x-d.x,y:s.y-d.y},void 0===e?a:a[e]}for(var h=0;h0,y=v;v&&(f=f[0]);var b=y?f.position():{x:0,y:0};void 0!==t?p.position(e,t+b[e]):void 0!==a&&p.position({x:a.x+b.x,y:a.y+b.y})}}else if(!i)return;return this}},Yi.modelPosition=Yi.point=Yi.position,Yi.modelPositions=Yi.points=Yi.positions,Yi.renderedPoint=Yi.renderedPosition,Yi.relativePoint=Yi.relativePosition;var $i,Qi,Ji=Xi;$i=Qi={},Qi.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),a=n.pan(),i=t.x1*r+a.x,o=t.x2*r+a.x,s=t.y1*r+a.y,l=t.y2*r+a.y;return{x1:i,x2:o,y1:s,y2:l,w:o-i,h:l-s}},Qi.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},Qi.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,a={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},i=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==i.w&&0!==i.h||((i={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-i.w/2,i.x2=o.x+i.w/2,i.y1=o.y-i.h/2,i.y2=o.y+i.h/2);var s=a.width.left.value;"px"===a.width.left.units&&a.width.val>0&&(s=100*s/a.width.val);var l=a.width.right.value;"px"===a.width.right.units&&a.width.val>0&&(l=100*l/a.width.val);var u=a.height.top.value;"px"===a.height.top.units&&a.height.val>0&&(u=100*u/a.height.val);var c=a.height.bottom.value;"px"===a.height.bottom.units&&a.height.val>0&&(c=100*c/a.height.val);var d=y(a.width.val-i.w,s,l),h=d.biasDiff,p=d.biasComplementDiff,f=y(a.height.val-i.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}(i.w,i.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(i.w,a.width.val),o.x=(-h+i.x1+i.x2+p)/2,t.autoHeight=Math.max(i.h,a.height.val),o.y=(-g+i.y1+i.y2+v)/2}function y(e,t,n){var r=0,a=0,i=t+n;return e>0&&i>0&&(r=t/i*e,a=n/i*e),{biasDiff:r,biasComplementDiff:a}}}for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},no=function(e,t){return null==t?e:to(e,t.x1,t.y1,t.x2,t.y2)},ro=function(e,t,n){return Je(e,t,n)},ao=function(e,t,n){if(!t.cy().headless()){var r,a,i=t._private,o=i.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,a=o.srcY):"target"===n?(r=o.tgtX,a=o.tgtY):(r=o.midX,a=o.midY);var l=i.arrowBounds=i.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=a-s,u.x2=r+s,u.y2=a+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Vt(u,1),to(e,u.x1,u.y1,u.x2,u.y2)}}},io=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var a=t._private,i=a.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),d=t.pstyle("text-valign"),h=ro(i,"labelWidth",n),p=ro(i,"labelHeight",n),f=ro(i,"labelX",n),g=ro(i,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,k=p,C=h,S=C/2,P=k/2;if(m)o=f-S,s=f+S,l=g-P,u=g+P;else{switch(c.value){case"left":o=f-C,s=f;break;case"center":o=f-S,s=f+S;break;case"right":o=f,s=f+C}switch(d.value){case"top":l=g-k,u=g;break;case"center":l=g-P,u=g+P;break;case"bottom":l=g,u=g+k}}o+=v-Math.max(x,w)-E-2,s+=v+Math.max(x,w)+E+2,l+=y-Math.max(x,w)-E-2,u+=y+Math.max(x,w)+E+2;var D=n||"main",T=a.labelBounds,_=T[D]=T[D]||{};_.x1=o,_.y1=l,_.x2=s,_.y2=u,_.w=s-o,_.h=u-l;var M=m&&"autorotate"===b.strValue,B=null!=b.pfValue&&0!==b.pfValue;if(M||B){var N=M?ro(a.rstyle,"labelAngle",n):b.pfValue,z=Math.cos(N),I=Math.sin(N),A=(o+s)/2,L=(l+u)/2;if(!m){switch(c.value){case"left":A=s;break;case"right":A=o}switch(d.value){case"top":L=u;break;case"bottom":L=l}}var O=function(e,t){return{x:(e-=A)*z-(t-=L)*I+A,y:e*I+t*z+L}},R=O(o,l),V=O(o,u),F=O(s,l),j=O(s,u);o=Math.min(R.x,V.x,F.x,j.x),s=Math.max(R.x,V.x,F.x,j.x),l=Math.min(R.y,V.y,F.y,j.y),u=Math.max(R.y,V.y,F.y,j.y)}var q=D+"Rot",Y=T[q]=T[q]||{};Y.x1=o,Y.y1=l,Y.x2=s,Y.y2=u,Y.w=s-o,Y.h=u-l,to(e,o,l,s,u),to(a.labelBounds.all,o,l,s,u)}return e}},oo=function(e,t){var n,r,a,i,o,s,l,u=e._private.cy,c=u.styleEnabled(),d=u.headless(),h=Lt(),p=e._private,f=e.isNode(),g=e.isEdge(),v=p.rstyle,y=f&&c?e.pstyle("bounds-expansion").pfValue:[0],m=function(e){return"none"!==e.pstyle("display").value},b=!c||m(e)&&(!g||m(e.source())&&m(e.target()));if(b){var x=0;c&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(x=e.pstyle("overlay-padding").value);var w=0;c&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(w=e.pstyle("underlay-padding").value);var E=Math.max(x,w),k=0;if(c&&(k=e.pstyle("width").pfValue/2),f&&t.includeNodes){var C=e.position();o=C.x,s=C.y;var S=e.outerWidth()/2,P=e.outerHeight()/2;to(h,n=o-S,a=s-P,r=o+S,i=s+P),c&&t.includeOutlines&&function(e,t){if(!t.cy().headless()){var n,r,a,i=t.pstyle("outline-opacity").value,o=t.pstyle("outline-width").value;if(i>0&&o>0){var s=t.pstyle("outline-offset").value,l=t.pstyle("shape").value,u=o+s,c=(e.w+2*u)/e.w,d=(e.h+2*u)/e.h,h=0;["diamond","pentagon","round-triangle"].includes(l)?(c=(e.w+2.4*u)/e.w,h=-u/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(l)?c=(e.w+2.4*u)/e.w:"star"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.6*u)/e.h,h=-u/3.8):"triangle"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.4*u)/e.h,h=-u/1.4):"vee"===l&&(c=(e.w+4.4*u)/e.w,d=(e.h+3.8*u)/e.h,h=.5*-u);var p=e.h*d-e.h,f=e.w*c-e.w;if(Ft(e,[Math.ceil(p/2),Math.ceil(f/2)]),0!==h){var g=(r=0,a=h,{x1:(n=e).x1+r,x2:n.x2+r,y1:n.y1+a,y2:n.y2+a,w:n.w,h:n.h});Ot(e,g)}}}}(h,e)}else if(g&&t.includeEdges)if(c&&!d){var D=e.pstyle("curve-style").strValue;if(n=Math.min(v.srcX,v.midX,v.tgtX),r=Math.max(v.srcX,v.midX,v.tgtX),a=Math.min(v.srcY,v.midY,v.tgtY),i=Math.max(v.srcY,v.midY,v.tgtY),to(h,n-=k,a-=k,r+=k,i+=k),"haystack"===D){var T=v.haystackPts;if(T&&2===T.length){if(n=T[0].x,a=T[0].y,n>(r=T[1].x)){var _=n;n=r,r=_}if(a>(i=T[1].y)){var M=a;a=i,i=M}to(h,n-k,a-k,r+k,i+k)}}else if("bezier"===D||"unbundled-bezier"===D||D.endsWith("segments")||D.endsWith("taxi")){var B;switch(D){case"bezier":case"unbundled-bezier":B=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":B=v.linePts}if(null!=B)for(var N=0;N(r=A.x)){var L=n;n=r,r=L}if((a=I.y)>(i=A.y)){var O=a;a=i,i=O}to(h,n-=k,a-=k,r+=k,i+=k)}if(c&&t.includeEdges&&g&&(ao(h,e,"mid-source"),ao(h,e,"mid-target"),ao(h,e,"source"),ao(h,e,"target")),c)if("yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,V=e.pstyle("ghost-offset-y").pfValue;to(h,h.x1+R,h.y1+V,h.x2+R,h.y2+V)}var F=p.bodyBounds=p.bodyBounds||{};jt(F,h),Ft(F,y),Vt(F,1),c&&(n=h.x1,r=h.x2,a=h.y1,i=h.y2,to(h,n-E,a-E,r+E,i+E));var j=p.overlayBounds=p.overlayBounds||{};jt(j,h),Ft(j,y),Vt(j,1);var q=p.labelBounds=p.labelBounds||{};null!=q.all?((l=q.all).x1=1/0,l.y1=1/0,l.x2=-1/0,l.y2=-1/0,l.w=0,l.h=0):q.all=Lt(),c&&t.includeLabels&&(t.includeMainLabels&&io(h,e,null),g&&(t.includeSourceLabels&&io(h,e,"source"),t.includeTargetLabels&&io(h,e,"target")))}return h.x1=eo(h.x1),h.y1=eo(h.y1),h.x2=eo(h.x2),h.y2=eo(h.y2),h.w=eo(h.x2-h.x1),h.h=eo(h.y2-h.y1),h.w>0&&h.h>0&&b&&(Ft(h,y),Vt(h,1)),h},so=function(e){var t=0,n=function(e){return(e?1:0)<0&&void 0!==arguments[0]?arguments[0]:To,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},Mo.removeAllListeners=function(){return this.removeListener("*")},Mo.emit=Mo.trigger=function(e,t,n){var r=this.listeners,a=r.length;return this.emitting++,y(t)||(t=[t]),zo(this,(function(e,i){null!=n&&(r=[{event:i.event,type:i.type,namespace:i.namespace,callback:n}],a=r.length);for(var o=function(n){var a=r[n];if(a.type===i.type&&(!a.namespace||a.namespace===i.namespace||".*"===a.namespace)&&e.eventMatches(e.context,a,i)){var o=[i];null!=t&&function(e,t){for(var n=0;n1&&!r){var a=this.length-1,i=this[a],o=i._private.data.id;this[a]=void 0,this[e]=i,n.set(o,{ele:i,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var a=r.index;return this.unmergeAt(a),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&g(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){e(this[t])&&this.unmergeAt(t)}return this},map:function(e,t){for(var n=[],r=this,a=0;ar&&(r=s,n=o)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,a=this,i=0;i=0&&a1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var a=n._private.style[e];return null!=a?a:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,a=n.style();if(m(e)){var i=e;a.applyBypass(this,i,r),this.emitAndNotify("style")}else if(g(e)){if(void 0===t){var o=this[0];return o?a.getStylePropertyValue(o,e):void 0}a.applyBypass(this,e,t,r),this.emitAndNotify("style")}else if(void 0===e){var s=this[0];return s?a.getRawStyle(s):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=!1,r=t.style(),a=this;if(void 0===e)for(var i=0;i0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),as.neighbourhood=as.neighborhood,as.closedNeighbourhood=as.closedNeighborhood,as.openNeighbourhood=as.openNeighborhood,V(as,{source:Oi((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Oi((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:ls({attr:"source"}),targets:ls({attr:"target"})}),V(as,{edgesWith:Oi(us(),"edgesWith"),edgesTo:Oi(us({thisIsSrc:!0}),"edgesTo")}),V(as,{connectedEdges:Oi((function(e){for(var t=[],n=0;n0);return i},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),as.componentsOf=as.components;var ds=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var a=new tt,i=!1;if(t){if(t.length>0&&m(t[0])&&!E(t[0])){i=!0;for(var o=[],s=new rt,l=0,u=t.length;l0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=this,i=a.cy(),o=i._private,s=[],l=[],u=0,c=a.length;u0){for(var O=e.length===a.length?a:new ds(i,e),R=0;R0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],a={},i=n._private.cy;function o(e){var n=a[e.id()];t&&e.removed()||n||(a[e.id()]=!0,e.isNode()?(r.push(e),function(e){for(var t=e._private.edges,n=0;n0&&(e?E.emitAndNotify("remove"):t&&E.emit("remove"));for(var k=0;k=.001?function(t,r){for(var a=0;a<4;++a){var i=h(r,e,n);if(0===i)return r;r-=(d(r,e,n)-t)/i}return r}(t,o):0===l?o:function(t,r,a){var i,o,s=0;do{(i=d(o=r+(a-r)/2,e,n)-t)>0?a=o:r=o}while(Math.abs(i)>1e-7&&++s<10);return o}(t,r,r+a)}var f=!1;function g(){f=!0,e===t&&n===r||function(){for(var t=0;t<11;++t)s[t]=d(t*a,e,n)}()}var v=function(a){return f||g(),e===t&&n===r?a:0===a?0:1===a?1:d(p(a),t,r)};v.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var y="generateBezier("+[e,t,n,r]+")";return v.toString=function(){return y},v} +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var gs=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var a={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:a.v,dv:e(a)}}function n(n,r){var a={dx:n.v,dv:e(n)},i=t(n,.5*r,a),o=t(n,.5*r,i),s=t(n,r,o),l=1/6*(a.dx+2*(i.dx+o.dx)+s.dx),u=1/6*(a.dv+2*(i.dv+o.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+u*r,n}return function e(t,r,a){var i,o,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,d=1e-4;for(t=parseFloat(t)||500,r=parseFloat(r)||20,a=a||null,l.tension=t,l.friction=r,o=(i=null!==a)?(c=e(t,r))/a*.016:.016;s=n(s||l,o),u.push(1+s.x),c+=16,Math.abs(s.x)>d&&Math.abs(s.v)>d;);return i?function(e){return u[e*(u.length-1)|0]}:c}}(),vs=function(e,t,n,r){var a=fs(e,t,n,r);return function(e,t,n){return e+(t-e)*a(n)}},ys={linear:function(e,t,n){return e+(t-e)*n},ease:vs(.25,.1,.25,1),"ease-in":vs(.42,0,1,1),"ease-out":vs(0,0,.58,1),"ease-in-out":vs(.42,0,.58,1),"ease-in-sine":vs(.47,0,.745,.715),"ease-out-sine":vs(.39,.575,.565,1),"ease-in-out-sine":vs(.445,.05,.55,.95),"ease-in-quad":vs(.55,.085,.68,.53),"ease-out-quad":vs(.25,.46,.45,.94),"ease-in-out-quad":vs(.455,.03,.515,.955),"ease-in-cubic":vs(.55,.055,.675,.19),"ease-out-cubic":vs(.215,.61,.355,1),"ease-in-out-cubic":vs(.645,.045,.355,1),"ease-in-quart":vs(.895,.03,.685,.22),"ease-out-quart":vs(.165,.84,.44,1),"ease-in-out-quart":vs(.77,0,.175,1),"ease-in-quint":vs(.755,.05,.855,.06),"ease-out-quint":vs(.23,1,.32,1),"ease-in-out-quint":vs(.86,0,.07,1),"ease-in-expo":vs(.95,.05,.795,.035),"ease-out-expo":vs(.19,1,.22,1),"ease-in-out-expo":vs(1,0,0,1),"ease-in-circ":vs(.6,.04,.98,.335),"ease-out-circ":vs(.075,.82,.165,1),"ease-in-out-circ":vs(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return ys.linear;var r=gs(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":vs};function ms(e,t,n,r,a){if(1===r)return n;if(t===n)return n;var i=a(t,n,r);return null==e||((e.roundValue||e.color)&&(i=Math.round(i)),void 0!==e.min&&(i=Math.max(i,e.min)),void 0!==e.max&&(i=Math.min(i,e.max))),i}function bs(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function xs(e,t,n,r,a){var i=null!=a?a.type:null;n<0?n=0:n>1&&(n=1);var o=bs(e,a),s=bs(t,a);if(b(o)&&b(s))return ms(i,o,s,n,r);if(y(o)&&y(s)){for(var l=[],u=0;u0?("spring"===d&&h.push(o.duration),o.easingImpl=ys[d].apply(null,h)):o.easingImpl=ys[d]}var p,f=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var v=o.startPosition,y=o.position;if(y&&a&&!e.locked()){var m={};Es(v.x,y.x)&&(m.x=xs(v.x,y.x,p,f)),Es(v.y,y.y)&&(m.y=xs(v.y,y.y,p,f)),e.position(m)}var b=o.startPan,x=o.pan,w=i.pan,E=null!=x&&r;E&&(Es(b.x,x.x)&&(w.x=xs(b.x,x.x,p,f)),Es(b.y,x.y)&&(w.y=xs(b.y,x.y,p,f)),e.emit("pan"));var k=o.startZoom,C=o.zoom,S=null!=C&&r;S&&(Es(k,C)&&(i.zoom=At(i.minZoom,xs(k,C,p,f),i.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var P=o.style;if(P&&P.length>0&&a){for(var D=0;D=0;t--){(0,e[t])()}e.splice(0,e.length)},c=i.length-1;c>=0;c--){var d=i[c],h=d._private;h.stopped?(i.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.frames)):(h.playing||h.applying)&&(h.playing&&h.applying&&(h.applying=!1),h.started||ks(0,d,e),ws(t,d,e,n),h.applying&&(h.applying=!1),u(h.frames),null!=h.step&&h.step(e),d.completed()&&(i.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.completes)),s=!0)}return n||0!==i.length||0!==o.length||r.push(t),s}for(var i=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var Ss={animate:Ua.animate(),animation:Ua.animation(),animated:Ua.animated(),clearQueue:Ua.clearQueue(),delay:Ua.delay(),delayAnimation:Ua.delayAnimation(),stop:Ua.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){Cs(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&ke((function(n){Cs(n,e),t()}))}()}}},Ps={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&E(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},Ds=function(e){return g(e)?new Ni(e):e},Ts={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new _o(Ps,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,Ds(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,Ds(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,Ds(t),n),this},once:function(e,t,n){return this.emitter().one(e,Ds(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Ua.eventAliasesOn(Ts);var _s={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};_s.jpeg=_s.jpg;var Ms={layout:function(e){var t=this;if(null!=e)if(null!=e.name){var n,r=e.name,a=t.extension("layout",r);if(null!=a)return n=g(e.eles)?t.$(e.eles):null!=e.eles?e.eles:t.$(),new a(V({},e,{cy:t,eles:n}));Ye("No such layout `"+r+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ye("A `name` must be specified to make a layout");else Ye("Layout options must be specified to make a layout")}};Ms.createLayout=Ms.makeLayout=Ms.layout;var Bs={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var a=this.renderer();!this.destroyed()&&a&&a.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};zs.invalidateDimensions=zs.resize;var Is={collection:function(e,t){return g(e)?this.$(e):w(e)?e.collection():y(e)?(t||(t={}),new ds(this,e,t.unique,t.removed)):new ds(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};Is.elements=Is.filter=Is.$;var As={},Ls="t";As.apply=function(e){for(var t=this,n=t._private.cy.collection(),r=0;r0;if(h||d&&p){var f=void 0;h&&p||h?f=u.properties:p&&(f=u.mappedProperties);for(var g=0;g1&&(v=1),s.color){var E=a.valueMin[0],k=a.valueMax[0],C=a.valueMin[1],S=a.valueMax[1],P=a.valueMin[2],D=a.valueMax[2],T=null==a.valueMin[3]?1:a.valueMin[3],_=null==a.valueMax[3]?1:a.valueMax[3],M=[Math.round(E+(k-E)*v),Math.round(C+(S-C)*v),Math.round(P+(D-P)*v),Math.round(T+(_-T)*v)];n={bypass:a.bypass,name:a.name,value:M,strValue:"rgb("+M[0]+", "+M[1]+", "+M[2]+")"}}else{if(!s.number)return!1;var B=a.valueMin+(a.valueMax-a.valueMin)*v;n=this.parse(a.name,B,a.bypass,h)}if(!n)return g(),!1;n.mapping=a,a=n;break;case o.data:for(var N=a.field.split("."),z=d.data,I=0;I0&&i>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:i,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,a),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,a),e.emitAndNotify("style"),r.transitioning=!1)},As.checkTrigger=function(e,t,n,r,a,i){var o=this.properties[t],s=a(o);null!=s&&s(n,r)&&i(o)},As.checkZOrderTrigger=function(e,t,n,r){var a=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){a._private.cy.notify("zorder",e)}))},As.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(a){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!a.triggersBoundsOfParallelBeziers||"curve-style"!==t||"bezier"!==n&&"bezier"!==r||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})),!a.triggersBoundsOfConnectedEdges||"display"!==t||"none"!==n&&"none"!==r||e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))},As.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Os={applyBypass:function(e,t,n,r){var a=[];if("*"===t||"**"===t){if(void 0!==n)for(var i=0;it.length?i.substr(t.length):""}function s(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(i.match(/^\s*$/))break;var l=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!l){We("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=l[0];var u=l[1];if("core"!==u)if(new Ni(u).invalid){We("Skipping parsing of block: Invalid selector found in string stylesheet: "+u),o();continue}var c=l[2],d=!1;n=c;for(var h=[];;){if(n.match(/^\s*$/))break;var p=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!p){We("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+c),d=!0;break}r=p[0];var f=p[1],g=p[2];if(this.properties[f])a.parse(f,g)?(h.push({name:f,val:g}),s()):(We("Skipping property: Invalid property definition in: "+r),s());else We("Skipping property: Invalid property name in: "+r),s()}if(d){o();break}a.selector(u);for(var v=0;v=7&&"d"===t[0]&&(u=new RegExp(s.data.regex).exec(t))){if(n)return!1;var h=s.data;return{name:e,value:u,strValue:""+t,mapped:h,field:u[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(c=new RegExp(s.mapData.regex).exec(t))){if(n)return!1;if(d.multiple)return!1;var p=s.mapData;if(!d.color&&!d.number)return!1;var f=this.parse(e,c[4]);if(!f||f.mapped)return!1;var m=this.parse(e,c[5]);if(!m||m.mapped)return!1;if(f.pfValue===m.pfValue||f.strValue===m.strValue)return We("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+f.strValue+"`"),this.parse(e,f.strValue);if(d.color){var x=f.value,w=m.value;if(!(x[0]!==w[0]||x[1]!==w[1]||x[2]!==w[2]||x[3]!==w[3]&&(null!=x[3]&&1!==x[3]||null!=w[3]&&1!==w[3])))return!1}return{name:e,value:c,strValue:""+t,mapped:p,field:c[1],fieldMin:parseFloat(c[2]),fieldMax:parseFloat(c[3]),valueMin:f.value,valueMax:m.value,bypass:n}}}if(d.multiple&&"multiple"!==r){var E;if(E=l?t.split(/\s+/):y(t)?t:[t],d.evenMultiple&&E.length%2!=0)return null;for(var k=[],C=[],S=[],P="",D=!1,T=0;T0?" ":"")+M.strValue}return d.validate&&!d.validate(k,C)?null:d.singleEnum&&D?1===k.length&&g(k[0])?{name:e,value:k[0],strValue:k[0],bypass:n}:null:{name:e,value:k,pfValue:S,strValue:P,bypass:n,units:C}}var B,N,I=function(){for(var r=0;rd.max||d.strictMax&&t===d.max))return null;var V={name:e,value:t,strValue:""+t+(A||""),units:A,bypass:n};return d.unitless||"px"!==A&&"em"!==A?V.pfValue=t:V.pfValue="px"!==A&&A?this.getEmSizeInPixels()*t:t,"ms"!==A&&"s"!==A||(V.pfValue="ms"===A?t:1e3*t),"deg"!==A&&"rad"!==A||(V.pfValue="rad"===A?t:(B=t,Math.PI*B/180)),"%"===A&&(V.pfValue=t/100),V}if(d.propList){var j=[],q=""+t;if("none"===q);else{for(var Y=q.split(/\s*,\s*|\s+/),X=0;X0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:o=(o=(o=Math.min((s-2*t)/n.w,(l-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:o)=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,a=r.pan,i=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),b(e)?n=e:m(e)&&(n=e.level,null!=e.position?t=Ct(e.position,i,a):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?i=!0:(t.zoom=s,a.push("zoom"))}if(r&&(!i||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;b(l.x)&&(t.pan.x=l.x,o=!1),b(l.y)&&(t.pan.y=l.y,o=!1),o||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(g(e)){var n=e;e=this.mutableElements().filter(n)}else w(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),a=this.width(),i=this.height();return{x:(a-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(i-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,a=this;return n.sizeCache=n.sizeCache||(r?(e=a.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};Ks.centre=Ks.center,Ks.autolockNodes=Ks.autolock,Ks.autoungrabifyNodes=Ks.autoungrabify;var Gs={data:Ua.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Ua.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Ua.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ua.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Gs.attr=Gs.data,Gs.removeAttr=Gs.removeData;var Us=function(e){var t=this,n=(e=V({},e)).container;n&&!x(n)&&x(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var a=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var i=void 0!==l&&void 0!==n&&!e.headless,o=e;o.layout=V({name:i?"grid":"null"},o.layout),o.renderer=V({name:i?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},u=this._private={container:n,ready:!1,options:o,elements:new ds(this),listeners:[],aniEles:new ds(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?i:o.styleEnabled,zoom:b(o.zoom)?o.zoom:1,pan:{x:m(o.pan)&&b(o.pan.x)?o.pan.x:0,y:m(o.pan)&&b(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});u.styleEnabled&&t.setStyle([]);var c=V({},o,o.renderer);t.initRenderer(c);!function(e,t){if(e.some(D))return Cr.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var n=e[0],i=e[1];u.styleEnabled&&t.style().append(n),function(e,n,r){t.notifications(!1);var a=t.mutableElements();a.length>0&&a.remove(),null!=e&&(m(e)||y(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var i=V({},t._private.options.layout);i.eles=t.elements(),t.layout(i).run()}(i,(function(){t.startAnimationLoop(),u.ready=!0,v(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,u=Lt(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(w(n.roots))e=n.roots;else if(y(n.roots)){for(var c=[],d=0;d0;){var N=_.shift(),z=T(N,M);if(z)N.outgoers().filter((function(e){return e.isNode()&&a.has(e)})).forEach(B);else if(null===z){We("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}D();var I=0;if(n.avoidOverlap)for(var A=0;A0&&b[0].length<=3?l/2:0),d=2*Math.PI/b[r].length*a;return 0===r&&1===b[0].length&&(c=1),{x:G+c*Math.cos(d),y:U+c*Math.sin(d)}}return{x:G+(a+1-(i+1)/2)*o,y:(r+1)*s}})),this};var nl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function rl(e){this.options=V({},nl,e)}rl.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));for(var o,s=Lt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l=s.x1+s.w/2,u=s.y1+s.h/2,c=(void 0===t.sweep?2*Math.PI-2*Math.PI/i.length:t.sweep)/Math.max(1,i.length-1),d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var v=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(d*d/(v*v+y*y));o=Math.max(m,o)}return r.nodes().layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*c*(a?1:-1),i=o*Math.cos(r),s=o*Math.sin(r);return{x:l+i,y:u+s}})),this};var al,il={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ol(e){this.options=V({},il,e)}ol.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,a=t.eles,i=a.nodes().not(":parent"),o=Lt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=o.x1+o.w/2,l=o.y1+o.h/2,u=[],c=0,d=0;d0)Math.abs(m[0].value-x.value)>=v&&(m=[],y.push(m));m.push(x)}var w=c+t.minNodeSpacing;if(!t.avoidOverlap){var E=y.length>0&&y[0].length>1,k=(Math.min(o.w,o.h)/2-w)/(y.length+E?1:0);w=Math.min(w,k)}for(var C=0,S=0;S1&&t.avoidOverlap){var _=Math.cos(T)-Math.cos(0),M=Math.sin(T)-Math.sin(0),B=Math.sqrt(w*w/(_*_+M*M));C=Math.max(B,C)}P.r=C,C+=w}if(t.equidistant){for(var N=0,z=0,I=0;I=e.numIter)&&(gl(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&i(),ke(t)):(Dl(r,e),s())}()}else{for(;u;)u=o(l),l++;Dl(r,e),s()}return this},ll.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},ll.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var ul=function(e,t,n){for(var r=n.eles.edges(),a=n.eles.nodes(),i=Lt(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:i.w,clientHeight:i.h,boundingBox:i},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(E);for(u=0;ur.count?0:r.graph},dl=function e(t,n,r,a){var i=a.graphSet[r];if(-10)var s=(u=r.nodeOverlap*o)*a/(g=Math.sqrt(a*a+i*i)),l=u*i/g;else{var u,c=xl(e,a,i),d=xl(t,-1*a,-1*i),h=d.x-c.x,p=d.y-c.y,f=h*h+p*p,g=Math.sqrt(f);s=(u=(e.nodeRepulsion+t.nodeRepulsion)/f)*h/g,l=u*p/g}e.isLocked||(e.offsetX-=s,e.offsetY-=l),t.isLocked||(t.offsetX+=s,t.offsetY+=l)}},bl=function(e,t,n,r){if(n>0)var a=e.maxX-t.minX;else a=t.maxX-e.minX;if(r>0)var i=e.maxY-t.minY;else i=t.maxY-e.minY;return a>=0&&i>=0?Math.sqrt(a*a+i*i):0},xl=function(e,t,n){var r=e.positionX,a=e.positionY,i=e.height||1,o=e.width||1,s=n/t,l=i/o,u={};return 0===t&&0n?(u.x=r,u.y=a+i/2,u):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=a-o*n/2/t,u):0=l)?(u.x=r+i*t/2/n,u.y=a+i/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-i*t/2/n,u.y=a-i/2,u):u},wl=function(e,t){for(var n=0;n1){var f=t.gravity*d/p,g=t.gravity*h/p;c.offsetX+=f,c.offsetY+=g}}}}},kl=function(e,t){var n=[],r=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;r<=a;){var i=n[r++],o=e.idToIndex[i],s=e.layoutNodes[o],l=s.children;if(0n)var a={x:n*e/r,y:n*t/r};else a={x:e,y:t};return a},Pl=function e(t,n){var r=t.parentId;if(null!=r){var a=n.layoutNodes[n.idToIndex[r]],i=!1;return(null==a.maxX||t.maxX+a.padRight>a.maxX)&&(a.maxX=t.maxX+a.padRight,i=!0),(null==a.minX||t.minX-a.padLefta.maxY)&&(a.maxY=t.maxY+a.padBottom,i=!0),(null==a.minY||t.minY-a.padTopf&&(d+=p+t.componentSpacing,c=0,h=0,p=0)}}},Tl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function _l(e){this.options=V({},Tl,e)}_l.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));var i=Lt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===i.h||0===i.w)r.nodes().layoutPositions(this,t,(function(e){return{x:i.x1,y:i.y1}}));else{var o=a.size(),s=Math.sqrt(o*i.h/i.w),l=Math.round(s),u=Math.round(i.w/i.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},d=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},h=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=h&&null!=p)l=h,u=p;else if(null!=h&&null==p)l=h,u=Math.ceil(o/l);else if(null==h&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var f=c(),g=d();(f-1)*g>=o?c(f-1):(g-1)*f>=o&&d(g-1)}else for(;u*l=o?d(y+1):c(v+1)}var m=i.w/u,b=i.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x=u&&(B=0,M++)},z={},I=0;I(r=Ut(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===i.edgeType||"multibezier"===i.edgeType||"self"===i.edgeType||"compound"===i.edgeType)for(x=i.allpts,w=0;w+5(r=Gt(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||a.source,b=b||a.target;var E=o.getArrowWidth(l,c),k=[{name:"source",x:i.arrowStartX,y:i.arrowStartY,angle:i.srcArrowAngle},{name:"target",x:i.arrowEndX,y:i.arrowEndY,angle:i.tgtArrowAngle},{name:"mid-source",x:i.midX,y:i.midY,angle:i.midsrcArrowAngle},{name:"mid-target",x:i.midX,y:i.midY,angle:i.midtgtArrowAngle}];for(w=0;w0&&(y(m),y(b))}function b(e,t,n){return Je(e,t,n)}function x(n,r){var a,i=n._private,o=f;a=r?r+"-":"",n.boundingBox();var s=i.labelBounds[r||"main"],l=n.pstyle(a+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(i.rscratch,"labelX",r),c=b(i.rscratch,"labelY",r),d=b(i.rscratch,"labelAngle",r),h=n.pstyle(a+"text-margin-x").pfValue,p=n.pstyle(a+"text-margin-y").pfValue,g=s.x1-o-h,y=s.x2+o-h,m=s.y1-o-p,x=s.y2+o-p;if(d){var w=Math.cos(d),E=Math.sin(d),k=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},C=k(g,m),S=k(g,x),P=k(y,m),D=k(y,x),T=[C.x+h,C.y+p,P.x+h,P.y+p,D.x+h,D.y+p,S.x+h,S.y+p];if(Zt(e,t,T))return v(n),!0}else if(Yt(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var a,i,o=this.getCachedZSortedEles().interactive,s=[],l=Math.min(e,n),u=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r),h=Lt({x1:e=l,y1:t=c,x2:n=u,y2:r=d}),p=0;p0?-(Math.PI-i.ang):Math.PI+i.ang),lu(t,n,su),Wl=ou.nx*su.ny-ou.ny*su.nx,Hl=ou.nx*su.nx-ou.ny*-su.ny,Ul=Math.asin(Math.max(-1,Math.min(1,Wl))),Math.abs(Ul)<1e-6)return Yl=t.x,Xl=t.y,void($l=Jl=0);Kl=1,Gl=!1,Hl<0?Ul<0?Ul=Math.PI+Ul:(Ul=Math.PI-Ul,Kl=-1,Gl=!0):Ul>0&&(Kl=-1,Gl=!0),Jl=void 0!==t.radius?t.radius:r,Zl=Ul/2,eu=Math.min(ou.len/2,su.len/2),a?(Ql=Math.abs(Math.cos(Zl)*Jl/Math.sin(Zl)))>eu?(Ql=eu,$l=Math.abs(Ql*Math.sin(Zl)/Math.cos(Zl))):$l=Jl:(Ql=Math.min(eu,Jl),$l=Math.abs(Ql*Math.sin(Zl)/Math.cos(Zl))),ru=t.x+su.nx*Ql,au=t.y+su.ny*Ql,Yl=ru-su.ny*$l*Kl,Xl=au+su.nx*$l*Kl,tu=t.x+ou.nx*Ql,nu=t.y+ou.ny*Ql,iu=t};function cu(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function du(e,t,n,r){var a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(uu(e,t,n,r,a),{cx:Yl,cy:Xl,radius:$l,startX:tu,startY:nu,stopX:ru,stopY:au,startAngle:ou.ang+Math.PI/2*Kl,endAngle:su.ang-Math.PI/2*Kl,counterClockwise:Gl})}var hu={};function pu(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},D=P(C,E),T=P(S,k),_=!1;"auto"===v?g=Math.abs(D)>Math.abs(T)?a:r:v===l||v===s?(g=r,_=!0):v!==i&&v!==o||(g=a,_=!0);var M,B=g===r,N=B?T:D,z=B?S:C,I=_t(z),A=!1;(_&&(m||x)||!(v===s&&z<0||v===l&&z>0||v===i&&z>0||v===o&&z<0)||(N=(I*=-1)*Math.abs(N),A=!0),m)?M=(b<0?1+b:b)*N:M=(b<0?N:0)+b*I;var L=function(e){return Math.abs(e)=Math.abs(N)},O=L(M),R=L(Math.abs(N)-Math.abs(M));if((O||R)&&!A)if(B){var V=Math.abs(z)<=d/2,F=Math.abs(C)<=h/2;if(V){var j=(u.x1+u.x2)/2,q=u.y1,Y=u.y2;n.segpts=[j,q,j,Y]}else if(F){var X=(u.y1+u.y2)/2,W=u.x1,H=u.x2;n.segpts=[W,X,H,X]}else n.segpts=[u.x1,u.y2]}else{var K=Math.abs(z)<=c/2,G=Math.abs(S)<=p/2;if(K){var U=(u.y1+u.y2)/2,Z=u.x1,$=u.x2;n.segpts=[Z,U,$,U]}else if(G){var Q=(u.x1+u.x2)/2,J=u.y1,ee=u.y2;n.segpts=[Q,J,Q,ee]}else n.segpts=[u.x2,u.y1]}else if(B){var te=u.y1+M+(f?d/2*I:0),ne=u.x1,re=u.x2;n.segpts=[ne,te,re,te]}else{var ae=u.x1+M+(f?c/2*I:0),ie=u.y1,oe=u.y2;n.segpts=[ae,ie,ae,oe]}if(n.isRound){var se=e.pstyle("taxi-radius").value,le="arc-radius"===e.pstyle("radius-type").value[0];n.radii=new Array(n.segpts.length/2).fill(se),n.isArcRadius=new Array(n.segpts.length/2).fill(le)}},hu.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,a=t.tgtPos,i=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!b(n.startX)||!b(n.startY),v=!b(n.arrowStartX)||!b(n.arrowStartY),y=!b(n.endX)||!b(n.endY),m=!b(n.arrowEndX)||!b(n.arrowEndY),x=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=Mt({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wh.poolIndex()){var p=d;d=h,h=p}var f=s.srcPos=d.position(),g=s.tgtPos=h.position(),v=s.srcW=d.outerWidth(),y=s.srcH=d.outerHeight(),m=s.tgtW=h.outerWidth(),x=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(d)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(h)],k=s.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,S=s.tgtRs=h._private.rscratch,P=s.srcRs=d._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var D=0;D0){var H=u,K=Bt(H,Pt(t)),G=Bt(H,Pt(W)),U=K;if(G2)Bt(H,{x:W[2],y:W[3]})0){var le=c,ue=Bt(le,Pt(t)),ce=Bt(le,Pt(se)),de=ue;if(ce2)Bt(le,{x:se[2],y:se[3]})=u||m){c={cp:g,segment:y};break}}if(c)break}var b=c.cp,x=c.segment,w=(u-h)/x.length,E=x.t1-x.t0,k=s?x.t0+E*w:x.t1-E*w;k=At(0,k,1),t=It(b.p0,b.p1,b.p2,k),a=function(e,t,n,r){var a=At(0,r-.001,1),i=At(0,r+.001,1),o=It(e,t,n,a),s=It(e,t,n,i);return bu(o,s)}(b.p0,b.p1,b.p2,k);break;case"straight":case"segments":case"haystack":for(var C,S,P,D,T=0,_=r.allpts.length,M=0;M+3<_&&(s?(P={x:r.allpts[M],y:r.allpts[M+1]},D={x:r.allpts[M+2],y:r.allpts[M+3]}):(P={x:r.allpts[_-2-M],y:r.allpts[_-1-M]},D={x:r.allpts[_-4-M],y:r.allpts[_-3-M]}),S=T,!((T+=C=Mt(P,D))>=u));M+=2);var B=(u-S)/C;B=At(0,B,1),t=function(e,t,n,r){var a=t.x-e.x,i=t.y-e.y,o=Mt(e,t),s=a/o,l=i/o;return n=null==n?0:n,r=null!=r?r:n*o,{x:e.x+s*r,y:e.y+l*r}}(P,D,B),a=bu(P,D)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,a)}};u("source"),u("target"),this.applyLabelDimensions(e)}},yu.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},yu.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),a=this.calculateLabelDimensions(e,r),i=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Je(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=a.height/l,c=u*i,d=a.width,h=a.height+(l-1)*(i-1)*u;et(n.rstyle,"labelWidth",t,d),et(n.rscratch,"labelWidth",t,d),et(n.rstyle,"labelHeight",t,h),et(n.rscratch,"labelHeight",t,h),et(n.rscratch,"labelLineHeight",t,c)},yu.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",a=e.pstyle(r+"label").strValue,i=e.pstyle("text-transform").value,o=function(e,r){return r?(et(n.rscratch,e,t,r),r):Je(n.rscratch,e,t)};if(!a)return"";"none"==i||("uppercase"==i?a=a.toUpperCase():"lowercase"==i&&(a=a.toLowerCase()));var l=e.pstyle("text-wrap").value;if("wrap"===l){var u=o("labelKey");if(null!=u&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var c=a.split("\n"),d=e.pstyle("text-max-width").pfValue,h="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;gd){var b,x="",w=0,E=s(v.matchAll(f));try{for(E.s();!(b=E.n()).done;){var k=b.value,C=k[0],S=v.substring(w,k.index);w=k.index+C.length;var P=0===x.length?S:x+S+C;this.calculateLabelDimensions(e,P).width<=d?x+=S+C:(x&&p.push(x),x=S+C)}}catch(B){E.e(B)}finally{E.f()}x.match(/^[\s\u200b]+$/)||p.push(x)}else p.push(v)}o("labelWrapCachedLines",p),a=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",u)}else if("ellipsis"===l){var D=e.pstyle("text-max-width").pfValue,T="",_=!1;if(this.calculateLabelDimensions(e,a).widthD)break;T+=a[M],M===a.length-1&&(_=!0)}return _||(T+="…"),T}return a},yu.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},yu.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window().document,a=Ne(t,e._private.labelDimsKey),i=n.labelDimCache||(n.labelDimCache=[]),o=i[a];if(null!=o)return o;var s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=r.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}h.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var f=0,g=0,v=t.split("\n"),y=0;y1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var D=a(t);v&&(e.hoverData.tapholdCancelled=!0);n=!0,r(g,["mousemove","vmousemove","tapdrag"],t,{x:c[0],y:c[1]});var T,_=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:c[0],y:c[1]}}),f[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(v){var M={originalEvent:t,type:"cxtdrag",position:{x:c[0],y:c[1]}};m?m.emit(M):o.emit(M),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&g===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.hoverData.cxtOver=g,g&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var B;if(e.hoverData.justStartedPan){var N=e.hoverData.mdownPos;B={x:(c[0]-N[0])*s,y:(c[1]-N[1])*s},e.hoverData.justStartedPan=!1}else B={x:x[0]*s,y:x[1]*s};o.panBy(B),o.emit("dragpan"),e.hoverData.dragged=!0}c=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=f[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||g==y||(y&&r(y,["mouseout","tapdragout"],t,{x:c[0],y:c[1]}),g&&r(g,["mouseover","tapdragover"],t,{x:c[0],y:c[1]}),e.hoverData.last=g),m)if(v){if(o.boxSelectionEnabled()&&D)m&&m.grabbed()&&(d(w),m.emit("freeon"),w.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),w.emit("dragfree"))),_();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var z=!e.dragData.didDrag;z&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||u(w,{inDragLayer:!0});var I={x:0,y:0};if(b(x[0])&&b(x[1])&&(I.x+=x[0],I.y+=x[1],z)){var A=e.hoverData.dragDelta;A&&b(A[0])&&b(A[1])&&(I.x+=A[0],I.y+=A[1])}e.hoverData.draggingEles=!0,w.silentShift(I).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else 0===(T=e.hoverData.dragDelta=e.hoverData.dragDelta||[]).length?(T.push(x[0]),T.push(x[1])):(T[0]+=x[0],T[1]+=x[1]);n=!0}else if(v){if(e.hoverData.dragging||!o.boxSelectionEnabled()||!D&&o.panningEnabled()&&o.userPanningEnabled()){if(!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){i(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=Pt(h),e.redrawHint("select",!0),e.redraw())}}else _();m&&m.pannable()&&m.active()&&m.unactivate()}return f[2]=c[0],f[3]=c[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if((1!==e.hoverData.which||1===t.which||!e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var i=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=a(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var p={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(p):i.emit(p),!e.hoverData.cxtDragged){var f={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):i.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),x=!1,t.timeStamp-w<=i.multiClickDebounceTime()?(m&&clearTimeout(m),x=!0,w=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(m=setTimeout((function(){x||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),i.multiClickDebounceTime()),w=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||a(t)||(i.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=i.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===i.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(i.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=i.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),i.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var v=function(e){return e.selectable()&&!e.selected()};"additive"===i.selectionType()||h||i.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(v).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();d(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null,e.hoverData.which=null}}),!1);var k,C,S,P,D,T,_,M,B,N,z,I,A,L=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),a=n.pan(),i=e.projectIntoViewport(t.clientX,t.clientY),o=[i[0]*r+a.x,i[1]*r+a.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4])t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",L,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||L(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var O,R,V,F,j,q,Y,X=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},W=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",O=function(t){if(e.hasTouchStarted=!0,E(t)){p(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,a=e.touchData.now,i=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);a[0]=o[0],a[1]=o[1]}if(t.touches[1]){o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);a[2]=o[0],a[3]=o[1]}if(t.touches[2]){o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);a[4]=o[0],a[5]=o[1]}if(t.touches[1]){e.touchData.singleTouchMoved=!0,d(e.dragData.touchDragEles);var l=e.findContainerClientCoords();B=l[0],N=l[1],z=l[2],I=l[3],k=t.touches[0].clientX-B,C=t.touches[0].clientY-N,S=t.touches[1].clientX-B,P=t.touches[1].clientY-N,A=0<=k&&k<=z&&0<=S&&S<=z&&0<=C&&C<=I&&0<=P&&P<=I;var h=n.pan(),f=n.zoom();D=X(k,C,S,P),T=W(k,C,S,P),M=[((_=[(k+S)/2,(C+P)/2])[0]-h.x)/f,(_[1]-h.y)/f];if(T<4e4&&!t.touches[2]){var g=e.findNearestElement(a[0],a[1],!0,!0),v=e.findNearestElement(a[2],a[3],!0,!0);return g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:a[0],y:a[1]}}),e.touchData.start=g):v&&v.isNode()?(v.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:a[0],y:a[1]}}),e.touchData.start=v):n.emit({originalEvent:t,type:"cxttapstart",position:{x:a[0],y:a[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(a[0],a[1],!0,!0),m=y[0];if(null!=m&&(m.activate(),e.touchData.start=m,e.touchData.starts=y,e.nodeIsGrabbable(m))){var b=e.dragData.touchDragEles=n.collection(),x=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),m.selected()?(x=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(x,{addToList:b})):c(m,{addToList:b}),s(m);var w=function(e){return{originalEvent:t,type:e,position:{x:a[0],y:a[1]}}};m.emit(w("grabon")),x?x.forEach((function(e){e.emit(w("grab"))})):m.emit(w("grab"))}r(m,["touchstart","tapstart","vmousedown"],t,{x:a[0],y:a[1]}),null==m&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:a[0],y:a[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var L=e.touchData.startPosition=[null,null,null,null,null,null],O=0;O=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var w=t.touches[0].clientX-B,_=t.touches[0].clientY-N,z=t.touches[1].clientX-B,I=t.touches[1].clientY-N,L=W(w,_,z,I);if(L/T>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var O={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(O),e.touchData.start=null):o.emit(O)}}if(n&&e.touchData.cxt){O={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(O):o.emit(O),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,a[4]=1,a&&0!==a.length&&void 0!==a[0]?(a[2]=(s[0]+s[2]+s[4])/3,a[3]=(s[1]+s[3]+s[5])/3):(a[0]=(s[0]+s[2]+s[4])/3,a[1]=(s[1]+s[3]+s[5])/3,a[2]=(s[0]+s[2]+s[4])/3+1,a[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",V=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",F=function(t){var a=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var i=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]){h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);u[2]=h[0],u[3]=h[1]}if(t.touches[2]){h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);u[4]=h[0],u[5]=h[1]}if(a&&a.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},a?a.emit(o):s.emit(o),!e.touchData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};a?a.emit(p):s.emit(p)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=s.collection(e.getAllInBox(i[0],i[1],i[2],i[3]));i[0]=void 0,i[1]=void 0,i[2]=void 0,i[3]=void 0,i[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=a&&a.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var g=e.dragData.touchDragEles;if(null!=a){var v=a._private.grabbed;d(g),e.redrawHint("drag",!0),e.redrawHint("eles",!0),v&&(a.emit("freeon"),g.emit("free"),e.dragData.didDrag&&(a.emit("dragfreeon"),g.emit("dragfree"))),r(a,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),a.unactivate(),e.touchData.start=null}else{var y=e.findNearestElement(u[0],u[1],!0,!0);r(y,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var m=e.touchData.startPosition[0]-u[0],b=m*m,x=e.touchData.startPosition[1]-u[1],w=(b+x*x)*l*l;e.touchData.singleTouchMoved||(a||s.$(":selected").unselect(["tapunselect"]),r(a,["tap","vclick"],t,{x:u[0],y:u[1]}),j=!1,t.timeStamp-Y<=s.multiClickDebounceTime()?(q&&clearTimeout(q),j=!0,Y=null,r(a,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):(q=setTimeout((function(){j||r(a,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),Y=t.timeStamp)),null!=a&&!e.dragData.didDrag&&a._private.selectable&&w2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g0)return g[0]}return null},p=Object.keys(d),f=0;f0?u:Wt(a,i,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,a,i,o,s){var l=2*(s="auto"===s?cn(r,a):s);if($t(e,t,this.points,i,o,r,a-l,[0,-1],n))return!0;if($t(e,t,this.points,i,o,r-l,a,[0,-1],n))return!0;var u=r/2+2*n,c=a/2+2*n;return!!Zt(e,t,[i-u,o-c,i-u,o,i+u,o,i+u,o-c])||(!!en(e,t,l,l,i+r/2-s,o+a/2-s,n)||!!en(e,t,l,l,i-r/2+s,o+a/2-s,n))}}},Du.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",sn(3,0)),this.generateRoundPolygon("round-triangle",sn(3,0)),this.generatePolygon("rectangle",sn(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",sn(5,0)),this.generateRoundPolygon("round-pentagon",sn(5,0)),this.generatePolygon("hexagon",sn(6,0)),this.generateRoundPolygon("round-hexagon",sn(6,0)),this.generatePolygon("heptagon",sn(7,0)),this.generateRoundPolygon("round-heptagon",sn(7,0)),this.generatePolygon("octagon",sn(8,0)),this.generateRoundPolygon("round-octagon",sn(8,0));var r=new Array(20),a=un(5,0),i=un(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*g)break}else if(a){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*Nu)break;var v=e.deq(t,d,c);if(!(v.length>0))break;for(var y=0;y0&&(e.onDeqd(t,u),!a&&e.shouldRedraw(t,u,d,c)&&r())}),a(t))}}},Iu=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fe;t(this,e),this.idsByKey=new tt,this.keyForId=new tt,this.cachesByLvl=new tt,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return n(e,[{key:"getIdsFor",value:function(e){null==e&&Ye("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new rt,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new tt,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Au={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Lu=Ze({getKey:null,doesEleInvalidateKey:Fe,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ve,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Ou=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=Lu(t);V(n,r),n.lookup=new Iu(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Ru=Ou.prototype;Ru.reasons=Au,Ru.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Ru.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Ru.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new ct((function(e,t){return t.reqs-e.reqs}))},Ru.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Ru.getElement=function(e,t,n,r,a){var i=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!i.allowEdgeTxrCaching&&e.isEdge()||!i.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(Tt(s*n))),r<-4)r=-4;else if(s>=7.99||r>3)return null;var u=Math.pow(2,r),c=t.h*u,d=t.w*u,h=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,h))return null;var p,f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;if(p=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||d>1024)return null;var g=i.getTextureQueue(p),v=g[g.length-2],y=function(){return i.recycleTexture(p,d)||i.addTexture(p,d)};v||(v=g[g.length-1]),v||(v=y()),v.width-v.usedWidthr;D--)S=i.getElement(e,t,n,D,Au.downscale);P()}else{var T;if(!x&&!w&&!E)for(var _=r-1;_>=-4;_--){var M=l.get(e,_);if(M){T=M;break}}if(b(T))return i.queueElement(e,r),T;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,h,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return f={x:v.usedWidth,texture:v,level:r,scale:u,width:d,height:c,scaledLabelShown:h},v.usedWidth+=Math.ceil(d+8),v.eleCaches.push(f),l.set(e,r,f),i.checkTextureFullness(v),f},Ru.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Ru.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?$e(t,e):e.fullnessChecks++},Ru.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;$e(n,e),e.retired=!0;for(var a=e.eleCaches,i=0;i=t)return i.retired=!1,i.usedWidth=0,i.invalidatedWidth=0,i.fullnessChecks=0,Qe(i.eleCaches),i.context.setTransform(1,0,0,1,0,0),i.context.clearRect(0,0,i.width,i.height),$e(r,i),n.push(i),i}},Ru.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),a=this.getKey(e),i=r[a];if(i)i.level=Math.max(i.level,t),i.eles.merge(e),i.reqs++,n.updateItem(i);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:a};n.push(o),r[a]=o}},Ru.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),a=[],i=t.lookup,o=0;o<1&&n.size()>0;o++){var s=n.pop(),l=s.key,u=s.eles[0],c=i.hasCache(u,s.level);if(r[l]=null,!c){a.push(s);var d=t.getBoundingBox(u);t.getElement(u,d,e,s.level,Au.dequeue)}}return a},Ru.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),a=n[r];null!=a&&(1===a.eles.length?(a.reqs=Re,t.updateItem(a),t.pop(),n[r]=null):a.eles.unmerge(e))},Ru.onDequeue=function(e){this.onDequeues.push(e)},Ru.offDequeue=function(e){$e(this.onDequeues,e)},Ru.setupDequeueing=zu({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(r.levelIsComplete(n,e))return c;!function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},a=function(e){if(!s)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};a(1),a(-1);for(var i=c.length-1;i>=0;i--){var o=c[i];o.invalid&&$e(c,o)}}();var d=function(t){var a=(t=t||{}).after;if(function(){if(!o){o=Lt();for(var t=0;t16e6)return null;var i=r.makeLayer(o,n);if(null!=a){var s=c.indexOf(a)+1;c.splice(s,0,i)}else(void 0===t.insert||t.insert)&&c.unshift(i);return i};if(r.skipping&&!i)return null;for(var h=null,p=e.length/1,f=!i,g=0;g=p||!Xt(h.bb,v.boundingBox()))&&!(h=d({insert:!0,after:h})))return null;s||f?r.queueLayer(h,v):r.drawEleInLayer(h,v,n,t),h.eles.push(v),m[n]=h}}return s||(f?null:c)},Fu.getEleLevelForLayerLevel=function(e,t){return e},Fu.drawEleInLayer=function(e,t,n,r){var a=this.renderer,i=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),a.setImgSmoothing(i,!1),a.drawCachedElement(i,t,null,null,n,true),a.setImgSmoothing(i,!0))},Fu.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,a=0;a0)return!1;if(i.invalid)return!1;r+=i.eles.length}return r===t.length},Fu.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},Fu.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=Ce(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},Fu.invalidateLayer=function(e){if(this.lastInvalidationTime=Ce(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];$e(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var a=0;a3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!i||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=i?t.pstyle("opacity").value:1,c=i?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,m=u*c,b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===d?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=f,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var w=t.pstyle("ghost-offset-x").pfValue,E=t.pstyle("ghost-offset-y").pfValue,k=t.pstyle("ghost-opacity").value,C=y*k;e.translate(w,E),b(C),x(C),e.translate(-w,-E)}else!function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;e.lineWidth=p+g,e.lineCap=f,g>0?(o.colorStrokeStyle(e,v[0],v[1],v[2],n),"straight-triangle"===d?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")):e.lineCap="butt"}();a&&o.drawEdgeUnderlay(e,t),b(),x(),a&&o.drawEdgeOverlay(e,t),o.drawElementText(e,t,null,r),n&&e.translate(l.x1,l.y1)}}},ac=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var a=this,i=a.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||i?t.lineCap="round":t.lineCap="butt",a.colorStrokeStyle(t,l[0],l[1],l[2],r),a.drawEdgePath(n,t,o.allpts,"solid")}}}};rc.drawEdgeOverlay=ac("overlay"),rc.drawEdgeUnderlay=ac("underlay"),rc.drawEdgePath=function(e,t,n,r){var a,i=e._private.rscratch,o=t,l=!1,u=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$");i.pathCacheKey&&i.pathCacheKey===h?(a=t=i.pathCache,l=!0):(a=t=new Path2D,i.pathCacheKey=h,i.pathCache=a)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!l&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+i,n),e.lineTo(t+r-i,n),e.quadraticCurveTo(t+r,n,t+r,n+i),e.lineTo(t+r,n+a-i),e.quadraticCurveTo(t+r,n+a,t+r-i,n+a),e.lineTo(t+i,n+a),e.quadraticCurveTo(t,n+a,t,n+a-i),e.lineTo(t,n+i),e.quadraticCurveTo(t,n,t+i,n),e.closePath(),o?e.stroke():e.fill()}oc.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),a=Math.ceil(Tt(n*r));t=Math.pow(2,a)}return!(e.pstyle("font-size").pfValue*t5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(i&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(u||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,f=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==a?(o.drawText(e,t,null,f,i),t.isEdge()&&(o.drawText(e,t,"source",f,i),o.drawText(e,t,"target",f,i))):o.drawText(e,t,a,f,i),n&&e.translate(p.x1,p.y1)},oc.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,a=t.pstyle("font-size").pfValue+"px",i=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+a+" "+i,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},oc.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",a=e.pstyle(r+"text-rotation"),i=Je(n,"labelAngle",t);return"autorotate"===a.strValue?e.isEdge()?i:0:"none"===a.strValue?0:a.pfValue},oc.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=t._private.rscratch,o=a?t.effectiveOpacity():1;if(!a||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s,l,u=Je(i,"labelX",n),c=Je(i,"labelY",n),d=this.getLabelText(t,n);if(null!=d&&""!==d&&!isNaN(u)&&!isNaN(c)){this.setupTextStyle(e,t,a);var h,p=n?n+"-":"",f=Je(i,"labelWidth",n),g=Je(i,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle("text-halign").value,x=t.pstyle("text-valign").value;switch(m&&(b="center",x="center"),u+=v,c+=y,0!==(h=r?this.getTextAngle(t,n):0)&&(s=u,l=c,e.translate(s,l),e.rotate(h),u=0,c=0),x){case"top":break;case"center":c+=g/2;break;case"bottom":c+=g}var w=t.pstyle("text-background-opacity").value,E=t.pstyle("text-border-opacity").value,k=t.pstyle("text-border-width").pfValue,C=t.pstyle("text-background-padding").pfValue,S=0===t.pstyle("text-background-shape").strValue.indexOf("round");if(w>0||k>0&&E>0){var P=u-C;switch(b){case"left":P-=f;break;case"center":P-=f/2}var D=c-g-C,T=f+2*C,_=g+2*C;if(w>0){var M=e.fillStyle,B=t.pstyle("text-background-color").value;e.fillStyle="rgba("+B[0]+","+B[1]+","+B[2]+","+w*o+")",S?sc(e,P,D,T,_,2):e.fillRect(P,D,T,_),e.fillStyle=M}if(k>0&&E>0){var N=e.strokeStyle,z=e.lineWidth,I=t.pstyle("text-border-color").value,A=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*o+")",e.lineWidth=k,e.setLineDash)switch(A){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=k/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(S?sc(e,P,D,T,_,2,"stroke"):e.strokeRect(P,D,T,_),"double"===A){var L=k/2;S?sc(e,P+L,D+L,T-2*L,_-2*L,2,"stroke"):e.strokeRect(P+L,D+L,T-2*L,_-2*L)}e.setLineDash&&e.setLineDash([]),e.lineWidth=z,e.strokeStyle=N}}var O=2*t.pstyle("text-outline-width").pfValue;if(O>0&&(e.lineWidth=O),"wrap"===t.pstyle("text-wrap").value){var R=Je(i,"labelWrapCachedLines",n),V=Je(i,"labelLineHeight",n),F=f/2,j=this.getLabelJustification(t);switch("auto"===j||("left"===b?"left"===j?u+=-f:"center"===j&&(u+=-F):"center"===b?"left"===j?u+=-F:"right"===j&&(u+=F):"right"===b&&("center"===j?u+=F:"right"===j&&(u+=f))),x){case"top":case"center":case"bottom":c-=(R.length-1)*V}for(var q=0;q0&&e.strokeText(R[q],u,c),e.fillText(R[q],u,c),c+=V}else O>0&&e.strokeText(d,u,c),e.fillText(d,u,c);0!==h&&(e.rotate(-h),e.translate(-s,-l))}}};var lc={drawNode:function(e,t,n){var r,a,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,d=t.position();if(b(d.x)&&b(d.y)&&(!s||t.visible())){var h,p,f=s?t.effectiveOpacity():1,g=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,a=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image").value,x=new Array(m.length),w=new Array(m.length),E=0,k=0;k0&&void 0!==arguments[0]?arguments[0]:T;l.eleFillStyle(e,t,n)},X=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:L;l.colorStrokeStyle(e,_[0],_[1],_[2],t)},W=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:F;l.colorStrokeStyle(e,R[0],R[1],R[2],t)},H=function(e,t,n,r){var a,i=l.nodePathCache=l.nodePathCache||[],o=ze("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+q),s=i[o],u=!1;return null!=s?(a=s,u=!0,c.pathCache=a):(a=new Path2D,i[o]=c.pathCache=a),{path:a,cacheHit:u}},K=t.pstyle("shape").strValue,G=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(d.x,d.y);var U=H(r,a,K,G);h=U.path,v=U.cacheHit}var Z=function(){if(!v){var n=d;g&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(h||e,n.x,n.y,r,a,q,c)}g?e.fill(h):e.fill()},$=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=u.backgrounding,i=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;l.hasPie(t)&&(l.drawPie(e,t,i),n&&(g||l.nodeShapes[l.getNodeShape(t)].draw(e,d.x,d.y,r,a,q,c)))},J=function(){var t=(P>0?P:-P)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:f),n=P>0?0:255;0!==P&&(l.colorFillStyle(e,n,n,n,t),g?e.fill(h):e.fill())},ee=function(){if(D>0){if(e.lineWidth=D,e.lineCap=N,e.lineJoin=B,e.setLineDash)switch(M){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(I),e.lineDashOffset=A;break;case"solid":case"double":e.setLineDash([])}if("center"!==z){if(e.save(),e.lineWidth*=2,"inside"===z)g?e.clip(h):e.clip();else{var t=new Path2D;t.rect(-r/2-D,-a/2-D,r+2*D,a+2*D),t.addPath(h),e.clip(t,"evenodd")}g?e.stroke(h):e.stroke(),e.restore()}else g?e.stroke(h):e.stroke();if("double"===M){e.lineWidth=D/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(h):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},te=function(){if(O>0){if(e.lineWidth=O,e.lineCap="butt",e.setLineDash)switch(V){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=d;g&&(n={x:0,y:0});var i=l.getNodeShape(t),o=D;"inside"===z&&(o=0),"outside"===z&&(o*=2);var s,u=(r+o+(O+j))/r,c=(a+o+(O+j))/a,h=r*u,p=a*c,f=l.nodeShapes[i].points;if(g)s=H(h,p,i,f).path;if("ellipse"===i)l.drawEllipsePath(s||e,n.x,n.y,h,p);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(i)){var v=0,y=0,m=0;"round-diamond"===i?v=1.4*(o+j+O):"round-heptagon"===i?(v=1.075*(o+j+O),m=-(o/2+j+O)/35):"round-hexagon"===i?v=1.12*(o+j+O):"round-pentagon"===i?(v=1.13*(o+j+O),m=-(o/2+j+O)/15):"round-tag"===i?(v=1.12*(o+j+O),y=.07*(o/2+O+j)):"round-triangle"===i&&(v=(o+j+O)*(Math.PI/2),m=-(o+j/2+O)/Math.PI),0!==v&&(h=r*(u=(r+v)/r),["round-hexagon","round-tag"].includes(i)||(p=a*(c=(a+v)/a)));for(var b=h/2,x=p/2,w=(q="auto"===q?dn(h,p):q)+(o+O+j)/2,E=new Array(f.length/2),k=new Array(f.length/2),C=0;C0){if(r=r||n.position(),null==a||null==i){var d=n.padding();a=n.width()+2*d,i=n.height()+2*d}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,a+2*o,i+2*o,c),t.fill()}}}};lc.drawNodeOverlay=uc("overlay"),lc.drawNodeUnderlay=uc("underlay"),lc.hasPie=function(e){return(e=e[0])._private.hasPie},lc.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var a=t.cy().style(),i=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===i.units?c*=i.pfValue:void 0!==i.pfValue&&(c=i.pfValue/2);for(var h=1;h<=a.pieBackgroundN;h++){var p=t.pstyle("pie-"+h+"-background-size").value,f=t.pstyle("pie-"+h+"-background-color").value,g=t.pstyle("pie-"+h+"-background-opacity").value*n,v=p/100;v+d>1&&(v=1-d);var y=1.5*Math.PI+2*Math.PI*d,m=y+2*Math.PI*v;0===p||d>=1||d+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,f[0],f[1],f[2],g),e.fill(),d+=v)}};var cc={};cc.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},cc.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,a=0;ao.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==a?a:b,w=l.pan(),E={x:w.x,y:w.y},k={zoom:b,pan:{x:w.x,y:w.y}},C=o.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!f||(o.motionBlurPxRatio=1),i&&(E=i),x*=s,E.x*=s,E.y*=s;var S=o.getCachedZSortedEles();function P(e,t,n,r,a){var i=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,a),e.globalCompositeOperation=i}function D(e,r){var s,l,c,d;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,d=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,d=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?P(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(s.x,s.y),e.scale(l,l)),i&&e.translate(i.x,i.y),a&&e.scale(a,a)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(k=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var _=u.contexts[o.NODE],M=o.textureCache.texture;k=o.textureCache.viewport;_.setTransform(1,0,0,1,0,0),h?P(_,0,0,k.width,k.height):_.clearRect(0,0,k.width,k.height);var B=m.core("outside-texture-bg-color").value,N=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(_,B[0],B[1],B[2],N),_.fillRect(0,0,k.width,k.height);b=l.zoom();D(_,!1),_.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s),_.drawImage(M,k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var z=l.extent(),I=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),A=o.hideEdgesOnViewport&&I,L=[];if(L[o.NODE]=!c[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,L[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),L[o.DRAG]=!c[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,L[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||L[o.NODE]){var O=h&&!L[o.NODE]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.nondrag,s,z):o.drawLayeredElements(_,S.nondrag,s,z),o.debug&&o.drawDebugPoints(_,S.nondrag),n||h||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||L[o.DRAG])){O=h&&!L[o.DRAG]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.drag,s,z):o.drawCachedElements(_,S.drag,s,z),o.debug&&o.drawDebugPoints(_,S.drag),n||h||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(D(_=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var R=m.core("selection-box-border-width").value/b;_.lineWidth=R,_.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",_.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),R>0&&(_.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",_.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var V=u.bgActivePosistion;_.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",_.beginPath(),_.arc(V.x,V.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),_.fill()}var F=o.lastRedrawTime;if(o.showFps&&F){F=Math.round(F);var j=Math.round(1e3/F);_.setTransform(1,0,0,1,0,0),_.fillStyle="rgba(255, 0, 0, 0.75)",_.strokeStyle="rgba(255, 0, 0, 0.75)",_.lineWidth=1,_.fillText("1 frame = "+F+" ms = "+j+" fps",0,20);_.strokeRect(0,30,250,20),_.fillRect(0,30,250*Math.min(j/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(h&&1!==p){var q=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],X=u.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],H=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):P(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||L[o.NODE])&&(H(q,Y,L[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||L[o.DRAG])&&(H(X,W,L[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=k,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")};for(var dc={drawPolygonPath:function(e,t,n,r,a,i){var o=r/2,s=a/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*i[0],n+s*i[1]);for(var l=1;l0&&i>0){h.clearRect(0,0,a,i),h.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)h.translate(-n.x1*l,-n.y1*l),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}e.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=e.bg,h.rect(0,0,a,i),h.fill())}return d},mc.png=function(e){return xc(e,this.bufferCanvasImage(e),"image/png")},mc.jpg=function(e){return xc(e,this.bufferCanvasImage(e),"image/jpeg")};var wc={nodeShapeImpl:function(e,t,n,r,a,i,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,a,i);case"polygon":return this.drawPolygonPath(t,n,r,a,i,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,a,i,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,a,i,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,a,i,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,a,i,s);case"barrel":return this.drawBarrelPath(t,n,r,a,i)}}},Ec=Cc,kc=Cc.prototype;function Cc(e){var t=this,n=t.cy.window().document;t.data={canvases:new Array(kc.CANVAS_LAYERS),contexts:new Array(kc.CANVAS_LAYERS),canvasNeedsRedraw:new Array(kc.CANVAS_LAYERS),bufferCanvases:new Array(kc.BUFFER_COUNT),bufferContexts:new Array(kc.CANVAS_LAYERS)};var r="-webkit-tap-highlight-color",a="rgba(0,0,0,0)";t.data.canvasContainer=n.createElement("div");var i=t.data.canvasContainer.style;t.data.canvasContainer.style[r]=a,i.position="relative",i.zIndex="0",i.overflow="hidden";var o=e.cy.container();o.appendChild(t.data.canvasContainer),o.style[r]=a;var s={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};u&&u.userAgent.match(/msie|trident|edge/i)&&(s["-ms-touch-action"]="none",s["touch-action"]="none");for(var l=0;l!?|\/]/;function d(e,t){var n,i=e.next();if(s[i]){var d=s[i](e,t);if(!1!==d)return d}if('"'==i||"'"==i||"`"==i)return t.tokenize=(n=i,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!c)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(i))return r=i,null;if(/\d/.test(i))return e.eatWhile(/[\w\.]/),"number";if("/"==i){if(e.eat("+"))return t.tokenize=p,p(e,t);if(e.eat("*"))return t.tokenize=m,m(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(f.test(i))return e.eatWhile(f),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var y=e.current();return o.propertyIsEnumerable(y)?(l.propertyIsEnumerable(y)&&(r="newstatement"),"keyword"):a.propertyIsEnumerable(y)?(l.propertyIsEnumerable(y)&&(r="newstatement"),"builtin"):u.propertyIsEnumerable(y)?"atom":"variable"}function m(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function p(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="+"==n}return"comment"}function y(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function h(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new y(r,t,n,null,e.context)}function b(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const k={name:"d",startState:function(e){return{tokenize:null,context:new y(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;r=null;var i=(t.tokenize||d)(e,t);if("comment"==i||"meta"==i)return i;if(null==n.align&&(n.align=!0),";"!=r&&":"!=r&&","!=r||"statement"!=n.type)if("{"==r)h(t,e.column(),"}");else if("["==r)h(t,e.column(),"]");else if("("==r)h(t,e.column(),")");else if("}"==r){for(;"statement"==n.type;)n=b(t);for("}"==n.type&&(n=b(t));"statement"==n.type;)n=b(t)}else r==n.type?b(t):(("}"==n.type||"top"==n.type)&&";"!=r||"statement"==n.type&&"newstatement"==r)&&h(t,e.column(),"statement");else b(t);return t.startOfLine=!1,i},indent:function(e,t,n){if(e.tokenize!=d&&null!=e.tokenize)return null;var r=e.context,o=t&&t.charAt(0);"statement"==r.type&&"}"==o&&(r=r.prev);var a=o==r.type;return"statement"==r.type?r.indented+("{"==o?0:i||n.unit):r.align?r.column+(a?0:1):r.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};export{k as d}; diff --git a/public/examples/ui/assets/dagre-4EVJKHTY-B38zy6XC.js b/public/examples/ui/assets/dagre-4EVJKHTY-B38zy6XC.js new file mode 100644 index 0000000..2fca933 --- /dev/null +++ b/public/examples/ui/assets/dagre-4EVJKHTY-B38zy6XC.js @@ -0,0 +1 @@ +import{_ as e,aa as n,ab as t,ac as r,ad as a,l as i,d as o,ae as d,af as s,$ as c,a4 as l,a0 as g,Y as f,ag as p,ah as u,ai as h}from"./mermaid-BlcZebEZ.js";import{G as w}from"./graph-CSbEHVjp.js";import{l as v}from"./layout-DUhLCLCX.js";import{i as m}from"./_baseUniq-CwCKmIJb.js";import{c as y}from"./clone-DpSr3FgE.js";import{m as X}from"./min-vWCu2dWa.js";import"./index-BnyyrSDd.js";import"./transform-D6ULhE8R.js";import"./step-CaHXtLdi.js";import"./_baseEach-BXuth7T0.js";import"./sortBy-DOdxOXjY.js";import"./_baseMap-DrSGGz1o.js";function b(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:E(e),edges:N(e)};return m(e.graph())||(n.value=y(e.graph())),n}function E(e){return X(e.nodes(),(function(n){var t=e.node(n),r=e.parent(n),a={v:n};return m(t)||(a.value=t),m(r)||(a.parent=r),a}))}function N(e){return X(e.edges(),(function(n){var t=e.edge(n),r={v:n.v,w:n.w};return m(n.name)||(r.name=n.name),m(t)||(r.value=t),r}))}var C=new Map,x=new Map,S=new Map,I=e((()=>{x.clear(),S.clear(),C.clear()}),"clear"),D=e(((e,n)=>{const t=x.get(n)||[];return i.trace("In isDescendant",n," ",e," = ",t.includes(e)),t.includes(e)}),"isDescendant"),O=e(((e,n)=>{const t=x.get(n)||[];return i.info("Descendants of ",n," is ",t),i.info("Edge is ",e),e.v!==n&&e.w!==n&&(t?t.includes(e.v)||D(e.v,n)||D(e.w,n)||t.includes(e.w):(i.debug("Tilt, ",n,",not in descendants"),!1))}),"edgeInCluster"),j=e(((e,n,t,r)=>{i.warn("Copying children of ",e,"root",r,"data",n.node(e),r);const a=n.children(e)||[];e!==r&&a.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",a),a.forEach((a=>{if(n.children(a).length>0)j(a,n,t,r);else{const o=n.node(a);i.info("cp ",a," to ",r," with parent ",e),t.setNode(a,o),r!==n.parent(a)&&(i.warn("Setting parent",a,n.parent(a)),t.setParent(a,n.parent(a))),e!==r&&a!==e?(i.debug("Setting parent",a,e),t.setParent(a,e)):(i.info("In copy ",e,"root",r,"data",n.node(e),r),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const d=n.edges(a);i.debug("Copying Edges",d),d.forEach((a=>{i.info("Edge",a);const o=n.edge(a.v,a.w,a.name);i.info("Edge data",o,r);try{O(a,r)?(i.info("Copying as ",a.v,a.w,o,a.name),t.setEdge(a.v,a.w,o,a.name),i.info("newGraph edges ",t.edges(),t.edge(t.edges()[0]))):i.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",r," clusterId:",e)}catch(d){i.error(d)}}))}i.debug("Removing node",a),n.removeNode(a)}))}),"copy"),G=e(((e,n)=>{const t=n.children(e);let r=[...t];for(const a of t)S.set(a,e),r=[...r,...G(a,n)];return r}),"extractDescendants"),k=e(((e,n,t)=>{const r=e.edges().filter((e=>e.v===n||e.w===n)),a=e.edges().filter((e=>e.v===t||e.w===t)),i=r.map((e=>({v:e.v===n?t:e.v,w:e.w===n?n:e.w}))),o=a.map((e=>({v:e.v,w:e.w})));return i.filter((e=>o.some((n=>e.v===n.v&&e.w===n.w))))}),"findCommonEdges"),B=e(((e,n,t)=>{const r=n.children(e);if(i.trace("Searching children of id ",e,r),r.length<1)return e;let a;for(const i of r){const e=B(i,n,t),r=k(n,t,e);if(e){if(!(r.length>0))return e;a=e}}return a}),"findNonClusterChild"),P=e((e=>C.has(e)&&C.get(e).externalConnections&&C.has(e)?C.get(e).id:e),"getAnchorId"),J=e(((e,n)=>{if(!e||n>10)i.debug("Opting out, no graph ");else{i.debug("Opting in, graph "),e.nodes().forEach((function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",B(n,e,n)),x.set(n,G(n,e)),C.set(n,{id:B(n,e,n),clusterData:e.node(n)}))})),e.nodes().forEach((function(n){const t=e.children(n),r=e.edges();t.length>0?(i.debug("Cluster identified",n,x),r.forEach((e=>{D(e.v,n)^D(e.w,n)&&(i.warn("Edge: ",e," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",x.get(n)),C.get(n).externalConnections=!0)}))):i.debug("Not a cluster ",n,x)}));for(let n of C.keys()){const t=C.get(n).id,r=e.parent(t);r!==n&&C.has(r)&&!C.get(r).externalConnections&&(C.get(n).id=r)}e.edges().forEach((function(n){const t=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let r=n.v,a=n.w;if(i.warn("Fix XXX",C,"ids:",n.v,n.w,"Translating: ",C.get(n.v)," --- ",C.get(n.w)),C.get(n.v)||C.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=P(n.v),a=P(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const a=e.parent(r);C.get(a).externalConnections=!0,t.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);C.get(r).externalConnections=!0,t.toCluster=n.w}i.warn("Fix Replacing with XXX",r,a,n.name),e.setEdge(r,a,t,n.name)}})),i.warn("Adjusted Graph",b(e)),A(e,0),i.trace(C)}}),"adjustClustersAndEdges"),A=e(((e,n)=>{var t,r;if(i.warn("extractor - ",n,b(e),e.children("D")),n>10)return void i.error("Bailing out");let a=e.nodes(),o=!1;for(const i of a){const n=e.children(i);o=o||n.length>0}if(o){i.debug("Nodes = ",a,n);for(const o of a)if(i.debug("Extracting node",o,C,C.has(o)&&!C.get(o).externalConnections,!e.parent(o),e.node(o),e.children("D")," Depth ",n),C.has(o))if(!C.get(o).externalConnections&&e.children(o)&&e.children(o).length>0){i.warn("Cluster without external connections, without a parent and with children",o,n);let a="TB"===e.graph().rankdir?"LR":"TB";(null==(r=null==(t=C.get(o))?void 0:t.clusterData)?void 0:r.dir)&&(a=C.get(o).clusterData.dir,i.warn("Fixing dir",C.get(o).clusterData.dir,a));const d=new w({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));i.warn("Old graph before copy",b(e)),j(o,e,d,o),e.setNode(o,{clusterNode:!0,id:o,clusterData:C.get(o).clusterData,label:C.get(o).label,graph:d}),i.warn("New graph after copy node: (",o,")",b(d)),i.debug("Old graph after copy",b(e))}else i.warn("Cluster ** ",o," **not meeting the criteria !externalConnections:",!C.get(o).externalConnections," no parent: ",!e.parent(o)," children ",e.children(o)&&e.children(o).length>0,e.children("D"),n),i.debug(C);else i.debug("Not a cluster",o,n);a=e.nodes(),i.warn("New list of nodes",a);for(const t of a){const r=e.node(t);i.warn(" Now next level",t,r),(null==r?void 0:r.clusterNode)&&A(r.graph,n+1)}}else i.debug("Done, no node has children",e.nodes())}),"extractor"),R=e(((e,n)=>{if(0===n.length)return[];let t=Object.assign([],n);return n.forEach((n=>{const r=e.children(n),a=R(e,r);t=[...t,...a]})),t}),"sorter"),T=e((e=>R(e,e.children())),"sortNodesByHierarchy"),M=e((async(n,t,r,a,o,w)=>{i.warn("Graph in recursive render:XAX",b(t),o);const m=t.graph().rankdir;i.trace("Dir in recursive render - dir:",m);const y=n.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const X=y.insert("g").attr("class","clusters"),E=y.insert("g").attr("class","edgePaths"),N=y.insert("g").attr("class","edgeLabels"),x=y.insert("g").attr("class","nodes");await Promise.all(t.nodes().map((async function(e){const n=t.node(e);if(void 0!==o){const n=JSON.parse(JSON.stringify(o.clusterData));i.trace("Setting data for parent cluster XXX\n Node.id = ",e,"\n data=",n.height,"\nParent cluster",o.height),t.setNode(o.id,n),t.parent(e)||(i.trace("Setting parent",e,o.id),t.setParent(e,o.id,n))}if(i.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),null==n?void 0:n.clusterNode){i.info("Cluster identified XBX",e,n.width,t.node(e));const{ranksep:o,nodesep:c}=t.graph();n.graph.setGraph({...n.graph.graph(),ranksep:o+25,nodesep:c});const l=await M(x,n.graph,r,a,t.node(e),w),g=l.elem;d(n,g),n.diff=l.diff||0,i.info("New compound node after recursive render XAX",e,"width",n.width,"height",n.height),s(g,n)}else t.children(e).length>0?(i.trace("Cluster - the non recursive path XBX",e,n.id,n,n.width,"Graph:",t),i.trace(B(n.id,t)),C.set(n.id,{id:B(n.id,t),node:n})):(i.trace("Node - the non recursive path XAX",e,x,t.node(e),m),await c(x,t.node(e),{config:w,dir:m}))})));const S=e((async()=>{const e=t.edges().map((async function(e){const n=t.edge(e.v,e.w,e.name);i.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),i.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),i.info("Fix",C,"ids:",e.v,e.w,"Translating: ",C.get(e.v),C.get(e.w)),await h(N,n)}));await Promise.all(e)}),"processEdges");await S(),i.info("Graph before layout:",JSON.stringify(b(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),v(t),i.info("Graph after layout:",JSON.stringify(b(t)));let I=0,{subGraphTitleTotalMargin:D}=l(w);return await Promise.all(T(t).map((async function(e){var n;const r=t.node(e);if(i.info("Position XBX => "+e+": ("+r.x,","+r.y,") width: ",r.width," height: ",r.height),null==r?void 0:r.clusterNode)r.y+=D,i.info("A tainted cluster node XBX1",e,r.id,r.width,r.height,r.x,r.y,t.parent(e)),C.get(r.id).node=r,g(r);else if(t.children(e).length>0){i.info("A pure cluster node XBX1",e,r.id,r.x,r.y,r.width,r.height,t.parent(e)),r.height+=D,t.node(r.parentId);const a=(null==r?void 0:r.padding)/2||0,o=(null==(n=null==r?void 0:r.labelBBox)?void 0:n.height)||0,d=o-a||0;i.debug("OffsetY",d,"labelHeight",o,"halfPadding",a),await f(X,r),C.get(r.id).node=r}else{const e=t.node(r.parentId);r.y+=D/2,i.info("A regular node XBX1 - using the padding",r.id,"parent",r.parentId,r.width,r.height,r.x,r.y,"offsetY",r.offsetY,"parent",e,null==e?void 0:e.offsetY,r),g(r)}}))),t.edges().forEach((function(e){const n=t.edge(e);i.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(n),n),n.points.forEach((e=>e.y+=D/2));const o=t.node(e.v);var d=t.node(e.w);const s=p(E,n,C,r,o,d,a);u(n,s)})),t.nodes().forEach((function(e){const n=t.node(e);i.info(e,n.type,n.diff),n.isGroup&&(I=n.diff)})),i.warn("Returning from recursive render XAX",y,I),{elem:y,diff:I}}),"recursiveRender"),Y=e((async(e,d)=>{var s,c,l,g,f,p;const u=new w({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:(null==(s=e.config)?void 0:s.nodeSpacing)||(null==(l=null==(c=e.config)?void 0:c.flowchart)?void 0:l.nodeSpacing)||e.nodeSpacing,ranksep:(null==(g=e.config)?void 0:g.rankSpacing)||(null==(p=null==(f=e.config)?void 0:f.flowchart)?void 0:p.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),h=d.select("g");n(h,e.markers,e.type,e.diagramId),t(),r(),a(),I(),e.nodes.forEach((e=>{u.setNode(e.id,{...e}),e.parentId&&u.setParent(e.id,e.parentId)})),i.debug("Edges:",e.edges),e.edges.forEach((e=>{if(e.start===e.end){const n=e.start,t=n+"---"+n+"---1",r=n+"---"+n+"---2",a=u.node(n);u.setNode(t,{domId:t,id:t,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),u.setParent(t,a.parentId),u.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),u.setParent(r,a.parentId);const i=structuredClone(e),o=structuredClone(e),d=structuredClone(e);i.label="",i.arrowTypeEnd="none",i.id=n+"-cyclic-special-1",o.arrowTypeEnd="none",o.id=n+"-cyclic-special-mid",d.label="",a.isGroup&&(i.fromCluster=n,d.toCluster=n),d.id=n+"-cyclic-special-2",u.setEdge(n,t,i,n+"-cyclic-special-0"),u.setEdge(t,r,o,n+"-cyclic-special-1"),u.setEdge(r,n,d,n+"-cyci.forEach((i=>{if(!s.has(i))return;const o=this.frameworkOverrides?()=>this.frameworkOverrides.wrapIncoming((()=>i(e))):()=>i(e);t?this.dispatchAsync(o):o()})),o=this.getListeners(i,t,!1)??new Set,n=new Set(o);n.size>0&&s(n,o);new Set(t?this.globalAsyncListeners:this.globalSyncListeners).forEach((s=>{const o=this.frameworkOverrides?()=>this.frameworkOverrides.wrapIncoming((()=>s(i,e))):()=>s(i,e);t?this.dispatchAsync(o):o()}))}dispatchAsync(e){if(this.asyncFunctionsQueue.push(e),!this.scheduled){const e=()=>{window.setTimeout(this.flushAsyncQueue.bind(this),0)};this.frameworkOverrides?this.frameworkOverrides.wrapIncoming(e):e(),this.scheduled=!0}}flushAsyncQueue(){this.scheduled=!1;const e=this.asyncFunctionsQueue.slice();this.asyncFunctionsQueue=[],e.forEach((e=>e()))}},u=(e=>(e.CommunityCoreModule="@ag-grid-community/core",e.InfiniteRowModelModule="@ag-grid-community/infinite-row-model",e.ClientSideRowModelModule="@ag-grid-community/client-side-row-model",e.CsvExportModule="@ag-grid-community/csv-export",e.EnterpriseCoreModule="@ag-grid-enterprise/core",e.RowGroupingModule="@ag-grid-enterprise/row-grouping",e.ColumnsToolPanelModule="@ag-grid-enterprise/column-tool-panel",e.FiltersToolPanelModule="@ag-grid-enterprise/filter-tool-panel",e.MenuModule="@ag-grid-enterprise/menu",e.SetFilterModule="@ag-grid-enterprise/set-filter",e.MultiFilterModule="@ag-grid-enterprise/multi-filter",e.StatusBarModule="@ag-grid-enterprise/status-bar",e.SideBarModule="@ag-grid-enterprise/side-bar",e.RangeSelectionModule="@ag-grid-enterprise/range-selection",e.MasterDetailModule="@ag-grid-enterprise/master-detail",e.RichSelectModule="@ag-grid-enterprise/rich-select",e.GridChartsModule="@ag-grid-enterprise/charts",e.ViewportRowModelModule="@ag-grid-enterprise/viewport-row-model",e.ServerSideRowModelModule="@ag-grid-enterprise/server-side-row-model",e.ExcelExportModule="@ag-grid-enterprise/excel-export",e.ClipboardModule="@ag-grid-enterprise/clipboard",e.SparklinesModule="@ag-grid-enterprise/sparklines",e.AdvancedFilterModule="@ag-grid-enterprise/advanced-filter",e.AngularModule="@ag-grid-community/angular",e.ReactModule="@ag-grid-community/react",e.VueModule="@ag-grid-community/vue",e))(u||{}),c={};function g(e,t){c[t]||(e(),c[t]=!0)}function p(e,...t){console.log("AG Grid: "+e,...t)}function m(e,...t){g((()=>console.warn("AG Grid: "+e,...t)),e+(null==t?void 0:t.join("")))}function v(e,...t){g((()=>console.error("AG Grid: "+e,...t)),e+(null==t?void 0:t.join("")))}function C(e){return!!(e&&e.constructor&&e.call&&e.apply)}function f(e){!function(e,t=0){e.length>0&&window.setTimeout((()=>e.forEach((e=>e()))),t)}(e,400)}var w=[],S=!1;function y(e){w.push(e),S||(S=!0,window.setTimeout((()=>{const e=w.slice();w.length=0,S=!1,e.forEach((e=>e()))}),0))}function b(e,t){let i;return function(...s){const o=this;window.clearTimeout(i),i=window.setTimeout((function(){e.apply(o,s)}),t)}}function R(e,t){let i=0;return function(...s){const o=(new Date).getTime();o-it?1:et.push(e))),t}return Object.values(e)}function O(e,t){return e.get("rowModelType")===t}function G(e){return O(e,"clientSide")}function N(e){return O(e,"serverSide")}function H(e,t){return e.get("domLayout")===t}function B(e){return void 0!==pe(e)}function V(e){return!e.get("suppressAsyncEvents")}function W(e){return"function"==typeof e.get("getRowHeight")}function z(e,t,i=!1,s){if(null==s&&(s=e.environment.getDefaultRowHeight()),W(e)){if(i)return{height:s,estimated:!0};const o={node:t,data:t.data},n=e.getCallback("getRowHeight")(o);if(K(n))return 0===n&&m("The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead."),{height:Math.max(1,n),estimated:!1}}if(t.detail&&e.get("masterDetail"))return function(e){if(e.get("detailRowAutoHeight"))return{height:1,estimated:!1};const t=e.get("detailRowHeight");if(K(t))return{height:t,estimated:!1};return{height:300,estimated:!1}}(e);const o=e.get("rowHeight");return{height:o&&K(o)?o:s,estimated:!1}}function U(e){const{environment:t}=e,i=e.get("rowHeight");if(!i||E(i))return t.getDefaultRowHeight();const s=t.refreshRowHeightVariable();return-1!==s?s:(m("row height must be a number if not using standard row model"),t.getDefaultRowHeight())}function K(e){return!isNaN(e)&&"number"==typeof e&&isFinite(e)}function _(e,t,i){const s=t[e.getDomDataKey()];return s?s[i]:void 0}function $(e,t,i,s){const o=e.getDomDataKey();let n=t[o];E(n)&&(n={},t[o]=n),n[i]=s}function j(e){let t=null;const i=e.get("getDocument");return i&&P(i)?t=i():e.eGridDiv&&(t=e.eGridDiv.ownerDocument),t&&P(t)?t:document}function q(e){return j(e).defaultView||window}function Q(e){return e.eGridDiv.getRootNode()}function Y(e){return Q(e).activeElement}function X(e){const t=j(e),i=Y(e);return null===i||i===t.body}function J(e){return!e.get("ensureDomOrder")&&e.get("animateRows")}function Z(e){return!(e.get("paginateChildRows")||e.get("groupHideOpenParents")||H(e,"print"))}function ee(e){const t=e.get("autoGroupColumnDef");return!(null==t?void 0:t.comparator)&&!e.get("treeData")}function te(e){const t=e.get("groupAggFiltering");return"function"==typeof t?e.getCallback("groupAggFiltering"):!0===t?()=>!0:void 0}function ie(e){const t=e.get("grandTotalRow");if(t)return t;return e.get("groupIncludeTotalFooter")?"bottom":void 0}function se(e){const t=e.get("groupTotalRow");if("function"==typeof t)return e.getCallback("groupTotalRow");if(t)return()=>t;const i=e.get("groupIncludeFooter");if("function"==typeof i){const t=e.getCallback("groupIncludeFooter");return e=>t(e)?"bottom":void 0}return()=>i?"bottom":void 0}function oe(e){return e.exists("groupDisplayType")?"multipleColumns"===e.get("groupDisplayType"):e.get("groupHideOpenParents")}function ne(e,t){return!t&&"groupRows"===e.get("groupDisplayType")}function re(e){const t=e.getCallback("getRowId");return void 0===t?t:e=>{let i=t(e);return"string"!=typeof i&&(m("The getRowId callback must return a string. The ID ",i," is being cast to a string."),i=String(i)),i}}function le(e){return(null==e?void 0:e.checkboxes)??!0}function ae(e){return"multiRow"===(null==e?void 0:e.mode)&&(e.headerCheckbox??!0)}function de(e){const t=e.get("cellSelection");return void 0!==t?!!t:e.get("enableRangeSelection")}function he(e){var t;const i=e.get("cellSelection");return void 0!==i?"boolean"!=typeof i&&"fill"===(null==(t=i.handle)?void 0:t.mode):e.get("enableFillHandle")}function ue(e){const t=e.get("rowSelection")??"single";if("string"==typeof t){const t=e.get("suppressRowClickSelection"),i=e.get("suppressRowDeselection");return(!t||!i)&&(t?"enableDeselection":!i||"enableSelection")}return("singleRow"===t.mode||"multiRow"===t.mode)&&(t.enableClickSelection??!1)}function ce(e){const t=ue(e);return!0===t||"enableDeselection"===t}function ge(e){const t=e.get("rowSelection");return"string"==typeof t?e.get("isRowSelectable"):null==t?void 0:t.isRowSelectable}function pe(e){const t=e.get("rowSelection");if("string"==typeof t)switch(t){case"multiple":return"multiRow";case"single":return"singleRow";default:return}return null==t?void 0:t.mode}function me(e){return"multiRow"===pe(e)}function ve(e){const t=e.get("rowSelection");if("string"==typeof t){const t=e.get("groupSelectsChildren"),i=e.get("groupSelectsFiltered");return t&&i?"filteredDescendants":t?"descendants":"self"}return"multiRow"===(null==t?void 0:t.mode)?t.groupSelects:void 0}function Ce(e){const t=ve(e);return"descendants"===t||"filteredDescendants"===t}function fe(e){return e.isModuleRegistered("@ag-grid-enterprise/set-filter")&&!e.get("suppressSetFilterByDefault")}function we(e){if(e&&e.length)return e[e.length-1]}function Se(e,t,i){return null==e&&null==t||null!=e&&null!=t&&e.length===t.length&&e.every(((e,s)=>i?i(e,t[s]):t[s]===e))}function ye(e,t){const i=e.indexOf(t);i>=0&&(e[i]=e[e.length-1],e.pop())}function be(e,t){const i=e.indexOf(t);i>=0&&e.splice(i,1)}function Re(e,t,i){e.splice(i,0,t)}function Fe(e,t,i){!function(e,t){for(let i=0;iRe(e,t,i)))}function Pe(e,t){return e.indexOf(t)>-1}function Ee(e,t){null!=t&&null!=e&&t.forEach((t=>e.push(t)))}var De="__ag_Grid_Stop_Propagation",Me=["touchstart","touchend","touchmove","touchcancel","scroll"],xe={};function Ae(e){e[De]=!0}function Te(e){return!0===e[De]}var Ie=(()=>{const e={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return t=>{if("boolean"==typeof xe[t])return xe[t];const i=document.createElement(e[t]||"div");return xe[t="on"+t]=t in i}})();function Le(e,t,i){let s=t;for(;s;){const t=_(e,s,i);if(t)return t;s=s.parentElement}return null}function ke(e,t){return!(!t||!e)&&function(e){const t=e;if(t.path)return t.path;if(t.composedPath)return t.composedPath();return function(e){const t=[];let i=e.target;for(;i;)t.push(i),i=i.parentElement;return t}(t)}(t).indexOf(e)>=0}var Oe=class{constructor(){this.destroyFunctions=[],this.destroyed=!1,this.__v_skip=!0,this.propertyListenerId=0,this.lastChangeSetIdLookup={},this.isAlive=()=>!this.destroyed}preWireBeans(e){this.frameworkOverrides=e.frameworkOverrides,this.stubContext=e.context,this.eventService=e.eventService,this.gos=e.gos,this.localeService=e.localeService}getFrameworkOverrides(){return this.frameworkOverrides}destroy(){for(let e=0;enull;e instanceof HTMLElement?function(e,t,i,s){const o=Pe(Me,i)?{passive:!0}:void 0;e&&e.addEventListener&&e.addEventListener(t,i,s,o)}(this.getFrameworkOverrides(),e,t,i):e.addEventListener(t,i);const s=()=>(e.removeEventListener(t,i),null);return this.destroyFunctions.push(s),()=>(s(),this.destroyFunctions=this.destroyFunctions.filter((e=>e!==s)),null)}setupGridOptionListener(e,t){this.gos.addPropertyEventListener(e,t);const i=()=>(this.gos.removePropertyEventListener(e,t),null);return this.destroyFunctions.push(i),()=>(i(),this.destroyFunctions=this.destroyFunctions.filter((e=>e!==i)),null)}addManagedPropertyListener(e,t){return this.destroyed?()=>null:this.setupGridOptionListener(e,t)}addManagedPropertyListeners(e,t){if(this.destroyed)return;const i=e.join("-")+this.propertyListenerId++,s=e=>{if(e.changeSet){if(e.changeSet&&e.changeSet.id===this.lastChangeSetIdLookup[i])return;this.lastChangeSetIdLookup[i]=e.changeSet.id}const s={type:"gridPropertyChanged",changeSet:e.changeSet,source:e.source};t(s)};e.forEach((e=>this.setupGridOptionListener(e,s)))}addDestroyFunc(e){this.isAlive()?this.destroyFunctions.push(e):e()}createManagedBean(e,t){const i=this.createBean(e,t);return this.addDestroyFunc(this.destroyBean.bind(this,e,t)),i}createBean(e,t,i){return(t||this.stubContext).createBean(e,i)}destroyBean(e,t){return(t||this.stubContext).destroyBean(e)}destroyBeans(e,t){return(t||this.stubContext).destroyBeans(e)}};function Ge(e){return e instanceof Ne}var Ne=class extends Oe{constructor(e,t,i,s){super(),this.isColumn=!1,this.expandable=!1,this.instanceId=ot(),this.expandableListenerRemoveCallback=null,this.colGroupDef=e,this.groupId=t,this.expanded=!!e&&!!e.openByDefault,this.padding=i,this.level=s}destroy(){this.expandableListenerRemoveCallback&&this.reset(null,void 0),super.destroy()}reset(e,t){this.colGroupDef=e,this.level=t,this.originalParent=null,this.expandableListenerRemoveCallback&&this.expandableListenerRemoveCallback(),this.children=void 0,this.expandable=void 0}getInstanceId(){return this.instanceId}setOriginalParent(e){this.originalParent=e}getOriginalParent(){return this.originalParent}getLevel(){return this.level}isVisible(){return!!this.children&&this.children.some((e=>e.isVisible()))}isPadding(){return this.padding}setExpanded(e){this.expanded=void 0!==e&&e,this.dispatchLocalEvent({type:"expandedChanged"})}isExpandable(){return this.expandable}isExpanded(){return this.expanded}getGroupId(){return this.groupId}getId(){return this.getGroupId()}setChildren(e){this.children=e}getChildren(){return this.children}getColGroupDef(){return this.colGroupDef}getLeafColumns(){const e=[];return this.addLeafColumns(e),e}addLeafColumns(e){this.children&&this.children.forEach((t=>{nt(t)?e.push(t):Ge(t)&&t.addLeafColumns(e)}))}getColumnGroupShow(){const e=this.colGroupDef;if(e)return e.columnGroupShow}setupExpandable(){this.setExpandable(),this.expandableListenerRemoveCallback&&this.expandableListenerRemoveCallback();const e=this.onColumnVisibilityChanged.bind(this);this.getLeafColumns().forEach((t=>t.addEventListener("visibleChanged",e))),this.expandableListenerRemoveCallback=()=>{this.getLeafColumns().forEach((t=>t.removeEventListener("visibleChanged",e))),this.expandableListenerRemoveCallback=null}}setExpandable(){if(this.isPadding())return;let e=!1,t=!1,i=!1;const s=this.findChildrenRemovingPadding();for(let n=0,r=s.length;n{i.forEach((i=>{Ge(i)&&i.isPadding()?t(i.children):e.push(i)}))};return t(this.children),e}onColumnVisibilityChanged(){this.setExpandable()}},He="ag-Grid-ControlsColumn",Be=class extends Oe{constructor(){super(...arguments),this.beanName="controlsColService"}createControlsCols(){const{gos:e}=this,t=e.get("rowSelection");if(!t||"object"!=typeof t)return[];const i=le(t),s=ae(t);if(i||s){const t=e.get("selectionColumnDef"),i={maxWidth:50,resizable:!1,suppressHeaderMenuButton:!0,sortable:!1,suppressMovable:!0,lockPosition:e.get("enableRtl")?"right":"left",comparator(e,t,i,s){const o=i.isSelected(),n=s.isSelected();return o&&n?0:o?1:-1},editable:!1,suppressFillHandle:!0,...t,colId:`${He}`},s=new rt(i,null,i.colId,!1);return this.createBean(s),[s]}return[]}},Ve="ag-Grid-AutoColumn";function We(e){const t=[],i=e=>{for(let s=0;se+t.getActualWidth()),0)}function Ue(e,t,i){const s={};if(!t)return;ht(null,t,(e=>{s[e.getInstanceId()]=e})),i&&ht(null,i,(e=>{s[e.getInstanceId()]=null}));const o=Object.values(s).filter((e=>null!=e));e.destroyBeans(o)}function Ke(e){return e.getId().startsWith(Ve)}function _e(e){return e.getColId().startsWith(He)}function $e(e){let t=[];if(e instanceof Array){e.some((e=>"string"!=typeof e))?m("if colDef.type is supplied an array it should be of type 'string[]'"):t=e}else"string"==typeof e?t=e.split(","):m("colDef.type should be of type 'string' | 'string[]'");return t}var je=class{constructor(e){this.frameworkOverrides=e,this.wrappedListeners=new Map,this.wrappedGlobalListeners=new Map}wrap(e){let t=e;return this.frameworkOverrides.shouldWrapOutgoing&&(t=t=>{this.frameworkOverrides.wrapOutgoing((()=>e(t)))},this.wrappedListeners.set(e,t)),t}wrapGlobal(e){let t=e;return this.frameworkOverrides.shouldWrapOutgoing&&(t=(t,i)=>{this.frameworkOverrides.wrapOutgoing((()=>e(t,i)))},this.wrappedGlobalListeners.set(e,t)),t}unwrap(e){return this.wrappedListeners.get(e)??e}unwrapGlobal(e){return this.wrappedGlobalListeners.get(e)??e}},qe=new Set(["__proto__","constructor","prototype"]);function Qe(e,t){if(null!=e)if(Array.isArray(e))for(let i=0;i{if(t&&t.indexOf(e)>=0||qe.has(e))return;const o=i[e],n=tt(o)&&o.constructor===Object;s[e]=n?Xe(o):o})),s}function Je(e){if(!e)return[];const t=Object;if("function"==typeof t.values)return t.values(e);const i=[];for(const s in e)e.hasOwnProperty(s)&&e.propertyIsEnumerable(s)&&i.push(e[s]);return i}function Ze(e,t,i=!0,s=!1){P(t)&&Qe(t,((t,o)=>{if(qe.has(t))return;let n=e[t];if(n!==o){if(s){if(null==n&&null!=o){"object"==typeof o&&o.constructor===Object&&(n={},e[t]=n)}}tt(o)&&tt(n)&&!Array.isArray(n)?Ze(n,o,i,s):(i||void 0!==o)&&(e[t]=o)}}))}function et(e,t,i){if(!t||!e)return;if(!i)return e[t];const s=t.split(".");let o=e;for(let n=0;n=0&&!e,this.tooltipFieldContainsDots=P(this.colDef.tooltipField)&&this.colDef.tooltipField.indexOf(".")>=0&&!e}initMinAndMaxWidths(){const e=this.colDef;this.minWidth=e.minWidth??this.gos.environment.getDefaultColumnMinWidth(),this.maxWidth=e.maxWidth??Number.MAX_SAFE_INTEGER}initTooltip(){this.tooltipEnabled=P(this.colDef.tooltipField)||P(this.colDef.tooltipValueGetter)||P(this.colDef.tooltipComponent)}resetActualWidth(e){const t=this.calculateColInitialWidth(this.colDef);this.setActualWidth(t,e,!0)}calculateColInitialWidth(e){let t;const i=x(e.width),s=x(e.initialWidth);return t=null!=i?i:null!=s?s:200,Math.max(Math.min(t,this.maxWidth),this.minWidth)}isEmptyGroup(){return!1}isRowGroupDisplayed(e){if(E(this.colDef)||E(this.colDef.showRowGroup))return!1;const t=!0===this.colDef.showRowGroup,i=this.colDef.showRowGroup===e;return t||i}isPrimary(){return this.primary}isFilterAllowed(){return!!this.colDef.filter}isFieldContainsDots(){return this.fieldContainsDots}isTooltipEnabled(){return this.tooltipEnabled}isTooltipFieldContainsDots(){return this.tooltipFieldContainsDots}getHighlighted(){return this.highlighted}addEventListener(e,t){var i;this.frameworkOverrides.shouldWrapOutgoing&&!this.frameworkEventListenerService&&(this.columnEventService.setFrameworkOverrides(this.frameworkOverrides),this.frameworkEventListenerService=new je(this.frameworkOverrides));const s=(null==(i=this.frameworkEventListenerService)?void 0:i.wrap(t))??t;this.columnEventService.addEventListener(e,s)}removeEventListener(e,t){var i;const s=(null==(i=this.frameworkEventListenerService)?void 0:i.unwrap(t))??t;this.columnEventService.removeEventListener(e,s)}createColumnFunctionCallbackParams(e){return this.gos.addGridCommonParams({node:e,data:e.data,column:this,colDef:this.colDef})}isSuppressNavigable(e){if("boolean"==typeof this.colDef.suppressNavigable)return this.colDef.suppressNavigable;if("function"==typeof this.colDef.suppressNavigable){const t=this.createColumnFunctionCallbackParams(e);return(0,this.colDef.suppressNavigable)(t)}return!1}isCellEditable(e){if(e.group)if(this.gos.get("treeData")){if(!e.data&&!this.gos.get("enableGroupEdit"))return!1}else if(!this.gos.get("enableGroupEdit"))return!1;return this.isColumnFunc(e,this.colDef.editable)}isSuppressFillHandle(){return!!this.colDef.suppressFillHandle}isAutoHeight(){return!!this.colDef.autoHeight}isAutoHeaderHeight(){return!!this.colDef.autoHeaderHeight}isRowDrag(e){return this.isColumnFunc(e,this.colDef.rowDrag)}isDndSource(e){return this.isColumnFunc(e,this.colDef.dndSource)}isCellCheckboxSelection(e){const t=this.gos.get("rowSelection");if(t&&"string"!=typeof t){const i=_e(this)&&le(t);return this.isColumnFunc(e,i)}return this.isColumnFunc(e,this.colDef.checkboxSelection)}isSuppressPaste(e){return this.isColumnFunc(e,this.colDef?this.colDef.suppressPaste:null)}isResizable(){return!!this.getColDefValue("resizable")}getColDefValue(e){return this.colDef[e]??it[e]}isColumnFunc(e,t){if("boolean"==typeof t)return t;if("function"==typeof t){return t(this.createColumnFunctionCallbackParams(e))}return!1}setHighlighted(e){this.highlighted!==e&&(this.highlighted=e,this.columnEventService.dispatchEvent(this.createColumnEvent("headerHighlightChanged","uiColumnMoved")))}setMoving(e,t){this.moving=e,this.columnEventService.dispatchEvent(this.createColumnEvent("movingChanged",t))}createColumnEvent(e,t){return this.gos.addGridCommonParams({type:e,column:this,columns:[this],source:t})}isMoving(){return this.moving}getSort(){return this.sort}setSort(e,t){this.sort!==e&&(this.sort=e,this.columnEventService.dispatchEvent(this.createColumnEvent("sortChanged",t))),this.dispatchStateUpdatedEvent("sort")}isSortable(){return!!this.getColDefValue("sortable")}isSortAscending(){return"asc"===this.sort}isSortDescending(){return"desc"===this.sort}isSortNone(){return E(this.sort)}isSorting(){return P(this.sort)}getSortIndex(){return this.sortIndex}setSortIndex(e){this.sortIndex=e,this.dispatchStateUpdatedEvent("sortIndex")}setMenuVisible(e,t){this.menuVisible!==e&&(this.menuVisible=e,this.columnEventService.dispatchEvent(this.createColumnEvent("menuVisibleChanged",t)))}isMenuVisible(){return this.menuVisible}setAggFunc(e){this.aggFunc=e,this.dispatchStateUpdatedEvent("aggFunc")}getAggFunc(){return this.aggFunc}getLeft(){return this.left}getOldLeft(){return this.oldLeft}getRight(){return this.left+this.actualWidth}setLeft(e,t){this.oldLeft=this.left,this.left!==e&&(this.left=e,this.columnEventService.dispatchEvent(this.createColumnEvent("leftChanged",t)))}isFilterActive(){return this.filterActive}setFilterActive(e,t,i){this.filterActive!==e&&(this.filterActive=e,this.columnEventService.dispatchEvent(this.createColumnEvent("filterActiveChanged",t)));const s=this.createColumnEvent("filterChanged",t);i&&Ze(s,i),this.columnEventService.dispatchEvent(s)}isHovered(){return this.columnHoverService.isHovered(this)}setPinned(e){this.pinned=!0===e||"left"===e?"left":"right"===e?"right":null,this.dispatchStateUpdatedEvent("pinned")}setFirstRightPinned(e,t){this.firstRightPinned!==e&&(this.firstRightPinned=e,this.columnEventService.dispatchEvent(this.createColumnEvent("firstRightPinnedChanged",t)))}setLastLeftPinned(e,t){this.lastLeftPinned!==e&&(this.lastLeftPinned=e,this.columnEventService.dispatchEvent(this.createColumnEvent("lastLeftPinnedChanged",t)))}isFirstRightPinned(){return this.firstRightPinned}isLastLeftPinned(){return this.lastLeftPinned}isPinned(){return"left"===this.pinned||"right"===this.pinned}isPinnedLeft(){return"left"===this.pinned}isPinnedRight(){return"right"===this.pinned}getPinned(){return this.pinned}setVisible(e,t){const i=!0===e;this.visible!==i&&(this.visible=i,this.columnEventService.dispatchEvent(this.createColumnEvent("visibleChanged",t))),this.dispatchStateUpdatedEvent("hide")}isVisible(){return this.visible}isSpanHeaderHeight(){return!this.getColDef().suppressSpanHeaderHeight}getColumnGroupPaddingInfo(){let e=this.getParent();if(!e||!e.isPadding())return{numberOfParents:0,isSpanningTotal:!1};const t=e.getPaddingLevel()+1;let i=!0;for(;e;){if(!e.isPadding()){i=!1;break}e=e.getParent()}return{numberOfParents:t,isSpanningTotal:i}}getColDef(){return this.colDef}getDefinition(){return this.colDef}getColumnGroupShow(){return this.colDef.columnGroupShow}getColId(){return this.colId}getId(){return this.colId}getUniqueId(){return this.colId}getActualWidth(){return this.actualWidth}getAutoHeaderHeight(){return this.autoHeaderHeight}setAutoHeaderHeight(e){const t=e!==this.autoHeaderHeight;return this.autoHeaderHeight=e,t}createBaseColDefParams(e){return this.gos.addGridCommonParams({node:e,data:e.data,colDef:this.colDef,column:this})}getColSpan(e){if(E(this.colDef.colSpan))return 1;const t=this.createBaseColDefParams(e),i=this.colDef.colSpan(t);return Math.max(i,1)}getRowSpan(e){if(E(this.colDef.rowSpan))return 1;const t=this.createBaseColDefParams(e),i=this.colDef.rowSpan(t);return Math.max(i,1)}setActualWidth(e,t,i=!1){e=Math.max(e,this.minWidth),e=Math.min(e,this.maxWidth),this.actualWidth!==e&&(this.actualWidth=e,this.flex&&"flex"!==t&&"gridInitializing"!==t&&(this.flex=null),i||this.fireColumnWidthChangedEvent(t)),this.dispatchStateUpdatedEvent("width")}fireColumnWidthChangedEvent(e){this.columnEventService.dispatchEvent(this.createColumnEvent("widthChanged",e))}isGreaterThanMax(e){return e>this.maxWidth}getMinWidth(){return this.minWidth}getMaxWidth(){return this.maxWidth}getFlex(){return this.flex||0}setFlex(e){this.flex!==e&&(this.flex=e),this.dispatchStateUpdatedEvent("flex")}setMinimum(e){this.setActualWidth(this.minWidth,e)}setRowGroupActive(e,t){this.rowGroupActive!==e&&(this.rowGroupActive=e,this.columnEventService.dispatchEvent(this.createColumnEvent("columnRowGroupChanged",t))),this.dispatchStateUpdatedEvent("rowGroup")}isRowGroupActive(){return this.rowGroupActive}setPivotActive(e,t){this.pivotActive!==e&&(this.pivotActive=e,this.columnEventService.dispatchEvent(this.createColumnEvent("columnPivotChanged",t))),this.dispatchStateUpdatedEvent("pivot")}isPivotActive(){return this.pivotActive}isAnyFunctionActive(){return this.isPivotActive()||this.isRowGroupActive()||this.isValueActive()}isAnyFunctionAllowed(){return this.isAllowPivot()||this.isAllowRowGroup()||this.isAllowValue()}setValueActive(e,t){this.aggregationActive!==e&&(this.aggregationActive=e,this.columnEventService.dispatchEvent(this.createColumnEvent("columnValueChanged",t)))}isValueActive(){return this.aggregationActive}isAllowPivot(){return!0===this.colDef.enablePivot}isAllowValue(){return!0===this.colDef.enableValue}isAllowRowGroup(){return!0===this.colDef.enableRowGroup}dispatchStateUpdatedEvent(e){this.columnEventService.dispatchEvent({type:"columnStateUpdated",key:e})}},lt={numericColumn:{headerClass:"ag-right-aligned-header",cellClass:"ag-right-aligned-cell"},rightAligned:{headerClass:"ag-right-aligned-header",cellClass:"ag-right-aligned-cell"}},at=class{constructor(){this.existingKeys={}}addExistingKeys(e){for(let t=0;t{Ge(e)&&e.setupExpandable(),e.setOriginalParent(t)})),{columnTree:h,treeDept:d}}extractExistingTreeData(e){const t=[],i=[],s=[];return e&&ht(null,e,(e=>{if(Ge(e)){const t=e;i.push(t)}else{const i=e;s.push(i.getId()),t.push(i)}})),{existingCols:t,existingGroups:i,existingColKeys:s}}balanceTreeForAutoCols(e,t){const i=[],s=this.findDepth(t);return e.forEach((e=>{let t=e;for(let i=s-1;i>=0;i--){const s=new Ne(null,`FAKE_PATH_${e.getId()}}_${i}`,!0,i);this.createBean(s),s.setChildren([t]),t.setOriginalParent(s),t=s}0===s&&e.setOriginalParent(null),i.push(t)})),[i,s]}findDepth(e){let t=0,i=e;for(;i&&i[0]&&Ge(i[0]);)t++,i=i[0].getChildren();return t}balanceColumnTree(e,t,i,s){const o=[];for(let n=0;n=t;e--){const e=s.getUniqueKey(null,null),i=this.createMergedColGroupDef(null),o=new Ne(i,e,!0,t);this.createBean(o),l&&l.setChildren([o]),l=o,n||(n=l)}if(n&&l){o.push(n);if(e.some((e=>Ge(e)))){l.setChildren([r]);continue}l.setChildren(e);break}o.push(r)}}return o}findMaxDept(e,t){let i=t;for(let s=0;s{if(e in i)m(`the column type '${e}' is a default column type and cannot be overridden.`);else{t.type&&m("Column type definitions 'columnTypes' with a 'type' attribute are not supported because a column type cannot refer to another column type. Only column definitions 'columnDefs' can use the 'type' attribute to refer to a column type."),i[e]=t}})),e.forEach((e=>{const s=i[e.trim()];s?Ze(t,s,!1,!0):m("colDef.type '"+e+"' does not correspond to defined gridOptions.columnTypes")}))}isColumnGroup(e){return void 0!==e.children}};function ht(e,t,i){if(t)for(let s=0;sthis.refreshAll(ct(e.source)))),this.addManagedPropertyListener("rowSelection",(e=>{this.onSelectionOptionsChanged(e.currentValue,e.previousValue,ct(e.source))})),this.addManagedPropertyListener("autoGroupColumnDef",(e=>this.onAutoGroupColumnDefChanged(ct(e.source)))),this.addManagedPropertyListeners(["defaultColDef","defaultColGroupDef","columnTypes","suppressFieldDotNotation"],(e=>this.recreateColumnDefs(ct(e.source)))),this.addManagedPropertyListener("pivotMode",(e=>this.setPivotMode(this.gos.get("pivotMode"),ct(e.source)))),this.addManagedEventListeners({firstDataRendered:()=>this.onFirstDataRendered()})}createColsFromColDefs(e){var t,i,s;const o=this.colDefs?this.columnApplyStateService.compareColumnStatesAndDispatchEvents(e):void 0;this.valueCache.expire();const n=null==(t=this.colDefCols)?void 0:t.list,r=null==(i=this.colDefCols)?void 0:i.tree,l=this.columnFactory.createColumnTree(this.colDefs,!0,r,e);Ue(this.context,null==(s=this.colDefCols)?void 0:s.tree,l.columnTree);const a=l.columnTree,d=l.treeDept,h=We(a),u={};h.forEach((e=>u[e.getId()]=e)),this.colDefCols={tree:a,treeDepth:d,list:h,map:u},this.funcColsService.extractCols(e,n),this.ready=!0,this.refreshCols(!0),this.visibleColsService.refresh(e),this.columnViewportService.checkViewportColumns(),this.eventDispatcher.everythingChanged(e),o&&(this.changeEventsDispatching=!0,o(),this.changeEventsDispatching=!1),this.eventDispatcher.newColumnsLoaded(e),"gridInitializing"===e&&this.columnSizeService.applyAutosizeStrategy()}refreshCols(e){var t,i,s;if(!this.colDefCols)return;const o=null==(t=this.cols)?void 0:t.tree;this.saveColOrder(),this.selectCols(),this.createAutoCols(),this.addAutoCols(),this.createControlsCols(),this.addControlsCols();const n=(r=this.gos,this.showingPivotResult?!r.get("enableStrictPivotColumnOrder"):r.get("maintainColumnOrder"));var r;e&&!n||this.restoreColOrder(),this.positionLockedCols(),null==(i=this.showRowGroupColsService)||i.refresh(),null==(s=this.quickFilterService)||s.refreshQuickFilterCols(),this.setColSpanActive(),this.setAutoHeightActive(),this.visibleColsService.clear(),this.columnViewportService.clear();!Se(o,this.cols.tree)&&this.eventDispatcher.gridColumns()}selectCols(){const e=this.pivotResultColsService.getPivotResultCols();if(this.showingPivotResult=null!=e,e){const{map:t,list:i,tree:s,treeDepth:o}=e;this.cols={list:i.slice(),map:{...t},tree:s.slice(),treeDepth:o};e.list.some((e=>{var t;return void 0!==(null==(t=this.cols)?void 0:t.map[e.getColId()])}))||(this.lastPivotOrder=null)}else{const{map:e,list:t,tree:i,treeDepth:s}=this.colDefCols;this.cols={list:t.slice(),map:{...e},tree:i.slice(),treeDepth:s}}}getColsToShow(){const e=this.isPivotMode()&&!this.isShowingPivotResult(),t=this.funcColsService.getValueColumns();return this.cols.list.filter((i=>{const s=Ke(i);if(e){const e=t&&Pe(t,i);return s||e}return s||i.isVisible()}))}addAutoCols(){null!=this.autoCols&&(this.cols.list=this.autoCols.list.concat(this.cols.list),this.cols.tree=this.autoCols.tree.concat(this.cols.tree),gt(this.cols))}createAutoCols(){var e;const t=ne(this.gos,this.pivotMode),i=this.pivotMode?this.gos.get("pivotSuppressAutoColumn"):this.isSuppressAutoCol(),s=this.funcColsService.getRowGroupColumns(),o=()=>{this.autoCols&&(Ue(this.context,this.autoCols.tree),this.autoCols=null)};if(!(s.length>0||this.gos.get("treeData"))||i||t||!this.autoColService)return void o();const n=this.autoColService.createAutoCols(s)??[],r=mt(n,(null==(e=this.autoCols)?void 0:e.list)||null),l=this.cols.treeDepth,a=this.autoCols?this.autoCols.treeDepth:-1;if(r&&a==l)return;o();const[d,h]=this.columnFactory.balanceTreeForAutoCols(n,this.cols.tree);this.autoCols={list:n,tree:d,treeDepth:h,map:{}};const u=e=>{if(!e)return null;const t=e.filter((e=>!Ke(e)));return[...n,...t]};this.lastOrder=u(this.lastOrder),this.lastPivotOrder=u(this.lastPivotOrder)}createControlsCols(){var e,t,i;const s=()=>{var e;Ue(this.context,null==(e=this.controlsCols)?void 0:e.tree),this.controlsCols=null};this.controlsColService||s();const o=this.cols.treeDepth,n=((null==(e=this.controlsCols)?void 0:e.treeDepth)??-1)==o,r=(null==(t=this.controlsColService)?void 0:t.createControlsCols())??[];if(mt(r,(null==(i=this.controlsCols)?void 0:i.list)??[])&&n)return;s();const[l,a]=this.columnFactory.balanceTreeForAutoCols(r,this.cols.tree);this.controlsCols={list:r,tree:l,treeDepth:a,map:{}};const d=e=>{if(!e)return null;const t=e.filter((e=>!_e(e)));return[...r,...t]};this.lastOrder=d(this.lastOrder),this.lastPivotOrder=d(this.lastPivotOrder)}addControlsCols(){null!=this.controlsCols&&(this.cols.list=this.controlsCols.list.concat(this.cols.list),this.cols.tree=this.controlsCols.tree.concat(this.cols.tree),gt(this.cols))}refreshAll(e){this.isReady()&&(this.refreshCols(!1),this.visibleColsService.refresh(e))}setColsVisible(e,t=!1,i){this.columnApplyStateService.applyColumnState({state:e.map((e=>({colId:"string"==typeof e?e:e.getColId(),hide:!t})))},i)}setColsPinned(e,t,i){if(!this.cols)return;if(D(e))return;if(H(this.gos,"print"))return void m("Changing the column pinning status is not allowed with domLayout='print'");let s;this.columnAnimationService.start(),s=!0===t||"left"===t?"left":"right"===t?"right":null;const o=[];e.forEach((e=>{if(!e)return;const t=this.getCol(e);t&&t.getPinned()!==s&&(t.setPinned(s),o.push(t))})),o.length&&(this.visibleColsService.refresh(i),this.eventDispatcher.columnPinned(o,i)),this.columnAnimationService.finish()}setColumnGroupOpened(e,t,i){let s;s=Ge(e)?e.getId():e||"",this.columnGroupStateService.setColumnGroupState([{groupId:s,open:t}],i)}getProvidedColGroup(e){var t;let i=null;return ht(null,null==(t=this.cols)?void 0:t.tree,(t=>{Ge(t)&&t.getId()===e&&(i=t)})),i}isColGroupLocked(e){const t=this.gos.get("groupLockGroupColumns");if(!e.isRowGroupActive()||0===t)return!1;if(-1===t)return!0;return t>this.funcColsService.getRowGroupColumns().findIndex((t=>t.getColId()===e.getColId()))}isSuppressAutoCol(){if("custom"===this.gos.get("groupDisplayType"))return!0;return"custom"===this.gos.get("treeDataDisplayType")}setAutoHeightActive(){if(this.autoHeightActive=this.cols.list.some((e=>e.isVisible()&&e.isAutoHeight())),this.autoHeightActive){this.autoHeightActiveAtLeastOnce=!0;G(this.gos)||N(this.gos)||m("autoHeight columns only work with Client Side Row Model and Server Side Row Model.")}}restoreColOrder(){const e=this.showingPivotResult?this.lastPivotOrder:this.lastOrder;if(!e)return;const t=new Map(e.map(((e,t)=>[e,t])));if(!this.cols.list.some((e=>t.has(e))))return;const i=new Map(this.cols.list.map((e=>[e,!0]))),s=e.filter((e=>i.has(e))),o=new Map(s.map((e=>[e,!0]))),n=this.cols.list.filter((e=>!o.has(e))),r=s.slice();n.forEach((e=>{let t=e.getOriginalParent();if(!t)return void r.push(e);const i=[];for(;!i.length&&t;){t.getLeafColumns().forEach((e=>{const t=r.indexOf(e)>=0,s=i.indexOf(e)<0;t&&s&&i.push(e)})),t=t.getOriginalParent()}if(!i.length)return void r.push(e);const s=i.map((e=>r.indexOf(e))),o=Math.max(...s);Re(r,e,o+1)})),this.cols.list=r}sortColsLikeKeys(e){if(null==this.cols)return;let t=[];const i={};e.forEach((e=>{if(i[e])return;const s=this.cols.map[e];s&&(t.push(s),i[e]=!0)}));let s=0;this.cols.list.forEach((e=>{const o=e.getColId();if(null!=i[o])return;o.startsWith(Ve)?Re(t,e,s++):t.push(e)})),t=this.columnMoveService.placeLockedColumns(t),this.columnMoveService.doesMovePassMarryChildren(t)?this.cols.list=t:m("Applying column order broke a group where columns should be married together. Applying new order has been discarded.")}sortColsLikeCols(e){if(!e||e.length<=1)return;e.filter((e=>this.cols.list.indexOf(e)<0)).length>0||e.sort(((e,t)=>this.cols.list.indexOf(e)-this.cols.list.indexOf(t)))}resetColDefIntoCol(e,t){const i=e.getUserProvidedColDef();if(!i)return!1;const s=this.columnFactory.addColumnDefaultAndTypes(i,e.getColId());return e.setColDef(s,i,t),!0}queueResizeOperations(){this.shouldQueueResizeOperations=!0}isShouldQueueResizeOperations(){return this.shouldQueueResizeOperations}processResizeOperations(){this.shouldQueueResizeOperations=!1,this.resizeOperationQueue.forEach((e=>e())),this.resizeOperationQueue=[]}pushResizeOperation(e){this.resizeOperationQueue.push(e)}moveInCols(e,t,i){var s;Fe(null==(s=this.cols)?void 0:s.list,e,t),this.visibleColsService.refresh(i)}positionLockedCols(){this.cols.list=this.columnMoveService.placeLockedColumns(this.cols.list)}saveColOrder(){var e,t;this.showingPivotResult?this.lastPivotOrder=null==(e=this.cols)?void 0:e.list:this.lastOrder=null==(t=this.cols)?void 0:t.list}getColumnDefs(){if(!this.colDefCols)return;const e=this.colDefCols.list.slice();this.showingPivotResult?e.sort(((e,t)=>this.lastOrder.indexOf(e)-this.lastOrder.indexOf(t))):this.lastOrder&&e.sort(((e,t)=>this.cols.list.indexOf(e)-this.cols.list.indexOf(t)));const t=this.funcColsService.getRowGroupColumns(),i=this.funcColsService.getPivotColumns();return this.columnDefFactory.buildColumnDefs(e,t,i)}isShowingPivotResult(){return this.showingPivotResult}isChangeEventsDispatching(){return this.changeEventsDispatching}isColSpanActive(){return this.colSpanActive}isProvidedColGroupsPresent(){var e;return(null==(e=this.colDefCols)?void 0:e.treeDepth)>0}setColSpanActive(){this.colSpanActive=this.cols.list.some((e=>null!=e.getColDef().colSpan))}isAutoRowHeightActive(){return this.autoHeightActive}wasAutoRowHeightEverActive(){return this.autoHeightActiveAtLeastOnce}getHeaderRowCount(){return this.cols?this.cols.treeDepth+1:-1}isReady(){return this.ready}isPivotMode(){return this.pivotMode}setPivotMode(e,t){e!==this.pivotMode&&this.isPivotSettingAllowed(this.pivotMode)&&(this.pivotMode=e,this.ready&&(this.refreshCols(!1),this.visibleColsService.refresh(t),this.eventDispatcher.pivotModeChanged()))}isPivotSettingAllowed(e){return!e||!this.gos.get("treeData")||(m("Pivot mode not available with treeData."),!1)}isPivotActive(){const e=this.funcColsService.getPivotColumns();return this.pivotMode&&!D(e)}recreateColumnDefs(e){this.cols&&(this.autoCols&&this.autoColService.updateAutoCols(this.autoCols.list,e),this.createColsFromColDefs(e))}setColumnDefs(e,t){this.colDefs=e,this.createColsFromColDefs(t)}destroy(){var e,t,i;Ue(this.context,null==(e=this.colDefCols)?void 0:e.tree),Ue(this.context,null==(t=this.autoCols)?void 0:t.tree),Ue(this.context,null==(i=this.controlsCols)?void 0:i.tree),super.destroy()}getColTree(){return this.cols.tree}getColDefColTree(){return this.colDefCols.tree}getColDefCols(){var e;return(null==(e=this.colDefCols)?void 0:e.list)?this.colDefCols.list:null}getCols(){var e;return(null==(e=this.cols)?void 0:e.list)??[]}getAllCols(){var e,t,i;const s=this.pivotResultColsService.getPivotResultCols(),o=null==s?void 0:s.list;return[(null==(e=this.colDefCols)?void 0:e.list)??[],(null==(t=this.autoCols)?void 0:t.list)??[],(null==(i=this.controlsCols)?void 0:i.list)??[],o??[]].flat()}getColsForKeys(e){return e?e.map((e=>this.getCol(e))).filter((e=>null!=e)):[]}getColDefCol(e){var t;return(null==(t=this.colDefCols)?void 0:t.list)?this.getColFromCollection(e,this.colDefCols):null}getCol(e){return null==e?null:this.getColFromCollection(e,this.cols)}getColFromCollection(e,t){if(null==t)return null;const{map:i,list:s}=t;if("string"==typeof e&&i[e])return i[e];for(let o=0;opt(t,e))))??null}getAutoCols(){var e;return(null==(e=this.autoCols)?void 0:e.list)??null}setColHeaderHeight(e,t){e.setAutoHeaderHeight(t)&&(e.isColumn?this.eventDispatcher.headerHeight(e):this.eventDispatcher.groupHeaderHeight(e))}getGroupRowsHeight(){const e=[],t=this.ctrlsService.getHeaderRowContainerCtrls();for(const i of t){if(!i)continue;const t=i.getGroupRowCount()||0;for(let s=0;so)&&(e[s]=i)}}}return e}getColumnGroupHeaderRowHeight(e){const t=this.isPivotMode()?this.getPivotGroupHeaderHeight():this.getGroupHeaderHeight();let i=0;const s=e.getHeaderCtrls();for(const o of s){const e=o.getColumn();if(e.isAutoHeaderHeight()){const t=e.getAutoHeaderHeight();null!=t&&t>i&&(i=t)}}return Math.max(t,i)}getColumnHeaderRowHeight(){const e=this.isPivotMode()?this.getPivotHeaderHeight():this.getHeaderHeight(),t=this.visibleColsService.getAllCols().filter((e=>e.isAutoHeaderHeight())).map((e=>e.getAutoHeaderHeight()||0));return Math.max(e,...t)}getHeaderHeight(){return this.gos.get("headerHeight")??this.environment.getDefaultHeaderHeight()}getFloatingFiltersHeight(){return this.gos.get("floatingFiltersHeight")??this.getHeaderHeight()}getGroupHeaderHeight(){return this.gos.get("groupHeaderHeight")??this.getHeaderHeight()}getPivotHeaderHeight(){return this.gos.get("pivotHeaderHeight")??this.getHeaderHeight()}getPivotGroupHeaderHeight(){return this.gos.get("pivotGroupHeaderHeight")??this.getGroupHeaderHeight()}onFirstDataRendered(){const e=this.gos.get("autoSizeStrategy");if("fitCellContents"!==(null==e?void 0:e.type))return;const{colIds:t,skipHeader:i}=e;setTimeout((()=>{t?this.columnAutosizeService.autoSizeCols({colKeys:t,skipHeader:i,source:"autosizeColumns"}):this.columnAutosizeService.autoSizeAllColumns("autosizeColumns",i)}))}onAutoGroupColumnDefChanged(e){this.autoCols&&this.autoColService.updateAutoCols(this.autoCols.list,e)}onSelectionOptionsChanged(e,t,i){const s=(t&&"string"!=typeof t?le(t):void 0)!==(e&&"string"!=typeof e?le(e):void 0),o=t&&"string"!=typeof t?ae(t):void 0,n=e&&"string"!=typeof e?ae(e):void 0;(s||o!==n)&&this.refreshAll(i)}};function ct(e){return"gridOptionsUpdated"===e?"gridOptionsChanged":e}function gt(e){e.map={},e.list.forEach((t=>e.map[t.getId()]=t))}function pt(e,t){const i=e===t,s=e.getColDef()===t,o=e.getColId()==t;return i||s||o}function mt(e,t){return Se(e,t,((e,t)=>e.getColId()===t.getColId()))}var vt=class extends Oe{constructor(){super(...arguments),this.beanName="columnAutosizeService",this.timesDelayed=0}wireBeans(e){this.columnModel=e.columnModel,this.visibleColsService=e.visibleColsService,this.animationFrameService=e.animationFrameService,this.autoWidthCalculator=e.autoWidthCalculator,this.eventDispatcher=e.columnEventDispatcher,this.ctrlsService=e.ctrlsService,this.renderStatusService=e.renderStatusService}autoSizeCols(e){if(this.columnModel.isShouldQueueResizeOperations())return void this.columnModel.pushResizeOperation((()=>this.autoSizeCols(e)));const{colKeys:t,skipHeader:i,skipHeaderGroups:s,stopAtGroup:o,source:n="api"}=e;if(this.animationFrameService.flushAllFrames(),this.timesDelayed<5&&this.renderStatusService&&!this.renderStatusService.areHeaderCellsRendered())return this.timesDelayed++,void setTimeout((()=>this.autoSizeCols(e)));this.timesDelayed=0;const r=[];let l=-1;const a=null!=i?i:this.gos.get("skipHeaderOnAutoSize"),d=null!=s?s:a;for(;0!==l;){l=0;const e=[];t.forEach((t=>{if(!t)return;const i=this.columnModel.getCol(t);if(!i)return;if(r.indexOf(i)>=0)return;const s=this.autoWidthCalculator.getPreferredWidthForColumn(i,a);if(s>0){const e=this.normaliseColumnWidth(i,s);i.setActualWidth(e,n),r.push(i),l++}e.push(i)})),e.length&&this.visibleColsService.refresh(n)}d||this.autoSizeColumnGroupsByColumns(t,n,o),this.eventDispatcher.columnResized(r,!0,"autosizeColumns")}autoSizeColumn(e,t,i){e&&this.autoSizeCols({colKeys:[e],skipHeader:i,skipHeaderGroups:!0,source:t})}autoSizeColumnGroupsByColumns(e,t,i){const s=new Set;let o;this.columnModel.getColsForKeys(e).forEach((e=>{let t=e.getParent();for(;t&&t!=i;)t.isPadding()||s.add(t),t=t.getParent()}));for(const n of s){for(const e of this.ctrlsService.getHeaderRowContainerCtrls())if(o=e.getHeaderCtrlForColumn(n),o)break;o&&o.resizeLeafColumnsToFit(t)}return[]}autoSizeAllColumns(e,t){if(this.columnModel.isShouldQueueResizeOperations())return void this.columnModel.pushResizeOperation((()=>this.autoSizeAllColumns(e,t)));const i=this.visibleColsService.getAllCols();this.autoSizeCols({colKeys:i,skipHeader:t,source:e})}normaliseColumnWidth(e,t){const i=e.getMinWidth();tthis.rowGroupCols.push(e),removeGroupCol:e=>be(this.rowGroupCols,e),addPivotCol:e=>this.pivotCols.push(e),removePivotCol:e=>be(this.pivotCols,e),addValueCol:e=>this.valueCols.push(e),removeValueCol:e=>be(this.valueCols,e)}}getSourceColumnsForGroupColumn(e){const t=e.getColDef().showRowGroup;if(!t)return null;if(!0===t)return this.rowGroupCols.slice(0);const i=this.columnModel.getColDefCol(t);return i?[i]:null}sortRowGroupColumns(e){this.rowGroupCols.sort(e)}sortPivotColumns(e){this.pivotCols.sort(e)}getValueColumns(){return this.valueCols?this.valueCols:[]}getPivotColumns(){return this.pivotCols?this.pivotCols:[]}getRowGroupColumns(){return this.rowGroupCols?this.rowGroupCols:[]}isRowGroupEmpty(){return D(this.rowGroupCols)}setColumnAggFunc(e,t,i){if(!e)return;const s=this.columnModel.getColDefCol(e);s&&(s.setAggFunc(t),this.eventDispatcher.columnChanged("columnValueChanged",[s],i))}setRowGroupColumns(e,t){this.setColList(e,this.rowGroupCols,"columnRowGroupChanged",!0,!0,((e,i)=>this.setRowGroupActive(e,i,t)),t)}setRowGroupActive(e,t,i){e!==t.isRowGroupActive()&&(t.setRowGroupActive(e,i),e&&!this.gos.get("suppressRowGroupHidesColumns")&&this.columnModel.setColsVisible([t],!1,i),e||this.gos.get("suppressMakeColumnVisibleAfterUnGroup")||this.columnModel.setColsVisible([t],!0,i))}addRowGroupColumns(e,t){this.updateColList(e,this.rowGroupCols,!0,!0,(e=>this.setRowGroupActive(!0,e,t)),"columnRowGroupChanged",t)}removeRowGroupColumns(e,t){this.updateColList(e,this.rowGroupCols,!1,!0,(e=>this.setRowGroupActive(!1,e,t)),"columnRowGroupChanged",t)}addPivotColumns(e,t){this.updateColList(e,this.pivotCols,!0,!1,(e=>e.setPivotActive(!0,t)),"columnPivotChanged",t)}setPivotColumns(e,t){this.setColList(e,this.pivotCols,"columnPivotChanged",!0,!1,((e,i)=>{i.setPivotActive(e,t)}),t)}removePivotColumns(e,t){this.updateColList(e,this.pivotCols,!1,!1,(e=>e.setPivotActive(!1,t)),"columnPivotChanged",t)}setValueColumns(e,t){this.setColList(e,this.valueCols,"columnValueChanged",!1,!1,((e,i)=>this.setValueActive(e,i,t)),t)}setValueActive(e,t,i){if(e!==t.isValueActive()&&(t.setValueActive(e,i),e&&!t.getAggFunc()&&this.aggFuncService)){const e=this.aggFuncService.getDefaultAggFunc(t);t.setAggFunc(e)}}addValueColumns(e,t){this.updateColList(e,this.valueCols,!0,!1,(e=>this.setValueActive(!0,e,t)),"columnValueChanged",t)}removeValueColumns(e,t){this.updateColList(e,this.valueCols,!1,!1,(e=>this.setValueActive(!1,e,t)),"columnValueChanged",t)}moveRowGroupColumn(e,t,i){if(this.isRowGroupEmpty())return;const s=this.rowGroupCols[e],o=this.rowGroupCols.slice(e,t);this.rowGroupCols.splice(e,1),this.rowGroupCols.splice(t,0,s),this.eventDispatcher.rowGroupChanged(o,i)}setColList(e,t,i,s,o,n,r){if(!this.columnModel.getCols())return;const l=new Map;t.forEach(((e,t)=>l.set(e,t))),t.length=0,P(e)&&e.forEach((e=>{const i=this.columnModel.getColDefCol(e);i&&t.push(i)})),t.forEach(((e,t)=>{const i=l.get(e);void 0!==i?s&&i!==t||l.delete(e):l.set(e,0)}));(this.columnModel.getColDefCols()||[]).forEach((e=>{const i=t.indexOf(e)>=0;n(i,e)})),o&&this.columnModel.refreshCols(!1),this.visibleColsService.refresh(r),this.eventDispatcher.columnChanged(i,[...l.keys()],r)}updateColList(e,t,i,s,o,n,r){if(!e||D(e))return;let l=!1;const a=new Set;e.forEach((e=>{if(!e)return;const s=this.columnModel.getColDefCol(e);if(s){if(a.add(s),i){if(t.indexOf(s)>=0)return;t.push(s)}else{const e=t.indexOf(s);if(e<0)return;for(let i=e+1;it.setValueActive(i,e)),(()=>{}),(()=>{}),(e=>{const t=e.aggFunc;return null===t||""===t?null:void 0!==t?!!t:void 0}),(e=>null!=e.initialAggFunc&&""!=e.initialAggFunc)),this.valueCols.forEach((e=>{const t=e.getColDef();null!=t.aggFunc&&""!=t.aggFunc?e.setAggFunc(t.aggFunc):e.getAggFunc()||e.setAggFunc(t.initialAggFunc)}))}extractRowGroupCols(e,t){this.rowGroupCols=this.extractColsCommon(t,this.rowGroupCols,((t,i)=>t.setRowGroupActive(i,e)),(e=>e.rowGroupIndex),(e=>e.initialRowGroupIndex),(e=>e.rowGroup),(e=>e.initialRowGroup))}extractPivotCols(e,t){this.pivotCols=this.extractColsCommon(t,this.pivotCols,((t,i)=>t.setPivotActive(i,e)),(e=>e.pivotIndex),(e=>e.initialPivotIndex),(e=>e.pivot),(e=>e.initialPivot))}extractColsCommon(e=[],t=[],i,s,o,n,r){const l=[],a=[];(this.columnModel.getColDefCols()||[]).forEach((i=>{const d=e.indexOf(i)<0,h=i.getColDef(),u=A(n(h)),c=A(r(h)),g=x(s(h)),p=x(o(h));let m;if(m=void 0!==u?u:void 0!==g?null!==g&&g>=0:d?void 0!==c?c:!!(void 0!==p)&&(null!=p&&p>=0):t.indexOf(i)>=0,m){(d?null!=g||null!=p:null!=g)?l.push(i):a.push(i)}}));const d=e=>{const t=s(e.getColDef()),i=o(e.getColDef());return null!=t?t:i};l.sort(((e,t)=>{const i=d(e),s=d(t);return i===s?0:i{a.indexOf(e)>=0&&h.push(e)})),a.forEach((e=>{h.indexOf(e)<0&&h.push(e)})),t.forEach((e=>{h.indexOf(e)<0&&i(e,!1)})),h.forEach((e=>{t.indexOf(e)<0&&i(e,!0)})),h}generateColumnStateForRowGroupAndPivotIndexes(e,t){const i={},s=(e,t,s,o,n,r)=>{const l=this.columnModel.getColDefCols();if(!t.length||!l)return[];const a=Object.keys(e),d=new Set(a),h=new Set(a),u=new Set(t.map((e=>{const t=e.getColId();return h.delete(t),t})).concat(a)),c=[],g={};let p=0;for(let i=0;i{const i=g[t];for(let s=C;s{const l=t.getColId();if(d.has(l))f(l),e[l][n]=m++;else{const a=t.getColDef();if(null===a[n]||void 0===a[n]&&null==a[r]){if(!v){a[s]||void 0===a[s]&&a[o]?f(l):(h.forEach((t=>{e[t][n]=m+g[t]})),m+=c.length,v=!0)}i[l]||(i[l]={colId:l}),i[l][n]=m++}}}))};return s(e,this.rowGroupCols,"rowGroup","initialRowGroup","rowGroupIndex","initialRowGroupIndex"),s(t,this.pivotCols,"pivot","initialPivot","pivotIndex","initialPivotIndex"),Object.values(i)}},ft=class extends Oe{constructor(){super(...arguments),this.beanName="columnApplyStateService"}wireBeans(e){this.columnModel=e.columnModel,this.eventDispatcher=e.columnEventDispatcher,this.sortController=e.sortController,this.columnGetStateService=e.columnGetStateService,this.funcColsService=e.funcColsService,this.visibleColsService=e.visibleColsService,this.columnAnimationService=e.columnAnimationService,this.pivotResultColsService=e.pivotResultColsService}applyColumnState(e,t){const i=this.columnModel.getColDefCols()||[];if(D(i))return!1;if(e&&e.state&&!e.state.forEach)return m("applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state."),!1;const s=this.funcColsService.getModifyColumnsNoEventsCallbacks(),o=(i,o,n)=>{const r=this.compareColumnStatesAndDispatchEvents(t),l=o.slice(),a={},d={},h=[],u=[];let c=0;const g=this.funcColsService.getRowGroupColumns().slice(),p=this.funcColsService.getPivotColumns().slice();i.forEach((i=>{const o=i.colId||"";if(o.startsWith(Ve))return h.push(i),void u.push(i);const r=n(o);r?(this.syncColumnWithStateItem(r,i,e.defaultState,a,d,!1,t,s),be(l,r)):(u.push(i),c+=1)}));const m=i=>this.syncColumnWithStateItem(i,null,e.defaultState,a,d,!1,t,s);l.forEach(m),this.funcColsService.sortRowGroupColumns(wt.bind(this,a,g)),this.funcColsService.sortPivotColumns(wt.bind(this,d,p)),this.columnModel.refreshCols(!1);const v=(this.columnModel.getAutoCols()||[]).slice();return h.forEach((i=>{const o=this.columnModel.getAutoCol(i.colId);be(v,o),this.syncColumnWithStateItem(o,i,e.defaultState,null,null,!0,t,s)})),v.forEach(m),this.orderLiveColsLikeState(e),this.visibleColsService.refresh(t),this.eventDispatcher.everythingChanged(t),r(),{unmatchedAndAutoStates:u,unmatchedCount:c}};this.columnAnimationService.start();let{unmatchedAndAutoStates:n,unmatchedCount:r}=o(e.state||[],i,(e=>this.columnModel.getColDefCol(e)));if(n.length>0||P(e.defaultState)){const e=this.pivotResultColsService.getPivotResultCols();r=o(n,(null==e?void 0:e.list)||[],(e=>this.pivotResultColsService.getPivotResultCol(e))).unmatchedCount}return this.columnAnimationService.finish(),0===r}resetColumnState(e){if(D(this.columnModel.getColDefCols()))return;const t=We(this.columnModel.getColDefColTree()),i=[];let s=1e3,o=1e3,n=[];const r=this.columnModel.getAutoCols();r&&(n=n.concat(r)),n=n.concat(t),n.forEach((e=>{const t=this.getColumnStateFromColDef(e);E(t.rowGroupIndex)&&t.rowGroup&&(t.rowGroupIndex=s++),E(t.pivotIndex)&&t.pivot&&(t.pivotIndex=o++),i.push(t)})),this.applyColumnState({state:i,applyOrder:!0},e)}getColumnStateFromColDef(e){const t=(e,t)=>null!=e?e:null!=t?t:null,i=e.getColDef(),s=t(i.sort,i.initialSort),o=t(i.sortIndex,i.initialSortIndex),n=t(i.hide,i.initialHide),r=t(i.pinned,i.initialPinned),l=t(i.width,i.initialWidth),a=t(i.flex,i.initialFlex);let d=t(i.rowGroupIndex,i.initialRowGroupIndex),h=t(i.rowGroup,i.initialRowGroup);null!=d||null!=h&&0!=h||(d=null,h=null);let u=t(i.pivotIndex,i.initialPivotIndex),c=t(i.pivot,i.initialPivot);null!=u||null!=c&&0!=c||(u=null,c=null);const g=t(i.aggFunc,i.initialAggFunc);return{colId:e.getColId(),sort:s,sortIndex:o,hide:n,pinned:r,width:l,flex:a,rowGroup:h,rowGroupIndex:d,pivot:c,pivotIndex:u,aggFunc:g}}syncColumnWithStateItem(e,t,i,s,o,n,r,l){if(!e)return;const a=(e,s)=>{const o={value1:void 0,value2:void 0};let n=!1;return t&&(void 0!==t[e]&&(o.value1=t[e],n=!0),P(s)&&void 0!==t[s]&&(o.value2=t[s],n=!0)),!n&&i&&(void 0!==i[e]&&(o.value1=i[e]),P(s)&&void 0!==i[s]&&(o.value2=i[s])),o},d=a("hide").value1;void 0!==d&&e.setVisible(!d,r);const h=a("pinned").value1;void 0!==h&&e.setPinned(h);const u=e.getColDef().minWidth??this.gos.environment.getDefaultColumnMinWidth(),c=a("flex").value1;if(void 0!==c&&e.setFlex(c),null==c){const t=a("width").value1;null!=t&&null!=u&&t>=u&&e.setActualWidth(t,r)}const g=a("sort").value1;void 0!==g&&("desc"===g||"asc"===g?e.setSort(g,r):e.setSort(void 0,r));const p=a("sortIndex").value1;if(void 0!==p&&e.setSortIndex(p),n||!e.isPrimary())return;const v=a("aggFunc").value1;void 0!==v&&("string"==typeof v?(e.setAggFunc(v),e.isValueActive()||(e.setValueActive(!0,r),l.addValueCol(e))):(P(v)&&m("stateItem.aggFunc must be a string. if using your own aggregation functions, register the functions first before using them in get/set state. This is because it is intended for the column state to be stored and retrieved as simple JSON."),e.isValueActive()&&(e.setValueActive(!1,r),l.removeValueCol(e))));const{value1:C,value2:f}=a("rowGroup","rowGroupIndex");void 0===C&&void 0===f||("number"==typeof f||C?(e.isRowGroupActive()||(e.setRowGroupActive(!0,r),l.addGroupCol(e)),s&&"number"==typeof f&&(s[e.getId()]=f)):e.isRowGroupActive()&&(e.setRowGroupActive(!1,r),l.removeGroupCol(e)));const{value1:w,value2:S}=a("pivot","pivotIndex");void 0===w&&void 0===S||("number"==typeof S||w?(e.isPivotActive()||(e.setPivotActive(!0,r),l.addPivotCol(e)),o&&"number"==typeof S&&(o[e.getId()]=S)):e.isPivotActive()&&(e.setPivotActive(!1,r),l.removePivotCol(e)))}orderLiveColsLikeState(e){if(!e.applyOrder||!e.state)return;const t=[];e.state.forEach((e=>{null!=e.colId&&t.push(e.colId)})),this.columnModel.sortColsLikeKeys(t)}compareColumnStatesAndDispatchEvents(e){const t={rowGroupColumns:this.funcColsService.getRowGroupColumns().slice(),pivotColumns:this.funcColsService.getPivotColumns().slice(),valueColumns:this.funcColsService.getValueColumns().slice()},i=this.columnGetStateService.getColumnState(),s={};return i.forEach((e=>{s[e.colId]=e})),()=>{const o=this.columnModel.getAllCols(),n=(t,i,s,o)=>{if(Se(i.map(o),s.map(o)))return;const n=new Set(i);s.forEach((e=>{n.delete(e)||n.add(e)}));const r=[...n];this.eventService.dispatchEvent({type:t,columns:r,column:1===r.length?r[0]:null,source:e})},r=e=>{const t=[];return o.forEach((i=>{const o=s[i.getColId()];o&&e(o,i)&&t.push(i)})),t},l=e=>e.getColId();n("columnRowGroupChanged",t.rowGroupColumns,this.funcColsService.getRowGroupColumns(),l),n("columnPivotChanged",t.pivotColumns,this.funcColsService.getPivotColumns(),l);const a=r(((e,t)=>{const i=null!=e.aggFunc,s=i!=t.isValueActive(),o=i&&e.aggFunc!=t.getAggFunc();return s||o}));a.length>0&&this.eventDispatcher.columnChanged("columnValueChanged",a,e);this.eventDispatcher.columnResized(r(((e,t)=>e.width!=t.getActualWidth())),!0,e);this.eventDispatcher.columnPinned(r(((e,t)=>e.pinned!=t.getPinned())),e);this.eventDispatcher.columnVisible(r(((e,t)=>e.hide==t.isVisible())),e);const d=r(((e,t)=>e.sort!=t.getSort()||e.sortIndex!=t.getSortIndex()));d.length>0&&this.sortController.dispatchSortChangedEvents(e,d),this.normaliseColumnMovedEventForColumnState(i,e)}}normaliseColumnMovedEventForColumnState(e,t){const i=this.columnGetStateService.getColumnState(),s={};i.forEach((e=>s[e.colId]=e));const o={};e.forEach((e=>{s[e.colId]&&(o[e.colId]=!0)}));const n=e.filter((e=>o[e.colId])),r=i.filter((e=>o[e.colId])),l=[];r.forEach(((e,t)=>{const i=n&&n[t];if(i&&i.colId!==e.colId){const e=this.columnModel.getCol(i.colId);e&&l.push(e)}})),l.length&&this.eventDispatcher.columnMoved({movedColumns:l,source:t,finished:!0})}},wt=(e,t,i,s)=>{const o=e[i.getId()],n=e[s.getId()],r=null!=o,l=null!=n;if(r&&l)return o-n;if(r)return-1;if(l)return 1;const a=t.indexOf(i),d=t.indexOf(s),h=a>=0;return h&&d>=0?a-d:h?-1:1},St=class extends Oe{constructor(){super(...arguments),this.beanName="columnMoveService"}wireBeans(e){this.columnModel=e.columnModel,this.columnAnimationService=e.columnAnimationService,this.eventDispatcher=e.columnEventDispatcher}moveColumnByIndex(e,t,i){const s=this.columnModel.getCols();if(!s)return;const o=s[e];this.moveColumns([o],t,i)}moveColumns(e,t,i,s=!0){const o=this.columnModel.getCols();if(!o)return;if(t>o.length-e.length)return m("tried to insert columns in invalid location, toIndex = ",t),void m("remember that you should not count the moving columns when calculating the new index");this.columnAnimationService.start();const n=this.columnModel.getColsForKeys(e);this.doesMovePassRules(n,t)&&(this.columnModel.moveInCols(n,t,i),this.eventDispatcher.columnMoved({movedColumns:n,source:i,toIndex:t,finished:s})),this.columnAnimationService.finish()}doesMovePassRules(e,t){const i=this.getProposedColumnOrder(e,t);return this.doesOrderPassRules(i)}doesOrderPassRules(e){return!!this.doesMovePassMarryChildren(e)&&!!this.doesMovePassLockedPositions(e)}getProposedColumnOrder(e,t){const i=this.columnModel.getCols().slice();return Fe(i,e,t),i}doesMovePassLockedPositions(e){const t=this.gos.get("enableRtl");let i=t?1:-1,s=!0;return e.forEach((e=>{const o=(n=e.getColDef().lockPosition)?"left"===n||!0===n?-1:1:0;var n;t?o>i&&(s=!1):o{if(!Ge(i))return;const s=i,o=s.getColGroupDef();if(!(o&&o.marryChildren))return;const n=[];s.getLeafColumns().forEach((t=>{const i=e.indexOf(t);n.push(i)}));Math.max.apply(Math,n)-Math.min.apply(Math,n)>s.getLeafColumns().length-1&&(t=!1)})),t}placeLockedColumns(e){const t=[],i=[],s=[];e.forEach((e=>{const o=e.getColDef().lockPosition;"right"===o?s.push(e):"left"===o||!0===o?t.push(e):i.push(e)}));return this.gos.get("enableRtl")?[...s,...i,...t]:[...t,...i,...s]}},yt=/[&<>"']/g,bt={"&":"&","<":"<",">":">",'"':""","'":"'"};function Rt(e,t){if(null==e)return null;const i=e.toString().toString();return t?i:i.replace(yt,(e=>bt[e]))}var Ft=class extends Oe{constructor(){super(...arguments),this.beanName="columnNameService"}wireBeans(e){this.expressionService=e.expressionService,this.funcColsService=e.funcColsService,this.columnModel=e.columnModel}getDisplayNameForColumn(e,t,i=!1){if(!e)return null;const s=this.getHeaderName(e.getColDef(),e,null,null,t);return i?this.wrapHeaderNameWithAggFunc(e,s):s}getDisplayNameForProvidedColumnGroup(e,t,i){const s=t?t.getColGroupDef():null;return s?this.getHeaderName(s,null,e,t,i):null}getDisplayNameForColumnGroup(e,t){return this.getDisplayNameForProvidedColumnGroup(e,e.getProvidedColumnGroup(),t)}getHeaderName(e,t,i,s,o){const n=e.headerValueGetter;if(n){const r=this.gos.addGridCommonParams({colDef:e,column:t,columnGroup:i,providedColumnGroup:s,location:o});return"function"==typeof n?n(r):"string"==typeof n?this.expressionService.evaluate(n,r):(m("headerValueGetter must be a function or a string"),"")}return null!=e.headerName?e.headerName:e.field?(r=e.field)&&null!=r?r.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z])([a-z])/g,"$1 $2$3").replace(/\./g," ").split(" ").map((e=>e.substring(0,1).toUpperCase()+(e.length>1?e.substring(1,e.length):""))).join(" "):null:"";var r}wrapHeaderNameWithAggFunc(e,t){if(this.gos.get("suppressAggFuncInHeader"))return t;const i=e.getColDef().pivotValueColumn;let s,o=null;if(P(i)){const n=this.funcColsService.getValueColumns(),r=this.gos.get("removePivotHeaderRowWhenSingleValueColumn")&&1===n.length,l=void 0!==e.getColDef().pivotTotalColumnIds;if(r&&!l)return t;o=i?i.getAggFunc():null,s=!0}else{const t=e.isValueActive(),i=this.columnModel.isPivotMode()||!this.funcColsService.isRowGroupEmpty();t&&i?(o=e.getAggFunc(),s=!0):s=!1}if(s){const e="string"==typeof o?o:"func";return`${this.localeService.getLocaleTextFunc()(e,e)}(${t})`}return t}},Pt=class extends Oe{constructor(){super(...arguments),this.beanName="pivotResultColsService"}wireBeans(e){this.context=e.context,this.columnModel=e.columnModel,this.columnFactory=e.columnFactory,this.visibleColsService=e.visibleColsService}destroy(){var e;Ue(this.context,null==(e=this.pivotResultCols)?void 0:e.tree),super.destroy()}isPivotResultColsPresent(){return null!=this.pivotResultCols}lookupPivotResultCol(e,t){if(null==this.pivotResultCols)return null;const i=this.columnModel.getColDefCol(t);let s=null;return this.pivotResultCols.list.forEach((t=>{const o=t.getColDef().pivotKeys,n=t.getColDef().pivotValueColumn;Se(o,e)&&n===i&&(s=t)})),s}getPivotResultCols(){return this.pivotResultCols}getPivotResultCol(e){return this.pivotResultCols?this.columnModel.getColFromCollection(e,this.pivotResultCols):null}setPivotResultCols(e,t){var i,s;if(this.columnModel.isReady()&&(null!=e||null!=this.pivotResultCols)){if(e){this.processPivotResultColDef(e);const o=this.columnFactory.createColumnTree(e,!1,(null==(i=this.pivotResultCols)?void 0:i.tree)||this.previousPivotResultCols||void 0,t);Ue(this.context,null==(s=this.pivotResultCols)?void 0:s.tree,o.columnTree);const n=o.columnTree,r=o.treeDept,l=We(n),a={};this.pivotResultCols={tree:n,treeDepth:r,list:l,map:a},this.pivotResultCols.list.forEach((e=>this.pivotResultCols.map[e.getId()]=e));const d=!!this.previousPivotResultCols;this.previousPivotResultCols=null,this.columnModel.refreshCols(!d)}else this.previousPivotResultCols=this.pivotResultCols?this.pivotResultCols.tree:null,this.pivotResultCols=null,this.columnModel.refreshCols(!1);this.visibleColsService.refresh(t)}}processPivotResultColDef(e){const t=this.gos.get("processPivotResultColDef"),i=this.gos.get("processPivotResultColGroupDef");if(!t&&!i)return;const s=e=>{e.forEach((e=>{if(P(e.children)){const t=e;i&&i(t),s(t.children)}else{t&&t(e)}}))};e&&s(e)}},Et=class extends Oe{constructor(){super(...arguments),this.beanName="columnSizeService"}wireBeans(e){this.columnModel=e.columnModel,this.columnViewportService=e.columnViewportService,this.eventDispatcher=e.columnEventDispatcher,this.visibleColsService=e.visibleColsService,this.ctrlsService=e.ctrlsService}setColumnWidths(e,t,i,s){const o=[];e.forEach((e=>{const i=this.columnModel.getColDefCol(e.key)||this.columnModel.getCol(e.key);if(!i)return;o.push({width:e.newWidth,ratios:[1],columns:[i]});if("shift"===this.gos.get("colResizeDefault")&&(t=!t),t){const t=this.visibleColsService.getColAfter(i);if(!t)return;const s=i.getActualWidth()-e.newWidth,n=t.getActualWidth()+s;o.push({width:n,ratios:[1],columns:[t]})}})),0!==o.length&&this.resizeColumnSets({resizeSets:o,finished:i,source:s})}resizeColumnSets(e){const{resizeSets:t,finished:i,source:s}=e;if(!(!t||t.every((e=>this.checkMinAndMaxWidthsForSet(e))))){if(i){const e=t&&t.length>0?t[0].columns:null;this.eventDispatcher.columnResized(e,i,s)}return}const o=[],n=[];t.forEach((e=>{const{width:t,columns:i,ratios:r}=e,l={},a={};i.forEach((e=>n.push(e)));let d=!0,h=0;for(;d;){if(h++,h>1e3){v("infinite loop in resizeColumnSets");break}d=!1;const e=[];let s=0,o=t;i.forEach(((t,i)=>{if(a[t.getId()])o-=l[t.getId()];else{e.push(t);const o=r[i];s+=o}}));const n=1/s;e.forEach(((i,s)=>{let h;s===e.length-1?h=o:(h=Math.round(r[s]*t*n),o-=h);const u=i.getMinWidth(),c=i.getMaxWidth();h0&&h>c&&(h=c,a[i.getId()]=!0,d=!0),l[i.getId()]=h}))}i.forEach((e=>{const t=l[e.getId()];e.getActualWidth()!==t&&(e.setActualWidth(t,s),o.push(e))}))}));const r=o.length>0;let l=[];r&&(l=this.refreshFlexedColumns({resizingCols:n,skipSetLeft:!0}),this.visibleColsService.setLeftValues(s),this.visibleColsService.updateBodyWidths(),this.columnViewportService.checkViewportColumns());const a=n.concat(l);(r||i)&&this.eventDispatcher.columnResized(a,i,s,l)}checkMinAndMaxWidthsForSet(e){const{columns:t,width:i}=e;let s=0,o=0,n=!0;t.forEach((e=>{const t=e.getMinWidth();s+=t||0;const i=e.getMaxWidth();i>0?o+=i:n=!1}));return i>=s&&(!n||i<=o)}refreshFlexedColumns(e={}){const t=e.source?e.source:"flex";if(null!=e.viewportWidth&&(this.flexViewportWidth=e.viewportWidth),!this.flexViewportWidth)return[];const i=this.visibleColsService.getCenterCols();let s=-1;if(e.resizingCols){const t=new Set(e.resizingCols);for(let e=i.length-1;e>=0;e--)if(t.has(i[e])){s=e;break}}let o=0,n=[],r=0,l=0;for(let c=0;cs?(n.push(i[c]),l+=i[c].getFlex(),r+=i[c].getMinWidth()):o+=i[c].getActualWidth()}if(!n.length)return[];let a=[];o+r>this.flexViewportWidth&&(n.forEach((e=>e.setActualWidth(e.getMinWidth(),t))),a=n,n=[]);const d=[];let h;e:for(;;){h=this.flexViewportWidth-o;const e=h/l;for(let i=0;ic&&(h=c),h){s.setActualWidth(h,t),ye(n,s),l-=s.getFlex(),a.push(s),o+=s.getActualWidth();continue e}d[i]=Math.floor(r)}break}let u=h;return n.forEach(((e,i)=>{const s=ithis.sizeColumnsToFit(e,t,i,s)));const n={};s&&(null==(o=null==s?void 0:s.columnLimits)||o.forEach((({key:e,...t})=>{n["string"==typeof e?e:e.getColId()]=t})));const r=this.visibleColsService.getAllCols(),l=e===ze(r);if(e<=0||!r.length||l)return;const a=[],d=[];r.forEach((e=>{!0===e.getColDef().suppressSizeToFit?d.push(e):a.push(e)}));const h=a.slice(0);let u=!1;const c=e=>{be(a,e),d.push(e)};for(a.forEach((e=>{e.resetActualWidth(t);const i=null==n?void 0:n[e.getId()],o=(null==i?void 0:i.minWidth)??(null==s?void 0:s.defaultMinWidth),r=(null==i?void 0:i.maxWidth)??(null==s?void 0:s.defaultMaxWidth),l=e.getActualWidth();"number"==typeof o&&lr&&e.setActualWidth(r,t,!0)}));!u;){u=!0;const i=e-ze(d);if(i<=0)a.forEach((e=>{var i;const o=(null==(i=null==n?void 0:n[e.getId()])?void 0:i.minWidth)??(null==s?void 0:s.defaultMinWidth);"number"!=typeof o?e.setMinimum(t):e.setActualWidth(o,t,!0)}));else{const e=i/ze(a);let o=i;for(let i=a.length-1;i>=0;i--){const r=a[i],l=null==n?void 0:n[r.getId()],d=(null==l?void 0:l.minWidth)??(null==s?void 0:s.defaultMinWidth),h=(null==l?void 0:l.maxWidth)??(null==s?void 0:s.defaultMaxWidth),g=r.getMinWidth(),p=r.getMaxWidth(),m="number"==typeof d&&d>g?d:g,v="number"==typeof h&&hv?(C=v,c(r),u=!1):0===i&&(C=o),r.setActualWidth(C,t,!0),o-=C}}}h.forEach((e=>{e.fireColumnWidthChangedEvent(t)})),this.visibleColsService.setLeftValues(t),this.visibleColsService.updateBodyWidths(),i||this.eventDispatcher.columnResized(h,!0,t)}applyAutosizeStrategy(){const e=this.gos.get("autoSizeStrategy");if(!e)return;const{type:t}=e;setTimeout((()=>{if("fitGridWidth"===t){const{columnLimits:t,defaultMinWidth:i,defaultMaxWidth:s}=e,o=null==t?void 0:t.map((({colId:e,minWidth:t,maxWidth:i})=>({key:e,minWidth:t,maxWidth:i})));this.ctrlsService.getGridBodyCtrl().sizeColumnsToFit({defaultMinWidth:i,defaultMaxWidth:s,columnLimits:o})}else"fitProvidedWidth"===t&&this.sizeColumnsToFit(e.width,"sizeColumnsToFit")}))}};function Dt(e,t){return e+"_"+t}function Mt(e){return e instanceof xt}var xt=class extends Oe{constructor(e,t,i,s){super(),this.isColumn=!1,this.displayedChildren=[],this.autoHeaderHeight=null,this.parent=null,this.groupId=t,this.partId=i,this.providedColumnGroup=e,this.pinned=s}reset(){this.parent=null,this.children=null,this.displayedChildren=null}getParent(){return this.parent}setParent(e){this.parent=e}getUniqueId(){return Dt(this.groupId,this.partId)}isEmptyGroup(){return 0===this.displayedChildren.length}isMoving(){const e=this.getProvidedColumnGroup().getLeafColumns();return!(!e||0===e.length)&&e.every((e=>e.isMoving()))}checkLeft(){if(this.displayedChildren.forEach((e=>{Mt(e)&&e.checkLeft()})),this.displayedChildren.length>0)if(this.gos.get("enableRtl")){const e=we(this.displayedChildren).getLeft();this.setLeft(e)}else{const e=this.displayedChildren[0].getLeft();this.setLeft(e)}else this.setLeft(null)}getLeft(){return this.left}getOldLeft(){return this.oldLeft}setLeft(e){this.oldLeft=this.left,this.left!==e&&(this.left=e,this.dispatchLocalEvent({type:"leftChanged"}))}getPinned(){return this.pinned}getGroupId(){return this.groupId}getPartId(){return this.partId}getActualWidth(){let e=0;return this.displayedChildren&&this.displayedChildren.forEach((t=>{e+=t.getActualWidth()})),e}isResizable(){if(!this.displayedChildren)return!1;let e=!1;return this.displayedChildren.forEach((t=>{t.isResizable()&&(e=!0)})),e}getMinWidth(){let e=0;return this.displayedChildren.forEach((t=>{e+=t.getMinWidth()})),e}addChild(e){this.children||(this.children=[]),this.children.push(e)}getDisplayedChildren(){return this.displayedChildren}getLeafColumns(){const e=[];return this.addLeafColumns(e),e}getDisplayedLeafColumns(){const e=[];return this.addDisplayedLeafColumns(e),e}getDefinition(){return this.providedColumnGroup.getColGroupDef()}getColGroupDef(){return this.providedColumnGroup.getColGroupDef()}isPadding(){return this.providedColumnGroup.isPadding()}isExpandable(){return this.providedColumnGroup.isExpandable()}isExpanded(){return this.providedColumnGroup.isExpanded()}setExpanded(e){this.providedColumnGroup.setExpanded(e)}isAutoHeaderHeight(){var e;return!!(null==(e=this.getColGroupDef())?void 0:e.autoHeaderHeight)}getAutoHeaderHeight(){return this.autoHeaderHeight}setAutoHeaderHeight(e){const t=e!==this.autoHeaderHeight;return this.autoHeaderHeight=e,t}addDisplayedLeafColumns(e){this.displayedChildren.forEach((t=>{nt(t)?e.push(t):Mt(t)&&t.addDisplayedLeafColumns(e)}))}addLeafColumns(e){this.children.forEach((t=>{nt(t)?e.push(t):Mt(t)&&t.addLeafColumns(e)}))}getChildren(){return this.children}getColumnGroupShow(){return this.providedColumnGroup.getColumnGroupShow()}getProvidedColumnGroup(){return this.providedColumnGroup}getPaddingLevel(){const e=this.getParent();return this.isPadding()&&e&&e.isPadding()?1+e.getPaddingLevel():0}calculateDisplayedColumns(){this.displayedChildren=[];let e=this;for(;null!=e&&e.isPadding();)e=e.getParent();if(!(!!e&&e.getProvidedColumnGroup().isExpandable()))return this.displayedChildren=this.children,void this.dispatchLocalEvent({type:"displayedChildrenChanged"});this.children.forEach((t=>{if(Mt(t)&&(!t.displayedChildren||!t.displayedChildren.length))return;switch(t.getColumnGroupShow()){case"open":e.getProvidedColumnGroup().isExpanded()&&this.displayedChildren.push(t);break;case"closed":e.getProvidedColumnGroup().isExpanded()||this.displayedChildren.push(t);break;default:this.displayedChildren.push(t)}})),this.dispatchLocalEvent({type:"displayedChildrenChanged"})}},At=class{constructor(){this.existingIds={}}getInstanceIdForKey(e){const t=this.existingIds[e];let i;return i="number"!=typeof t?0:t+1,this.existingIds[e]=i,i}},Tt=class extends Oe{constructor(){super(...arguments),this.beanName="visibleColsService",this.colsAndGroupsMap={},this.columnsLeft=[],this.columnsRight=[],this.columnsCenter=[],this.columns=[],this.bodyWidth=0,this.leftWidth=0,this.rightWidth=0,this.bodyWidthDirty=!0}wireBeans(e){this.columnModel=e.columnModel,this.columnSizeService=e.columnSizeService,this.columnViewportService=e.columnViewportService,this.eventDispatcher=e.columnEventDispatcher}refresh(e,t=!1){t||this.buildTrees(),this.updateOpenClosedVisibilityInColumnGroups(),this.columnsLeft=Lt(this.treeLeft),this.columnsCenter=Lt(this.treeCenter),this.columnsRight=Lt(this.treeRight),this.joinColsAriaOrder(),this.joinCols(),this.setLeftValues(e),this.autoHeightCols=this.columns.filter((e=>e.isAutoHeight())),this.columnSizeService.refreshFlexedColumns(),this.updateBodyWidths(),this.columnViewportService.checkViewportColumns(!1),this.setFirstRightAndLastLeftPinned(e),this.eventDispatcher.visibleCols(e)}updateBodyWidths(){const e=ze(this.columnsCenter),t=ze(this.columnsLeft),i=ze(this.columnsRight);this.bodyWidthDirty=this.bodyWidth!==e;(this.bodyWidth!==e||this.leftWidth!==t||this.rightWidth!==i)&&(this.bodyWidth=e,this.leftWidth=t,this.rightWidth=i,this.eventService.dispatchEvent({type:"columnContainerWidthChanged"}),this.eventService.dispatchEvent({type:"displayedColumnsWidthChanged"}))}setLeftValues(e){this.setLeftValuesOfCols(e),this.setLeftValuesOfGroups()}setFirstRightAndLastLeftPinned(e){let t,i;this.gos.get("enableRtl")?(t=this.columnsLeft?this.columnsLeft[0]:null,i=this.columnsRight?we(this.columnsRight):null):(t=this.columnsLeft?we(this.columnsLeft):null,i=this.columnsRight?this.columnsRight[0]:null),this.columnModel.getCols().forEach((s=>{s.setLastLeftPinned(s===t,e),s.setFirstRightPinned(s===i,e)}))}buildTrees(){const e=this.columnModel.getColsToShow(),t=e.filter((e=>"left"==e.getPinned())),i=e.filter((e=>"right"==e.getPinned())),s=e.filter((e=>"left"!=e.getPinned()&&"right"!=e.getPinned())),o=new At;this.treeLeft=this.createGroups({columns:t,idCreator:o,pinned:"left",oldDisplayedGroups:this.treeLeft}),this.treeRight=this.createGroups({columns:i,idCreator:o,pinned:"right",oldDisplayedGroups:this.treeRight}),this.treeCenter=this.createGroups({columns:s,idCreator:o,pinned:null,oldDisplayedGroups:this.treeCenter}),this.updateColsAndGroupsMap()}clear(){this.columnsLeft=[],this.columnsRight=[],this.columnsCenter=[],this.columns=[],this.ariaOrderColumns=[]}joinColsAriaOrder(){const e=this.columnModel.getCols(),t=[],i=[],s=[];for(const o of e){const e=o.getPinned();e?!0===e||"left"===e?t.push(o):s.push(o):i.push(o)}this.ariaOrderColumns=t.concat(i).concat(s)}getAriaColIndex(e){let t;return t=Mt(e)?e.getLeafColumns()[0]:e,this.ariaOrderColumns.indexOf(t)+1}getAllAutoHeightCols(){return this.autoHeightCols}setLeftValuesOfGroups(){[this.treeLeft,this.treeRight,this.treeCenter].forEach((e=>{e.forEach((e=>{if(Mt(e)){e.checkLeft()}}))}))}setLeftValuesOfCols(e){if(!this.columnModel.getColDefCols())return;const t=this.columnModel.getCols().slice(0),i=this.gos.get("enableRtl");[this.columnsLeft,this.columnsRight,this.columnsCenter].forEach((s=>{if(i){let t=ze(s);s.forEach((i=>{t-=i.getActualWidth(),i.setLeft(t,e)}))}else{let t=0;s.forEach((i=>{i.setLeft(t,e),t+=i.getActualWidth()}))}!function(e,t){for(let i=0;i{t.setLeft(null,e)}))}joinCols(){this.gos.get("enableRtl")?this.columns=this.columnsRight.concat(this.columnsCenter).concat(this.columnsLeft):this.columns=this.columnsLeft.concat(this.columnsCenter).concat(this.columnsRight)}getColsCenter(){return this.columnsCenter}getAllTrees(){return this.treeLeft&&this.treeRight&&this.treeCenter?this.treeLeft.concat(this.treeCenter).concat(this.treeRight):null}getTreeLeft(){return this.treeLeft}getTreeRight(){return this.treeRight}getTreeCenter(){return this.treeCenter}getAllCols(){return this.columns}isColDisplayed(e){return this.getAllCols().indexOf(e)>=0}getLeftColsForRow(e){return this.columnModel.isColSpanActive()?this.getColsForRow(e,this.columnsLeft):this.columnsLeft}getRightColsForRow(e){return this.columnModel.isColSpanActive()?this.getColsForRow(e,this.columnsRight):this.columnsRight}getColsForRow(e,t,i,s){const o=[];let n=null;for(let r=0;r1){const e=d-1;for(let i=1;i<=e;i++)h.push(t[r+i]);r+=e}let u;if(i?(u=!1,h.forEach((e=>{i(e)&&(u=!0)}))):u=!0,u){if(0===o.length&&n){!!s&&s(l)&&o.push(n)}o.push(l)}n=l}return o}getBodyContainerWidth(){return this.bodyWidth}getContainerWidth(e){switch(e){case"left":return this.leftWidth;case"right":return this.rightWidth;default:return this.bodyWidth}}getCenterCols(){return this.columnsCenter}getLeftCols(){return this.columnsLeft}getRightCols(){return this.columnsRight}getColBefore(e){const t=this.getAllCols(),i=t.indexOf(e);return i>0?t[i-1]:null}getGroupAtDirection(e,t){const i=e.getProvidedColumnGroup().getLevel()+e.getPaddingLevel(),s=e.getDisplayedLeafColumns(),o="After"===t?we(s):s[0],n=`getCol${t}`;for(;;){const t=this[n](o);if(!t)return null;const s=this.getColGroupAtLevel(t,i);if(s!==e)return s}}getColGroupAtLevel(e,t){let i,s,o=e.getParent();for(;;){if(i=o.getProvidedColumnGroup().getLevel(),s=o.getPaddingLevel(),i+s<=t)break;o=o.getParent()}return o}isPinningLeft(){return this.columnsLeft.length>0}isPinningRight(){return this.columnsRight.length>0}updateColsAndGroupsMap(){this.colsAndGroupsMap={};const e=e=>{this.colsAndGroupsMap[e.getUniqueId()]=e};It(this.treeCenter,!1,e),It(this.treeLeft,!1,e),It(this.treeRight,!1,e)}isVisible(e){return this.colsAndGroupsMap[e.getUniqueId()]===e}updateOpenClosedVisibilityInColumnGroups(){It(this.getAllTrees(),!1,(e=>{Mt(e)&&e.calculateDisplayedColumns()}))}getFirstColumn(){const e=this.gos.get("enableRtl"),t=["getLeftCols","getCenterCols","getRightCols"];e&&t.reverse();for(let i=0;i{if(Mt(i)){const n=i;let r;r=s?e===n.getGroupId()&&t===n.getPartId():e===n.getGroupId(),r&&(o=n)}})),o}getColAfter(e){const t=this.getAllCols(),i=t.indexOf(e);return i{const d=t;t=o;const h=e[d],u=(Mt(h)?h.getProvidedColumnGroup():h).getOriginalParent();if(null==u){for(let t=d;t{e.forEach((e=>{if(Mt(e)){const s=e;t[e.getUniqueId()]=s,i(s.getChildren())}}))};return e&&i(e),t}setupParentsIntoCols(e,t){e.forEach((e=>{if(e.setParent(t),Mt(e)){const t=e;this.setupParentsIntoCols(t.getChildren(),t)}}))}};function It(e,t,i){if(e)for(let s=0;s{nt(e)&&t.push(e)})),t}var kt=["columnEverythingChanged","newColumnsLoaded","columnPivotModeChanged","pivotMaxColumnsExceeded","columnRowGroupChanged","expandOrCollapseAll","columnPivotChanged","gridColumnsChanged","columnValueChanged","columnMoved","columnVisible","columnPinned","columnGroupOpened","columnResized","displayedColumnsChanged","virtualColumnsChanged","columnHeaderMouseOver","columnHeaderMouseLeave","columnHeaderClicked","columnHeaderContextMenu","asyncTransactionsFlushed","rowGroupOpened","rowDataUpdated","pinnedRowDataChanged","rangeSelectionChanged","cellSelectionChanged","chartCreated","chartRangeSelectionChanged","chartOptionsChanged","chartDestroyed","toolPanelVisibleChanged","toolPanelSizeChanged","modelUpdated","cutStart","cutEnd","pasteStart","pasteEnd","fillStart","fillEnd","cellSelectionDeleteStart","cellSelectionDeleteEnd","rangeDeleteStart","rangeDeleteEnd","undoStarted","undoEnded","redoStarted","redoEnded","cellClicked","cellDoubleClicked","cellMouseDown","cellContextMenu","cellValueChanged","cellEditRequest","rowValueChanged","headerFocused","cellFocused","rowSelected","selectionChanged","tooltipShow","tooltipHide","cellKeyDown","cellMouseOver","cellMouseOut","filterChanged","filterModified","filterOpened","advancedFilterBuilderVisibleChanged","sortChanged","virtualRowRemoved","rowClicked","rowDoubleClicked","gridReady","gridPreDestroyed","gridSizeChanged","viewportChanged","firstDataRendered","dragStarted","dragStopped","dragCancelled","rowEditingStarted","rowEditingStopped","cellEditingStarted","cellEditingStopped","bodyScroll","bodyScrollEnd","paginationChanged","componentStateChanged","storeRefreshed","stateUpdated","columnMenuVisibleChanged","contextMenuVisibleChanged","rowDragEnter","rowDragMove","rowDragLeave","rowDragEnd","rowDragCancel"],Ot=[...kt,"scrollbarWidthChanged","keyShortcutChangedCellStart","keyShortcutChangedCellEnd","pinnedHeightChanged","cellFocusCleared","fullWidthRowFocused","checkboxChanged","heightScaleChanged","suppressMovableColumns","suppressMenuHide","suppressFieldDotNotation","columnPanelItemDragStart","columnPanelItemDragEnd","bodyHeightChanged","columnContainerWidthChanged","displayedColumnsWidthChanged","scrollVisibilityChanged","scrollGapChanged","columnHoverChanged","flashCells","paginationPixelOffsetChanged","displayedRowsChanged","leftPinnedWidthChanged","rightPinnedWidthChanged","rowContainerHeightChanged","headerHeightChanged","columnGroupHeaderHeightChanged","columnHeaderHeightChanged","gridStylesChanged","storeUpdated","filterDestroyed","rowDataUpdateStarted","rowCountReady","advancedFilterEnabledChanged","dataTypesInferred","fieldValueChanged","fieldPickerValueSelected","richSelectListRowSelected","sideBarUpdated","alignedGridScroll","alignedGridColumn","gridOptionsChanged","chartTitleEdit","recalculateRowBounds","stickyTopOffsetChanged","overlayExclusiveChanged"],Gt={enableBrowserTooltips:!0,tooltipTrigger:!0,tooltipMouseTrack:!0,tooltipShowMode:!0,tooltipInteraction:!0,defaultColGroupDef:!0,suppressAutoSize:!0,skipHeaderOnAutoSize:!0,autoSizeStrategy:!0,components:!0,stopEditingWhenCellsLoseFocus:!0,undoRedoCellEditing:!0,undoRedoCellEditingLimit:!0,excelStyles:!0,cacheQuickFilter:!0,advancedFilterModel:!0,customChartThemes:!0,chartThemeOverrides:!0,chartToolPanelsDef:!0,loadingCellRendererSelector:!0,localeText:!0,keepDetailRows:!0,keepDetailRowsCount:!0,detailRowHeight:!0,detailRowAutoHeight:!0,tabIndex:!0,valueCache:!0,valueCacheNeverExpires:!0,enableCellExpressions:!0,suppressTouch:!0,suppressAsyncEvents:!0,suppressBrowserResizeObserver:!0,suppressPropertyNamesCheck:!0,debug:!0,dragAndDropImageComponent:!0,loadingOverlayComponent:!0,suppressLoadingOverlay:!0,noRowsOverlayComponent:!0,paginationPageSizeSelector:!0,paginateChildRows:!0,pivotPanelShow:!0,pivotSuppressAutoColumn:!0,suppressExpandablePivotGroups:!0,aggFuncs:!0,suppressAggFuncInHeader:!0,allowShowChangeAfterFilter:!0,ensureDomOrder:!0,enableRtl:!0,suppressColumnVirtualisation:!0,suppressMaxRenderedRowRestriction:!0,suppressRowVirtualisation:!0,rowDragText:!0,suppressGroupMaintainValueType:!0,groupLockGroupColumns:!0,rowGroupPanelSuppressSort:!0,suppressGroupRowsSticky:!0,rowModelType:!0,cacheOverflowSize:!0,infiniteInitialRowCount:!0,serverSideInitialRowCount:!0,suppressServerSideInfiniteScroll:!0,maxBlocksInCache:!0,maxConcurrentDatasourceRequests:!0,blockLoadDebounceMillis:!0,serverSideOnlyRefreshFilteredGroups:!0,serverSidePivotResultFieldSeparator:!0,viewportRowModelPageSize:!0,viewportRowModelBufferSize:!0,debounceVerticalScrollbar:!0,suppressAnimationFrame:!0,suppressPreventDefaultOnMouseWheel:!0,scrollbarWidth:!0,icons:!0,suppressRowTransform:!0,gridId:!0,enableGroupEdit:!0,initialState:!0,processUnpinnedColumns:!0,createChartContainer:!0,getLocaleText:!0,getRowId:!0,reactiveCustomComponents:!0,columnMenu:!0,suppressSetFilterByDefault:!0},Nt=class{};Nt.STRING_PROPERTIES=["overlayLoadingTemplate","overlayNoRowsTemplate","gridId","quickFilterText","rowModelType","editType","domLayout","clipboardDelimiter","rowGroupPanelShow","multiSortKey","pivotColumnGroupTotals","pivotRowTotals","pivotPanelShow","fillHandleDirection","groupDisplayType","treeDataDisplayType","colResizeDefault","tooltipTrigger","serverSidePivotResultFieldSeparator","columnMenu","tooltipShowMode","grandTotalRow"],Nt.OBJECT_PROPERTIES=["components","rowStyle","context","autoGroupColumnDef","localeText","icons","datasource","dragAndDropImageComponentParams","serverSideDatasource","viewportDatasource","groupRowRendererParams","aggFuncs","fullWidthCellRendererParams","defaultColGroupDef","defaultColDef","defaultCsvExportParams","defaultExcelExportParams","columnTypes","rowClassRules","detailCellRendererParams","loadingCellRendererParams","loadingOverlayComponentParams","noRowsOverlayComponentParams","popupParent","statusBar","sideBar","theme","chartThemeOverrides","customChartThemes","chartToolPanelsDef","dataTypeDefinitions","advancedFilterModel","advancedFilterParent","advancedFilterBuilderParams","initialState","autoSizeStrategy","cellSelection","selectionColumnDef"],Nt.ARRAY_PROPERTIES=["sortingOrder","alignedGrids","rowData","columnDefs","excelStyles","pinnedTopRowData","pinnedBottomRowData","chartThemes","rowClass","paginationPageSizeSelector"],Nt.NUMBER_PROPERTIES=["rowHeight","detailRowHeight","rowBuffer","headerHeight","groupHeaderHeight","groupLockGroupColumns","floatingFiltersHeight","pivotHeaderHeight","pivotGroupHeaderHeight","groupDefaultExpanded","pivotDefaultExpanded","viewportRowModelPageSize","viewportRowModelBufferSize","autoSizePadding","maxBlocksInCache","maxConcurrentDatasourceRequests","tooltipShowDelay","tooltipHideDelay","cacheOverflowSize","paginationPageSize","cacheBlockSize","infiniteInitialRowCount","serverSideInitialRowCount","scrollbarWidth","asyncTransactionWaitMillis","blockLoadDebounceMillis","keepDetailRowsCount","undoRedoCellEditingLimit","cellFlashDelay","cellFadeDelay","cellFlashDuration","cellFadeDuration","tabIndex","pivotMaxGeneratedColumns"],Nt.BOOLEAN_PROPERTIES=["suppressMakeColumnVisibleAfterUnGroup","suppressRowClickSelection","suppressCellFocus","suppressHeaderFocus","suppressHorizontalScroll","groupSelectsChildren","alwaysShowHorizontalScroll","alwaysShowVerticalScroll","debug","enableBrowserTooltips","enableCellExpressions","groupIncludeTotalFooter","groupSuppressBlankHeader","suppressMenuHide","suppressRowDeselection","unSortIcon","suppressMultiSort","alwaysMultiSort","singleClickEdit","suppressLoadingOverlay","suppressNoRowsOverlay","suppressAutoSize","skipHeaderOnAutoSize","suppressColumnMoveAnimation","suppressMoveWhenColumnDragging","suppressMovableColumns","suppressFieldDotNotation","enableRangeSelection","enableRangeHandle","enableFillHandle","suppressClearOnFillReduction","deltaSort","suppressTouch","suppressAsyncEvents","allowContextMenuWithControlKey","suppressContextMenu","enableCellChangeFlash","suppressDragLeaveHidesColumns","suppressRowGroupHidesColumns","suppressMiddleClickScrolls","suppressPreventDefaultOnMouseWheel","suppressCopyRowsToClipboard","copyHeadersToClipboard","copyGroupHeadersToClipboard","pivotMode","suppressAggFuncInHeader","suppressColumnVirtualisation","alwaysAggregateAtRootLevel","suppressFocusAfterRefresh","functionsReadOnly","animateRows","groupSelectsFiltered","groupRemoveSingleChildren","groupRemoveLowestSingleChildren","enableRtl","suppressClickEdit","rowDragEntireRow","rowDragManaged","suppressRowDrag","suppressMoveWhenRowDragging","rowDragMultiRow","enableGroupEdit","embedFullWidthRows","suppressPaginationPanel","groupHideOpenParents","groupAllowUnbalanced","pagination","paginationAutoPageSize","suppressScrollOnNewData","suppressScrollWhenPopupsAreOpen","purgeClosedRowNodes","cacheQuickFilter","includeHiddenColumnsInQuickFilter","ensureDomOrder","accentedSort","suppressChangeDetection","valueCache","valueCacheNeverExpires","aggregateOnlyChangedColumns","suppressAnimationFrame","suppressExcelExport","suppressCsvExport","includeHiddenColumnsInAdvancedFilter","suppressMultiRangeSelection","enterNavigatesVerticallyAfterEdit","enterNavigatesVertically","suppressPropertyNamesCheck","rowMultiSelectWithClick","suppressRowHoverHighlight","suppressRowTransform","suppressClipboardPaste","suppressLastEmptyLineOnPaste","enableCharts","suppressMaintainUnsortedOrder","enableCellTextSelection","suppressBrowserResizeObserver","suppressMaxRenderedRowRestriction","excludeChildrenWhenTreeDataFiltering","tooltipMouseTrack","tooltipInteraction","keepDetailRows","paginateChildRows","preventDefaultOnContextMenu","undoRedoCellEditing","allowDragFromColumnsToolPanel","pivotSuppressAutoColumn","suppressExpandablePivotGroups","debounceVerticalScrollbar","detailRowAutoHeight","serverSideSortAllLevels","serverSideEnableClientSideSort","serverSideOnlyRefreshFilteredGroups","serverSideSortOnServer","serverSideFilterOnServer","suppressAggFilteredOnly","showOpenedGroup","suppressClipboardApi","suppressModelUpdateAfterUpdateTransaction","stopEditingWhenCellsLoseFocus","groupMaintainOrder","columnHoverHighlight","readOnlyEdit","suppressRowVirtualisation","enableCellEditingOnBackspace","resetRowDataOnUpdate","removePivotHeaderRowWhenSingleValueColumn","suppressCopySingleCellRanges","suppressGroupRowsSticky","suppressCutToClipboard","suppressServerSideInfiniteScroll","rowGroupPanelSuppressSort","allowShowChangeAfterFilter","enableAdvancedFilter","masterDetail","treeData","suppressGroupMaintainValueType","reactiveCustomComponents","applyQuickFilterBeforePivotOrAgg","suppressServerSideFullWidthLoadingRow","suppressAdvancedFilterEval","loading","maintainColumnOrder","enableStrictPivotColumnOrder","suppressSetFilterByDefault"],Nt.OTHER_PROPERTIES=["suppressStickyTotalRow","loadThemeGoogleFonts","rowSelection"],Nt.FUNCTION_PROPERTIES=["doesExternalFilterPass","processPivotResultColDef","processPivotResultColGroupDef","getBusinessKeyForNode","isRowSelectable","rowDragText","groupRowRenderer","dragAndDropImageComponent","fullWidthCellRenderer","loadingCellRenderer","loadingOverlayComponent","noRowsOverlayComponent","detailCellRenderer","quickFilterParser","quickFilterMatcher","getLocaleText","isExternalFilterPresent","getRowHeight","getRowClass","getRowStyle","getContextMenuItems","getMainMenuItems","processRowPostCreate","processCellForClipboard","getGroupRowAgg","isFullWidthRow","sendToClipboard","focusGridInnerElement","navigateToNextHeader","tabToNextHeader","navigateToNextCell","tabToNextCell","processCellFromClipboard","getDocument","postProcessPopup","getChildCount","getDataPath","isRowMaster","postSortRows","processHeaderForClipboard","processUnpinnedColumns","processGroupHeaderForClipboard","paginationNumberFormatter","processDataFromClipboard","getServerSideGroupKey","isServerSideGroup","createChartContainer","getChartToolbarItems","fillOperation","isApplyServerSideTransaction","getServerSideGroupLevelParams","isServerSideGroupOpenByDefault","isGroupOpenByDefault","initialGroupOrderComparator","groupIncludeFooter","loadingCellRendererSelector","getRowId","groupAggFiltering","chartMenuItems","groupTotalRow"],Nt.ALL_PROPERTIES=[...Nt.ARRAY_PROPERTIES,...Nt.OBJECT_PROPERTIES,...Nt.STRING_PROPERTIES,...Nt.NUMBER_PROPERTIES,...Nt.FUNCTION_PROPERTIES,...Nt.BOOLEAN_PROPERTIES,...Nt.OTHER_PROPERTIES];var Ht=Nt,Bt=class{static getCallbackForEvent(e){return!e||e.length<2?e:"on"+e[0].toUpperCase()+e.substring(1)}};Bt.VUE_OMITTED_PROPERTY="AG-VUE-OMITTED-PROPERTY",Bt.PUBLIC_EVENTS=kt,Bt.EVENT_CALLBACKS=Ot.map((e=>Bt.getCallbackForEvent(e))),Bt.BOOLEAN_PROPERTIES=Ht.BOOLEAN_PROPERTIES,Bt.ALL_PROPERTIES=Ht.ALL_PROPERTIES,Bt.ALL_PROPERTIES_AND_CALLBACKS=[...Bt.ALL_PROPERTIES,...Bt.EVENT_CALLBACKS],Bt.ALL_PROPERTIES_AND_CALLBACKS_SET=new Set(Bt.ALL_PROPERTIES_AND_CALLBACKS);var Vt=Bt;var Wt=class extends Oe{};function zt(e,t,i){return i&&e.addDestroyFunc((()=>t.destroyBean(i))),i??e}var Ut,Kt,_t,$t,jt,qt,Qt,Yt,Xt,Jt,Zt=class{constructor(e){this.cssClassStates={},this.getGui=e}addCssClass(e){const t=(e||"").split(" ");if(t.length>1)return void t.forEach((e=>this.addCssClass(e)));if(!0!==this.cssClassStates[e]&&e.length){const t=this.getGui();t&&t.classList.add(e),this.cssClassStates[e]=!0}}removeCssClass(e){const t=(e||"").split(" ");if(t.length>1)return void t.forEach((e=>this.removeCssClass(e)));if(!1!==this.cssClassStates[e]&&e.length){const t=this.getGui();t&&t.classList.remove(e),this.cssClassStates[e]=!1}}containsCssClass(e){const t=this.getGui();return!!t&&t.classList.contains(e)}addOrRemoveCssClass(e,t){if(!e)return;if(e.indexOf(" ")>=0){const i=(e||"").split(" ");if(i.length>1)return void i.forEach((e=>this.addOrRemoveCssClass(e,t)))}if(this.cssClassStates[e]!==t&&e.length){const i=this.getGui();i&&i.classList.toggle(e,t),this.cssClassStates[e]=t}}};function ei(e,t,i){null==i||"string"==typeof i&&""==i?ii(e,t):ti(e,t,i)}function ti(e,t,i){e.setAttribute(si(t),i.toString())}function ii(e,t){e.removeAttribute(si(t))}function si(e){return`aria-${e}`}function oi(e,t){t?e.setAttribute("role",t):e.removeAttribute("role")}function ni(e,t){ei(e,"label",t)}function ri(e,t){ei(e,"labelledby",t)}function li(e,t){ei(e,"live",t)}function ai(e,t){ei(e,"hidden",t)}function di(e,t){ti(e,"expanded",t)}function hi(e,t){ti(e,"colindex",t)}function ui(e,t){ei(e,"selected",t)}function ci(e,t){return void 0===t?e("ariaIndeterminate","indeterminate"):!0===t?e("ariaChecked","checked"):e("ariaUnchecked","unchecked")}function gi(){return void 0===Ut&&(Ut=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)),Ut}function pi(){if(void 0===Kt)if(gi()){const e=navigator.userAgent.match(/version\/(\d+)/i);e&&(Kt=null!=e[1]?parseFloat(e[1]):0)}else Kt=0;return Kt}function mi(){if(void 0===_t){const e=window;_t=!!e.chrome&&(!!e.chrome.webstore||!!e.chrome.runtime)||/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}return _t}function vi(){return void 0===$t&&($t=/(firefox)/i.test(navigator.userAgent)),$t}function Ci(){return void 0===jt&&(jt=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)),jt}function fi(){return void 0===qt&&(qt=/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1),qt}function wi(){return!gi()||pi()>=15}function Si(e){if(!e)return null;const t=e.tabIndex,i=e.getAttribute("tabIndex");return-1!==t||null!==i&&(""!==i||vi())?t.toString():null}function yi(){const e=document.body,t=document.createElement("div");t.style.width=t.style.height="100px",t.style.opacity="0",t.style.overflow="scroll",t.style.msOverflowStyle="scrollbar",t.style.position="absolute",e.appendChild(t);let i=t.offsetWidth-t.clientWidth;0===i&&0===t.clientWidth&&(i=null),t.parentNode&&t.parentNode.removeChild(t),null!=i&&(Yt=i,Qt=0===i)}function bi(){return null==Qt&&yi(),Qt}var Ri="[disabled], .ag-disabled:not(.ag-button), .ag-disabled *";function Fi(e){const t=Element.prototype.matches||Element.prototype.msMatchesSelector,i=t.call(e,"input, select, button, textarea"),s=t.call(e,Ri),o=Vi(e);return i&&!s&&o}function Pi(e,t,i={}){const{skipAriaHidden:s}=i;e.classList.toggle("ag-hidden",!t),s||ai(e,!t)}function Ei(e,t){const i="disabled",s=t?e=>e.setAttribute(i,""):e=>e.removeAttribute(i);s(e),qi(e.querySelectorAll("input"),(e=>s(e)))}function Di(e,t,i){let s=0;for(;e;){if(e.classList.contains(t))return!0;if(e=e.parentElement,"number"==typeof i){if(++s>i)break}else if(e===i)break}return!1}function Mi(e){const{height:t,width:i,borderTopWidth:s,borderRightWidth:o,borderBottomWidth:n,borderLeftWidth:r,paddingTop:l,paddingRight:a,paddingBottom:d,paddingLeft:h,marginTop:u,marginRight:c,marginBottom:g,marginLeft:p,boxSizing:m}=window.getComputedStyle(e);return{height:parseFloat(t||"0"),width:parseFloat(i||"0"),borderTopWidth:parseFloat(s||"0"),borderRightWidth:parseFloat(o||"0"),borderBottomWidth:parseFloat(n||"0"),borderLeftWidth:parseFloat(r||"0"),paddingTop:parseFloat(l||"0"),paddingRight:parseFloat(a||"0"),paddingBottom:parseFloat(d||"0"),paddingLeft:parseFloat(h||"0"),marginTop:parseFloat(u||"0"),marginRight:parseFloat(c||"0"),marginBottom:parseFloat(g||"0"),marginLeft:parseFloat(p||"0"),boxSizing:m}}function xi(e){const t=Mi(e);return"border-box"===t.boxSizing?t.height-t.paddingTop-t.paddingBottom:t.height}function Ai(e){const t=Mi(e);return"border-box"===t.boxSizing?t.width-t.paddingLeft-t.paddingRight:t.width}function Ti(e){const{height:t,marginBottom:i,marginTop:s}=Mi(e);return Math.floor(t+i+s)}function Ii(e){const{width:t,marginLeft:i,marginRight:s}=Mi(e);return Math.floor(t+i+s)}function Li(e){const t=e.getBoundingClientRect(),{borderTopWidth:i,borderLeftWidth:s,borderRightWidth:o,borderBottomWidth:n}=Mi(e);return{top:t.top+(i||0),left:t.left+(s||0),right:t.right+(o||0),bottom:t.bottom+(n||0)}}function ki(){if("boolean"==typeof Jt)return Jt;const e=document.createElement("div");return e.style.direction="rtl",e.style.width="1px",e.style.height="1px",e.style.position="fixed",e.style.top="0px",e.style.overflow="hidden",e.dir="rtl",e.innerHTML='
\n \n \n
',document.body.appendChild(e),e.scrollLeft=1,Jt=0===Math.floor(e.scrollLeft),document.body.removeChild(e),Jt}function Oi(e,t){let i=e.scrollLeft;return t&&(i=Math.abs(i),mi()&&!ki()&&(i=e.scrollWidth-e.getBoundingClientRect().width-i)),i}function Gi(e,t,i){i&&(ki()?t*=-1:(gi()||mi())&&(t=e.scrollWidth-e.getBoundingClientRect().width-t)),e.scrollLeft=t}function Ni(e){for(;e&&e.firstChild;)e.removeChild(e.firstChild)}function Hi(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Bi(e){return!!e.offsetParent}function Vi(e){const t=e;if(t.checkVisibility)return t.checkVisibility({checkVisibilityCSS:!0});return!(!Bi(e)||"visible"!==window.getComputedStyle(e).visibility)}function Wi(e){const t=document.createElement("div");return t.innerHTML=(e||"").trim(),t.firstChild}function zi(e,t){"flex"===t?(e.style.removeProperty("width"),e.style.removeProperty("minWidth"),e.style.removeProperty("maxWidth"),e.style.flex="1 1 auto"):Ui(e,t)}function Ui(e,t){t=_i(t),e.style.width=t.toString(),e.style.maxWidth=t.toString(),e.style.minWidth=t.toString()}function Ki(e,t){t=_i(t),e.style.height=t.toString(),e.style.maxHeight=t.toString(),e.style.minHeight=t.toString()}function _i(e){return"number"==typeof e?`${e}px`:e}function $i(e){return e instanceof Node||e instanceof HTMLElement}function ji(e,t,i){null==i||""===i?e.removeAttribute(t):e.setAttribute(t,i.toString())}function qi(e,t){if(null!=e)for(let i=0;i{this.prepareToShowTooltip(t)}),100):this.prepareToShowTooltip(t))}onMouseMove(e){this.lastMouseEvent&&(this.lastMouseEvent=e),this.tooltipMouseTrack&&2===this.state&&this.tooltipComp&&this.positionTooltip()}onMouseDown(){this.setToDoNothing()}onMouseLeave(){this.interactionEnabled?this.lockService():this.setToDoNothing()}onFocusIn(){this.prepareToShowTooltip()}onFocusOut(e){var t;const i=e.relatedTarget,s=this.parentComp.getGui(),o=null==(t=this.tooltipComp)?void 0:t.getGui();this.isInteractingWithTooltip||s.contains(i)||this.interactionEnabled&&(null==o?void 0:o.contains(i))||this.setToDoNothing()}onKeyDown(){this.isInteractingWithTooltip&&(this.isInteractingWithTooltip=!1),this.setToDoNothing()}prepareToShowTooltip(t){if(0!=this.state||e.isLocked)return;let i=0;t&&(i=this.isLastTooltipHiddenRecently()?200:this.getTooltipDelay("show")),this.lastMouseEvent=t||null,this.showTooltipTimeoutId=window.setTimeout(this.showTooltip.bind(this),i),this.state=1}isLastTooltipHiddenRecently(){return(new Date).getTime()-e.lastTooltipHideTime<1e3}setToDoNothing(e){e||2!==this.state||this.hideTooltip(),this.onBodyScrollEventCallback&&(this.onBodyScrollEventCallback(),this.onBodyScrollEventCallback=void 0),this.onColumnMovedEventCallback&&(this.onColumnMovedEventCallback(),this.onColumnMovedEventCallback=void 0),this.onDocumentKeyDownCallback&&(this.onDocumentKeyDownCallback(),this.onDocumentKeyDownCallback=void 0),this.clearTimeouts(),this.state=0,this.lastMouseEvent=null}showTooltip(){const e={...this.parentComp.getTooltipParams()};if(!P(e.value)||this.shouldDisplayTooltip&&!this.shouldDisplayTooltip())return void this.setToDoNothing();this.state=2,this.tooltipInstanceCount++;const t=this.newTooltipComponentCallback.bind(this,this.tooltipInstanceCount);this.userComponentFactory.getTooltipCompDetails(e).newAgStackInstance().then(t)}hideTooltip(t){!t&&this.isInteractingWithTooltip||(this.tooltipComp&&(this.destroyTooltipComp(),e.lastTooltipHideTime=(new Date).getTime()),this.eventService.dispatchEvent({type:"tooltipHide",parentGui:this.parentComp.getGui()}),t&&(this.isInteractingWithTooltip=!1),this.setToDoNothing(!0))}newTooltipComponentCallback(e,t){if(2!==this.state||this.tooltipInstanceCount!==e)return void this.destroyBean(t);const i=t.getGui();this.tooltipComp=t,i.classList.contains("ag-tooltip")||i.classList.add("ag-tooltip-custom"),0===this.tooltipTrigger&&i.classList.add("ag-tooltip-animate"),this.interactionEnabled&&i.classList.add("ag-tooltip-interactive");const s=this.localeService.getLocaleTextFunc(),o=this.popupService.addPopup({eChild:i,ariaLabel:s("ariaLabelTooltip","Tooltip")});if(o&&(this.tooltipPopupDestroyFunc=o.hideFunc),this.positionTooltip(),1===this.tooltipTrigger){const e=()=>this.setToDoNothing();[this.onBodyScrollEventCallback,this.onColumnMovedEventCallback]=this.addManagedEventListeners({bodyScroll:e,columnMoved:e})}this.interactionEnabled&&([this.tooltipMouseEnterListener,this.tooltipMouseLeaveListener]=this.addManagedElementListeners(i,{mouseenter:this.onTooltipMouseEnter.bind(this),mouseleave:this.onTooltipMouseLeave.bind(this)}),[this.onDocumentKeyDownCallback]=this.addManagedElementListeners(j(this.gos),{keydown:e=>{i.contains(null==e?void 0:e.target)||this.onKeyDown()}}),1===this.tooltipTrigger&&([this.tooltipFocusInListener,this.tooltipFocusOutListener]=this.addManagedElementListeners(i,{focusin:this.onTooltipFocusIn.bind(this),focusout:this.onTooltipFocusOut.bind(this)}))),this.eventService.dispatchEvent({type:"tooltipShow",tooltipGui:i,parentGui:this.parentComp.getGui()}),this.startHideTimeout()}onTooltipMouseEnter(){this.isInteractingWithTooltip=!0,this.unlockService()}onTooltipMouseLeave(){this.isTooltipFocused()||(this.isInteractingWithTooltip=!1,this.lockService())}onTooltipFocusIn(){this.isInteractingWithTooltip=!0}isTooltipFocused(){var e;const t=null==(e=this.tooltipComp)?void 0:e.getGui(),i=Y(this.gos);return!!t&&t.contains(i)}onTooltipFocusOut(e){const t=this.parentComp.getGui();this.isTooltipFocused()||(this.isInteractingWithTooltip=!1,t.contains(e.relatedTarget)?this.startHideTimeout():this.hideTooltip())}positionTooltip(){const e={type:"tooltip",ePopup:this.tooltipComp.getGui(),nudgeY:18,skipObserver:this.tooltipMouseTrack};this.lastMouseEvent?this.popupService.positionPopupUnderMouseEvent({...e,mouseEvent:this.lastMouseEvent}):this.popupService.positionPopupByComponent({...e,eventSource:this.parentComp.getGui(),position:"under",keepWithinBounds:!0,nudgeY:5})}destroyTooltipComp(){this.tooltipComp.getGui().classList.add("ag-tooltip-hiding");const e=this.tooltipPopupDestroyFunc,t=this.tooltipComp,i=0===this.tooltipTrigger?1e3:0;window.setTimeout((()=>{e(),this.destroyBean(t)}),i),this.clearTooltipListeners(),this.tooltipPopupDestroyFunc=void 0,this.tooltipComp=void 0}clearTooltipListeners(){[this.tooltipMouseEnterListener,this.tooltipMouseLeaveListener,this.tooltipFocusInListener,this.tooltipFocusOutListener].forEach((e=>{e&&e()})),this.tooltipMouseEnterListener=this.tooltipMouseLeaveListener=this.tooltipFocusInListener=this.tooltipFocusOutListener=null}lockService(){e.isLocked=!0,this.interactiveTooltipTimeoutId=window.setTimeout((()=>{this.unlockService(),this.setToDoNothing()}),100)}unlockService(){e.isLocked=!1,this.clearInteractiveTimeout()}startHideTimeout(){this.clearHideTimeout(),this.hideTooltipTimeoutId=window.setTimeout(this.hideTooltip.bind(this),this.getTooltipDelay("hide"))}clearShowTimeout(){this.showTooltipTimeoutId&&(window.clearTimeout(this.showTooltipTimeoutId),this.showTooltipTimeoutId=void 0)}clearHideTimeout(){this.hideTooltipTimeoutId&&(window.clearTimeout(this.hideTooltipTimeoutId),this.hideTooltipTimeoutId=void 0)}clearInteractiveTimeout(){this.interactiveTooltipTimeoutId&&(window.clearTimeout(this.interactiveTooltipTimeoutId),this.interactiveTooltipTimeoutId=void 0)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout(),this.clearInteractiveTimeout()}};Yi.isLocked=!1;var Xi=Yi,Ji=class extends Oe{constructor(e,t){super(),this.ctrl=e,t&&(this.beans=t)}wireBeans(e){this.beans=e}postConstruct(){this.refreshToolTip()}setBrowserTooltip(e){const t="title",i=this.ctrl.getGui();i&&(null!=e&&""!=e?i.setAttribute(t,e):i.removeAttribute(t))}updateTooltipText(){this.tooltip=this.ctrl.getTooltipValue()}createTooltipFeatureIfNeeded(){var e,t,i,s;if(null!=this.tooltipManager)return;const o={getTooltipParams:()=>this.getTooltipParams(),getGui:()=>this.ctrl.getGui()};this.tooltipManager=this.createBean(new Xi(o,null==(t=(e=this.ctrl).getTooltipShowDelayOverride)?void 0:t.call(e),null==(s=(i=this.ctrl).getTooltipHideDelayOverride)?void 0:s.call(i),this.ctrl.shouldDisplayTooltip),this.beans.context)}refreshToolTip(){this.browserTooltips=this.beans.gos.get("enableBrowserTooltips"),this.updateTooltipText(),this.browserTooltips?(this.setBrowserTooltip(this.tooltip),this.tooltipManager&&(this.tooltipManager=this.destroyBean(this.tooltipManager,this.beans.context))):(this.setBrowserTooltip(null),this.createTooltipFeatureIfNeeded())}getTooltipParams(){var e,t,i,s,o;const n=this.ctrl,r=null==(e=n.getColumn)?void 0:e.call(n),l=null==(t=n.getColDef)?void 0:t.call(n),a=null==(i=n.getRowNode)?void 0:i.call(n);return{location:n.getLocation(),colDef:l,column:r,rowIndex:null==(s=n.getRowIndex)?void 0:s.call(n),node:a,data:null==a?void 0:a.data,value:this.getTooltipText(),valueFormatted:null==(o=n.getValueFormatted)?void 0:o.call(n),hideTooltipCallback:()=>{var e;return null==(e=this.tooltipManager)?void 0:e.hideTooltip(!0)}}}getTooltipText(){return this.tooltip}destroy(){this.tooltipManager&&(this.tooltipManager=this.destroyBean(this.tooltipManager,this.beans.context)),super.destroy()}},Zi=new Qi,es=null,ts=class e extends Oe{constructor(e,t){super(),this.suppressDataRefValidation=!1,this.displayed=!0,this.visible=!0,this.compId=Zi.next(),this.cssClassManager=new Zt((()=>this.eGui)),this.componentSelectors=new Map((t??[]).map((e=>[e.selector,e]))),e&&this.setTemplate(e)}preWireBeans(e){super.preWireBeans(e)}preConstruct(){this.usingBrowserTooltips=this.gos.get("enableBrowserTooltips"),this.wireTemplate(this.getGui())}wireTemplate(e,t){e&&this.gos&&(this.applyElementsToComponent(e),this.createChildComponentsFromTags(e,t))}getCompId(){return this.compId}getTooltipParams(){return{value:this.tooltipText,location:"UNKNOWN"}}setTooltip(e){const{newTooltipText:t,showDelayOverride:i,hideDelayOverride:s,location:o,shouldDisplayTooltip:n}=e||{};this.tooltipFeature&&(this.tooltipFeature=this.destroyBean(this.tooltipFeature)),this.tooltipText!==t&&(this.tooltipText=t);const r=()=>this.tooltipText;null!=t&&(this.tooltipFeature=this.createBean(new Ji({getTooltipValue:r,getGui:()=>this.getGui(),getLocation:()=>o??"UNKNOWN",getColDef:null==e?void 0:e.getColDef,getColumn:null==e?void 0:e.getColumn,getTooltipShowDelayOverride:null!=i?()=>i:void 0,getTooltipHideDelayOverride:null!=s?()=>s:void 0,shouldDisplayTooltip:n})))}getDataRefAttribute(e){return e.getAttribute?e.getAttribute("data-ref"):null}applyElementsToComponent(e,t,i,s=null){if(void 0===t&&(t=this.getDataRefAttribute(e)),t){const o=this[t];if(o===es)this[t]=s??e;else{const e=i&&i[t];this.suppressDataRefValidation||e||m(`Issue with data-ref: ${t} on ${this.constructor.name} with ${o}`)}}}createChildComponentsFromTags(e,t){(function(e){if(null==e)return[];const t=[];return qi(e,(e=>t.push(e))),t})(e.childNodes).forEach((i=>{if(!(i instanceof HTMLElement))return;const s=this.createComponentFromElement(i,(e=>{e.getGui()&&this.copyAttributesFromNode(i,e.getGui())}),t);if(s){if(s.addItems&&i.children.length){this.createChildComponentsFromTags(i,t);const e=Array.prototype.slice.call(i.children);s.addItems(e)}this.swapComponentForNode(s,e,i)}else i.childNodes&&this.createChildComponentsFromTags(i,t)}))}createComponentFromElement(t,i,s){const o=t.nodeName,n=this.getDataRefAttribute(t),r=0===o.indexOf("AG-"),l=r?this.componentSelectors.get(o):null;let a=null;if(l){e.elementGettingCreated=t;const o=s&&n?s[n]:void 0;a=new l.component(o),a.setParentComponent(this),this.createBean(a,null,i)}else r&&m(`Missing selector: ${o}`);return this.applyElementsToComponent(t,n,s,a),a}copyAttributesFromNode(e,t){!function(e,t){if(e)for(let i=0;it.setAttribute(e,i)))}swapComponentForNode(e,t,i){const s=e.getGui();t.replaceChild(s,i),t.insertBefore(document.createComment(i.nodeName),s),this.addDestroyFunc(this.destroyBean.bind(this,e))}activateTabIndex(e){const t=this.gos.get("tabIndex");e||(e=[]),e.length||e.push(this.getGui()),e.forEach((e=>e.setAttribute("tabindex",t.toString())))}setTemplate(e,t,i){const s=Wi(e);this.setTemplateFromElement(s,t,i)}setTemplateFromElement(e,t,i,s=!1){if(this.eGui=e,this.suppressDataRefValidation=s,t)for(let o=0;othis.eGui.removeEventListener(e,t)))}addCssClass(e){this.cssClassManager.addCssClass(e)}removeCssClass(e){this.cssClassManager.removeCssClass(e)}containsCssClass(e){return this.cssClassManager.containsCssClass(e)}addOrRemoveCssClass(e,t){this.cssClassManager.addOrRemoveCssClass(e,t)}},is={columnGroupOpened:"expanded",columnGroupClosed:"contracted",columnSelectClosed:"tree-closed",columnSelectOpen:"tree-open",columnSelectIndeterminate:"tree-indeterminate",columnMovePin:"pin",columnMoveHide:"eye-slash",columnMoveMove:"arrows",columnMoveLeft:"left",columnMoveRight:"right",columnMoveGroup:"group",columnMoveValue:"aggregation",columnMovePivot:"pivot",dropNotAllowed:"not-allowed",groupContracted:"tree-closed",groupExpanded:"tree-open",setFilterGroupClosed:"tree-closed",setFilterGroupOpen:"tree-open",setFilterGroupIndeterminate:"tree-indeterminate",chart:"chart",close:"cross",cancel:"cancel",check:"tick",first:"first",previous:"previous",next:"next",last:"last",linked:"linked",unlinked:"unlinked",colorPicker:"color-picker",groupLoading:"loading",menu:"menu",menuAlt:"menu-alt",filter:"filter",columns:"columns",maximize:"maximize",minimize:"minimize",menuPin:"pin",menuValue:"aggregation",menuAddRowGroup:"group",menuRemoveRowGroup:"group",clipboardCopy:"copy",clipboardCut:"cut",clipboardPaste:"paste",pivotPanel:"pivot",rowGroupPanel:"group",valuePanel:"aggregation",columnDrag:"grip",rowDrag:"grip",save:"save",csvExport:"csv",excelExport:"excel",smallDown:"small-down",smallLeft:"small-left",smallRight:"small-right",smallUp:"small-up",sortAscending:"asc",sortDescending:"desc",sortUnSort:"none",advancedFilterBuilder:"group",advancedFilterBuilderDrag:"grip",advancedFilterBuilderInvalid:"not-allowed",advancedFilterBuilderMoveUp:"up",advancedFilterBuilderMoveDown:"down",advancedFilterBuilderAdd:"plus",advancedFilterBuilderRemove:"minus",chartsMenuEdit:"chart",chartsMenuAdvancedSettings:"settings",chartsMenuAdd:"plus",checkboxChecked:"checkbox-checked",checkboxIndeterminate:"checkbox-indeterminate",checkboxUnchecked:"checkbox-unchecked",radioButtonOn:"radio-button-on",radioButtonOff:"radio-button-off"},ss=(()=>{const e=new Set(Object.values(is));return e.add("eye"),e})();function os(e,t,i,s){let o=null;const n=i&&i.getColDef().icons;if(n&&(o=n[e]),t&&!o){const i=t.get("icons");i&&(o=i[e])}if(!o){const t=document.createElement("span");let i=is[e]??(ss.has(e)?e:void 0);return i||(m(`Did not find icon ${e}`),i=""),t.setAttribute("class",`ag-icon ag-icon-${i}`),t.setAttribute("unselectable","on"),oi(t,"presentation"),t}{let e;if("function"==typeof o)e=o();else{if("string"!=typeof o)throw new Error("icon from grid options needs to be a string or a function");e=o}if("string"==typeof e)return Wi(e);if($i(e))return e;m("iconRenderer should return back a string or a dom object")}}var ns=class extends ts{constructor(){super(...arguments),this.dragSource=null,this.eIcon=es,this.eLabel=es}postConstruct(){const e=e=>function(e,t,i){const s=os(e,t,i);if(s){const{className:e}=s;if("string"==typeof e&&e.indexOf("ag-icon")>-1||"object"==typeof e&&e["ag-icon"])return s}const o=document.createElement("span");return o.appendChild(s),o}(e,this.gos,null);this.dropIconMap={pinned:e("columnMovePin"),hide:e("columnMoveHide"),move:e("columnMoveMove"),left:e("columnMoveLeft"),right:e("columnMoveRight"),group:e("columnMoveGroup"),aggregate:e("columnMoveValue"),pivot:e("columnMovePivot"),notAllowed:e("dropNotAllowed")}}init(e){this.dragSource=e.dragSource,this.setTemplate('
\n \n
\n
')}destroy(){this.dragSource=null,super.destroy()}setIcon(e,t=!1){var i,s;Ni(this.eIcon);let o=null;e||(e=(null==(i=this.dragSource)?void 0:i.getDefaultIconName)?null==(s=this.dragSource)?void 0:s.getDefaultIconName():"notAllowed"),o=this.dropIconMap[e],this.eIcon.classList.toggle("ag-shake-left-to-right",t),o===this.dropIconMap.hide&&this.gos.get("suppressDragLeaveHidesColumns")||o&&this.eIcon.appendChild(o)}setLabel(e){this.eLabel.textContent=Rt(e)}};function rs(e,t,i){if(0===i)return!1;const s=Math.abs(e.clientX-t.clientX),o=Math.abs(e.clientY-t.clientY);return Math.max(s,o)<=i}var ls=class{constructor(e,t=!1){this.DOUBLE_TAP_MILLIS=500,this.destroyFuncs=[],this.touching=!1,this.localEventService=new h,this.eElement=e,this.preventMouseClick=t;const i=this.onTouchStart.bind(this),s=this.onTouchMove.bind(this),o=this.onTouchEnd.bind(this);this.eElement.addEventListener("touchstart",i,{passive:!0}),this.eElement.addEventListener("touchmove",s,{passive:!0}),this.eElement.addEventListener("touchend",o,{passive:!1}),this.destroyFuncs.push((()=>{this.eElement.removeEventListener("touchstart",i,{passive:!0}),this.eElement.removeEventListener("touchmove",s,{passive:!0}),this.eElement.removeEventListener("touchend",o,{passive:!1})}))}getActiveTouch(e){for(let t=0;t{const i=this.touchStart===t;if(this.touching&&i&&!this.moved){this.moved=!0;const t={type:"longTap",touchStart:this.touchStart,touchEvent:e};this.localEventService.dispatchEvent(t)}}),500)}onTouchMove(e){if(!this.touching)return;const t=this.getActiveTouch(e.touches);if(!t)return;!rs(t,this.touchStart,4)&&(this.moved=!0)}onTouchEnd(e){if(this.touching){if(!this.moved){const e={type:"tap",touchStart:this.touchStart};this.localEventService.dispatchEvent(e),this.checkForDoubleTap()}this.preventMouseClick&&e.cancelable&&e.preventDefault(),this.touching=!1}}checkForDoubleTap(){const e=(new Date).getTime();if(this.lastTapTime&&this.lastTapTime>0){if(e-this.lastTapTime>this.DOUBLE_TAP_MILLIS){const e={type:"doubleTap",touchStart:this.touchStart};this.localEventService.dispatchEvent(e),this.lastTapTime=null}else this.lastTapTime=e}else this.lastTapTime=e}destroy(){this.destroyFuncs.forEach((e=>e()))}};function as(e,t){return``}var ds=`\n ${as("Order","order")}\n ${as("Asc","ascending-icon")}\n ${as("Desc","descending-icon")}\n ${as("Mixed","mixed-icon")}\n ${as("None","none-icon")}\n `,hs=class extends ts{constructor(e){super(),this.eSortOrder=es,this.eSortAsc=es,this.eSortDesc=es,this.eSortMixed=es,this.eSortNone=es,e||this.setTemplate(ds)}wireBeans(e){this.sortController=e.sortController}attachCustomElements(e,t,i,s,o){this.eSortOrder=e,this.eSortAsc=t,this.eSortDesc=i,this.eSortMixed=s,this.eSortNone=o}setupSort(e,t=!1){if(this.column=e,this.suppressOrder=t,this.setupMultiSortIndicator(),!this.column.isSortable()&&!this.column.getColDef().showRowGroup)return;this.addInIcon("sortAscending",this.eSortAsc,e),this.addInIcon("sortDescending",this.eSortDesc,e),this.addInIcon("sortUnSort",this.eSortNone,e);const i=this.updateIcons.bind(this),s=this.onSortChanged.bind(this);this.addManagedPropertyListener("unSortIcon",i),this.addManagedEventListeners({newColumnsLoaded:i,sortChanged:s,columnRowGroupChanged:s}),this.onSortChanged()}addInIcon(e,t,i){if(null==t)return;const s=os(e,this.gos,i);s&&t.appendChild(s)}onSortChanged(){this.updateIcons(),this.suppressOrder||this.updateSortOrder()}updateIcons(){const e=this.sortController.getDisplaySortForColumn(this.column);if(this.eSortAsc){const t="asc"===e;Pi(this.eSortAsc,t,{skipAriaHidden:!0})}if(this.eSortDesc){const t="desc"===e;Pi(this.eSortDesc,t,{skipAriaHidden:!0})}if(this.eSortNone){const t=!this.column.getColDef().unSortIcon&&!this.gos.get("unSortIcon"),i=null==e;Pi(this.eSortNone,!t&&i,{skipAriaHidden:!0})}}setupMultiSortIndicator(){this.addInIcon("sortUnSort",this.eSortMixed,this.column);const e=this.column.getColDef().showRowGroup;ee(this.gos)&&e&&(this.addManagedEventListeners({sortChanged:this.updateMultiSortIndicator.bind(this),columnRowGroupChanged:this.updateMultiSortIndicator.bind(this)}),this.updateMultiSortIndicator())}updateMultiSortIndicator(){if(this.eSortMixed){const e="mixed"===this.sortController.getDisplaySortForColumn(this.column);Pi(this.eSortMixed,e,{skipAriaHidden:!0})}}updateSortOrder(){if(!this.eSortOrder)return;const e=this.sortController.getColumnsWithSortingOrdered(),t=this.sortController.getDisplaySortIndexForColumn(this.column)??-1,i=e.some((e=>this.sortController.getDisplaySortIndexForColumn(e)??!1)),s=t>=0&&i;Pi(this.eSortOrder,s,{skipAriaHidden:!0}),t>=0?this.eSortOrder.textContent=(t+1).toString():Ni(this.eSortOrder)}},us={selector:"AG-SORT-INDICATOR",component:hs},cs=class extends ts{constructor(){super(...arguments),this.eFilter=es,this.eFilterButton=es,this.eSortIndicator=es,this.eMenu=es,this.eLabel=es,this.eText=es,this.eSortOrder=es,this.eSortAsc=es,this.eSortDesc=es,this.eSortMixed=es,this.eSortNone=es,this.lastMovingChanged=0}wireBeans(e){this.sortController=e.sortController,this.menuService=e.menuService,this.funcColsService=e.funcColsService}destroy(){super.destroy()}refresh(e){const t=this.params;return this.params=e,this.workOutTemplate()==this.currentTemplate&&this.workOutShowMenu()==this.currentShowMenu&&this.workOutSort()==this.currentSort&&this.shouldSuppressMenuHide()==this.currentSuppressMenuHide&&t.enableFilterButton==e.enableFilterButton&&t.enableFilterIcon==e.enableFilterIcon&&(this.setDisplayName(e),!0)}workOutTemplate(){let e=this.params.template??'';return e=e&&e.trim?e.trim():e,e}init(e){this.params=e,this.currentTemplate=this.workOutTemplate(),this.setTemplate(this.currentTemplate,[us]),this.setupTap(),this.setMenu(),this.setupSort(),this.setupFilterIcon(),this.setupFilterButton(),this.setDisplayName(e)}setDisplayName(e){if(this.currentDisplayName!=e.displayName){this.currentDisplayName=e.displayName;const t=Rt(this.currentDisplayName,!0);this.eText&&(this.eText.textContent=t)}}addInIcon(e,t,i){if(null==t)return;const s=os(e,this.gos,i);s&&t.appendChild(s)}setupTap(){const{gos:e}=this;if(e.get("suppressTouch"))return;const t=new ls(this.getGui(),!0),i=this.shouldSuppressMenuHide(),s=i&&P(this.eMenu),o=s?new ls(this.eMenu,!0):t;if(this.params.enableMenu){const e=s?"tap":"longTap",t=e=>this.params.showColumnMenuAfterMouseClick(e.touchStart);this.addManagedListeners(o,{[e]:t})}if(this.params.enableSorting){const e=e=>{var t,s;const o=e.touchStart.target;i&&((null==(t=this.eMenu)?void 0:t.contains(o))||(null==(s=this.eFilterButton)?void 0:s.contains(o)))||this.sortController.progressSort(this.params.column,!1,"uiColumnSorted")};this.addManagedListeners(t,{tap:e})}if(this.params.enableFilterButton){const e=new ls(this.eFilterButton,!0);this.addManagedListeners(e,{tap:()=>this.params.showFilter(this.eFilterButton)}),this.addDestroyFunc((()=>e.destroy()))}this.addDestroyFunc((()=>t.destroy())),s&&this.addDestroyFunc((()=>o.destroy()))}workOutShowMenu(){return this.params.enableMenu&&this.menuService.isHeaderMenuButtonEnabled()}shouldSuppressMenuHide(){return this.menuService.isHeaderMenuButtonAlwaysShowEnabled()}setMenu(){if(!this.eMenu)return;if(this.currentShowMenu=this.workOutShowMenu(),!this.currentShowMenu)return Hi(this.eMenu),void(this.eMenu=void 0);const e=this.menuService.isLegacyMenuEnabled();this.addInIcon(e?"menu":"menuAlt",this.eMenu,this.params.column),this.eMenu.classList.toggle("ag-header-menu-icon",!e),this.currentSuppressMenuHide=this.shouldSuppressMenuHide(),this.addManagedElementListeners(this.eMenu,{click:()=>this.params.showColumnMenu(this.eMenu)}),this.eMenu.classList.toggle("ag-header-menu-always-show",this.currentSuppressMenuHide)}onMenuKeyboardShortcut(e){const t=this.params.column,i=this.menuService.isLegacyMenuEnabled();if(e&&!i){if(this.menuService.isFilterMenuInHeaderEnabled(t))return this.params.showFilter(this.eFilterButton??this.eMenu??this.getGui()),!0}else if(this.params.enableMenu)return this.params.showColumnMenu(this.eMenu??this.eFilterButton??this.getGui()),!0;return!1}workOutSort(){return this.params.enableSorting}setupSort(){if(this.currentSort=this.params.enableSorting,this.eSortIndicator||(this.eSortIndicator=this.createBean(new hs(!0)),this.eSortIndicator.attachCustomElements(this.eSortOrder,this.eSortAsc,this.eSortDesc,this.eSortMixed,this.eSortNone)),this.eSortIndicator.setupSort(this.params.column),!this.currentSort)return;this.addManagedListeners(this.params.column,{movingChanged:()=>{this.lastMovingChanged=(new Date).getTime()}}),this.eLabel&&this.addManagedElementListeners(this.eLabel,{click:e=>{const t=this.params.column.isMoving(),i=(new Date).getTime()-this.lastMovingChanged<50;if(!(t||i)){const t="ctrl"===this.gos.get("multiSortKey")?e.ctrlKey||e.metaKey:e.shiftKey;this.params.progressSort(t)}}});const e=()=>{const e=this.params.column.getSort();if(this.addOrRemoveCssClass("ag-header-cell-sorted-asc","asc"===e),this.addOrRemoveCssClass("ag-header-cell-sorted-desc","desc"===e),this.addOrRemoveCssClass("ag-header-cell-sorted-none",!e),this.params.column.getColDef().showRowGroup){const e=this.funcColsService.getSourceColumnsForGroupColumn(this.params.column),t=!(null==e?void 0:e.every((e=>this.params.column.getSort()==e.getSort())));this.addOrRemoveCssClass("ag-header-cell-sorted-mixed",t)}};this.addManagedEventListeners({sortChanged:e,columnRowGroupChanged:e})}setupFilterIcon(){this.eFilter&&this.configureFilter(this.params.enableFilterIcon,this.eFilter,this.onFilterChangedIcon.bind(this))}setupFilterButton(){if(!this.eFilterButton)return;this.configureFilter(this.params.enableFilterButton,this.eFilterButton,this.onFilterChangedButton.bind(this))?this.addManagedElementListeners(this.eFilterButton,{click:()=>this.params.showFilter(this.eFilterButton)}):this.eFilterButton=void 0}configureFilter(e,t,i){if(!e)return Hi(t),!1;const s=this.params.column;return this.addInIcon("filter",t,s),this.addManagedListeners(s,{filterChanged:i}),i(),!0}onFilterChangedIcon(){const e=this.params.column.isFilterActive();Pi(this.eFilter,e,{skipAriaHidden:!0})}onFilterChangedButton(){const e=this.params.column.isFilterActive();this.eFilterButton.classList.toggle("ag-filter-active",e)}getAnchorElementForMenu(e){return e?this.eFilterButton??this.eMenu??this.getGui():this.eMenu??this.eFilterButton??this.getGui()}},gs=class extends ts{constructor(){super(''),this.agOpened=es,this.agClosed=es,this.agLabel=es}wireBeans(e){this.columnModel=e.columnModel}destroy(){super.destroy()}init(e){this.params=e,this.checkWarnings(),this.setupLabel(),this.addGroupExpandIcon(),this.setupExpandIcons()}checkWarnings(){this.params.template&&m("A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)")}setupExpandIcons(){this.addInIcon("columnGroupOpened",this.agOpened),this.addInIcon("columnGroupClosed",this.agClosed);const e=e=>{if(Te(e))return;const t=!this.params.columnGroup.isExpanded();this.columnModel.setColumnGroupOpened(this.params.columnGroup.getProvidedColumnGroup(),t,"uiColumnExpanded")};this.addTouchAndClickListeners(this.agClosed,e),this.addTouchAndClickListeners(this.agOpened,e);const t=e=>{Ae(e)};this.addManagedElementListeners(this.agClosed,{dblclick:t}),this.addManagedElementListeners(this.agOpened,{dblclick:t}),this.addManagedElementListeners(this.getGui(),{dblclick:e}),this.updateIconVisibility();const i=this.params.columnGroup.getProvidedColumnGroup(),s=this.updateIconVisibility.bind(this);this.addManagedListeners(i,{expandedChanged:s,expandableChanged:s})}addTouchAndClickListeners(e,t){const i=new ls(e,!0);this.addManagedListeners(i,{tap:t}),this.addDestroyFunc((()=>i.destroy())),this.addManagedElementListeners(e,{click:t})}updateIconVisibility(){if(this.params.columnGroup.isExpandable()){const e=this.params.columnGroup.isExpanded();Pi(this.agOpened,e),Pi(this.agClosed,!e)}else Pi(this.agOpened,!1),Pi(this.agClosed,!1)}addInIcon(e,t){const i=os(e,this.gos,null);i&&t.appendChild(i)}addGroupExpandIcon(){if(!this.params.columnGroup.isExpandable())return Pi(this.agOpened,!1),void Pi(this.agClosed,!1)}setupLabel(){var e;const{displayName:t,columnGroup:i}=this.params;if(P(t)){const e=Rt(t,!0);this.agLabel.textContent=e}this.addOrRemoveCssClass("ag-sticky-label",!(null==(e=i.getColGroupDef())?void 0:e.suppressStickyLabel))}},ps=class extends ts{constructor(){super(),this.refreshCount=0;const e=document.createElement("span"),t=document.createElement("span");t.setAttribute("class","ag-value-change-delta");const i=document.createElement("span");i.setAttribute("class","ag-value-change-value"),e.appendChild(t),e.appendChild(i),this.setTemplateFromElement(e)}wireBeans(e){this.filterManager=e.filterManager}init(e){this.eValue=this.queryForHtmlElement(".ag-value-change-value"),this.eDelta=this.queryForHtmlElement(".ag-value-change-delta"),this.refresh(e,!0)}showDelta(e,t){const i=Math.abs(t),s=e.formatValue(i),o=P(s)?s:i,n=t>=0;this.eDelta.textContent=n?"↑"+o:"↓"+o,this.eDelta.classList.toggle("ag-value-change-delta-up",n),this.eDelta.classList.toggle("ag-value-change-delta-down",!n)}setTimerToRemoveDelta(){this.refreshCount++;const e=this.refreshCount;this.getFrameworkOverrides().wrapIncoming((()=>{window.setTimeout((()=>{e===this.refreshCount&&this.hideDeltaValue()}),2e3)}))}hideDeltaValue(){this.eValue.classList.remove("ag-value-change-value-highlight"),Ni(this.eDelta)}refresh(e,t=!1){var i;const s=e.value;if(s===this.lastValue)return!1;if(P(e.valueFormatted)?this.eValue.textContent=e.valueFormatted:P(e.value)?this.eValue.textContent=s:Ni(this.eValue),null==(i=this.filterManager)?void 0:i.isSuppressFlashingCellsBecauseFiltering())return!1;if("number"==typeof s&&"number"==typeof this.lastValue){const t=s-this.lastValue;this.showDelta(e,t)}return this.lastValue&&this.eValue.classList.add("ag-value-change-value-highlight"),t||this.setTimerToRemoveDelta(),this.lastValue=s,!0}},ms=class extends ts{constructor(){super(),this.refreshCount=0;const e=document.createElement("span"),t=document.createElement("span");t.setAttribute("class","ag-value-slide-current"),e.appendChild(t),this.setTemplateFromElement(e),this.eCurrent=this.queryForHtmlElement(".ag-value-slide-current")}wireBeans(e){this.filterManager=e.filterManager}init(e){this.refresh(e,!0)}addSlideAnimation(){this.refreshCount++;const e=this.refreshCount;this.ePrevious&&this.getGui().removeChild(this.ePrevious);const t=document.createElement("span");t.setAttribute("class","ag-value-slide-previous ag-value-slide-out"),this.ePrevious=t,this.ePrevious.textContent=this.eCurrent.textContent,this.getGui().insertBefore(this.ePrevious,this.eCurrent),this.getFrameworkOverrides().wrapIncoming((()=>{window.setTimeout((()=>{e===this.refreshCount&&this.ePrevious.classList.add("ag-value-slide-out-end")}),50),window.setTimeout((()=>{e===this.refreshCount&&(this.getGui().removeChild(this.ePrevious),this.ePrevious=null)}),3e3)}))}refresh(e,t=!1){var i;let s=e.value;return E(s)&&(s=""),s!==this.lastValue&&(!(null==(i=this.filterManager)?void 0:i.isSuppressFlashingCellsBecauseFiltering())&&(t||this.addSlideAnimation(),this.lastValue=s,P(e.valueFormatted)?this.eCurrent.textContent=e.valueFormatted:P(e.value)?this.eCurrent.textContent=s:Ni(this.eCurrent),!0))}},vs=class{};vs.BACKSPACE="Backspace",vs.TAB="Tab",vs.ENTER="Enter",vs.ESCAPE="Escape",vs.SPACE=" ",vs.LEFT="ArrowLeft",vs.UP="ArrowUp",vs.RIGHT="ArrowRight",vs.DOWN="ArrowDown",vs.DELETE="Delete",vs.F2="F2",vs.PAGE_UP="PageUp",vs.PAGE_DOWN="PageDown",vs.PAGE_HOME="Home",vs.PAGE_END="End",vs.A="KeyA",vs.C="KeyC",vs.D="KeyD",vs.V="KeyV",vs.X="KeyX",vs.Y="KeyY",vs.Z="KeyZ";var Cs=class extends ts{constructor(e,t,i){super(t,i),this.labelSeparator="",this.labelAlignment="left",this.disabled=!1,this.label="",this.config=e||{}}postConstruct(){this.addCssClass("ag-labeled"),this.eLabel.classList.add("ag-label");const{labelSeparator:e,label:t,labelWidth:i,labelAlignment:s,disabled:o}=this.config;null!=o&&this.setDisabled(o),null!=e&&this.setLabelSeparator(e),null!=t&&this.setLabel(t),null!=i&&this.setLabelWidth(i),this.setLabelAlignment(s||this.labelAlignment),this.refreshLabel()}refreshLabel(){Ni(this.eLabel),"string"==typeof this.label?this.eLabel.innerText=this.label+this.labelSeparator:this.label&&this.eLabel.appendChild(this.label),""===this.label?(Pi(this.eLabel,!1),oi(this.eLabel,"presentation")):(Pi(this.eLabel,!0),oi(this.eLabel,null))}setLabelSeparator(e){return this.labelSeparator===e||(this.labelSeparator=e,null!=this.label&&this.refreshLabel()),this}getLabelId(){return this.eLabel.id=this.eLabel.id||`ag-${this.getCompId()}-label`,this.eLabel.id}getLabel(){return this.label}setLabel(e){return this.label===e||(this.label=e,this.refreshLabel()),this}setLabelAlignment(e){const t=this.getGui().classList;return t.toggle("ag-label-align-left","left"===e),t.toggle("ag-label-align-right","right"===e),t.toggle("ag-label-align-top","top"===e),this}setLabelEllipsis(e){return this.eLabel.classList.toggle("ag-label-ellipsis",e),this}setLabelWidth(e){return null==this.label||zi(this.eLabel,e),this}setDisabled(e){e=!!e;const t=this.getGui();return Ei(t,e),t.classList.toggle("ag-disabled",e),this.disabled=e,this}isDisabled(){return!!this.disabled}},fs=class extends Cs{constructor(e,t,i,s){super(e,t,i),this.className=s}postConstruct(){super.postConstruct();const{width:e,value:t,onValueChange:i}=this.config;null!=e&&this.setWidth(e),null!=t&&this.setValue(t),null!=i&&this.onValueChange(i),this.className&&this.addCssClass(this.className),this.refreshAriaLabelledBy()}setLabel(e){return super.setLabel(e),this.refreshAriaLabelledBy(),this}refreshAriaLabelledBy(){const e=this.getAriaElement(),t=this.getLabelId(),i=this.getLabel();null==i||""==i||null!==e.getAttribute("aria-label")?ri(e,""):ri(e,t??"")}setAriaLabel(e){return ni(this.getAriaElement(),e),this.refreshAriaLabelledBy(),this}onValueChange(e){return this.addManagedListeners(this,{fieldValueChanged:()=>e(this.getValue())}),this}getWidth(){return this.getGui().clientWidth}setWidth(e){return Ui(this.getGui(),e),this}getPreviousValue(){return this.previousValue}getValue(){return this.value}setValue(e,t){return this.value===e||(this.previousValue=this.value,this.value=e,t||this.dispatchLocalEvent({type:"fieldValueChanged"})),this}},ws=class extends fs{constructor(e,t,i="text",s="input"){super(e,(null==e?void 0:e.template)??`\n
\n
\n \n
`,[],t),this.inputType=i,this.displayFieldTag=s,this.eLabel=es,this.eWrapper=es,this.eInput=es}postConstruct(){super.postConstruct(),this.setInputType(),this.eLabel.classList.add(`${this.className}-label`),this.eWrapper.classList.add(`${this.className}-input-wrapper`),this.eInput.classList.add(`${this.className}-input`),this.addCssClass("ag-input-field"),this.eInput.id=this.eInput.id||`ag-${this.getCompId()}-input`;const{inputName:e,inputWidth:t}=this.config;null!=e&&this.setInputName(e),null!=t&&this.setInputWidth(t),this.addInputListeners(),this.activateTabIndex([this.eInput])}addInputListeners(){this.addManagedElementListeners(this.eInput,{input:e=>this.setValue(e.target.value)})}setInputType(){"input"===this.displayFieldTag&&this.eInput.setAttribute("type",this.inputType)}getInputElement(){return this.eInput}setInputWidth(e){return zi(this.eWrapper,e),this}setInputName(e){return this.getInputElement().setAttribute("name",e),this}getFocusableElement(){return this.eInput}setMaxLength(e){return this.eInput.maxLength=e,this}setInputPlaceholder(e){return ji(this.eInput,"placeholder",e),this}setInputAriaLabel(e){return ni(this.eInput,e),this.refreshAriaLabelledBy(),this}setDisabled(e){return Ei(this.eInput,e),super.setDisabled(e)}setAutoComplete(e){if(!0===e)ji(this.eInput,"autocomplete",null);else{const t="string"==typeof e?e:"off";ji(this.eInput,"autocomplete",t)}return this}},Ss=class extends ws{constructor(e,t="ag-checkbox",i="checkbox"){super(e,t,i),this.labelAlignment="right",this.selected=!1,this.readOnly=!1,this.passive=!1}postConstruct(){super.postConstruct();const{readOnly:e,passive:t}=this.config;"boolean"==typeof e&&this.setReadOnly(e),"boolean"==typeof t&&this.setPassive(t)}addInputListeners(){this.addManagedElementListeners(this.eInput,{click:this.onCheckboxClick.bind(this)}),this.addManagedElementListeners(this.eLabel,{click:this.toggle.bind(this)})}getNextValue(){return void 0===this.selected||!this.selected}setPassive(e){this.passive=e}isReadOnly(){return this.readOnly}setReadOnly(e){this.eWrapper.classList.toggle("ag-disabled",e),this.eInput.disabled=e,this.readOnly=e}setDisabled(e){return this.eWrapper.classList.toggle("ag-disabled",e),super.setDisabled(e)}toggle(){if(this.eInput.disabled)return;const e=this.isSelected(),t=this.getNextValue();this.passive?this.dispatchChange(t,e):this.setValue(t)}getValue(){return this.isSelected()}setValue(e,t){return this.refreshSelectedClass(e),this.setSelected(e,t),this}setName(e){return this.getInputElement().name=e,this}isSelected(){return this.selected}setSelected(e,t){this.isSelected()!==e&&(this.previousValue=this.isSelected(),e=this.selected="boolean"==typeof e?e:void 0,this.eInput.checked=e,this.eInput.indeterminate=void 0===e,t||this.dispatchChange(this.selected,this.previousValue))}dispatchChange(e,t,i){this.dispatchLocalEvent({type:"fieldValueChanged",selected:e,previousValue:t,event:i});const s=this.getInputElement();this.eventService.dispatchEvent({type:"checkboxChanged",id:s.id,name:s.name,selected:e,previousValue:t})}onCheckboxClick(e){if(this.passive||this.eInput.disabled)return;const t=this.isSelected(),i=this.selected=e.target.checked;this.refreshSelectedClass(i),this.dispatchChange(i,t,e)}refreshSelectedClass(e){this.eWrapper.classList.toggle("ag-checked",!0===e),this.eWrapper.classList.toggle("ag-indeterminate",null==e)}},ys={selector:"AG-CHECKBOX",component:Ss},bs=class extends ts{constructor(){super('\n ',[ys]),this.eCheckbox=es}init(e){this.refresh(e);const t=this.eCheckbox.getInputElement();t.setAttribute("tabindex","-1"),li(t,"polite"),this.addManagedListeners(t,{click:e=>{if(Ae(e),this.eCheckbox.isDisabled())return;const t=this.eCheckbox.getValue();this.onCheckboxChanged(t)},dblclick:e=>{Ae(e)}}),this.addManagedElementListeners(this.params.eGridCell,{keydown:e=>{if(e.key===vs.SPACE&&!this.eCheckbox.isDisabled()){this.params.eGridCell===Y(this.gos)&&this.eCheckbox.toggle();const t=this.eCheckbox.getValue();this.onCheckboxChanged(t),e.preventDefault()}}})}refresh(e){return this.params=e,this.updateCheckbox(e),!0}updateCheckbox(e){var t;let i,s=!0;if(e.node.group&&e.column)if("boolean"==typeof e.value)i=e.value;else{const t=e.column.getColId();t.startsWith(Ve)?i=null==e.value||""===e.value?void 0:"true"===e.value:e.node.aggData&&void 0!==e.node.aggData[t]?i=e.value??void 0:s=!1}else i=e.value??void 0;if(!s)return void this.eCheckbox.setDisplayed(!1);this.eCheckbox.setValue(i);const o=null!=e.disabled?e.disabled:!(null==(t=e.column)?void 0:t.isCellEditable(e.node));this.eCheckbox.setDisabled(o);const n=this.localeService.getLocaleTextFunc(),r=ci(n,i),l=o?r:`${n("ariaToggleCellValue","Press SPACE to toggle cell value")} (${r})`;this.eCheckbox.setInputAriaLabel(l)}onCheckboxChanged(e){const{column:t,node:i,value:s}=this.params;this.eventService.dispatchEvent({type:"cellEditingStarted",column:t,colDef:null==t?void 0:t.getColDef(),data:i.data,node:i,rowIndex:i.rowIndex,rowPinned:i.rowPinned,value:s});const o=this.params.node.setDataValue(this.params.column,e,"edit");this.eventService.dispatchEvent({type:"cellEditingStopped",column:t,colDef:null==t?void 0:t.getColDef(),data:i.data,node:i,rowIndex:i.rowIndex,rowPinned:i.rowPinned,value:s,oldValue:s,newValue:e,valueChanged:o}),o||this.updateCheckbox(this.params)}},Rs=class extends ts{constructor(){super('
\n \n \n
'),this.eLoadingIcon=es,this.eLoadingText=es}init(e){e.node.failedLoad?this.setupFailed():this.setupLoading()}setupFailed(){const e=this.localeService.getLocaleTextFunc();this.eLoadingText.innerText=e("loadingError","ERR")}setupLoading(){const e=os("groupLoading",this.gos,null);e&&this.eLoadingIcon.appendChild(e);const t=this.localeService.getLocaleTextFunc();this.eLoadingText.innerText=t("loadingOoo","Loading")}refresh(e){return!1}destroy(){super.destroy()}},Fs=class extends ts{constructor(){super('
')}init(e){const t=`ag-cell-skeleton-renderer-${this.getCompId()}`;this.getGui().setAttribute("id",t),this.addDestroyFunc((()=>ri(e.eParentOfValue))),ri(e.eParentOfValue,t),e.node.failedLoad?this.setupFailed():this.setupLoading(e)}setupFailed(){const e=this.localeService.getLocaleTextFunc();this.getGui().innerText=e("loadingError","ERR");const t=e("ariaSkeletonCellLoadingFailed","Row failed to load");ni(this.getGui(),t)}setupLoading(e){const t=j(this.gos).createElement("div");t.classList.add("ag-skeleton-effect");const i=e.node.rowIndex;if(null!=i){const e=75+25*(i%2==0?Math.sin(i):Math.cos(i));t.style.width=`${e}%`}this.getGui().appendChild(t);const s=this.localeService.getLocaleTextFunc()("ariaSkeletonCellLoading","Row data is loading");ni(this.getGui(),s)}refresh(e){return!1}destroy(){super.destroy()}},Ps=class extends ts{constructor(){super()}destroy(){super.destroy()}},Es=class extends Ps{init(){var e;const t=F(null==(e=this.gos.get("overlayLoadingTemplate"))?void 0:e.trim());if(this.setTemplate(t??''),!t){const e=this.localeService.getLocaleTextFunc();setTimeout((()=>{this.getGui().textContent=e("loadingOoo","Loading...")}))}}},Ds=class extends Ps{init(){var e;const t=F(null==(e=this.gos.get("overlayNoRowsTemplate"))?void 0:e.trim());if(this.setTemplate(t??''),!t){const e=this.localeService.getLocaleTextFunc();setTimeout((()=>{this.getGui().textContent=e("noRowsToShow","No Rows To Show")}))}}},Ms=class extends ts{isPopup(){return!0}setParentComponent(e){e.addCssClass("ag-has-popup"),super.setParentComponent(e)}destroy(){const e=this.parentComponent;e&&e.isAlive()&&e.getGui().classList.remove("ag-has-popup"),super.destroy()}},xs=class extends Ms{constructor(){super('
')}init(e){const{value:t}=e;this.getGui().textContent=Rt(t,!0)}};function As(e){const{inputValue:t,allSuggestions:i,hideIrrelevant:s,filterByPercentageOfBestMatch:o,addSequentialWeight:n}=e;let r=i.map(((e,i)=>({value:e,relevance:Ts(t.toLowerCase(),e.toLocaleLowerCase(),n),idx:i})));if(r.sort(((e,t)=>t.relevance-e.relevance)),s&&(r=r.filter((e=>0!==e.relevance))),r.length>0&&o&&o>0){const e=r[0].relevance*o;r=r.filter((t=>e-t.relevance<0))}const l=[],a=[];for(const d of r)l.push(d.value),a.push(d.idx);return{values:l,indices:a}}function Ts(e,t,i=!1){const s=e.replace(/\s/g,""),o=t.replace(/\s/g,""),n=s.length,r=o.length,l=new Array(n+1).fill(null).map((()=>new Array(r+1).fill(0)));for(let h=0;h<=n;h+=1)l[h][0]=h;for(let h=0;h<=r;h+=1)l[0][h]=h;for(let h=1;h<=n;h++)for(let e=1;e<=r;e++)s[h-1]===o[e-1]?l[h][e]=l[h-1][e-1]:l[h][e]=1+Math.min(l[h][e-1],Math.min(l[h-1][e],l[h-1][e-1]));const a=l[n][r];let d=Math.max(n,r)-a;if(i){const e=function(e){const t=[],i=e.length;for(let s=1;s<=i;s++)for(let o=0;o<=i-s;o++){const i=o+s-1;t.push(e.slice(o,i+1))}return t}(s);for(let t=0;tthis.registerJsComponent(e,t)))}registerDefaultComponent(e,t,i){this.agGridDefaults[e]=t,i&&(this.agGridDefaultParams[e]=i)}registerJsComponent(e,t){this.jsComps[e]=t}retrieve(e,t){const i=(e,t,i)=>({componentFromFramework:t,component:e,params:i}),s=this.getFrameworkOverrides().frameworkComponent(t,this.gos.get("components"));if(null!=s)return i(s,!0);const o=this.jsComps[t];if(o){return i(o,this.getFrameworkOverrides().isFrameworkComponent(o))}const n=this.agGridDefaults[t];if(n)return i(n,!1,this.agGridDefaultParams[t]);const r=this.enterpriseAgDefaultCompsModule[t];return r?this.gos.assertModuleRegistered(r,`AG Grid '${e}' component: ${t}`):g((()=>{this.warnAboutMissingComponent(e,t)}),"MissingComp"+t),null}warnAboutMissingComponent(e,t){const i=As({inputValue:t,allSuggestions:[...Object.keys(this.agGridDefaults).filter((e=>!["agCellEditor","agGroupRowRenderer","agSortIndicator"].includes(e))),...Object.keys(this.jsComps)],hideIrrelevant:!0,filterByPercentageOfBestMatch:.8}).values;m(`Could not find '${t}' component. It was configured as "${e}: '${t}'" but it wasn't found in the list of registered components.`),i.length>0&&m(` Did you mean: [${i.slice(0,3)}]?`),m(`If using a custom component check it has been registered as described in: ${this.getFrameworkOverrides().getDocLink("components/")}`)}},Ls=class e{constructor(e){this.status=0,this.resolution=null,this.waiters=[],e((e=>this.onDone(e)),(e=>this.onReject(e)))}static all(t){return t.length?new e((e=>{let i=t.length;const s=new Array(i);t.forEach(((t,o)=>{t.then((t=>{s[o]=t,i--,0===i&&e(s)}))}))})):e.resolve()}static resolve(t=null){return new e((e=>e(t)))}then(t){return new e((e=>{1===this.status?e(t(this.resolution)):this.waiters.push((i=>e(t(i))))}))}onDone(e){this.status=1,this.resolution=e,this.waiters.forEach((t=>t(e)))}onReject(e){}},ks={propertyName:"dateComponent",cellRenderer:!1},Os={propertyName:"dragAndDropImageComponent",cellRenderer:!1},Gs={propertyName:"headerComponent",cellRenderer:!1},Ns={propertyName:"headerGroupComponent",cellRenderer:!1},Hs={propertyName:"cellRenderer",cellRenderer:!0},Bs={propertyName:"cellRenderer",cellRenderer:!1},Vs={propertyName:"loadingCellRenderer",cellRenderer:!0},Ws={propertyName:"cellEditor",cellRenderer:!1},zs={propertyName:"innerRenderer",cellRenderer:!0},Us={propertyName:"loadingOverlayComponent",cellRenderer:!1},Ks={propertyName:"noRowsOverlayComponent",cellRenderer:!1},_s={propertyName:"tooltipComponent",cellRenderer:!1},$s={propertyName:"filter",cellRenderer:!1},js={propertyName:"floatingFilterComponent",cellRenderer:!1},qs={propertyName:"toolPanel",cellRenderer:!1},Qs={propertyName:"statusPanel",cellRenderer:!1},Ys={propertyName:"fullWidthCellRenderer",cellRenderer:!0},Xs={propertyName:"loadingCellRenderer",cellRenderer:!0},Js={propertyName:"groupRowRenderer",cellRenderer:!0},Zs={propertyName:"detailCellRenderer",cellRenderer:!0},eo={propertyName:"menuItem",cellRenderer:!1},to=class e extends Oe{constructor(){super(...arguments),this.beanName="userComponentFactory"}wireBeans(e){this.agComponentUtils=e.agComponentUtils,this.componentMetadataProvider=e.componentMetadataProvider,this.userComponentRegistry=e.userComponentRegistry,this.frameworkComponentWrapper=e.frameworkComponentWrapper,this.gridOptions=e.gridOptions}getDragAndDropImageCompDetails(e){return this.getCompDetails(this.gridOptions,Os,"agDragAndDropImage",e,!0)}getHeaderCompDetails(e,t){return this.getCompDetails(e,Gs,"agColumnHeader",t)}getHeaderGroupCompDetails(e){const t=e.columnGroup.getColGroupDef();return this.getCompDetails(t,Ns,"agColumnGroupHeader",e)}getFullWidthCellRendererDetails(e){return this.getCompDetails(this.gridOptions,Ys,null,e,!0)}getFullWidthLoadingCellRendererDetails(e){return this.getCompDetails(this.gridOptions,Xs,"agLoadingCellRenderer",e,!0)}getFullWidthGroupCellRendererDetails(e){return this.getCompDetails(this.gridOptions,Js,"agGroupRowRenderer",e,!0)}getFullWidthDetailCellRendererDetails(e){return this.getCompDetails(this.gridOptions,Zs,"agDetailCellRenderer",e,!0)}getInnerRendererDetails(e,t){return this.getCompDetails(e,zs,null,t)}getFullWidthGroupRowInnerCellRenderer(e,t){return this.getCompDetails(e,zs,null,t)}getCellRendererDetails(e,t){return this.getCompDetails(e,Hs,null,t)}getEditorRendererDetails(e,t){return this.getCompDetails(e,Bs,null,t)}getLoadingCellRendererDetails(e,t){return this.getCompDetails(e,Vs,"agSkeletonCellRenderer",t,!0)}getCellEditorDetails(e,t){return this.getCompDetails(e,Ws,"agCellEditor",t,!0)}getFilterDetails(e,t,i){return this.getCompDetails(e,$s,i,t,!0)}getDateCompDetails(e){return this.getCompDetails(this.gridOptions,ks,"agDateInput",e,!0)}getLoadingOverlayCompDetails(e){return this.getCompDetails(this.gridOptions,Us,"agLoadingOverlay",e,!0)}getNoRowsOverlayCompDetails(e){return this.getCompDetails(this.gridOptions,Ks,"agNoRowsOverlay",e,!0)}getTooltipCompDetails(e){return this.getCompDetails(e.colDef,_s,"agTooltipComponent",e,!0)}getSetFilterCellRendererDetails(e,t){return this.getCompDetails(e,Hs,null,t)}getFloatingFilterCompDetails(e,t,i){return this.getCompDetails(e,js,i,t)}getToolPanelCompDetails(e,t){return this.getCompDetails(e,qs,null,t,!0)}getStatusPanelCompDetails(e,t){return this.getCompDetails(e,Qs,null,t,!0)}getMenuItemCompDetails(e,t){return this.getCompDetails(e,eo,"agMenuItem",t,!0)}getCompDetails(t,i,s,o,n=!1){const{propertyName:r,cellRenderer:l}=i;let a,{compName:d,jsComp:h,fwComp:u,paramsFromSelector:c,popupFromSelector:g,popupPositionFromSelector:p}=e.getCompKeys(this.frameworkOverrides,t,i,o);const m=e=>{const t=this.userComponentRegistry.retrieve(r,e);t&&(h=t.componentFromFramework?void 0:t.component,u=t.componentFromFramework?t.component:void 0,a=t.params)};if(null!=d&&m(d),null==h&&null==u&&null!=s&&m(s),h&&l&&!this.agComponentUtils.doesImplementIComponent(h)&&(h=this.agComponentUtils.adaptFunction(r,h)),!h&&!u)return void(n&&v(`Could not find component ${d}, did you forget to configure this component?`));const C=this.mergeParamsWithApplicationProvidedParams(t,i,o,c,a),f=null==h,w=h||u;return{componentFromFramework:f,componentClass:w,params:C,type:i,popupFromSelector:g,popupPositionFromSelector:p,newAgStackInstance:()=>this.newAgStackInstance(w,f,C,i)}}static getCompKeys(e,t,i,s){const{propertyName:o}=i;let n,r,l,a,d,h;if(t){const i=t,u=i[o+"Selector"],c=u?u(s):null,g=t=>{if("string"==typeof t)n=t;else if(null!=t&&!0!==t){e.isFrameworkComponent(t)?l=t:r=t}};c?(g(c.component),a=c.params,d=c.popup,h=c.popupPosition):g(i[o])}return{compName:n,jsComp:r,fwComp:l,paramsFromSelector:a,popupFromSelector:d,popupPositionFromSelector:h}}newAgStackInstance(e,t,i,s){const o=s.propertyName;let n;if(!t)n=new e;else{const t=this.componentMetadataProvider.retrieve(o);n=this.frameworkComponentWrapper.wrap(e,t.mandatoryMethodList,t.optionalMethodList,s)}const r=this.initComponent(n,i);return null==r?Ls.resolve(n):r.then((()=>n))}mergeParamsWithApplicationProvidedParams(e,t,i,s=null,o){const n=this.gos.getGridCommonParams();Ze(n,i),o&&Ze(n,o);const r=e&&e[t.propertyName+"Params"];if("function"==typeof r){Ze(n,r(i))}else"object"==typeof r&&Ze(n,r);return Ze(n,s),n}initComponent(e,t){if(this.createBean(e),null!=e.init)return e.init(t)}};function io(e){const t=e;return null!=t&&null!=t.getFrameworkComponentInstance?t.getFrameworkComponentInstance():e}var so=class e{static register(t){e.__register(t,!0,void 0)}static registerModules(t){e.__registerModules(t,!0,void 0)}static __register(t,i,s){e.runVersionChecks(t),void 0!==s?(e.areGridScopedModules=!0,void 0===e.gridModulesMap[s]&&(e.gridModulesMap[s]={}),e.gridModulesMap[s][t.moduleName]=t):e.globalModulesMap[t.moduleName]=t,e.setModuleBased(i)}static __unRegisterGridModules(t){delete e.gridModulesMap[t]}static __registerModules(t,i,s){e.setModuleBased(i),t&&t.forEach((t=>e.__register(t,i,s)))}static isValidModuleVersion(t){const[i,s]=t.version.split(".")||[],[o,n]=e.currentModuleVersion.split(".")||[];return i===o&&s===n}static runVersionChecks(t){e.currentModuleVersion||(e.currentModuleVersion=t.version);const i=e=>`You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. ${e} Please update all modules to the same version.`;if(t.version?e.isValidModuleVersion(t)||v(i(`'${t.moduleName}' is version ${t.version} but the other modules are version ${e.currentModuleVersion}.`)):v(i(`'${t.moduleName}' is incompatible.`)),t.validate){const e=t.validate();if(!e.isValid){v(`${e.message}`)}}}static setModuleBased(t){void 0===e.moduleBased?e.moduleBased=t:e.moduleBased!==t&&(v("AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms."),v("Please see https://www.ag-grid.com/javascript-grid/modules/ for more information."))}static __setIsBundled(){e.isBundled=!0}static __assertRegistered(t,i,s){var o;if(this.__isRegistered(t,s))return!0;let n;if(e.isBundled)n=`AG Grid: unable to use ${i} as 'ag-grid-enterprise' has not been loaded. Check you are using the Enterprise bundle:\n \n - - + + batch and form - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/batch_and_form.py.wasm.edit.html b/public/examples/ui/batch_and_form.py.wasm.edit.html new file mode 100644 index 0000000..f61f64a --- /dev/null +++ b/public/examples/ui/batch_and_form.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/batch_and_form.py.wasm.run.html b/public/examples/ui/batch_and_form.py.wasm.run.html new file mode 100644 index 0000000..57befbd --- /dev/null +++ b/public/examples/ui/batch_and_form.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/circle-check.ico b/public/examples/ui/circle-check.ico new file mode 100644 index 0000000..9ce6526 Binary files /dev/null and b/public/examples/ui/circle-check.ico differ diff --git a/public/examples/ui/circle-play.ico b/public/examples/ui/circle-play.ico new file mode 100644 index 0000000..9b09daf Binary files /dev/null and b/public/examples/ui/circle-play.ico differ diff --git a/public/examples/ui/circle-x.ico b/public/examples/ui/circle-x.ico new file mode 100644 index 0000000..6016bde Binary files /dev/null and b/public/examples/ui/circle-x.ico differ diff --git a/public/examples/ui/data_explorer.py.html b/public/examples/ui/data_explorer.py.html index 1d32e75..faaaf45 100644 --- a/public/examples/ui/data_explorer.py.html +++ b/public/examples/ui/data_explorer.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - - + + + data explorer - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/data_explorer.py.wasm.edit.html b/public/examples/ui/data_explorer.py.wasm.edit.html new file mode 100644 index 0000000..19e1418 --- /dev/null +++ b/public/examples/ui/data_explorer.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/data_explorer.py.wasm.run.html b/public/examples/ui/data_explorer.py.wasm.run.html new file mode 100644 index 0000000..3afafe4 --- /dev/null +++ b/public/examples/ui/data_explorer.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/favicon-16x16.png b/public/examples/ui/favicon-16x16.png new file mode 100644 index 0000000..10de326 Binary files /dev/null and b/public/examples/ui/favicon-16x16.png differ diff --git a/public/examples/ui/favicon-32x32.png b/public/examples/ui/favicon-32x32.png new file mode 100644 index 0000000..21d6f7a Binary files /dev/null and b/public/examples/ui/favicon-32x32.png differ diff --git a/public/examples/ui/favicon.ico b/public/examples/ui/favicon.ico new file mode 100644 index 0000000..03b04d7 Binary files /dev/null and b/public/examples/ui/favicon.ico differ diff --git a/public/examples/ui/layout.py.html b/public/examples/ui/layout.py.html index 38eed89..fa31a86 100644 --- a/public/examples/ui/layout.py.html +++ b/public/examples/ui/layout.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + layout - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/layout.py.wasm.edit.html b/public/examples/ui/layout.py.wasm.edit.html new file mode 100644 index 0000000..9b1e117 --- /dev/null +++ b/public/examples/ui/layout.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/layout.py.wasm.run.html b/public/examples/ui/layout.py.wasm.run.html new file mode 100644 index 0000000..ceab6dd --- /dev/null +++ b/public/examples/ui/layout.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/logo.png b/public/examples/ui/logo.png new file mode 100644 index 0000000..f78d56d Binary files /dev/null and b/public/examples/ui/logo.png differ diff --git a/public/examples/ui/manifest.json b/public/examples/ui/manifest.json new file mode 100644 index 0000000..f839981 --- /dev/null +++ b/public/examples/ui/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "Marimo", + "name": "A Marimo App", + "icons": [ + { + "src": "favicon.ico", + "sizes": "48x48", + "type": "image/x-icon" + }, + { + "src": "android-chrome-192x192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "android-chrome-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/public/examples/ui/refresh.py.html b/public/examples/ui/refresh.py.html index 6148b5d..7580dcb 100644 --- a/public/examples/ui/refresh.py.html +++ b/public/examples/ui/refresh.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - - + + + refresh - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/refresh.py.wasm.edit.html b/public/examples/ui/refresh.py.wasm.edit.html new file mode 100644 index 0000000..083369e --- /dev/null +++ b/public/examples/ui/refresh.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/refresh.py.wasm.run.html b/public/examples/ui/refresh.py.wasm.run.html new file mode 100644 index 0000000..0238392 --- /dev/null +++ b/public/examples/ui/refresh.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/site.webmanifest b/public/examples/ui/site.webmanifest new file mode 100644 index 0000000..09317d7 --- /dev/null +++ b/public/examples/ui/site.webmanifest @@ -0,0 +1,19 @@ +{ + "background_color": "#ffffff", + "display": "standalone", + "icons": [ + { + "sizes": "192x192", + "src": "/android-chrome-192x192.png", + "type": "image/png" + }, + { + "sizes": "512x512", + "src": "/android-chrome-512x512.png", + "type": "image/png" + } + ], + "name": "marimo", + "short_name": "marimo", + "theme_color": "#ffffff" +} diff --git a/public/examples/ui/table.py.html b/public/examples/ui/table.py.html index e3972b4..4d6fe11 100644 --- a/public/examples/ui/table.py.html +++ b/public/examples/ui/table.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + table - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/table.py.wasm.edit.html b/public/examples/ui/table.py.wasm.edit.html new file mode 100644 index 0000000..861b61d --- /dev/null +++ b/public/examples/ui/table.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/table.py.wasm.run.html b/public/examples/ui/table.py.wasm.run.html new file mode 100644 index 0000000..773918d --- /dev/null +++ b/public/examples/ui/table.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/tabs.py.html b/public/examples/ui/tabs.py.html index f660b3e..94dd493 100644 --- a/public/examples/ui/tabs.py.html +++ b/public/examples/ui/tabs.py.html @@ -2,24 +2,24 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + tabs - - + + @@ -74,9 +74,9 @@
- + diff --git a/public/examples/ui/tabs.py.wasm.edit.html b/public/examples/ui/tabs.py.wasm.edit.html new file mode 100644 index 0000000..23733c2 --- /dev/null +++ b/public/examples/ui/tabs.py.wasm.edit.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/examples/ui/tabs.py.wasm.run.html b/public/examples/ui/tabs.py.wasm.run.html new file mode 100644 index 0000000..7df1de3 --- /dev/null +++ b/public/examples/ui/tabs.py.wasm.run.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + marimo + + + + + + + + +
+ + diff --git a/public/index.html b/public/index.html index 5f7aa1e..860be3f 100644 --- a/public/index.html +++ b/public/index.html @@ -9,42 +9,102 @@

Marimo Examples

- -

Arrays And Dicts

-
- -

Batch And Form

-
- -

Data Explorer

-
- -

Filterable Table

-
- -

Inputs

-
- -

Layout

-
- -

Mermaid

-
- -

Reactive Plots

-
- -

Refresh

-
- -

Table

-
- -

Tabs

-
- -

Task List

-
+
+

Arrays And Dicts

+ +
+
+

Batch And Form

+ +
+
+

Data Explorer

+ +
+
+

Filterable Table

+ +
+
+

Inputs

+ +
+
+

Layout

+ +
+
+

Mermaid

+ +
+
+

Reactive Plots

+ +
+
+

Refresh

+ +
+
+

Table

+ +
+
+

Tabs

+ +
+
+

Task List

+ +
\ No newline at end of file