diff --git a/dist/screenshottocode-0.1.0-py3-none-any.whl b/dist/screenshottocode-0.1.0-py3-none-any.whl new file mode 100644 index 0000000..7bcd6dd Binary files /dev/null and b/dist/screenshottocode-0.1.0-py3-none-any.whl differ diff --git a/dist/screenshottocode-0.1.0.tar.gz b/dist/screenshottocode-0.1.0.tar.gz new file mode 100644 index 0000000..c92a3b4 Binary files /dev/null and b/dist/screenshottocode-0.1.0.tar.gz differ diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9f06316 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,46 @@ +[tool.poetry] +name = "screenshottocode" +version = "0.1.0" +description = "" +authors = [ + "Abi Raja ", + "Amos Amissah " +] +license = "MIT" +readme = "README.md" +homepage = "https://screenshottocode.com/" +repository = "https://github.com/theonlyamos/screenshot-to-code" +include = ["screenshottocode/templates/*", "screenshottocode/assets/*"] +classifiers = [ + "Topic :: Software Development :: Build Tools", + "Topic :: Software Development :: Libraries :: Python Modules" +] + +[tool.poetry.urls] +"Bug Tracker" = "https://github.com/abi/screenshot-to-code/issues" + +[tool.poetry.dependencies] +python = "^3.10" +fastapi = "^0.95.0" +uvicorn = "^0.24.0.post1" +websockets = "^12.0" +openai = "^1.2.4" +python-dotenv = "^1.0.0" +beautifulsoup4 = "^4.12.2" +httpx = "^0.25.1" +google-generativeai = "0.3.0" +google-ai-generativelanguage = "0.4.0" +pillow = "^10.1.0" + +[tool.poetry.group.dev.dependencies] +pytest = "^7.4.3" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +screenshottocode = "screenshottocode.cli:main" + +[tool.poetry.scripts.pre-build] +build_frontend = "cd frontend && yarn build" \ No newline at end of file diff --git a/screenshottocode/.gitignore b/screenshottocode/.gitignore new file mode 100644 index 0000000..128eab6 --- /dev/null +++ b/screenshottocode/.gitignore @@ -0,0 +1,156 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + + +# Temporary eval output +evals diff --git a/screenshottocode/Dockerfile b/screenshottocode/Dockerfile new file mode 100644 index 0000000..c520517 --- /dev/null +++ b/screenshottocode/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.12-slim-bullseye + +ENV POETRY_VERSION 1.4.1 + +# Install system dependencies +RUN pip install "poetry==$POETRY_VERSION" + +# Set work directory +WORKDIR /app + +# Copy only requirements to cache them in docker layer +COPY poetry.lock pyproject.toml /app/ + +# Disable the creation of virtual environments +RUN poetry config virtualenvs.create false + +# Install dependencies +RUN poetry install + +# Copy the current directory contents into the container at /app +COPY ./ /app/ diff --git a/screenshottocode/README.md b/screenshottocode/README.md new file mode 100644 index 0000000..ee55816 --- /dev/null +++ b/screenshottocode/README.md @@ -0,0 +1,3 @@ +# Run tests + +poetry run pytest diff --git a/screenshottocode/access_token.py b/screenshottocode/access_token.py new file mode 100644 index 0000000..35fa657 --- /dev/null +++ b/screenshottocode/access_token.py @@ -0,0 +1,21 @@ +import json +import os +import httpx + + +async def validate_access_token(access_code: str): + async with httpx.AsyncClient() as client: + url = ( + "https://backend.buildpicoapps.com/screenshot_to_code/validate_access_token" + ) + data = json.dumps( + { + "access_code": access_code, + "secret": os.environ.get("PICO_BACKEND_SECRET"), + } + ) + headers = {"Content-Type": "application/json"} + + response = await client.post(url, content=data, headers=headers) + response_data = response.json() + return response_data diff --git a/screenshottocode/assets/index-a937a359.css b/screenshottocode/assets/index-a937a359.css new file mode 100644 index 0000000..0791eb1 --- /dev/null +++ b/screenshottocode/assets/index-a937a359.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}body.dark{background-color:#000}div[role=presentation].dark{background-color:#09090b!important}iframe{background-color:#fff!important}.dark{--background: 222.2 0% 0%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-16{bottom:4rem}.bottom-5{bottom:1.25rem}.left-\[50\%\]{left:50%}.right-2{right:.5rem}.right-4{right:1rem}.right-5{right:1.25rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-8{margin-right:2rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[800px\]{height:800px}.h-\[832px\]{height:832px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-12{max-height:3rem}.max-h-96{max-height:24rem}.min-h-\[60px\]{min-height:60px}.w-1\/2{width:50%}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[1200px\]{width:1200px}.w-\[180px\]{width:180px}.w-\[1px\]{width:1px}.w-\[340px\]{width:340px}.w-\[400px\]{width:400px}.w-full{width:100%}.min-w-\[40\%\]{min-width:40%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-top{transform-origin:top}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.60\]{--tw-scale-x: .6;--tw-scale-y: .6;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.9\]{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-10{row-gap:2.5rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[20px\]{border-radius:20px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[4px\]{border-width:4px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-green-700{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-zinc-950{--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity))}.fill-gray-800{fill:#1f2937}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.text-stone-200{--tw-text-opacity: 1;color:rgb(231 229 228 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.scanning:after{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background-image:linear-gradient(to right,rgba(19,161,14,.2),rgba(19,161,14,.8));animation:scanning 3s ease-in-out infinite}@keyframes scanning{0%,to{transform:translate(0)}50%{transform:translate(340px)}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}:is(.dark .dark\:border-gray-700){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}:is(.dark .dark\:bg-black){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-800){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-white){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-zinc-950){--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity))}:is(.dark .dark\:text-black){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}:is(.dark .dark\:text-gray-600){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:max-w-\[425px\]{max-width:425px}.sm\:max-w-xl{max-width:36rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 1024px){.lg\:fixed{position:fixed}.lg\:inset-y-0{top:0;bottom:0}.lg\:z-40{z-index:40}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:flex{display:flex}.lg\:w-96{width:24rem}.lg\:max-w-none{max-width:none}.lg\:flex-col{flex-direction:column}.lg\:pl-96{padding-left:24rem}}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))} diff --git a/screenshottocode/assets/index-f02835e2.js b/screenshottocode/assets/index-f02835e2.js new file mode 100644 index 0000000..27b1ca3 --- /dev/null +++ b/screenshottocode/assets/index-f02835e2.js @@ -0,0 +1,342 @@ +function Y$(t,e){for(var A=0;Ar[n]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function A(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=A(n);fetch(n.href,i)}})();function Wl(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var XQ={exports:{}},mf={},VQ={exports:{}},ue={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var jl=Symbol.for("react.element"),K$=Symbol.for("react.portal"),W$=Symbol.for("react.fragment"),j$=Symbol.for("react.strict_mode"),G$=Symbol.for("react.profiler"),z$=Symbol.for("react.provider"),q$=Symbol.for("react.context"),J$=Symbol.for("react.forward_ref"),e2=Symbol.for("react.suspense"),t2=Symbol.for("react.memo"),A2=Symbol.for("react.lazy"),Z0=Symbol.iterator;function r2(t){return t===null||typeof t!="object"?null:(t=Z0&&t[Z0]||t["@@iterator"],typeof t=="function"?t:null)}var YQ={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},KQ=Object.assign,WQ={};function zo(t,e,A){this.props=t,this.context=e,this.refs=WQ,this.updater=A||YQ}zo.prototype.isReactComponent={};zo.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};zo.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function jQ(){}jQ.prototype=zo.prototype;function $m(t,e,A){this.props=t,this.context=e,this.refs=WQ,this.updater=A||YQ}var km=$m.prototype=new jQ;km.constructor=$m;KQ(km,zo.prototype);km.isPureReactComponent=!0;var X0=Array.isArray,GQ=Object.prototype.hasOwnProperty,Pm={current:null},zQ={key:!0,ref:!0,__self:!0,__source:!0};function qQ(t,e,A){var r,n={},i=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(i=""+e.key),e)GQ.call(e,r)&&!zQ.hasOwnProperty(r)&&(n[r]=e[r]);var s=arguments.length-2;if(s===1)n.children=A;else if(1>>1,J=k[W];if(0>>1;Wn(me,Z))ien(z,me)?(k[W]=z,k[ie]=Z,W=ie):(k[W]=me,k[ne]=Z,W=ne);else if(ien(z,Z))k[W]=z,k[ie]=Z,W=ie;else break e}}return I}function n(k,I){var Z=k.sortIndex-I.sortIndex;return Z!==0?Z:k.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();t.unstable_now=function(){return o.now()-s}}var l=[],a=[],c=1,u=null,f=3,d=!1,h=!1,g=!1,B=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(k){for(var I=A(a);I!==null;){if(I.callback===null)r(a);else if(I.startTime<=k)r(a),I.sortIndex=I.expirationTime,e(l,I);else break;I=A(a)}}function Q(k){if(g=!1,v(k),!h)if(A(l)!==null)h=!0,$(C);else{var I=A(a);I!==null&&_(Q,I.startTime-k)}}function C(k,I){h=!1,g&&(g=!1,m(x),x=-1),d=!0;var Z=f;try{for(v(I),u=A(l);u!==null&&(!(u.expirationTime>I)||k&&!T());){var W=u.callback;if(typeof W=="function"){u.callback=null,f=u.priorityLevel;var J=W(u.expirationTime<=I);I=t.unstable_now(),typeof J=="function"?u.callback=J:u===A(l)&&r(l),v(I)}else r(l);u=A(l)}if(u!==null)var pe=!0;else{var ne=A(a);ne!==null&&_(Q,ne.startTime-I),pe=!1}return pe}finally{u=null,f=Z,d=!1}}var b=!1,S=null,x=-1,U=5,E=-1;function T(){return!(t.unstable_now()-Ek||125W?(k.sortIndex=Z,e(a,k),A(l)===null&&k===A(a)&&(g?(m(x),x=-1):g=!0,_(Q,Z-W))):(k.sortIndex=J,e(l,k),h||d||(h=!0,$(C))),k},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(k){var I=f;return function(){var Z=f;f=I;try{return k.apply(this,arguments)}finally{f=Z}}}})(r1);A1.exports=r1;var h2=A1.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var n1=p,uA=h2;function R(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,A=1;A"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Jh=Object.prototype.hasOwnProperty,p2=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Y0={},K0={};function g2(t){return Jh.call(K0,t)?!0:Jh.call(Y0,t)?!1:p2.test(t)?K0[t]=!0:(Y0[t]=!0,!1)}function m2(t,e,A,r){if(A!==null&&A.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:A!==null?!A.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function O2(t,e,A,r){if(e===null||typeof e>"u"||m2(t,e,A,r))return!0;if(r)return!1;if(A!==null)switch(A.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Mt(t,e,A,r,n,i,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=n,this.mustUseProperty=A,this.propertyName=t,this.type=e,this.sanitizeURL=i,this.removeEmptyString=o}var Bt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Bt[t]=new Mt(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Bt[e]=new Mt(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Bt[t]=new Mt(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Bt[t]=new Mt(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Bt[t]=new Mt(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Bt[t]=new Mt(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Bt[t]=new Mt(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Bt[t]=new Mt(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Bt[t]=new Mt(t,5,!1,t.toLowerCase(),null,!1,!1)});var Im=/[\-:]([a-z])/g;function Rm(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(Im,Rm);Bt[e]=new Mt(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Im,Rm);Bt[e]=new Mt(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Im,Rm);Bt[e]=new Mt(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Bt[t]=new Mt(t,1,!1,t.toLowerCase(),null,!1,!1)});Bt.xlinkHref=new Mt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Bt[t]=new Mt(t,1,!1,t.toLowerCase(),null,!0,!0)});function Dm(t,e,A,r){var n=Bt.hasOwnProperty(e)?Bt[e]:null;(n!==null?n.type!==0:r||!(2s||n[o]!==i[s]){var l=` +`+n[o].replace(" at new "," at ");return t.displayName&&l.includes("")&&(l=l.replace("",t.displayName)),l}while(1<=o&&0<=s);break}}}finally{xd=!1,Error.prepareStackTrace=A}return(t=t?t.displayName||t.name:"")?Ts(t):""}function w2(t){switch(t.tag){case 5:return Ts(t.type);case 16:return Ts("Lazy");case 13:return Ts("Suspense");case 19:return Ts("SuspenseList");case 0:case 2:case 15:return t=Ud(t.type,!1),t;case 11:return t=Ud(t.type.render,!1),t;case 1:return t=Ud(t.type,!0),t;default:return""}}function rp(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case no:return"Fragment";case ro:return"Portal";case ep:return"Profiler";case Hm:return"StrictMode";case tp:return"Suspense";case Ap:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case s1:return(t.displayName||"Context")+".Consumer";case o1:return(t._context.displayName||"Context")+".Provider";case Lm:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case _m:return e=t.displayName||null,e!==null?e:rp(t.type)||"Memo";case an:e=t._payload,t=t._init;try{return rp(t(e))}catch{}}return null}function B2(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return rp(e);case 8:return e===Hm?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Nn(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function a1(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function v2(t){var e=a1(t)?"checked":"value",A=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof A<"u"&&typeof A.get=="function"&&typeof A.set=="function"){var n=A.get,i=A.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return n.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(t,e,{enumerable:A.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function da(t){t._valueTracker||(t._valueTracker=v2(t))}function c1(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var A=e.getValue(),r="";return t&&(r=a1(t)?t.checked?"true":"false":t.value),t=r,t!==A?(e.setValue(t),!0):!1}function iu(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function np(t,e){var A=e.checked;return Me({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:A??t._wrapperState.initialChecked})}function j0(t,e){var A=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;A=Nn(e.value!=null?e.value:A),t._wrapperState={initialChecked:r,initialValue:A,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function u1(t,e){e=e.checked,e!=null&&Dm(t,"checked",e,!1)}function ip(t,e){u1(t,e);var A=Nn(e.value),r=e.type;if(A!=null)r==="number"?(A===0&&t.value===""||t.value!=A)&&(t.value=""+A):t.value!==""+A&&(t.value=""+A);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?op(t,e.type,A):e.hasOwnProperty("defaultValue")&&op(t,e.type,Nn(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function G0(t,e,A){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,A||e===t.value||(t.value=e),t.defaultValue=e}A=t.name,A!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,A!==""&&(t.name=A)}function op(t,e,A){(e!=="number"||iu(t.ownerDocument)!==t)&&(A==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+A&&(t.defaultValue=""+A))}var Is=Array.isArray;function wo(t,e,A,r){if(t=t.options,e){e={};for(var n=0;n"+e.valueOf().toString()+"",e=ha.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function pl(t,e){if(e){var A=t.firstChild;if(A&&A===t.lastChild&&A.nodeType===3){A.nodeValue=e;return}}t.textContent=e}var Gs={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},y2=["Webkit","ms","Moz","O"];Object.keys(Gs).forEach(function(t){y2.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Gs[e]=Gs[t]})});function p1(t,e,A){return e==null||typeof e=="boolean"||e===""?"":A||typeof e!="number"||e===0||Gs.hasOwnProperty(t)&&Gs[t]?(""+e).trim():e+"px"}function g1(t,e){t=t.style;for(var A in e)if(e.hasOwnProperty(A)){var r=A.indexOf("--")===0,n=p1(A,e[A],r);A==="float"&&(A="cssFloat"),r?t.setProperty(A,n):t[A]=n}}var Q2=Me({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ap(t,e){if(e){if(Q2[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(R(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(R(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(R(61))}if(e.style!=null&&typeof e.style!="object")throw Error(R(62))}}function cp(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var up=null;function Nm(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var fp=null,Bo=null,vo=null;function J0(t){if(t=ql(t)){if(typeof fp!="function")throw Error(R(280));var e=t.stateNode;e&&(e=yf(e),fp(t.stateNode,t.type,e))}}function m1(t){Bo?vo?vo.push(t):vo=[t]:Bo=t}function O1(){if(Bo){var t=Bo,e=vo;if(vo=Bo=null,J0(t),e)for(t=0;t>>=0,t===0?32:31-(T2(t)/I2|0)|0}var pa=64,ga=4194304;function Rs(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function au(t,e){var A=t.pendingLanes;if(A===0)return 0;var r=0,n=t.suspendedLanes,i=t.pingedLanes,o=A&268435455;if(o!==0){var s=o&~n;s!==0?r=Rs(s):(i&=o,i!==0&&(r=Rs(i)))}else o=A&~n,o!==0?r=Rs(o):i!==0&&(r=Rs(i));if(r===0)return 0;if(e!==0&&e!==r&&!(e&n)&&(n=r&-r,i=e&-e,n>=i||n===16&&(i&4194240)!==0))return e;if(r&4&&(r|=A&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0A;A++)e.push(t);return e}function Gl(t,e,A){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-_A(e),t[e]=A}function L2(t,e){var A=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=qs),lw=String.fromCharCode(32),aw=!1;function H1(t,e){switch(t){case"keyup":return dk.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function L1(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var io=!1;function pk(t,e){switch(t){case"compositionend":return L1(e);case"keypress":return e.which!==32?null:(aw=!0,lw);case"textInput":return t=e.data,t===lw&&aw?null:t;default:return null}}function gk(t,e){if(io)return t==="compositionend"||!jm&&H1(t,e)?(t=R1(),Sc=Ym=wn=null,io=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:A,offset:e-t};t=r}e:{for(;A;){if(A.nextSibling){A=A.nextSibling;break e}A=A.parentNode}A=void 0}A=dw(A)}}function Z1(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Z1(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function X1(){for(var t=window,e=iu();e instanceof t.HTMLIFrameElement;){try{var A=typeof e.contentWindow.location.href=="string"}catch{A=!1}if(A)t=e.contentWindow;else break;e=iu(t.document)}return e}function Gm(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function bk(t){var e=X1(),A=t.focusedElem,r=t.selectionRange;if(e!==A&&A&&A.ownerDocument&&Z1(A.ownerDocument.documentElement,A)){if(r!==null&&Gm(A)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in A)A.selectionStart=e,A.selectionEnd=Math.min(t,A.value.length);else if(t=(e=A.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var n=A.textContent.length,i=Math.min(r.start,n);r=r.end===void 0?i:Math.min(r.end,n),!t.extend&&i>r&&(n=r,r=i,i=n),n=hw(A,i);var o=hw(A,r);n&&o&&(t.rangeCount!==1||t.anchorNode!==n.node||t.anchorOffset!==n.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(n.node,n.offset),t.removeAllRanges(),i>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=A;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof A.focus=="function"&&A.focus(),A=0;A=document.documentMode,oo=null,Op=null,el=null,wp=!1;function pw(t,e,A){var r=A.window===A?A.document:A.nodeType===9?A:A.ownerDocument;wp||oo==null||oo!==iu(r)||(r=oo,"selectionStart"in r&&Gm(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),el&&vl(el,r)||(el=r,r=fu(Op,"onSelect"),0ao||(t.current=bp[ao],bp[ao]=null,ao--)}function Ue(t,e){ao++,bp[ao]=t.current,t.current=e}var Mn={},$t=Jn(Mn),jt=Jn(!1),Qi=Mn;function To(t,e){var A=t.type.contextTypes;if(!A)return Mn;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var n={},i;for(i in A)n[i]=e[i];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=n),n}function Gt(t){return t=t.childContextTypes,t!=null}function hu(){Te(jt),Te($t)}function yw(t,e,A){if($t.current!==Mn)throw Error(R(168));Ue($t,e),Ue(jt,A)}function J1(t,e,A){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return A;r=r.getChildContext();for(var n in r)if(!(n in e))throw Error(R(108,B2(t)||"Unknown",n));return Me({},A,r)}function pu(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Mn,Qi=$t.current,Ue($t,t),Ue(jt,jt.current),!0}function Qw(t,e,A){var r=t.stateNode;if(!r)throw Error(R(169));A?(t=J1(t,e,Qi),r.__reactInternalMemoizedMergedChildContext=t,Te(jt),Te($t),Ue($t,t)):Te(jt),Ue(jt,A)}var $r=null,Qf=!1,Md=!1;function eC(t){$r===null?$r=[t]:$r.push(t)}function Dk(t){Qf=!0,eC(t)}function ei(){if(!Md&&$r!==null){Md=!0;var t=0,e=ve;try{var A=$r;for(ve=1;t>=o,n-=o,Pr=1<<32-_A(e)+n|A<x?(U=S,S=null):U=S.sibling;var E=f(m,S,v[x],Q);if(E===null){S===null&&(S=U);break}t&&S&&E.alternate===null&&e(m,S),O=i(E,O,x),b===null?C=E:b.sibling=E,b=E,S=U}if(x===v.length)return A(m,S),De&&si(m,x),C;if(S===null){for(;xx?(U=S,S=null):U=S.sibling;var T=f(m,S,E.value,Q);if(T===null){S===null&&(S=U);break}t&&S&&T.alternate===null&&e(m,S),O=i(T,O,x),b===null?C=T:b.sibling=T,b=T,S=U}if(E.done)return A(m,S),De&&si(m,x),C;if(S===null){for(;!E.done;x++,E=v.next())E=u(m,E.value,Q),E!==null&&(O=i(E,O,x),b===null?C=E:b.sibling=E,b=E);return De&&si(m,x),C}for(S=r(m,S);!E.done;x++,E=v.next())E=d(S,m,x,E.value,Q),E!==null&&(t&&E.alternate!==null&&S.delete(E.key===null?x:E.key),O=i(E,O,x),b===null?C=E:b.sibling=E,b=E);return t&&S.forEach(function(F){return e(m,F)}),De&&si(m,x),C}function B(m,O,v,Q){if(typeof v=="object"&&v!==null&&v.type===no&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case fa:e:{for(var C=v.key,b=O;b!==null;){if(b.key===C){if(C=v.type,C===no){if(b.tag===7){A(m,b.sibling),O=n(b,v.props.children),O.return=m,m=O;break e}}else if(b.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===an&&Fw(C)===b.type){A(m,b.sibling),O=n(b,v.props),O.ref=Os(m,b,v),O.return=m,m=O;break e}A(m,b);break}else e(m,b);b=b.sibling}v.type===no?(O=Bi(v.props.children,m.mode,Q,v.key),O.return=m,m=O):(Q=Tc(v.type,v.key,v.props,null,m.mode,Q),Q.ref=Os(m,O,v),Q.return=m,m=Q)}return o(m);case ro:e:{for(b=v.key;O!==null;){if(O.key===b)if(O.tag===4&&O.stateNode.containerInfo===v.containerInfo&&O.stateNode.implementation===v.implementation){A(m,O.sibling),O=n(O,v.children||[]),O.return=m,m=O;break e}else{A(m,O);break}else e(m,O);O=O.sibling}O=Gd(v,m.mode,Q),O.return=m,m=O}return o(m);case an:return b=v._init,B(m,O,b(v._payload),Q)}if(Is(v))return h(m,O,v,Q);if(ds(v))return g(m,O,v,Q);Qa(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,O!==null&&O.tag===6?(A(m,O.sibling),O=n(O,v),O.return=m,m=O):(A(m,O),O=jd(v,m.mode,Q),O.return=m,m=O),o(m)):A(m,O)}return B}var Ro=lC(!0),aC=lC(!1),Jl={},hr=Jn(Jl),bl=Jn(Jl),Sl=Jn(Jl);function hi(t){if(t===Jl)throw Error(R(174));return t}function iO(t,e){switch(Ue(Sl,e),Ue(bl,t),Ue(hr,Jl),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:lp(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=lp(e,t)}Te(hr),Ue(hr,e)}function Do(){Te(hr),Te(bl),Te(Sl)}function cC(t){hi(Sl.current);var e=hi(hr.current),A=lp(e,t.type);e!==A&&(Ue(bl,t),Ue(hr,A))}function oO(t){bl.current===t&&(Te(hr),Te(bl))}var Le=Jn(0);function vu(t){for(var e=t;e!==null;){if(e.tag===13){var A=e.memoizedState;if(A!==null&&(A=A.dehydrated,A===null||A.data==="$?"||A.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Zd=[];function sO(){for(var t=0;tA?A:4,t(!0);var r=Xd.transition;Xd.transition={};try{t(!1),e()}finally{ve=A,Xd.transition=r}}function SC(){return FA().memoizedState}function Nk(t,e,A){var r=Tn(t);if(A={lane:r,action:A,hasEagerState:!1,eagerState:null,next:null},xC(t))UC(e,A);else if(A=nC(t,e,A,r),A!==null){var n=Ht();NA(A,t,r,n),EC(A,e,r)}}function Mk(t,e,A){var r=Tn(t),n={lane:r,action:A,hasEagerState:!1,eagerState:null,next:null};if(xC(t))UC(e,n);else{var i=t.alternate;if(t.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var o=e.lastRenderedState,s=i(o,A);if(n.hasEagerState=!0,n.eagerState=s,ZA(s,o)){var l=e.interleaved;l===null?(n.next=n,rO(e)):(n.next=l.next,l.next=n),e.interleaved=n;return}}catch{}finally{}A=nC(t,e,n,r),A!==null&&(n=Ht(),NA(A,t,r,n),EC(A,e,r))}}function xC(t){var e=t.alternate;return t===Ne||e!==null&&e===Ne}function UC(t,e){tl=yu=!0;var A=t.pending;A===null?e.next=e:(e.next=A.next,A.next=e),t.pending=e}function EC(t,e,A){if(A&4194240){var r=e.lanes;r&=t.pendingLanes,A|=r,e.lanes=A,Zm(t,A)}}var Qu={readContext:EA,useCallback:Qt,useContext:Qt,useEffect:Qt,useImperativeHandle:Qt,useInsertionEffect:Qt,useLayoutEffect:Qt,useMemo:Qt,useReducer:Qt,useRef:Qt,useState:Qt,useDebugValue:Qt,useDeferredValue:Qt,useTransition:Qt,useMutableSource:Qt,useSyncExternalStore:Qt,useId:Qt,unstable_isNewReconciler:!1},Zk={readContext:EA,useCallback:function(t,e){return rr().memoizedState=[t,e===void 0?null:e],t},useContext:EA,useEffect:kw,useImperativeHandle:function(t,e,A){return A=A!=null?A.concat([t]):null,Fc(4194308,4,vC.bind(null,e,t),A)},useLayoutEffect:function(t,e){return Fc(4194308,4,t,e)},useInsertionEffect:function(t,e){return Fc(4,2,t,e)},useMemo:function(t,e){var A=rr();return e=e===void 0?null:e,t=t(),A.memoizedState=[t,e],t},useReducer:function(t,e,A){var r=rr();return e=A!==void 0?A(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=Nk.bind(null,Ne,t),[r.memoizedState,t]},useRef:function(t){var e=rr();return t={current:t},e.memoizedState=t},useState:$w,useDebugValue:fO,useDeferredValue:function(t){return rr().memoizedState=t},useTransition:function(){var t=$w(!1),e=t[0];return t=_k.bind(null,t[1]),rr().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,A){var r=Ne,n=rr();if(De){if(A===void 0)throw Error(R(407));A=A()}else{if(A=e(),ut===null)throw Error(R(349));bi&30||dC(r,e,A)}n.memoizedState=A;var i={value:A,getSnapshot:e};return n.queue=i,kw(pC.bind(null,r,i,t),[t]),r.flags|=2048,El(9,hC.bind(null,r,i,A,e),void 0,null),A},useId:function(){var t=rr(),e=ut.identifierPrefix;if(De){var A=Tr,r=Pr;A=(r&~(1<<32-_A(r)-1)).toString(32)+A,e=":"+e+"R"+A,A=xl++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(A,{is:r.is}):(t=o.createElement(A),A==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,A),t[or]=e,t[Cl]=r,HC(t,e,!1,!1),e.stateNode=t;e:{switch(o=cp(A,r),A){case"dialog":Fe("cancel",t),Fe("close",t),n=r;break;case"iframe":case"object":case"embed":Fe("load",t),n=r;break;case"video":case"audio":for(n=0;nLo&&(e.flags|=128,r=!0,ws(i,!1),e.lanes=4194304)}else{if(!r)if(t=vu(o),t!==null){if(e.flags|=128,r=!0,A=t.updateQueue,A!==null&&(e.updateQueue=A,e.flags|=4),ws(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!De)return Ct(e),null}else 2*je()-i.renderingStartTime>Lo&&A!==1073741824&&(e.flags|=128,r=!0,ws(i,!1),e.lanes=4194304);i.isBackwards?(o.sibling=e.child,e.child=o):(A=i.last,A!==null?A.sibling=o:e.child=o,i.last=o)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=je(),e.sibling=null,A=Le.current,Ue(Le,r?A&1|2:A&1),e):(Ct(e),null);case 22:case 23:return OO(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?nA&1073741824&&(Ct(e),e.subtreeFlags&6&&(e.flags|=8192)):Ct(e),null;case 24:return null;case 25:return null}throw Error(R(156,e.tag))}function zk(t,e){switch(qm(e),e.tag){case 1:return Gt(e.type)&&hu(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Do(),Te(jt),Te($t),sO(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return oO(e),null;case 13:if(Te(Le),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(R(340));Io()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Te(Le),null;case 4:return Do(),null;case 10:return AO(e.type._context),null;case 22:case 23:return OO(),null;case 24:return null;default:return null}}var ba=!1,Ut=!1,qk=typeof WeakSet=="function"?WeakSet:Set,K=null;function ho(t,e){var A=t.ref;if(A!==null)if(typeof A=="function")try{A(null)}catch(r){Ze(t,e,r)}else A.current=null}function Dp(t,e,A){try{A()}catch(r){Ze(t,e,r)}}var Nw=!1;function Jk(t,e){if(Bp=cu,t=X1(),Gm(t)){if("selectionStart"in t)var A={start:t.selectionStart,end:t.selectionEnd};else e:{A=(A=t.ownerDocument)&&A.defaultView||window;var r=A.getSelection&&A.getSelection();if(r&&r.rangeCount!==0){A=r.anchorNode;var n=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{A.nodeType,i.nodeType}catch{A=null;break e}var o=0,s=-1,l=-1,a=0,c=0,u=t,f=null;t:for(;;){for(var d;u!==A||n!==0&&u.nodeType!==3||(s=o+n),u!==i||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(d=u.firstChild)!==null;)f=u,u=d;for(;;){if(u===t)break t;if(f===A&&++a===n&&(s=o),f===i&&++c===r&&(l=o),(d=u.nextSibling)!==null)break;u=f,f=u.parentNode}u=d}A=s===-1||l===-1?null:{start:s,end:l}}else A=null}A=A||{start:0,end:0}}else A=null;for(vp={focusedElem:t,selectionRange:A},cu=!1,K=e;K!==null;)if(e=K,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,K=t;else for(;K!==null;){e=K;try{var h=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var g=h.memoizedProps,B=h.memoizedState,m=e.stateNode,O=m.getSnapshotBeforeUpdate(e.elementType===e.type?g:RA(e.type,g),B);m.__reactInternalSnapshotBeforeUpdate=O}break;case 3:var v=e.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(Q){Ze(e,e.return,Q)}if(t=e.sibling,t!==null){t.return=e.return,K=t;break}K=e.return}return h=Nw,Nw=!1,h}function Al(t,e,A){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var n=r=r.next;do{if((n.tag&t)===t){var i=n.destroy;n.destroy=void 0,i!==void 0&&Dp(e,A,i)}n=n.next}while(n!==r)}}function Sf(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var A=e=e.next;do{if((A.tag&t)===t){var r=A.create;A.destroy=r()}A=A.next}while(A!==e)}}function Hp(t){var e=t.ref;if(e!==null){var A=t.stateNode;switch(t.tag){case 5:t=A;break;default:t=A}typeof e=="function"?e(t):e.current=t}}function NC(t){var e=t.alternate;e!==null&&(t.alternate=null,NC(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[or],delete e[Cl],delete e[Cp],delete e[Ik],delete e[Rk])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function MC(t){return t.tag===5||t.tag===3||t.tag===4}function Mw(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||MC(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Lp(t,e,A){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?A.nodeType===8?A.parentNode.insertBefore(t,e):A.insertBefore(t,e):(A.nodeType===8?(e=A.parentNode,e.insertBefore(t,A)):(e=A,e.appendChild(t)),A=A._reactRootContainer,A!=null||e.onclick!==null||(e.onclick=du));else if(r!==4&&(t=t.child,t!==null))for(Lp(t,e,A),t=t.sibling;t!==null;)Lp(t,e,A),t=t.sibling}function _p(t,e,A){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?A.insertBefore(t,e):A.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(_p(t,e,A),t=t.sibling;t!==null;)_p(t,e,A),t=t.sibling}var dt=null,DA=!1;function tn(t,e,A){for(A=A.child;A!==null;)ZC(t,e,A),A=A.sibling}function ZC(t,e,A){if(dr&&typeof dr.onCommitFiberUnmount=="function")try{dr.onCommitFiberUnmount(Of,A)}catch{}switch(A.tag){case 5:Ut||ho(A,e);case 6:var r=dt,n=DA;dt=null,tn(t,e,A),dt=r,DA=n,dt!==null&&(DA?(t=dt,A=A.stateNode,t.nodeType===8?t.parentNode.removeChild(A):t.removeChild(A)):dt.removeChild(A.stateNode));break;case 18:dt!==null&&(DA?(t=dt,A=A.stateNode,t.nodeType===8?Nd(t.parentNode,A):t.nodeType===1&&Nd(t,A),wl(t)):Nd(dt,A.stateNode));break;case 4:r=dt,n=DA,dt=A.stateNode.containerInfo,DA=!0,tn(t,e,A),dt=r,DA=n;break;case 0:case 11:case 14:case 15:if(!Ut&&(r=A.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){n=r=r.next;do{var i=n,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Dp(A,e,o),n=n.next}while(n!==r)}tn(t,e,A);break;case 1:if(!Ut&&(ho(A,e),r=A.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=A.memoizedProps,r.state=A.memoizedState,r.componentWillUnmount()}catch(s){Ze(A,e,s)}tn(t,e,A);break;case 21:tn(t,e,A);break;case 22:A.mode&1?(Ut=(r=Ut)||A.memoizedState!==null,tn(t,e,A),Ut=r):tn(t,e,A);break;default:tn(t,e,A)}}function Zw(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var A=t.stateNode;A===null&&(A=t.stateNode=new qk),e.forEach(function(r){var n=l4.bind(null,t,r);A.has(r)||(A.add(r),r.then(n,n))})}}function PA(t,e){var A=e.deletions;if(A!==null)for(var r=0;rn&&(n=o),r&=~i}if(r=n,r=je()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*t4(r/1960))-r,10t?16:t,Bn===null)var r=!1;else{if(t=Bn,Bn=null,Su=0,he&6)throw Error(R(331));var n=he;for(he|=4,K=t.current;K!==null;){var i=K,o=i.child;if(K.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lje()-gO?wi(t,0):pO|=A),zt(t,e)}function zC(t,e){e===0&&(t.mode&1?(e=ga,ga<<=1,!(ga&130023424)&&(ga=4194304)):e=1);var A=Ht();t=Nr(t,e),t!==null&&(Gl(t,e,A),zt(t,A))}function s4(t){var e=t.memoizedState,A=0;e!==null&&(A=e.retryLane),zC(t,A)}function l4(t,e){var A=0;switch(t.tag){case 13:var r=t.stateNode,n=t.memoizedState;n!==null&&(A=n.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(e),zC(t,A)}var qC;qC=function(t,e,A){if(t!==null)if(t.memoizedProps!==e.pendingProps||jt.current)Yt=!0;else{if(!(t.lanes&A)&&!(e.flags&128))return Yt=!1,jk(t,e,A);Yt=!!(t.flags&131072)}else Yt=!1,De&&e.flags&1048576&&tC(e,mu,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;$c(t,e),t=e.pendingProps;var n=To(e,$t.current);Qo(e,A),n=aO(null,e,r,t,n,A);var i=cO();return e.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Gt(r)?(i=!0,pu(e)):i=!1,e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,nO(e),n.updater=Cf,e.stateNode=n,n._reactInternals=e,Fp(e,r,t,A),e=Pp(null,e,r,!0,i,A)):(e.tag=0,De&&i&&zm(e),Rt(null,e,n,A),e=e.child),e;case 16:r=e.elementType;e:{switch($c(t,e),t=e.pendingProps,n=r._init,r=n(r._payload),e.type=r,n=e.tag=c4(r),t=RA(r,t),n){case 0:e=kp(null,e,r,t,A);break e;case 1:e=Hw(null,e,r,t,A);break e;case 11:e=Rw(null,e,r,t,A);break e;case 14:e=Dw(null,e,r,RA(r.type,t),A);break e}throw Error(R(306,r,""))}return e;case 0:return r=e.type,n=e.pendingProps,n=e.elementType===r?n:RA(r,n),kp(t,e,r,n,A);case 1:return r=e.type,n=e.pendingProps,n=e.elementType===r?n:RA(r,n),Hw(t,e,r,n,A);case 3:e:{if(IC(e),t===null)throw Error(R(387));r=e.pendingProps,i=e.memoizedState,n=i.element,iC(t,e),Bu(e,r,null,A);var o=e.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){n=Ho(Error(R(423)),e),e=Lw(t,e,r,A,n);break e}else if(r!==n){n=Ho(Error(R(424)),e),e=Lw(t,e,r,A,n);break e}else for(lA=$n(e.stateNode.containerInfo.firstChild),aA=e,De=!0,HA=null,A=aC(e,null,r,A),e.child=A;A;)A.flags=A.flags&-3|4096,A=A.sibling;else{if(Io(),r===n){e=Mr(t,e,A);break e}Rt(t,e,r,A)}e=e.child}return e;case 5:return cC(e),t===null&&xp(e),r=e.type,n=e.pendingProps,i=t!==null?t.memoizedProps:null,o=n.children,yp(r,n)?o=null:i!==null&&yp(r,i)&&(e.flags|=32),TC(t,e),Rt(t,e,o,A),e.child;case 6:return t===null&&xp(e),null;case 13:return RC(t,e,A);case 4:return iO(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=Ro(e,null,r,A):Rt(t,e,r,A),e.child;case 11:return r=e.type,n=e.pendingProps,n=e.elementType===r?n:RA(r,n),Rw(t,e,r,n,A);case 7:return Rt(t,e,e.pendingProps,A),e.child;case 8:return Rt(t,e,e.pendingProps.children,A),e.child;case 12:return Rt(t,e,e.pendingProps.children,A),e.child;case 10:e:{if(r=e.type._context,n=e.pendingProps,i=e.memoizedProps,o=n.value,Ue(Ou,r._currentValue),r._currentValue=o,i!==null)if(ZA(i.value,o)){if(i.children===n.children&&!jt.current){e=Mr(t,e,A);break e}}else for(i=e.child,i!==null&&(i.return=e);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=Rr(-1,A&-A),l.tag=2;var a=i.updateQueue;if(a!==null){a=a.shared;var c=a.pending;c===null?l.next=l:(l.next=c.next,c.next=l),a.pending=l}}i.lanes|=A,l=i.alternate,l!==null&&(l.lanes|=A),Up(i.return,A,e),s.lanes|=A;break}l=l.next}}else if(i.tag===10)o=i.type===e.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(R(341));o.lanes|=A,s=o.alternate,s!==null&&(s.lanes|=A),Up(o,A,e),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===e){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Rt(t,e,n.children,A),e=e.child}return e;case 9:return n=e.type,r=e.pendingProps.children,Qo(e,A),n=EA(n),r=r(n),e.flags|=1,Rt(t,e,r,A),e.child;case 14:return r=e.type,n=RA(r,e.pendingProps),n=RA(r.type,n),Dw(t,e,r,n,A);case 15:return kC(t,e,e.type,e.pendingProps,A);case 17:return r=e.type,n=e.pendingProps,n=e.elementType===r?n:RA(r,n),$c(t,e),e.tag=1,Gt(r)?(t=!0,pu(e)):t=!1,Qo(e,A),sC(e,r,n),Fp(e,r,n,A),Pp(null,e,r,!0,t,A);case 19:return DC(t,e,A);case 22:return PC(t,e,A)}throw Error(R(156,e.tag))};function JC(t,e){return b1(t,e)}function a4(t,e,A,r){this.tag=t,this.key=A,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function BA(t,e,A,r){return new a4(t,e,A,r)}function BO(t){return t=t.prototype,!(!t||!t.isReactComponent)}function c4(t){if(typeof t=="function")return BO(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Lm)return 11;if(t===_m)return 14}return 2}function In(t,e){var A=t.alternate;return A===null?(A=BA(t.tag,e,t.key,t.mode),A.elementType=t.elementType,A.type=t.type,A.stateNode=t.stateNode,A.alternate=t,t.alternate=A):(A.pendingProps=e,A.type=t.type,A.flags=0,A.subtreeFlags=0,A.deletions=null),A.flags=t.flags&14680064,A.childLanes=t.childLanes,A.lanes=t.lanes,A.child=t.child,A.memoizedProps=t.memoizedProps,A.memoizedState=t.memoizedState,A.updateQueue=t.updateQueue,e=t.dependencies,A.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},A.sibling=t.sibling,A.index=t.index,A.ref=t.ref,A}function Tc(t,e,A,r,n,i){var o=2;if(r=t,typeof t=="function")BO(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case no:return Bi(A.children,n,i,e);case Hm:o=8,n|=8;break;case ep:return t=BA(12,A,e,n|2),t.elementType=ep,t.lanes=i,t;case tp:return t=BA(13,A,e,n),t.elementType=tp,t.lanes=i,t;case Ap:return t=BA(19,A,e,n),t.elementType=Ap,t.lanes=i,t;case l1:return Uf(A,n,i,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case o1:o=10;break e;case s1:o=9;break e;case Lm:o=11;break e;case _m:o=14;break e;case an:o=16,r=null;break e}throw Error(R(130,t==null?t:typeof t,""))}return e=BA(o,A,e,n),e.elementType=t,e.type=r,e.lanes=i,e}function Bi(t,e,A,r){return t=BA(7,t,r,e),t.lanes=A,t}function Uf(t,e,A,r){return t=BA(22,t,r,e),t.elementType=l1,t.lanes=A,t.stateNode={isHidden:!1},t}function jd(t,e,A){return t=BA(6,t,null,e),t.lanes=A,t}function Gd(t,e,A){return e=BA(4,t.children!==null?t.children:[],t.key,e),e.lanes=A,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function u4(t,e,A,r,n){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Fd(0),this.expirationTimes=Fd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Fd(0),this.identifierPrefix=r,this.onRecoverableError=n,this.mutableSourceEagerHydrationData=null}function vO(t,e,A,r,n,i,o,s,l){return t=new u4(t,e,A,s,l),e===1?(e=1,i===!0&&(e|=8)):e=0,i=BA(3,null,null,e),t.current=i,i.stateNode=t,i.memoizedState={element:r,isDehydrated:A,cache:null,transitions:null,pendingSuspenseBoundaries:null},nO(i),t}function f4(t,e,A){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rb)}catch(t){console.error(t)}}rb(),t1.exports=fA;var Ii=t1.exports;const m4=Wl(Ii);var zw=Ii;qh.createRoot=zw.createRoot,qh.hydrateRoot=zw.hydrateRoot;var nb={exports:{}},O4="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",w4=O4,B4=w4;function ib(){}function ob(){}ob.resetWarningCache=ib;var v4=function(){function t(r,n,i,o,s,l){if(l!==B4){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}t.isRequired=t;function e(){return t}var A={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:ob,resetWarningCache:ib};return A.PropTypes=A,A};nb.exports=v4();var y4=nb.exports;const Ce=Wl(y4);var sr=function(){return sr=Object.assign||function(e){for(var A,r=1,n=arguments.length;r0&&i[i.length-1])&&(a[0]===6||a[0]===2)){A=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]0)&&!(n=r.next()).done;)i.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(A=r.return)&&A.call(r)}finally{if(o)throw o.error}}return i}function Vp(t,e,A){if(A||arguments.length===2)for(var r=0,n=e.length,i;r0?r:t.name,writable:!1,configurable:!1,enumerable:!0})}return A}function C4(t){var e=t.name,A=e&&e.lastIndexOf(".")!==-1;if(A&&!t.type){var r=e.split(".").pop().toLowerCase(),n=Q4.get(r);n&&Object.defineProperty(t,"type",{value:n,writable:!1,configurable:!1,enumerable:!0})}return t}var b4=[".DS_Store","Thumbs.db"];function S4(t){return es(this,void 0,void 0,function(){return ts(this,function(e){return Eu(t)&&x4(t.dataTransfer)?[2,$4(t.dataTransfer,t.type)]:U4(t)?[2,E4(t)]:Array.isArray(t)&&t.every(function(A){return"getFile"in A&&typeof A.getFile=="function"})?[2,F4(t)]:[2,[]]})})}function x4(t){return Eu(t)}function U4(t){return Eu(t)&&Eu(t.target)}function Eu(t){return typeof t=="object"&&t!==null}function E4(t){return Yp(t.target.files).map(function(e){return ea(e)})}function F4(t){return es(this,void 0,void 0,function(){var e;return ts(this,function(A){switch(A.label){case 0:return[4,Promise.all(t.map(function(r){return r.getFile()}))];case 1:return e=A.sent(),[2,e.map(function(r){return ea(r)})]}})})}function $4(t,e){return es(this,void 0,void 0,function(){var A,r;return ts(this,function(n){switch(n.label){case 0:return t.items?(A=Yp(t.items).filter(function(i){return i.kind==="file"}),e!=="drop"?[2,A]:[4,Promise.all(A.map(k4))]):[3,2];case 1:return r=n.sent(),[2,Jw(lb(r))];case 2:return[2,Jw(Yp(t.files).map(function(i){return ea(i)}))]}})})}function Jw(t){return t.filter(function(e){return b4.indexOf(e.name)===-1})}function Yp(t){if(t===null)return[];for(var e=[],A=0;At.length)&&(e=t.length);for(var A=0,r=new Array(e);AA)return[!1,nB(A)];if(t.sizeA)return[!1,nB(A)]}return[!0,null]}function ai(t){return t!=null}function W4(t){var e=t.files,A=t.accept,r=t.minSize,n=t.maxSize,i=t.multiple,o=t.maxFiles,s=t.validator;return!i&&e.length>1||i&&o>=1&&e.length>o?!1:e.every(function(l){var a=fb(l,A),c=$l(a,1),u=c[0],f=db(l,r,n),d=$l(f,1),h=d[0],g=s?s(l):null;return u&&h&&!g})}function Fu(t){return typeof t.isPropagationStopped=="function"?t.isPropagationStopped():typeof t.cancelBubble<"u"?t.cancelBubble:!1}function Ua(t){return t.dataTransfer?Array.prototype.some.call(t.dataTransfer.types,function(e){return e==="Files"||e==="application/x-moz-file"}):!!t.target&&!!t.target.files}function oB(t){t.preventDefault()}function j4(t){return t.indexOf("MSIE")!==-1||t.indexOf("Trident/")!==-1}function G4(t){return t.indexOf("Edge/")!==-1}function z4(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return j4(t)||G4(t)}function zA(){for(var t=arguments.length,e=new Array(t),A=0;A1?n-1:0),o=1;ot.length)&&(e=t.length);for(var A=0,r=new Array(e);A=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(A[r]=t[r])}return A}function hP(t,e){if(t==null)return{};var A={},r=Object.keys(t),n,i;for(i=0;i=0)&&(A[n]=t[n]);return A}var bO=p.forwardRef(function(t,e){var A=t.children,r=$u(t,rP),n=Ob(r),i=n.open,o=$u(n,nP);return p.useImperativeHandle(e,function(){return{open:i}},[i]),q.createElement(p.Fragment,null,A(He(He({},o),{},{open:i})))});bO.displayName="Dropzone";var mb={disabled:!1,getFilesFromEvent:S4,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};bO.defaultProps=mb;bO.propTypes={children:Ce.func,accept:Ce.objectOf(Ce.arrayOf(Ce.string)),multiple:Ce.bool,preventDropOnDocument:Ce.bool,noClick:Ce.bool,noKeyboard:Ce.bool,noDrag:Ce.bool,noDragEventsBubbling:Ce.bool,minSize:Ce.number,maxSize:Ce.number,maxFiles:Ce.number,disabled:Ce.bool,getFilesFromEvent:Ce.func,onFileDialogCancel:Ce.func,onFileDialogOpen:Ce.func,useFsAccessApi:Ce.bool,autoFocus:Ce.bool,onDragEnter:Ce.func,onDragLeave:Ce.func,onDragOver:Ce.func,onDrop:Ce.func,onDropAccepted:Ce.func,onDropRejected:Ce.func,onError:Ce.func,validator:Ce.func};var Gp={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function Ob(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=He(He({},mb),t),A=e.accept,r=e.disabled,n=e.getFilesFromEvent,i=e.maxSize,o=e.minSize,s=e.multiple,l=e.maxFiles,a=e.onDragEnter,c=e.onDragLeave,u=e.onDragOver,f=e.onDrop,d=e.onDropAccepted,h=e.onDropRejected,g=e.onFileDialogCancel,B=e.onFileDialogOpen,m=e.useFsAccessApi,O=e.autoFocus,v=e.preventDropOnDocument,Q=e.noClick,C=e.noKeyboard,b=e.noDrag,S=e.noDragEventsBubbling,x=e.onError,U=e.validator,E=p.useMemo(function(){return eP(A)},[A]),T=p.useMemo(function(){return J4(A)},[A]),F=p.useMemo(function(){return typeof B=="function"?B:lB},[B]),H=p.useMemo(function(){return typeof g=="function"?g:lB},[g]),P=p.useRef(null),L=p.useRef(null),$=p.useReducer(pP,Gp),_=zd($,2),k=_[0],I=_[1],Z=k.isFocused,W=k.isFileDialogActive,J=p.useRef(typeof window<"u"&&window.isSecureContext&&m&&q4()),pe=function(){!J.current&&W&&setTimeout(function(){if(L.current){var te=L.current.files;te.length||(I({type:"closeDialog"}),H())}},300)};p.useEffect(function(){return window.addEventListener("focus",pe,!1),function(){window.removeEventListener("focus",pe,!1)}},[L,W,H,J]);var ne=p.useRef([]),me=function(te){P.current&&P.current.contains(te.target)||(te.preventDefault(),ne.current=[])};p.useEffect(function(){return v&&(document.addEventListener("dragover",oB,!1),document.addEventListener("drop",me,!1)),function(){v&&(document.removeEventListener("dragover",oB),document.removeEventListener("drop",me))}},[P,v]),p.useEffect(function(){return!r&&O&&P.current&&P.current.focus(),function(){}},[P,O,r]);var ie=p.useCallback(function(V){x?x(V):console.error(V)},[x]),z=p.useCallback(function(V){V.preventDefault(),V.persist(),_i(V),ne.current=[].concat(sP(ne.current),[V.target]),Ua(V)&&Promise.resolve(n(V)).then(function(te){if(!(Fu(V)&&!S)){var Ge=te.length,ft=Ge>0&&W4({files:te,accept:E,minSize:o,maxSize:i,multiple:s,maxFiles:l,validator:U}),eA=Ge>0&&!ft;I({isDragAccept:ft,isDragReject:eA,isDragActive:!0,type:"setDraggedFiles"}),a&&a(V)}}).catch(function(te){return ie(te)})},[n,a,ie,S,E,o,i,s,l,U]),ye=p.useCallback(function(V){V.preventDefault(),V.persist(),_i(V);var te=Ua(V);if(te&&V.dataTransfer)try{V.dataTransfer.dropEffect="copy"}catch{}return te&&u&&u(V),!1},[u,S]),Ve=p.useCallback(function(V){V.preventDefault(),V.persist(),_i(V);var te=ne.current.filter(function(ft){return P.current&&P.current.contains(ft)}),Ge=te.indexOf(V.target);Ge!==-1&&te.splice(Ge,1),ne.current=te,!(te.length>0)&&(I({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),Ua(V)&&c&&c(V))},[P,c,S]),Oe=p.useCallback(function(V,te){var Ge=[],ft=[];V.forEach(function(eA){var fs=fb(eA,E),Mi=zd(fs,2),Od=Mi[0],wd=Mi[1],Bd=db(eA,o,i),ca=zd(Bd,2),vd=ca[0],yd=ca[1],Qd=U?U(eA):null;if(Od&&vd&&!Qd)Ge.push(eA);else{var Cd=[wd,yd];Qd&&(Cd=Cd.concat(Qd)),ft.push({file:eA,errors:Cd.filter(function(V$){return V$})})}}),(!s&&Ge.length>1||s&&l>=1&&Ge.length>l)&&(Ge.forEach(function(eA){ft.push({file:eA,errors:[K4]})}),Ge.splice(0)),I({acceptedFiles:Ge,fileRejections:ft,type:"setFiles"}),f&&f(Ge,ft,te),ft.length>0&&h&&h(ft,te),Ge.length>0&&d&&d(Ge,te)},[I,s,E,o,i,l,f,d,h,U]),de=p.useCallback(function(V){V.preventDefault(),V.persist(),_i(V),ne.current=[],Ua(V)&&Promise.resolve(n(V)).then(function(te){Fu(V)&&!S||Oe(te,V)}).catch(function(te){return ie(te)}),I({type:"reset"})},[n,Oe,ie,S]),fe=p.useCallback(function(){if(J.current){I({type:"openDialog"}),F();var V={multiple:s,types:T};window.showOpenFilePicker(V).then(function(te){return n(te)}).then(function(te){Oe(te,null),I({type:"closeDialog"})}).catch(function(te){tP(te)?(H(te),I({type:"closeDialog"})):AP(te)?(J.current=!1,L.current?(L.current.value=null,L.current.click()):ie(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):ie(te)});return}L.current&&(I({type:"openDialog"}),F(),L.current.value=null,L.current.click())},[I,F,H,m,Oe,ie,T,s]),vt=p.useCallback(function(V){!P.current||!P.current.isEqualNode(V.target)||(V.key===" "||V.key==="Enter"||V.keyCode===32||V.keyCode===13)&&(V.preventDefault(),fe())},[P,fe]),yt=p.useCallback(function(){I({type:"focus"})},[]),hA=p.useCallback(function(){I({type:"blur"})},[]),br=p.useCallback(function(){Q||(z4()?setTimeout(fe,0):fe())},[Q,fe]),pA=function(te){return r?null:te},us=function(te){return C?null:pA(te)},Li=function(te){return b?null:pA(te)},_i=function(te){S&&te.stopPropagation()},Ni=p.useMemo(function(){return function(){var V=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=V.refKey,Ge=te===void 0?"ref":te,ft=V.role,eA=V.onKeyDown,fs=V.onFocus,Mi=V.onBlur,Od=V.onClick,wd=V.onDragEnter,Bd=V.onDragOver,ca=V.onDragLeave,vd=V.onDrop,yd=$u(V,iP);return He(He(jp({onKeyDown:us(zA(eA,vt)),onFocus:us(zA(fs,yt)),onBlur:us(zA(Mi,hA)),onClick:pA(zA(Od,br)),onDragEnter:Li(zA(wd,z)),onDragOver:Li(zA(Bd,ye)),onDragLeave:Li(zA(ca,Ve)),onDrop:Li(zA(vd,de)),role:typeof ft=="string"&&ft!==""?ft:"presentation"},Ge,P),!r&&!C?{tabIndex:0}:{}),yd)}},[P,vt,yt,hA,br,z,ye,Ve,de,C,b,r]),Z$=p.useCallback(function(V){V.stopPropagation()},[]),X$=p.useMemo(function(){return function(){var V=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=V.refKey,Ge=te===void 0?"ref":te,ft=V.onChange,eA=V.onClick,fs=$u(V,oP),Mi=jp({accept:E,multiple:s,type:"file",style:{display:"none"},onChange:pA(zA(ft,de)),onClick:pA(zA(eA,Z$)),tabIndex:-1},Ge,L);return He(He({},Mi),fs)}},[L,A,s,de,r]);return He(He({},k),{},{isFocused:Z&&!r,getRootProps:Ni,getInputProps:X$,rootRef:P,inputRef:L,open:pA(fe)})}function pP(t,e){switch(e.type){case"focus":return He(He({},t),{},{isFocused:!0});case"blur":return He(He({},t),{},{isFocused:!1});case"openDialog":return He(He({},Gp),{},{isFileDialogActive:!0});case"closeDialog":return He(He({},t),{},{isFileDialogActive:!1});case"setDraggedFiles":return He(He({},t),{},{isDragActive:e.isDragActive,isDragAccept:e.isDragAccept,isDragReject:e.isDragReject});case"setFiles":return He(He({},t),{},{acceptedFiles:e.acceptedFiles,fileRejections:e.fileRejections});case"reset":return He({},Gp);default:return t}}function lB(){}let gP={data:""},mP=t=>typeof window=="object"?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||gP,OP=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,wP=/\/\*[^]*?\*\/| +/g,aB=/\n+/g,gn=(t,e)=>{let A="",r="",n="";for(let i in t){let o=t[i];i[0]=="@"?i[1]=="i"?A=i+" "+o+";":r+=i[1]=="f"?gn(o,i):i+"{"+gn(o,i[1]=="k"?"":e)+"}":typeof o=="object"?r+=gn(o,e?e.replace(/([^,])+/g,s=>i.replace(/(^:.*)|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):i):o!=null&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),n+=gn.p?gn.p(i,o):i+":"+o+";")}return A+(e&&n?e+"{"+n+"}":n)+r},Sr={},wb=t=>{if(typeof t=="object"){let e="";for(let A in t)e+=A+wb(t[A]);return e}return t},BP=(t,e,A,r,n)=>{let i=wb(t),o=Sr[i]||(Sr[i]=(l=>{let a=0,c=11;for(;a>>0;return"go"+c})(i));if(!Sr[o]){let l=i!==t?t:(a=>{let c,u,f=[{}];for(;c=OP.exec(a.replace(wP,""));)c[4]?f.shift():c[3]?(u=c[3].replace(aB," ").trim(),f.unshift(f[0][u]=f[0][u]||{})):f[0][c[1]]=c[2].replace(aB," ").trim();return f[0]})(t);Sr[o]=gn(n?{["@keyframes "+o]:l}:l,A?"":"."+o)}let s=A&&Sr.g?Sr.g:null;return A&&(Sr.g=Sr[o]),((l,a,c,u)=>{u?a.data=a.data.replace(u,l):a.data.indexOf(l)===-1&&(a.data=c?l+a.data:a.data+l)})(Sr[o],e,r,s),o},vP=(t,e,A)=>t.reduce((r,n,i)=>{let o=e[i];if(o&&o.call){let s=o(A),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;o=l?"."+l:s&&typeof s=="object"?s.props?"":gn(s,""):s===!1?"":s}return r+n+(o??"")},"");function Pf(t){let e=this||{},A=t.call?t(e.p):t;return BP(A.unshift?A.raw?vP(A,[].slice.call(arguments,1),e.p):A.reduce((r,n)=>Object.assign(r,n&&n.call?n(e.p):n),{}):A,mP(e.target),e.g,e.o,e.k)}let Bb,zp,qp;Pf.bind({g:1});let Zr=Pf.bind({k:1});function yP(t,e,A,r){gn.p=e,Bb=t,zp=A,qp=r}function ti(t,e){let A=this||{};return function(){let r=arguments;function n(i,o){let s=Object.assign({},i),l=s.className||n.className;A.p=Object.assign({theme:zp&&zp()},s),A.o=/ *go\d+/.test(l),s.className=Pf.apply(A,r)+(l?" "+l:""),e&&(s.ref=o);let a=t;return t[0]&&(a=s.as||t,delete s.as),qp&&a[0]&&qp(s),Bb(a,s)}return e?e(n):n}}var QP=t=>typeof t=="function",ku=(t,e)=>QP(t)?t(e):t,CP=(()=>{let t=0;return()=>(++t).toString()})(),vb=(()=>{let t;return()=>{if(t===void 0&&typeof window<"u"){let e=matchMedia("(prefers-reduced-motion: reduce)");t=!e||e.matches}return t}})(),bP=20,Ic=new Map,SP=1e3,cB=t=>{if(Ic.has(t))return;let e=setTimeout(()=>{Ic.delete(t),Ri({type:4,toastId:t})},SP);Ic.set(t,e)},xP=t=>{let e=Ic.get(t);e&&clearTimeout(e)},Jp=(t,e)=>{switch(e.type){case 0:return{...t,toasts:[e.toast,...t.toasts].slice(0,bP)};case 1:return e.toast.id&&xP(e.toast.id),{...t,toasts:t.toasts.map(i=>i.id===e.toast.id?{...i,...e.toast}:i)};case 2:let{toast:A}=e;return t.toasts.find(i=>i.id===A.id)?Jp(t,{type:1,toast:A}):Jp(t,{type:0,toast:A});case 3:let{toastId:r}=e;return r?cB(r):t.toasts.forEach(i=>{cB(i.id)}),{...t,toasts:t.toasts.map(i=>i.id===r||r===void 0?{...i,visible:!1}:i)};case 4:return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(i=>i.id!==e.toastId)};case 5:return{...t,pausedAt:e.time};case 6:let n=e.time-(t.pausedAt||0);return{...t,pausedAt:void 0,toasts:t.toasts.map(i=>({...i,pauseDuration:i.pauseDuration+n}))}}},Rc=[],Dc={toasts:[],pausedAt:void 0},Ri=t=>{Dc=Jp(Dc,t),Rc.forEach(e=>{e(Dc)})},UP={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},EP=(t={})=>{let[e,A]=p.useState(Dc);p.useEffect(()=>(Rc.push(A),()=>{let n=Rc.indexOf(A);n>-1&&Rc.splice(n,1)}),[e]);let r=e.toasts.map(n=>{var i,o;return{...t,...t[n.type],...n,duration:n.duration||((i=t[n.type])==null?void 0:i.duration)||(t==null?void 0:t.duration)||UP[n.type],style:{...t.style,...(o=t[n.type])==null?void 0:o.style,...n.style}}});return{...e,toasts:r}},FP=(t,e="blank",A)=>({createdAt:Date.now(),visible:!0,type:e,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0,...A,id:(A==null?void 0:A.id)||CP()}),ta=t=>(e,A)=>{let r=FP(e,t,A);return Ri({type:2,toast:r}),r.id},ct=(t,e)=>ta("blank")(t,e);ct.error=ta("error");ct.success=ta("success");ct.loading=ta("loading");ct.custom=ta("custom");ct.dismiss=t=>{Ri({type:3,toastId:t})};ct.remove=t=>Ri({type:4,toastId:t});ct.promise=(t,e,A)=>{let r=ct.loading(e.loading,{...A,...A==null?void 0:A.loading});return t.then(n=>(ct.success(ku(e.success,n),{id:r,...A,...A==null?void 0:A.success}),n)).catch(n=>{ct.error(ku(e.error,n),{id:r,...A,...A==null?void 0:A.error})}),t};var $P=(t,e)=>{Ri({type:1,toast:{id:t,height:e}})},kP=()=>{Ri({type:5,time:Date.now()})},PP=t=>{let{toasts:e,pausedAt:A}=EP(t);p.useEffect(()=>{if(A)return;let i=Date.now(),o=e.map(s=>{if(s.duration===1/0)return;let l=(s.duration||0)+s.pauseDuration-(i-s.createdAt);if(l<0){s.visible&&ct.dismiss(s.id);return}return setTimeout(()=>ct.dismiss(s.id),l)});return()=>{o.forEach(s=>s&&clearTimeout(s))}},[e,A]);let r=p.useCallback(()=>{A&&Ri({type:6,time:Date.now()})},[A]),n=p.useCallback((i,o)=>{let{reverseOrder:s=!1,gutter:l=8,defaultPosition:a}=o||{},c=e.filter(d=>(d.position||a)===(i.position||a)&&d.height),u=c.findIndex(d=>d.id===i.id),f=c.filter((d,h)=>hd.visible).slice(...s?[f+1]:[0,f]).reduce((d,h)=>d+(h.height||0)+l,0)},[e]);return{toasts:e,handlers:{updateHeight:$P,startPause:kP,endPause:r,calculateOffset:n}}},TP=Zr` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,IP=Zr` +from { + transform: scale(0); + opacity: 0; +} +to { + transform: scale(1); + opacity: 1; +}`,RP=Zr` +from { + transform: scale(0) rotate(90deg); + opacity: 0; +} +to { + transform: scale(1) rotate(90deg); + opacity: 1; +}`,DP=ti("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${t=>t.primary||"#ff4b4b"}; + position: relative; + transform: rotate(45deg); + + animation: ${TP} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + + &:after, + &:before { + content: ''; + animation: ${IP} 0.15s ease-out forwards; + animation-delay: 150ms; + position: absolute; + border-radius: 3px; + opacity: 0; + background: ${t=>t.secondary||"#fff"}; + bottom: 9px; + left: 4px; + height: 2px; + width: 12px; + } + + &:before { + animation: ${RP} 0.15s ease-out forwards; + animation-delay: 180ms; + transform: rotate(90deg); + } +`,HP=Zr` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`,LP=ti("div")` + width: 12px; + height: 12px; + box-sizing: border-box; + border: 2px solid; + border-radius: 100%; + border-color: ${t=>t.secondary||"#e0e0e0"}; + border-right-color: ${t=>t.primary||"#616161"}; + animation: ${HP} 1s linear infinite; +`,_P=Zr` +from { + transform: scale(0) rotate(45deg); + opacity: 0; +} +to { + transform: scale(1) rotate(45deg); + opacity: 1; +}`,NP=Zr` +0% { + height: 0; + width: 0; + opacity: 0; +} +40% { + height: 0; + width: 6px; + opacity: 1; +} +100% { + opacity: 1; + height: 10px; +}`,MP=ti("div")` + width: 20px; + opacity: 0; + height: 20px; + border-radius: 10px; + background: ${t=>t.primary||"#61d345"}; + position: relative; + transform: rotate(45deg); + + animation: ${_P} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; + animation-delay: 100ms; + &:after { + content: ''; + box-sizing: border-box; + animation: ${NP} 0.2s ease-out forwards; + opacity: 0; + animation-delay: 200ms; + position: absolute; + border-right: 2px solid; + border-bottom: 2px solid; + border-color: ${t=>t.secondary||"#fff"}; + bottom: 6px; + left: 6px; + height: 10px; + width: 6px; + } +`,ZP=ti("div")` + position: absolute; +`,XP=ti("div")` + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-width: 20px; + min-height: 20px; +`,VP=Zr` +from { + transform: scale(0.6); + opacity: 0.4; +} +to { + transform: scale(1); + opacity: 1; +}`,YP=ti("div")` + position: relative; + transform: scale(0.6); + opacity: 0.4; + min-width: 20px; + animation: ${VP} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + forwards; +`,KP=({toast:t})=>{let{icon:e,type:A,iconTheme:r}=t;return e!==void 0?typeof e=="string"?p.createElement(YP,null,e):e:A==="blank"?null:p.createElement(XP,null,p.createElement(LP,{...r}),A!=="loading"&&p.createElement(ZP,null,A==="error"?p.createElement(DP,{...r}):p.createElement(MP,{...r})))},WP=t=>` +0% {transform: translate3d(0,${t*-200}%,0) scale(.6); opacity:.5;} +100% {transform: translate3d(0,0,0) scale(1); opacity:1;} +`,jP=t=>` +0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} +100% {transform: translate3d(0,${t*-150}%,-1px) scale(.6); opacity:0;} +`,GP="0%{opacity:0;} 100%{opacity:1;}",zP="0%{opacity:1;} 100%{opacity:0;}",qP=ti("div")` + display: flex; + align-items: center; + background: #fff; + color: #363636; + line-height: 1.3; + will-change: transform; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05); + max-width: 350px; + pointer-events: auto; + padding: 8px 10px; + border-radius: 8px; +`,JP=ti("div")` + display: flex; + justify-content: center; + margin: 4px 10px; + color: inherit; + flex: 1 1 auto; + white-space: pre-line; +`,eT=(t,e)=>{let A=t.includes("top")?1:-1,[r,n]=vb()?[GP,zP]:[WP(A),jP(A)];return{animation:e?`${Zr(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Zr(n)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},tT=p.memo(({toast:t,position:e,style:A,children:r})=>{let n=t.height?eT(t.position||e||"top-center",t.visible):{opacity:0},i=p.createElement(KP,{toast:t}),o=p.createElement(JP,{...t.ariaProps},ku(t.message,t));return p.createElement(qP,{className:t.className,style:{...n,...A,...t.style}},typeof r=="function"?r({icon:i,message:o}):p.createElement(p.Fragment,null,i,o))});yP(p.createElement);var AT=({id:t,className:e,style:A,onHeightUpdate:r,children:n})=>{let i=p.useCallback(o=>{if(o){let s=()=>{let l=o.getBoundingClientRect().height;r(t,l)};s(),new MutationObserver(s).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[t,r]);return p.createElement("div",{ref:i,className:e,style:A},n)},rT=(t,e)=>{let A=t.includes("top"),r=A?{top:0}:{bottom:0},n=t.includes("center")?{justifyContent:"center"}:t.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:vb()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${e*(A?1:-1)}px)`,...r,...n}},nT=Pf` + z-index: 9999; + > * { + pointer-events: auto; + } +`,Ea=16,iT=({reverseOrder:t,position:e="top-center",toastOptions:A,gutter:r,children:n,containerStyle:i,containerClassName:o})=>{let{toasts:s,handlers:l}=PP(A);return p.createElement("div",{style:{position:"fixed",zIndex:9999,top:Ea,left:Ea,right:Ea,bottom:Ea,pointerEvents:"none",...i},className:o,onMouseEnter:l.startPause,onMouseLeave:l.endPause},s.map(a=>{let c=a.position||e,u=l.calculateOffset(a,{reverseOrder:t,gutter:r,defaultPosition:e}),f=rT(c,u);return p.createElement(AT,{id:a.id,key:a.id,onHeightUpdate:l.updateHeight,className:a.visible?nT:"",style:f},a.type==="custom"?ku(a.message,a):n?n(a):p.createElement(tT,{toast:a,position:c}))}))},vA=ct;const oT={flex:1,width:"80%",margin:"0 auto",minHeight:"400px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"20px",borderWidth:2,borderRadius:2,borderColor:"#eeeeee",borderStyle:"dashed",backgroundColor:"#fafafa",color:"#bdbdbd",outline:"none",transition:"border .24s ease-in-out"},sT={borderColor:"#2196f3"},lT={borderColor:"#00e676"},aT={borderColor:"#ff1744"};function cT(t){return new Promise((e,A)=>{const r=new FileReader;r.onload=()=>e(r.result),r.onerror=n=>A(n),r.readAsDataURL(t)})}function uT({setReferenceImages:t}){const[e,A]=p.useState([]),{getRootProps:r,getInputProps:n,isFocused:i,isDragAccept:o,isDragReject:s}=Ob({maxFiles:1,maxSize:1024*1024*5,accept:{"image/png":[".png"],"image/jpeg":[".jpeg"],"image/jpg":[".jpg"]},onDrop:a=>{A(a.map(c=>Object.assign(c,{preview:URL.createObjectURL(c)}))),Promise.all(a.map(c=>cT(c))).then(c=>{t(c.map(u=>u))}).catch(c=>{ct.error("Error reading files"+c),console.error("Error reading files:",c)})},onDropRejected:a=>{ct.error(a[0].errors[0].message)}});p.useEffect(()=>()=>e.forEach(a=>URL.revokeObjectURL(a.preview)),[e]);const l=p.useMemo(()=>({...oT,...i?sT:{},...o?lT:{},...s?aT:{}}),[i,o,s]);return y.jsx("section",{className:"container cursor-pointer",children:y.jsxs("div",{...r({style:l}),children:[y.jsx("input",{...n()}),y.jsxs("p",{className:"text-slate-700 text-lg",children:["Drag & drop a screenshot here, ",y.jsx("br",{}),"or paste from clipboard, ",y.jsx("br",{}),"or click to upload"]})]})})}function fT({code:t}){const e=p.useRef(null);return p.useEffect(()=>{e.current&&(e.current.scrollLeft=e.current.scrollWidth)},[t]),y.jsx("div",{ref:e,className:`w-full px-2 bg-black text-green-400 whitespace-nowrap flex \r + overflow-x-auto font-mono text-[10px] my-4`,children:t})}var yb={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(t){(function(){var e={}.hasOwnProperty;function A(){for(var r=[],n=0;n{const n=r.current;n&&n.contentDocument&&(n.contentDocument.open(),n.contentDocument.write(A),n.contentDocument.close())},[A]),y.jsx("div",{className:"flex justify-center mx-2",children:y.jsx("iframe",{id:`preview-${e}`,ref:r,title:"Preview",className:SO("border-[4px] border-black rounded-[20px] shadow-lg","transform scale-[0.9] origin-top",{"w-full h-[832px]":e==="desktop","w-[400px] h-[832px]":e==="mobile"})})})}const il={}.VITE_IS_DEPLOYED==="true"||!1,hT={}.VITE_WS_BACKEND_URL||"ws://127.0.0.1:7001",Qb={}.VITE_HTTP_BACKEND_URL||"http://127.0.0.1:7001",Cb={}.VITE_PICO_BACKEND_FORM_SECRET||null,bb=4333,fB="Error generating code. Check the Developer Console AND the backend logs for details. Feel free to open a Github issue.",pT="Code generation cancelled";function gT(t,e,A,r,n,i,o){const s=`${hT}/generate-code`;console.log("Connecting to backend @ ",s);const l=new WebSocket(s);t.current=l,l.addEventListener("open",()=>{l.send(JSON.stringify(e))}),l.addEventListener("message",async a=>{const c=JSON.parse(a.data);c.type==="chunk"?A(c.value):c.type==="status"?n(c.value):c.type==="setCode"?r(c.value):c.type==="error"&&(console.error("Error generating code",c.value),vA.error(c.value))}),l.addEventListener("close",a=>{console.log("Connection closed",a.code,a.reason),a.code===bb?(vA.success(pT),i()):a.code!==1e3?(console.error("WebSocket error code",a),vA.error(fB)):o()}),l.addEventListener("error",a=>{console.error("WebSocket error",a),vA.error(fB)})}function mT(){return y.jsxs("div",{role:"status",children:[y.jsxs("svg",{"aria-hidden":"true",className:"w-6 h-6 text-gray-200 animate-spin dark:text-gray-600 fill-gray-800",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[y.jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),y.jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]}),y.jsx("span",{className:"sr-only",children:"Loading..."})]})}var Sb={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},dB=q.createContext&&q.createContext(Sb),Rn=globalThis&&globalThis.__assign||function(){return Rn=Object.assign||function(t){for(var e,A=1,r=arguments.length;At.forEach(A=>xT(A,e))}function Ie(...t){return p.useCallback(Ub(...t),t)}function UT(t,e){const A=p.createContext(e);function r(i){const{children:o,...s}=i,l=p.useMemo(()=>s,Object.values(s));return p.createElement(A.Provider,{value:l},o)}function n(i){const o=p.useContext(A);if(o)return o;if(e!==void 0)return e;throw new Error(`\`${i}\` must be used within \`${t}\``)}return r.displayName=t+"Provider",[r,n]}function YA(t,e=[]){let A=[];function r(i,o){const s=p.createContext(o),l=A.length;A=[...A,o];function a(u){const{scope:f,children:d,...h}=u,g=(f==null?void 0:f[t][l])||s,B=p.useMemo(()=>h,Object.values(h));return p.createElement(g.Provider,{value:B},d)}function c(u,f){const d=(f==null?void 0:f[t][l])||s,h=p.useContext(d);if(h)return h;if(o!==void 0)return o;throw new Error(`\`${u}\` must be used within \`${i}\``)}return a.displayName=i+"Provider",[a,c]}const n=()=>{const i=A.map(o=>p.createContext(o));return function(s){const l=(s==null?void 0:s[t])||i;return p.useMemo(()=>({[`__scope${t}`]:{...s,[t]:l}}),[s,l])}};return n.scopeName=t,[r,ET(n,...e)]}function ET(...t){const e=t[0];if(t.length===1)return e;const A=()=>{const r=t.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(i){const o=r.reduce((s,{useScope:l,scopeName:a})=>{const u=l(i)[`__scope${a}`];return{...s,...u}},{});return p.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return A.scopeName=e.scopeName,A}function Or(t){const e=p.useRef(t);return p.useEffect(()=>{e.current=t}),p.useMemo(()=>(...A)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...A)},[])}function Xr({prop:t,defaultProp:e,onChange:A=()=>{}}){const[r,n]=FT({defaultProp:e,onChange:A}),i=t!==void 0,o=i?t:r,s=Or(A),l=p.useCallback(a=>{if(i){const u=typeof a=="function"?a(t):a;u!==t&&s(u)}else n(a)},[i,t,n,s]);return[o,l]}function FT({defaultProp:t,onChange:e}){const A=p.useState(t),[r]=A,n=p.useRef(r),i=Or(e);return p.useEffect(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),A}function Eb(t){const e=p.useRef({value:t,previous:t});return p.useMemo(()=>(e.current.value!==t&&(e.current.previous=e.current.value,e.current.value=t),e.current.previous),[t])}const qt=globalThis!=null&&globalThis.document?p.useLayoutEffect:()=>{};function Fb(t){const[e,A]=p.useState(void 0);return qt(()=>{if(t){A({width:t.offsetWidth,height:t.offsetHeight});const r=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;const i=n[0];let o,s;if("borderBoxSize"in i){const l=i.borderBoxSize,a=Array.isArray(l)?l[0]:l;o=a.inlineSize,s=a.blockSize}else o=t.offsetWidth,s=t.offsetHeight;A({width:o,height:s})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else A(void 0)},[t]),e}const Ui=p.forwardRef((t,e)=>{const{children:A,...r}=t,n=p.Children.toArray(A),i=n.find($T);if(i){const o=i.props.children,s=n.map(l=>l===i?p.Children.count(o)>1?p.Children.only(null):p.isValidElement(o)?o.props.children:null:l);return p.createElement(eg,M({},r,{ref:e}),p.isValidElement(o)?p.cloneElement(o,void 0,s):null)}return p.createElement(eg,M({},r,{ref:e}),A)});Ui.displayName="Slot";const eg=p.forwardRef((t,e)=>{const{children:A,...r}=t;return p.isValidElement(A)?p.cloneElement(A,{...kT(r,A.props),ref:e?Ub(e,A.ref):A.ref}):p.Children.count(A)>1?p.Children.only(null):null});eg.displayName="SlotClone";const $b=({children:t})=>p.createElement(p.Fragment,null,t);function $T(t){return p.isValidElement(t)&&t.type===$b}function kT(t,e){const A={...e};for(const r in e){const n=t[r],i=e[r];/^on[A-Z]/.test(r)?n&&i?A[r]=(...s)=>{i(...s),n(...s)}:n&&(A[r]=n):r==="style"?A[r]={...n,...i}:r==="className"&&(A[r]=[n,i].filter(Boolean).join(" "))}return{...t,...A}}const PT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],se=PT.reduce((t,e)=>{const A=p.forwardRef((r,n)=>{const{asChild:i,...o}=r,s=i?Ui:e;return p.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),p.createElement(s,M({},o,{ref:n}))});return A.displayName=`Primitive.${e}`,{...t,[e]:A}},{});function TT(t,e){t&&Ii.flushSync(()=>t.dispatchEvent(e))}const kb="Switch",[IT,EK]=YA(kb),[RT,DT]=IT(kb),HT=p.forwardRef((t,e)=>{const{__scopeSwitch:A,name:r,checked:n,defaultChecked:i,required:o,disabled:s,value:l="on",onCheckedChange:a,...c}=t,[u,f]=p.useState(null),d=Ie(e,O=>f(O)),h=p.useRef(!1),g=u?!!u.closest("form"):!0,[B=!1,m]=Xr({prop:n,defaultProp:i,onChange:a});return p.createElement(RT,{scope:A,checked:B,disabled:s},p.createElement(se.button,M({type:"button",role:"switch","aria-checked":B,"aria-required":o,"data-state":Pb(B),"data-disabled":s?"":void 0,disabled:s,value:l},c,{ref:d,onClick:ae(t.onClick,O=>{m(v=>!v),g&&(h.current=O.isPropagationStopped(),h.current||O.stopPropagation())})})),g&&p.createElement(NT,{control:u,bubbles:!h.current,name:r,value:l,checked:B,required:o,disabled:s,style:{transform:"translateX(-100%)"}}))}),LT="SwitchThumb",_T=p.forwardRef((t,e)=>{const{__scopeSwitch:A,...r}=t,n=DT(LT,A);return p.createElement(se.span,M({"data-state":Pb(n.checked),"data-disabled":n.disabled?"":void 0},r,{ref:e}))}),NT=t=>{const{control:e,checked:A,bubbles:r=!0,...n}=t,i=p.useRef(null),o=Eb(A),s=Fb(e);return p.useEffect(()=>{const l=i.current,a=window.HTMLInputElement.prototype,u=Object.getOwnPropertyDescriptor(a,"checked").set;if(o!==A&&u){const f=new Event("click",{bubbles:r});u.call(l,A),l.dispatchEvent(f)}},[o,A,r]),p.createElement("input",M({type:"checkbox","aria-hidden":!0,defaultChecked:A},n,{tabIndex:-1,ref:i,style:{...t.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function Pb(t){return t?"checked":"unchecked"}const Tb=HT,MT=_T;function Ib(t){var e,A,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;es(i)))==null?void 0:o.classGroupId}const hB=/^\[(.+)\]$/;function XT(t){if(hB.test(t)){const e=hB.exec(t)[1],A=e==null?void 0:e.substring(0,e.indexOf(":"));if(A)return"arbitrary.."+A}}function VT(t){const{theme:e,prefix:A}=t,r={nextPart:new Map,validators:[]};return KT(Object.entries(t.classGroups),A).forEach(([i,o])=>{tg(o,r,i,e)}),r}function tg(t,e,A,r){t.forEach(n=>{if(typeof n=="string"){const i=n===""?e:pB(e,n);i.classGroupId=A;return}if(typeof n=="function"){if(YT(n)){tg(n(r),e,A,r);return}e.validators.push({validator:n,classGroupId:A});return}Object.entries(n).forEach(([i,o])=>{tg(o,pB(e,i),A,r)})})}function pB(t,e){let A=t;return e.split(xO).forEach(r=>{A.nextPart.has(r)||A.nextPart.set(r,{nextPart:new Map,validators:[]}),A=A.nextPart.get(r)}),A}function YT(t){return t.isThemeGetter}function KT(t,e){return e?t.map(([A,r])=>{const n=r.map(i=>typeof i=="string"?e+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([o,s])=>[e+o,s])):i);return[A,n]}):t}function WT(t){if(t<1)return{get:()=>{},set:()=>{}};let e=0,A=new Map,r=new Map;function n(i,o){A.set(i,o),e++,e>t&&(e=0,r=A,A=new Map)}return{get(i){let o=A.get(i);if(o!==void 0)return o;if((o=r.get(i))!==void 0)return n(i,o),o},set(i,o){A.has(i)?A.set(i,o):n(i,o)}}}const Hb="!";function jT(t){const e=t.separator,A=e.length===1,r=e[0],n=e.length;return function(o){const s=[];let l=0,a=0,c;for(let g=0;ga?c-a:void 0;return{modifiers:s,hasImportantModifier:f,baseClassName:d,maybePostfixModifierPosition:h}}}function GT(t){if(t.length<=1)return t;const e=[];let A=[];return t.forEach(r=>{r[0]==="["?(e.push(...A.sort(),r),A=[]):A.push(r)}),e.push(...A.sort()),e}function zT(t){return{cache:WT(t.cacheSize),splitModifiers:jT(t),...ZT(t)}}const qT=/\s+/;function JT(t,e){const{splitModifiers:A,getClassGroupId:r,getConflictingClassGroupIds:n}=e,i=new Set;return t.trim().split(qT).map(o=>{const{modifiers:s,hasImportantModifier:l,baseClassName:a,maybePostfixModifierPosition:c}=A(o);let u=r(c?a.substring(0,c):a),f=!!c;if(!u){if(!c)return{isTailwindClass:!1,originalClassName:o};if(u=r(a),!u)return{isTailwindClass:!1,originalClassName:o};f=!1}const d=GT(s).join(":");return{isTailwindClass:!0,modifierId:l?d+Hb:d,classGroupId:u,originalClassName:o,hasPostfixModifier:f}}).reverse().filter(o=>{if(!o.isTailwindClass)return!0;const{modifierId:s,classGroupId:l,hasPostfixModifier:a}=o,c=s+l;return i.has(c)?!1:(i.add(c),n(l,a).forEach(u=>i.add(s+u)),!0)}).reverse().map(o=>o.originalClassName).join(" ")}function eI(){let t=0,e,A,r="";for(;tu(c),t());return A=zT(a),r=A.cache.get,n=A.cache.set,i=s,s(l)}function s(l){const a=r(l);if(a)return a;const c=JT(l,A);return n(l,c),c}return function(){return i(eI.apply(null,arguments))}}function Ee(t){const e=A=>A[t]||[];return e.isThemeGetter=!0,e}const _b=/^\[(?:([a-z-]+):)?(.+)\]$/i,AI=/^\d+\/\d+$/,rI=new Set(["px","full","screen"]),nI=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,iI=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,oI=/^-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,sI=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;function TA(t){return pi(t)||rI.has(t)||AI.test(t)}function An(t){return As(t,"length",pI)}function pi(t){return!!t&&!Number.isNaN(Number(t))}function Fa(t){return As(t,"number",pi)}function vs(t){return!!t&&Number.isInteger(Number(t))}function lI(t){return t.endsWith("%")&&pi(t.slice(0,-1))}function re(t){return _b.test(t)}function rn(t){return nI.test(t)}const aI=new Set(["length","size","percentage"]);function cI(t){return As(t,aI,Nb)}function uI(t){return As(t,"position",Nb)}const fI=new Set(["image","url"]);function dI(t){return As(t,fI,mI)}function hI(t){return As(t,"",gI)}function ys(){return!0}function As(t,e,A){const r=_b.exec(t);return r?r[1]?typeof e=="string"?r[1]===e:e.has(r[1]):A(r[2]):!1}function pI(t){return iI.test(t)}function Nb(){return!1}function gI(t){return oI.test(t)}function mI(t){return sI.test(t)}function OI(){const t=Ee("colors"),e=Ee("spacing"),A=Ee("blur"),r=Ee("brightness"),n=Ee("borderColor"),i=Ee("borderRadius"),o=Ee("borderSpacing"),s=Ee("borderWidth"),l=Ee("contrast"),a=Ee("grayscale"),c=Ee("hueRotate"),u=Ee("invert"),f=Ee("gap"),d=Ee("gradientColorStops"),h=Ee("gradientColorStopPositions"),g=Ee("inset"),B=Ee("margin"),m=Ee("opacity"),O=Ee("padding"),v=Ee("saturate"),Q=Ee("scale"),C=Ee("sepia"),b=Ee("skew"),S=Ee("space"),x=Ee("translate"),U=()=>["auto","contain","none"],E=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto",re,e],F=()=>[re,e],H=()=>["",TA,An],P=()=>["auto",pi,re],L=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],$=()=>["solid","dashed","dotted","double","none"],_=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter"],k=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",re],Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>[pi,Fa],J=()=>[pi,re];return{cacheSize:500,separator:":",theme:{colors:[ys],spacing:[TA,An],blur:["none","",rn,re],brightness:W(),borderColor:[t],borderRadius:["none","","full",rn,re],borderSpacing:F(),borderWidth:H(),contrast:W(),grayscale:I(),hueRotate:J(),invert:I(),gap:F(),gradientColorStops:[t],gradientColorStopPositions:[lI,An],inset:T(),margin:T(),opacity:W(),padding:F(),saturate:W(),scale:W(),sepia:I(),skew:J(),space:F(),translate:F()},classGroups:{aspect:[{aspect:["auto","square","video",re]}],container:["container"],columns:[{columns:[rn]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none"]}],clear:[{clear:["left","right","both","none"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...L(),re]}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:U()}],"overscroll-x":[{"overscroll-x":U()}],"overscroll-y":[{"overscroll-y":U()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",vs,re]}],basis:[{basis:T()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",re]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",vs,re]}],"grid-cols":[{"grid-cols":[ys]}],"col-start-end":[{col:["auto",{span:["full",vs,re]},re]}],"col-start":[{"col-start":P()}],"col-end":[{"col-end":P()}],"grid-rows":[{"grid-rows":[ys]}],"row-start-end":[{row:["auto",{span:[vs,re]},re]}],"row-start":[{"row-start":P()}],"row-end":[{"row-end":P()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",re]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",re]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...k()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...k(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...k(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[B]}],mx:[{mx:[B]}],my:[{my:[B]}],ms:[{ms:[B]}],me:[{me:[B]}],mt:[{mt:[B]}],mr:[{mr:[B]}],mb:[{mb:[B]}],ml:[{ml:[B]}],"space-x":[{"space-x":[S]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[S]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit",re,e]}],"min-w":[{"min-w":["min","max","fit",re,TA]}],"max-w":[{"max-w":["0","none","full","min","max","fit","prose",{screen:[rn]},rn,re]}],h:[{h:[re,e,"auto","min","max","fit"]}],"min-h":[{"min-h":["min","max","fit",TA,re]}],"max-h":[{"max-h":[re,e,"min","max","fit"]}],"font-size":[{text:["base",rn,An]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Fa]}],"font-family":[{font:[ys]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",re]}],"line-clamp":[{"line-clamp":["none",pi,Fa]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",TA,re]}],"list-image":[{"list-image":["none",re]}],"list-style-type":[{list:["none","disc","decimal",re]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[m]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",TA,An]}],"underline-offset":[{"underline-offset":["auto",TA,re]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",re]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",re]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[m]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...L(),uI]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",cI]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},dI]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[h]}],"gradient-via-pos":[{via:[h]}],"gradient-to-pos":[{to:[h]}],"gradient-from":[{from:[d]}],"gradient-via":[{via:[d]}],"gradient-to":[{to:[d]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[m]}],"border-style":[{border:[...$(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[m]}],"divide-style":[{divide:$()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...$()]}],"outline-offset":[{"outline-offset":[TA,re]}],"outline-w":[{outline:[TA,An]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:H()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[m]}],"ring-offset-w":[{"ring-offset":[TA,An]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",rn,hI]}],"shadow-color":[{shadow:[ys]}],opacity:[{opacity:[m]}],"mix-blend":[{"mix-blend":_()}],"bg-blend":[{"bg-blend":_()}],filter:[{filter:["","none"]}],blur:[{blur:[A]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",rn,re]}],grayscale:[{grayscale:[a]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[u]}],saturate:[{saturate:[v]}],sepia:[{sepia:[C]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[A]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[m]}],"backdrop-saturate":[{"backdrop-saturate":[v]}],"backdrop-sepia":[{"backdrop-sepia":[C]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",re]}],duration:[{duration:J()}],ease:[{ease:["linear","in","out","in-out",re]}],delay:[{delay:J()}],animate:[{animate:["none","spin","ping","pulse","bounce",re]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[Q]}],"scale-x":[{"scale-x":[Q]}],"scale-y":[{"scale-y":[Q]}],rotate:[{rotate:[vs,re]}],"translate-x":[{"translate-x":[x]}],"translate-y":[{"translate-y":[x]}],"skew-x":[{"skew-x":[b]}],"skew-y":[{"skew-y":[b]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",re]}],accent:[{accent:["auto",t]}],appearance:["appearance-none"],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",re]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",re]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[TA,An,Fa]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}const wI=tI(OI);function ce(...t){return wI(Rb(t))}function BI(t){return t.charAt(0).toUpperCase()+t.slice(1)}const UO=p.forwardRef(({className:t,...e},A)=>y.jsx(Tb,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",t),...e,ref:A,children:y.jsx(MT,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));UO.displayName=Tb.displayName;const gB=t=>typeof t=="boolean"?"".concat(t):t===0?"0":t,mB=Rb,EO=(t,e)=>A=>{var r;if((e==null?void 0:e.variants)==null)return mB(t,A==null?void 0:A.class,A==null?void 0:A.className);const{variants:n,defaultVariants:i}=e,o=Object.keys(n).map(a=>{const c=A==null?void 0:A[a],u=i==null?void 0:i[a];if(c===null)return null;const f=gB(c)||gB(u);return n[a][f]}),s=A&&Object.entries(A).reduce((a,c)=>{let[u,f]=c;return f===void 0||(a[u]=f),a},{}),l=e==null||(r=e.compoundVariants)===null||r===void 0?void 0:r.reduce((a,c)=>{let{class:u,className:f,...d}=c;return Object.entries(d).every(h=>{let[g,B]=h;return Array.isArray(B)?B.includes({...i,...s}[g]):{...i,...s}[g]===B})?[...a,u,f]:a},[]);return mB(t,o,l,A==null?void 0:A.class,A==null?void 0:A.className)},FO=EO("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),yA=p.forwardRef(({className:t,variant:e,size:A,asChild:r=!1,...n},i)=>{const o=r?Ui:"button";return y.jsx(o,{className:ce(FO({variant:e,size:A,className:t})),ref:i,...n})});yA.displayName="Button";const $O=p.forwardRef(({className:t,...e},A)=>y.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",t),ref:A,...e}));$O.displayName="Textarea";function kO(t){const e=t+"CollectionProvider",[A,r]=YA(e),[n,i]=A(e,{collectionRef:{current:null},itemMap:new Map}),o=d=>{const{scope:h,children:g}=d,B=q.useRef(null),m=q.useRef(new Map).current;return q.createElement(n,{scope:h,itemMap:m,collectionRef:B},g)},s=t+"CollectionSlot",l=q.forwardRef((d,h)=>{const{scope:g,children:B}=d,m=i(s,g),O=Ie(h,m.collectionRef);return q.createElement(Ui,{ref:O},B)}),a=t+"CollectionItemSlot",c="data-radix-collection-item",u=q.forwardRef((d,h)=>{const{scope:g,children:B,...m}=d,O=q.useRef(null),v=Ie(h,O),Q=i(a,g);return q.useEffect(()=>(Q.itemMap.set(O,{ref:O,...m}),()=>void Q.itemMap.delete(O))),q.createElement(Ui,{[c]:"",ref:v},B)});function f(d){const h=i(t+"CollectionConsumer",d);return q.useCallback(()=>{const B=h.collectionRef.current;if(!B)return[];const m=Array.from(B.querySelectorAll(`[${c}]`));return Array.from(h.itemMap.values()).sort((Q,C)=>m.indexOf(Q.ref.current)-m.indexOf(C.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:o,Slot:l,ItemSlot:u},f,r]}const vI=JQ["useId".toString()]||(()=>{});let yI=0;function pr(t){const[e,A]=p.useState(vI());return qt(()=>{t||A(r=>r??String(yI++))},[t]),t||(e?`radix-${e}`:"")}const QI=p.createContext(void 0);function Tf(t){const e=p.useContext(QI);return t||e||"ltr"}const qd="rovingFocusGroup.onEntryFocus",CI={bubbles:!1,cancelable:!0},PO="RovingFocusGroup",[Ag,Mb,bI]=kO(PO),[SI,Zb]=YA(PO,[bI]),[xI,UI]=SI(PO),EI=p.forwardRef((t,e)=>p.createElement(Ag.Provider,{scope:t.__scopeRovingFocusGroup},p.createElement(Ag.Slot,{scope:t.__scopeRovingFocusGroup},p.createElement(FI,M({},t,{ref:e}))))),FI=p.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:A,orientation:r,loop:n=!1,dir:i,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:a,...c}=t,u=p.useRef(null),f=Ie(e,u),d=Tf(i),[h=null,g]=Xr({prop:o,defaultProp:s,onChange:l}),[B,m]=p.useState(!1),O=Or(a),v=Mb(A),Q=p.useRef(!1),[C,b]=p.useState(0);return p.useEffect(()=>{const S=u.current;if(S)return S.addEventListener(qd,O),()=>S.removeEventListener(qd,O)},[O]),p.createElement(xI,{scope:A,orientation:r,dir:d,loop:n,currentTabStopId:h,onItemFocus:p.useCallback(S=>g(S),[g]),onItemShiftTab:p.useCallback(()=>m(!0),[]),onFocusableItemAdd:p.useCallback(()=>b(S=>S+1),[]),onFocusableItemRemove:p.useCallback(()=>b(S=>S-1),[])},p.createElement(se.div,M({tabIndex:B||C===0?-1:0,"data-orientation":r},c,{ref:f,style:{outline:"none",...t.style},onMouseDown:ae(t.onMouseDown,()=>{Q.current=!0}),onFocus:ae(t.onFocus,S=>{const x=!Q.current;if(S.target===S.currentTarget&&x&&!B){const U=new CustomEvent(qd,CI);if(S.currentTarget.dispatchEvent(U),!U.defaultPrevented){const E=v().filter(L=>L.focusable),T=E.find(L=>L.active),F=E.find(L=>L.id===h),P=[T,F,...E].filter(Boolean).map(L=>L.ref.current);Xb(P)}}Q.current=!1}),onBlur:ae(t.onBlur,()=>m(!1))})))}),$I="RovingFocusGroupItem",kI=p.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:A,focusable:r=!0,active:n=!1,tabStopId:i,...o}=t,s=pr(),l=i||s,a=UI($I,A),c=a.currentTabStopId===l,u=Mb(A),{onFocusableItemAdd:f,onFocusableItemRemove:d}=a;return p.useEffect(()=>{if(r)return f(),()=>d()},[r,f,d]),p.createElement(Ag.ItemSlot,{scope:A,id:l,focusable:r,active:n},p.createElement(se.span,M({tabIndex:c?0:-1,"data-orientation":a.orientation},o,{ref:e,onMouseDown:ae(t.onMouseDown,h=>{r?a.onItemFocus(l):h.preventDefault()}),onFocus:ae(t.onFocus,()=>a.onItemFocus(l)),onKeyDown:ae(t.onKeyDown,h=>{if(h.key==="Tab"&&h.shiftKey){a.onItemShiftTab();return}if(h.target!==h.currentTarget)return;const g=II(h,a.orientation,a.dir);if(g!==void 0){h.preventDefault();let m=u().filter(O=>O.focusable).map(O=>O.ref.current);if(g==="last")m.reverse();else if(g==="prev"||g==="next"){g==="prev"&&m.reverse();const O=m.indexOf(h.currentTarget);m=a.loop?RI(m,O+1):m.slice(O+1)}setTimeout(()=>Xb(m))}})})))}),PI={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function TI(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function II(t,e,A){const r=TI(t.key,A);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return PI[r]}function Xb(t){const e=document.activeElement;for(const A of t)if(A===e||(A.focus(),document.activeElement!==e))return}function RI(t,e){return t.map((A,r)=>t[(e+r)%t.length])}const DI=EI,HI=kI;function LI(t,e){return p.useReducer((A,r)=>{const n=e[A][r];return n??A},t)}const rs=t=>{const{present:e,children:A}=t,r=_I(e),n=typeof A=="function"?A({present:r.isPresent}):p.Children.only(A),i=Ie(r.ref,n.ref);return typeof A=="function"||r.isPresent?p.cloneElement(n,{ref:i}):null};rs.displayName="Presence";function _I(t){const[e,A]=p.useState(),r=p.useRef({}),n=p.useRef(t),i=p.useRef("none"),o=t?"mounted":"unmounted",[s,l]=LI(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const a=$a(r.current);i.current=s==="mounted"?a:"none"},[s]),qt(()=>{const a=r.current,c=n.current;if(c!==t){const f=i.current,d=$a(a);t?l("MOUNT"):d==="none"||(a==null?void 0:a.display)==="none"?l("UNMOUNT"):l(c&&f!==d?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,l]),qt(()=>{if(e){const a=u=>{const d=$a(r.current).includes(u.animationName);u.target===e&&d&&Ii.flushSync(()=>l("ANIMATION_END"))},c=u=>{u.target===e&&(i.current=$a(r.current))};return e.addEventListener("animationstart",c),e.addEventListener("animationcancel",a),e.addEventListener("animationend",a),()=>{e.removeEventListener("animationstart",c),e.removeEventListener("animationcancel",a),e.removeEventListener("animationend",a)}}else l("ANIMATION_END")},[e,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:p.useCallback(a=>{a&&(r.current=getComputedStyle(a)),A(a)},[])}}function $a(t){return(t==null?void 0:t.animationName)||"none"}const Vb="Tabs",[NI,FK]=YA(Vb,[Zb]),Yb=Zb(),[MI,TO]=NI(Vb),ZI=p.forwardRef((t,e)=>{const{__scopeTabs:A,value:r,onValueChange:n,defaultValue:i,orientation:o="horizontal",dir:s,activationMode:l="automatic",...a}=t,c=Tf(s),[u,f]=Xr({prop:r,onChange:n,defaultProp:i});return p.createElement(MI,{scope:A,baseId:pr(),value:u,onValueChange:f,orientation:o,dir:c,activationMode:l},p.createElement(se.div,M({dir:c,"data-orientation":o},a,{ref:e})))}),XI="TabsList",VI=p.forwardRef((t,e)=>{const{__scopeTabs:A,loop:r=!0,...n}=t,i=TO(XI,A),o=Yb(A);return p.createElement(DI,M({asChild:!0},o,{orientation:i.orientation,dir:i.dir,loop:r}),p.createElement(se.div,M({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),YI="TabsTrigger",KI=p.forwardRef((t,e)=>{const{__scopeTabs:A,value:r,disabled:n=!1,...i}=t,o=TO(YI,A),s=Yb(A),l=Kb(o.baseId,r),a=Wb(o.baseId,r),c=r===o.value;return p.createElement(HI,M({asChild:!0},s,{focusable:!n,active:c}),p.createElement(se.button,M({type:"button",role:"tab","aria-selected":c,"aria-controls":a,"data-state":c?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:l},i,{ref:e,onMouseDown:ae(t.onMouseDown,u=>{!n&&u.button===0&&u.ctrlKey===!1?o.onValueChange(r):u.preventDefault()}),onKeyDown:ae(t.onKeyDown,u=>{[" ","Enter"].includes(u.key)&&o.onValueChange(r)}),onFocus:ae(t.onFocus,()=>{const u=o.activationMode!=="manual";!c&&!n&&u&&o.onValueChange(r)})})))}),WI="TabsContent",jI=p.forwardRef((t,e)=>{const{__scopeTabs:A,value:r,forceMount:n,children:i,...o}=t,s=TO(WI,A),l=Kb(s.baseId,r),a=Wb(s.baseId,r),c=r===s.value,u=p.useRef(c);return p.useEffect(()=>{const f=requestAnimationFrame(()=>u.current=!1);return()=>cancelAnimationFrame(f)},[]),p.createElement(rs,{present:n||c},({present:f})=>p.createElement(se.div,M({"data-state":c?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":l,hidden:!f,id:a,tabIndex:0},o,{ref:e,style:{...t.style,animationDuration:u.current?"0s":void 0}}),f&&i))});function Kb(t,e){return`${t}-trigger-${e}`}function Wb(t,e){return`${t}-content-${e}`}const GI=ZI,jb=VI,Gb=KI,zb=jI,zI=GI,qb=p.forwardRef(({className:t,...e},A)=>y.jsx(jb,{ref:A,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t),...e}));qb.displayName=jb.displayName;const Hc=p.forwardRef(({className:t,...e},A)=>y.jsx(Gb,{ref:A,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",t),...e}));Hc.displayName=Gb.displayName;const Lc=p.forwardRef(({className:t,...e},A)=>y.jsx(zb,{ref:A,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...e}));Lc.displayName=zb.displayName;function qI(t,e=globalThis==null?void 0:globalThis.document){const A=Or(t);p.useEffect(()=>{const r=n=>{n.key==="Escape"&&A(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[A,e])}const rg="dismissableLayer.update",JI="dismissableLayer.pointerDownOutside",e5="dismissableLayer.focusOutside";let OB;const t5=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Jb=p.forwardRef((t,e)=>{var A;const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:s,onDismiss:l,...a}=t,c=p.useContext(t5),[u,f]=p.useState(null),d=(A=u==null?void 0:u.ownerDocument)!==null&&A!==void 0?A:globalThis==null?void 0:globalThis.document,[,h]=p.useState({}),g=Ie(e,x=>f(x)),B=Array.from(c.layers),[m]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),O=B.indexOf(m),v=u?B.indexOf(u):-1,Q=c.layersWithOutsidePointerEventsDisabled.size>0,C=v>=O,b=A5(x=>{const U=x.target,E=[...c.branches].some(T=>T.contains(U));!C||E||(i==null||i(x),s==null||s(x),x.defaultPrevented||l==null||l())},d),S=r5(x=>{const U=x.target;[...c.branches].some(T=>T.contains(U))||(o==null||o(x),s==null||s(x),x.defaultPrevented||l==null||l())},d);return qI(x=>{v===c.layers.size-1&&(n==null||n(x),!x.defaultPrevented&&l&&(x.preventDefault(),l()))},d),p.useEffect(()=>{if(u)return r&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(OB=d.body.style.pointerEvents,d.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),wB(),()=>{r&&c.layersWithOutsidePointerEventsDisabled.size===1&&(d.body.style.pointerEvents=OB)}},[u,d,r,c]),p.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),wB())},[u,c]),p.useEffect(()=>{const x=()=>h({});return document.addEventListener(rg,x),()=>document.removeEventListener(rg,x)},[]),p.createElement(se.div,M({},a,{ref:g,style:{pointerEvents:Q?C?"auto":"none":void 0,...t.style},onFocusCapture:ae(t.onFocusCapture,S.onFocusCapture),onBlurCapture:ae(t.onBlurCapture,S.onBlurCapture),onPointerDownCapture:ae(t.onPointerDownCapture,b.onPointerDownCapture)}))});function A5(t,e=globalThis==null?void 0:globalThis.document){const A=Or(t),r=p.useRef(!1),n=p.useRef(()=>{});return p.useEffect(()=>{const i=s=>{if(s.target&&!r.current){let c=function(){eS(JI,A,a,{discrete:!0})};var l=c;const a={originalEvent:s};s.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=c,e.addEventListener("click",n.current,{once:!0})):c()}else e.removeEventListener("click",n.current);r.current=!1},o=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),e.removeEventListener("pointerdown",i),e.removeEventListener("click",n.current)}},[e,A]),{onPointerDownCapture:()=>r.current=!0}}function r5(t,e=globalThis==null?void 0:globalThis.document){const A=Or(t),r=p.useRef(!1);return p.useEffect(()=>{const n=i=>{i.target&&!r.current&&eS(e5,A,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",n),()=>e.removeEventListener("focusin",n)},[e,A]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function wB(){const t=new CustomEvent(rg);document.dispatchEvent(t)}function eS(t,e,A,{discrete:r}){const n=A.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:A});e&&n.addEventListener(t,e,{once:!0}),r?TT(n,i):n.dispatchEvent(i)}const Jd="focusScope.autoFocusOnMount",eh="focusScope.autoFocusOnUnmount",BB={bubbles:!1,cancelable:!0},tS=p.forwardRef((t,e)=>{const{loop:A=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...o}=t,[s,l]=p.useState(null),a=Or(n),c=Or(i),u=p.useRef(null),f=Ie(e,g=>l(g)),d=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let O=function(b){if(d.paused||!s)return;const S=b.target;s.contains(S)?u.current=S:on(u.current,{select:!0})},v=function(b){if(d.paused||!s)return;const S=b.relatedTarget;S!==null&&(s.contains(S)||on(u.current,{select:!0}))},Q=function(b){if(document.activeElement===document.body)for(const x of b)x.removedNodes.length>0&&on(s)};var g=O,B=v,m=Q;document.addEventListener("focusin",O),document.addEventListener("focusout",v);const C=new MutationObserver(Q);return s&&C.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",O),document.removeEventListener("focusout",v),C.disconnect()}}},[r,s,d.paused]),p.useEffect(()=>{if(s){yB.add(d);const g=document.activeElement;if(!s.contains(g)){const m=new CustomEvent(Jd,BB);s.addEventListener(Jd,a),s.dispatchEvent(m),m.defaultPrevented||(n5(a5(AS(s)),{select:!0}),document.activeElement===g&&on(s))}return()=>{s.removeEventListener(Jd,a),setTimeout(()=>{const m=new CustomEvent(eh,BB);s.addEventListener(eh,c),s.dispatchEvent(m),m.defaultPrevented||on(g??document.body,{select:!0}),s.removeEventListener(eh,c),yB.remove(d)},0)}}},[s,a,c,d]);const h=p.useCallback(g=>{if(!A&&!r||d.paused)return;const B=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,m=document.activeElement;if(B&&m){const O=g.currentTarget,[v,Q]=i5(O);v&&Q?!g.shiftKey&&m===Q?(g.preventDefault(),A&&on(v,{select:!0})):g.shiftKey&&m===v&&(g.preventDefault(),A&&on(Q,{select:!0})):m===O&&g.preventDefault()}},[A,r,d.paused]);return p.createElement(se.div,M({tabIndex:-1},o,{ref:f,onKeyDown:h}))});function n5(t,{select:e=!1}={}){const A=document.activeElement;for(const r of t)if(on(r,{select:e}),document.activeElement!==A)return}function i5(t){const e=AS(t),A=vB(e,t),r=vB(e.reverse(),t);return[A,r]}function AS(t){const e=[],A=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const n=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||n?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;A.nextNode();)e.push(A.currentNode);return e}function vB(t,e){for(const A of t)if(!o5(A,{upTo:e}))return A}function o5(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function s5(t){return t instanceof HTMLInputElement&&"select"in t}function on(t,{select:e=!1}={}){if(t&&t.focus){const A=document.activeElement;t.focus({preventScroll:!0}),t!==A&&s5(t)&&e&&t.select()}}const yB=l5();function l5(){let t=[];return{add(e){const A=t[0];e!==A&&(A==null||A.pause()),t=QB(t,e),t.unshift(e)},remove(e){var A;t=QB(t,e),(A=t[0])===null||A===void 0||A.resume()}}}function QB(t,e){const A=[...t],r=A.indexOf(e);return r!==-1&&A.splice(r,1),A}function a5(t){return t.filter(e=>e.tagName!=="A")}const rS=p.forwardRef((t,e)=>{var A;const{container:r=globalThis==null||(A=globalThis.document)===null||A===void 0?void 0:A.body,...n}=t;return r?m4.createPortal(p.createElement(se.div,M({},n,{ref:e})),r):null});let th=0;function nS(){p.useEffect(()=>{var t,e;const A=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(t=A[0])!==null&&t!==void 0?t:CB()),document.body.insertAdjacentElement("beforeend",(e=A[1])!==null&&e!==void 0?e:CB()),th++,()=>{th===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),th--}},[])}function CB(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",t}var _c="right-scroll-bar-position",Nc="width-before-scroll-bar",c5="with-scroll-bars-hidden",u5="--removed-body-scroll-bar-size";function f5(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}function d5(t,e){var A=p.useState(function(){return{value:t,callback:e,facade:{get current(){return A.value},set current(r){var n=A.value;n!==r&&(A.value=r,A.callback(r,n))}}}})[0];return A.callback=e,A.facade}function h5(t,e){return d5(e||null,function(A){return t.forEach(function(r){return f5(r,A)})})}function p5(t){return t}function g5(t,e){e===void 0&&(e=p5);var A=[],r=!1,n={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return A.length?A[A.length-1]:t},useMedium:function(i){var o=e(i,r);return A.push(o),function(){A=A.filter(function(s){return s!==o})}},assignSyncMedium:function(i){for(r=!0;A.length;){var o=A;A=[],o.forEach(i)}A={push:function(s){return i(s)},filter:function(){return A}}},assignMedium:function(i){r=!0;var o=[];if(A.length){var s=A;A=[],s.forEach(i),o=A}var l=function(){var c=o;o=[],c.forEach(i)},a=function(){return Promise.resolve().then(l)};a(),A={push:function(c){o.push(c),a()},filter:function(c){return o=o.filter(c),A}}}};return n}function m5(t){t===void 0&&(t={});var e=g5(null);return e.options=sr({async:!0,ssr:!1},t),e}var iS=function(t){var e=t.sideCar,A=sb(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw new Error("Sidecar medium not found");return p.createElement(r,sr({},A))};iS.isSideCarExport=!0;function O5(t,e){return t.useMedium(e),iS}var oS=m5(),Ah=function(){},If=p.forwardRef(function(t,e){var A=p.useRef(null),r=p.useState({onScrollCapture:Ah,onWheelCapture:Ah,onTouchMoveCapture:Ah}),n=r[0],i=r[1],o=t.forwardProps,s=t.children,l=t.className,a=t.removeScrollBar,c=t.enabled,u=t.shards,f=t.sideCar,d=t.noIsolation,h=t.inert,g=t.allowPinchZoom,B=t.as,m=B===void 0?"div":B,O=sb(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),v=f,Q=h5([A,e]),C=sr(sr({},O),n);return p.createElement(p.Fragment,null,c&&p.createElement(v,{sideCar:oS,removeScrollBar:a,shards:u,noIsolation:d,inert:h,setCallbacks:i,allowPinchZoom:!!g,lockRef:A}),o?p.cloneElement(p.Children.only(s),sr(sr({},C),{ref:Q})):p.createElement(m,sr({},C,{className:l,ref:Q}),s))});If.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};If.classNames={fullWidth:Nc,zeroRight:_c};var bB,w5=function(){if(bB)return bB;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function B5(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=w5();return e&&t.setAttribute("nonce",e),t}function v5(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function y5(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var Q5=function(){var t=0,e=null;return{add:function(A){t==0&&(e=B5())&&(v5(e,A),y5(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}},C5=function(){var t=Q5();return function(e,A){p.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&A])}},sS=function(){var t=C5(),e=function(A){var r=A.styles,n=A.dynamic;return t(r,n),null};return e},b5={left:0,top:0,right:0,gap:0},rh=function(t){return parseInt(t||"",10)||0},S5=function(t){var e=window.getComputedStyle(document.body),A=e[t==="padding"?"paddingLeft":"marginLeft"],r=e[t==="padding"?"paddingTop":"marginTop"],n=e[t==="padding"?"paddingRight":"marginRight"];return[rh(A),rh(r),rh(n)]},x5=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return b5;var e=S5(t),A=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-A+e[2]-e[0])}},U5=sS(),E5=function(t,e,A,r){var n=t.left,i=t.top,o=t.right,s=t.gap;return A===void 0&&(A="margin"),` + .`.concat(c5,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([e&&"position: relative ".concat(r,";"),A==="margin"&&` + padding-left: `.concat(n,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(o,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),A==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(_c,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Nc,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(_c," .").concat(_c,` { + right: 0 `).concat(r,`; + } + + .`).concat(Nc," .").concat(Nc,` { + margin-right: 0 `).concat(r,`; + } + + body { + `).concat(u5,": ").concat(s,`px; + } +`)},F5=function(t){var e=t.noRelative,A=t.noImportant,r=t.gapMode,n=r===void 0?"margin":r,i=p.useMemo(function(){return x5(n)},[n]);return p.createElement(U5,{styles:E5(i,!e,n,A?"":"!important")})},ng=!1;if(typeof window<"u")try{var ka=Object.defineProperty({},"passive",{get:function(){return ng=!0,!0}});window.addEventListener("test",ka,ka),window.removeEventListener("test",ka,ka)}catch{ng=!1}var Xi=ng?{passive:!1}:!1,$5=function(t){return t.tagName==="TEXTAREA"},lS=function(t,e){var A=window.getComputedStyle(t);return A[e]!=="hidden"&&!(A.overflowY===A.overflowX&&!$5(t)&&A[e]==="visible")},k5=function(t){return lS(t,"overflowY")},P5=function(t){return lS(t,"overflowX")},SB=function(t,e){var A=e;do{typeof ShadowRoot<"u"&&A instanceof ShadowRoot&&(A=A.host);var r=aS(t,A);if(r){var n=cS(t,A),i=n[1],o=n[2];if(i>o)return!0}A=A.parentNode}while(A&&A!==document.body);return!1},T5=function(t){var e=t.scrollTop,A=t.scrollHeight,r=t.clientHeight;return[e,A,r]},I5=function(t){var e=t.scrollLeft,A=t.scrollWidth,r=t.clientWidth;return[e,A,r]},aS=function(t,e){return t==="v"?k5(e):P5(e)},cS=function(t,e){return t==="v"?T5(e):I5(e)},R5=function(t,e){return t==="h"&&e==="rtl"?-1:1},D5=function(t,e,A,r,n){var i=R5(t,window.getComputedStyle(e).direction),o=i*r,s=A.target,l=e.contains(s),a=!1,c=o>0,u=0,f=0;do{var d=cS(t,s),h=d[0],g=d[1],B=d[2],m=g-B-i*h;(h||m)&&aS(t,s)&&(u+=m,f+=h),s=s.parentNode}while(!l&&s!==document.body||l&&(e.contains(s)||e===s));return(c&&(n&&u===0||!n&&o>u)||!c&&(n&&f===0||!n&&-o>f))&&(a=!0),a},Pa=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},xB=function(t){return[t.deltaX,t.deltaY]},UB=function(t){return t&&"current"in t?t.current:t},H5=function(t,e){return t[0]===e[0]&&t[1]===e[1]},L5=function(t){return` + .block-interactivity-`.concat(t,` {pointer-events: none;} + .allow-interactivity-`).concat(t,` {pointer-events: all;} +`)},_5=0,Vi=[];function N5(t){var e=p.useRef([]),A=p.useRef([0,0]),r=p.useRef(),n=p.useState(_5++)[0],i=p.useState(function(){return sS()})[0],o=p.useRef(t);p.useEffect(function(){o.current=t},[t]),p.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var g=Vp([t.lockRef.current],(t.shards||[]).map(UB),!0).filter(Boolean);return g.forEach(function(B){return B.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),g.forEach(function(B){return B.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var s=p.useCallback(function(g,B){if("touches"in g&&g.touches.length===2)return!o.current.allowPinchZoom;var m=Pa(g),O=A.current,v="deltaX"in g?g.deltaX:O[0]-m[0],Q="deltaY"in g?g.deltaY:O[1]-m[1],C,b=g.target,S=Math.abs(v)>Math.abs(Q)?"h":"v";if("touches"in g&&S==="h"&&b.type==="range")return!1;var x=SB(S,b);if(!x)return!0;if(x?C=S:(C=S==="v"?"h":"v",x=SB(S,b)),!x)return!1;if(!r.current&&"changedTouches"in g&&(v||Q)&&(r.current=C),!C)return!0;var U=r.current||C;return D5(U,B,g,U==="h"?v:Q,!0)},[]),l=p.useCallback(function(g){var B=g;if(!(!Vi.length||Vi[Vi.length-1]!==i)){var m="deltaY"in B?xB(B):Pa(B),O=e.current.filter(function(C){return C.name===B.type&&C.target===B.target&&H5(C.delta,m)})[0];if(O&&O.should){B.cancelable&&B.preventDefault();return}if(!O){var v=(o.current.shards||[]).map(UB).filter(Boolean).filter(function(C){return C.contains(B.target)}),Q=v.length>0?s(B,v[0]):!o.current.noIsolation;Q&&B.cancelable&&B.preventDefault()}}},[]),a=p.useCallback(function(g,B,m,O){var v={name:g,delta:B,target:m,should:O};e.current.push(v),setTimeout(function(){e.current=e.current.filter(function(Q){return Q!==v})},1)},[]),c=p.useCallback(function(g){A.current=Pa(g),r.current=void 0},[]),u=p.useCallback(function(g){a(g.type,xB(g),g.target,s(g,t.lockRef.current))},[]),f=p.useCallback(function(g){a(g.type,Pa(g),g.target,s(g,t.lockRef.current))},[]);p.useEffect(function(){return Vi.push(i),t.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:f}),document.addEventListener("wheel",l,Xi),document.addEventListener("touchmove",l,Xi),document.addEventListener("touchstart",c,Xi),function(){Vi=Vi.filter(function(g){return g!==i}),document.removeEventListener("wheel",l,Xi),document.removeEventListener("touchmove",l,Xi),document.removeEventListener("touchstart",c,Xi)}},[]);var d=t.removeScrollBar,h=t.inert;return p.createElement(p.Fragment,null,h?p.createElement(i,{styles:L5(n)}):null,d?p.createElement(F5,{gapMode:"margin"}):null)}const M5=O5(oS,N5);var uS=p.forwardRef(function(t,e){return p.createElement(If,sr({},t,{ref:e,sideCar:M5}))});uS.classNames=If.classNames;const fS=uS;var Z5=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Yi=new WeakMap,Ta=new WeakMap,Ia={},nh=0,dS=function(t){return t&&(t.host||dS(t.parentNode))},X5=function(t,e){return e.map(function(A){if(t.contains(A))return A;var r=dS(A);return r&&t.contains(r)?r:(console.error("aria-hidden",A,"in not contained inside",t,". Doing nothing"),null)}).filter(function(A){return!!A})},V5=function(t,e,A,r){var n=X5(e,Array.isArray(t)?t:[t]);Ia[A]||(Ia[A]=new WeakMap);var i=Ia[A],o=[],s=new Set,l=new Set(n),a=function(u){!u||s.has(u)||(s.add(u),a(u.parentNode))};n.forEach(a);var c=function(u){!u||l.has(u)||Array.prototype.forEach.call(u.children,function(f){if(s.has(f))c(f);else{var d=f.getAttribute(r),h=d!==null&&d!=="false",g=(Yi.get(f)||0)+1,B=(i.get(f)||0)+1;Yi.set(f,g),i.set(f,B),o.push(f),g===1&&h&&Ta.set(f,!0),B===1&&f.setAttribute(A,"true"),h||f.setAttribute(r,"true")}})};return c(e),s.clear(),nh++,function(){o.forEach(function(u){var f=Yi.get(u)-1,d=i.get(u)-1;Yi.set(u,f),i.set(u,d),f||(Ta.has(u)||u.removeAttribute(r),Ta.delete(u)),d||u.removeAttribute(A)}),nh--,nh||(Yi=new WeakMap,Yi=new WeakMap,Ta=new WeakMap,Ia={})}},hS=function(t,e,A){A===void 0&&(A="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||Z5(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),V5(r,n,A,"aria-hidden")):function(){return null}};const pS="Dialog",[gS,mS]=YA(pS),[Y5,KA]=gS(pS),K5=t=>{const{__scopeDialog:e,children:A,open:r,defaultOpen:n,onOpenChange:i,modal:o=!0}=t,s=p.useRef(null),l=p.useRef(null),[a=!1,c]=Xr({prop:r,defaultProp:n,onChange:i});return p.createElement(Y5,{scope:e,triggerRef:s,contentRef:l,contentId:pr(),titleId:pr(),descriptionId:pr(),open:a,onOpenChange:c,onOpenToggle:p.useCallback(()=>c(u=>!u),[c]),modal:o},A)},W5="DialogTrigger",j5=p.forwardRef((t,e)=>{const{__scopeDialog:A,...r}=t,n=KA(W5,A),i=Ie(e,n.triggerRef);return p.createElement(se.button,M({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":IO(n.open)},r,{ref:i,onClick:ae(t.onClick,n.onOpenToggle)}))}),OS="DialogPortal",[G5,wS]=gS(OS,{forceMount:void 0}),z5=t=>{const{__scopeDialog:e,forceMount:A,children:r,container:n}=t,i=KA(OS,e);return p.createElement(G5,{scope:e,forceMount:A},p.Children.map(r,o=>p.createElement(rs,{present:A||i.open},p.createElement(rS,{asChild:!0,container:n},o))))},ig="DialogOverlay",q5=p.forwardRef((t,e)=>{const A=wS(ig,t.__scopeDialog),{forceMount:r=A.forceMount,...n}=t,i=KA(ig,t.__scopeDialog);return i.modal?p.createElement(rs,{present:r||i.open},p.createElement(J5,M({},n,{ref:e}))):null}),J5=p.forwardRef((t,e)=>{const{__scopeDialog:A,...r}=t,n=KA(ig,A);return p.createElement(fS,{as:Ui,allowPinchZoom:!0,shards:[n.contentRef]},p.createElement(se.div,M({"data-state":IO(n.open)},r,{ref:e,style:{pointerEvents:"auto",...r.style}})))}),_o="DialogContent",eR=p.forwardRef((t,e)=>{const A=wS(_o,t.__scopeDialog),{forceMount:r=A.forceMount,...n}=t,i=KA(_o,t.__scopeDialog);return p.createElement(rs,{present:r||i.open},i.modal?p.createElement(tR,M({},n,{ref:e})):p.createElement(AR,M({},n,{ref:e})))}),tR=p.forwardRef((t,e)=>{const A=KA(_o,t.__scopeDialog),r=p.useRef(null),n=Ie(e,A.contentRef,r);return p.useEffect(()=>{const i=r.current;if(i)return hS(i)},[]),p.createElement(BS,M({},t,{ref:n,trapFocus:A.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ae(t.onCloseAutoFocus,i=>{var o;i.preventDefault(),(o=A.triggerRef.current)===null||o===void 0||o.focus()}),onPointerDownOutside:ae(t.onPointerDownOutside,i=>{const o=i.detail.originalEvent,s=o.button===0&&o.ctrlKey===!0;(o.button===2||s)&&i.preventDefault()}),onFocusOutside:ae(t.onFocusOutside,i=>i.preventDefault())}))}),AR=p.forwardRef((t,e)=>{const A=KA(_o,t.__scopeDialog),r=p.useRef(!1),n=p.useRef(!1);return p.createElement(BS,M({},t,{ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var o;if((o=t.onCloseAutoFocus)===null||o===void 0||o.call(t,i),!i.defaultPrevented){var s;r.current||(s=A.triggerRef.current)===null||s===void 0||s.focus(),i.preventDefault()}r.current=!1,n.current=!1},onInteractOutside:i=>{var o,s;(o=t.onInteractOutside)===null||o===void 0||o.call(t,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const l=i.target;((s=A.triggerRef.current)===null||s===void 0?void 0:s.contains(l))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&n.current&&i.preventDefault()}}))}),BS=p.forwardRef((t,e)=>{const{__scopeDialog:A,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,...o}=t,s=KA(_o,A),l=p.useRef(null),a=Ie(e,l);return nS(),p.createElement(p.Fragment,null,p.createElement(tS,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},p.createElement(Jb,M({role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":IO(s.open)},o,{ref:a,onDismiss:()=>s.onOpenChange(!1)}))),!1)}),vS="DialogTitle",rR=p.forwardRef((t,e)=>{const{__scopeDialog:A,...r}=t,n=KA(vS,A);return p.createElement(se.h2,M({id:n.titleId},r,{ref:e}))}),nR="DialogDescription",iR=p.forwardRef((t,e)=>{const{__scopeDialog:A,...r}=t,n=KA(nR,A);return p.createElement(se.p,M({id:n.descriptionId},r,{ref:e}))}),oR="DialogClose",sR=p.forwardRef((t,e)=>{const{__scopeDialog:A,...r}=t,n=KA(oR,A);return p.createElement(se.button,M({type:"button"},r,{ref:e,onClick:ae(t.onClick,()=>n.onOpenChange(!1))}))});function IO(t){return t?"open":"closed"}const lR="DialogTitleWarning",[aR,$K]=UT(lR,{contentName:_o,titleName:vS,docsSlug:"dialog"}),yS=K5,cR=j5,QS=z5,RO=q5,DO=eR,HO=rR,LO=iR,Rf=sR;function Aa(t,e){if(t==null)return{};var A={},r=Object.keys(t),n,i;for(i=0;i=0)&&(A[n]=t[n]);return A}var uR=["color"],CS=p.forwardRef(function(t,e){var A=t.color,r=A===void 0?"currentColor":A,n=Aa(t,uR);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n,{ref:e}),p.createElement("path",{d:"M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),fR=["color"],dR=p.forwardRef(function(t,e){var A=t.color,r=A===void 0?"currentColor":A,n=Aa(t,fR);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n,{ref:e}),p.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hR=["color"],bS=p.forwardRef(function(t,e){var A=t.color,r=A===void 0?"currentColor":A,n=Aa(t,hR);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n,{ref:e}),p.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),pR=["color"],gR=p.forwardRef(function(t,e){var A=t.color,r=A===void 0?"currentColor":A,n=Aa(t,pR);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n,{ref:e}),p.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mR=["color"],OR=p.forwardRef(function(t,e){var A=t.color,r=A===void 0?"currentColor":A,n=Aa(t,mR);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n,{ref:e}),p.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SS=yS,xS=cR,wR=QS,BR=Rf,US=p.forwardRef(({className:t,...e},A)=>y.jsx(RO,{ref:A,className:ce("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e}));US.displayName=RO.displayName;const _O=p.forwardRef(({className:t,children:e,...A},r)=>y.jsxs(wR,{children:[y.jsx(US,{}),y.jsxs(DO,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...A,children:[e,y.jsxs(Rf,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[y.jsx(OR,{className:"h-4 w-4"}),y.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));_O.displayName=DO.displayName;const NO=({className:t,...e})=>y.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",t),...e});NO.displayName="DialogHeader";const MO=({className:t,...e})=>y.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});MO.displayName="DialogFooter";const ZO=p.forwardRef(({className:t,...e},A)=>y.jsx(HO,{ref:A,className:ce("text-lg font-semibold leading-none tracking-tight",t),...e}));ZO.displayName=HO.displayName;const ES=p.forwardRef(({className:t,...e},A)=>y.jsx(LO,{ref:A,className:ce("text-sm text-muted-foreground",t),...e}));ES.displayName=LO.displayName;const vR=p.forwardRef((t,e)=>p.createElement(se.label,M({},t,{ref:e,onMouseDown:A=>{var r;(r=t.onMouseDown)===null||r===void 0||r.call(t,A),!A.defaultPrevented&&A.detail>1&&A.preventDefault()}}))),FS=vR,yR=EO("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),nr=p.forwardRef(({className:t,...e},A)=>y.jsx(FS,{ref:A,className:ce(yR(),t),...e}));nr.displayName=FS.displayName;const vn=p.forwardRef(({className:t,type:e,...A},r)=>y.jsx("input",{type:e,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",t),ref:r,...A}));vn.displayName="Input";function EB(t,[e,A]){return Math.min(A,Math.max(e,t))}const QR=["top","right","bottom","left"],Zn=Math.min,oA=Math.max,Pu=Math.round,Ra=Math.floor,Xn=t=>({x:t,y:t}),CR={left:"right",right:"left",bottom:"top",top:"bottom"},bR={start:"end",end:"start"};function og(t,e,A){return oA(t,Zn(e,A))}function Vr(t,e){return typeof t=="function"?t(e):t}function Yr(t){return t.split("-")[0]}function ns(t){return t.split("-")[1]}function XO(t){return t==="x"?"y":"x"}function VO(t){return t==="y"?"height":"width"}function is(t){return["top","bottom"].includes(Yr(t))?"y":"x"}function YO(t){return XO(is(t))}function SR(t,e,A){A===void 0&&(A=!1);const r=ns(t),n=YO(t),i=VO(n);let o=n==="x"?r===(A?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(o=Tu(o)),[o,Tu(o)]}function xR(t){const e=Tu(t);return[sg(t),e,sg(e)]}function sg(t){return t.replace(/start|end/g,e=>bR[e])}function UR(t,e,A){const r=["left","right"],n=["right","left"],i=["top","bottom"],o=["bottom","top"];switch(t){case"top":case"bottom":return A?e?n:r:e?r:n;case"left":case"right":return e?i:o;default:return[]}}function ER(t,e,A,r){const n=ns(t);let i=UR(Yr(t),A==="start",r);return n&&(i=i.map(o=>o+"-"+n),e&&(i=i.concat(i.map(sg)))),i}function Tu(t){return t.replace(/left|right|bottom|top/g,e=>CR[e])}function FR(t){return{top:0,right:0,bottom:0,left:0,...t}}function $S(t){return typeof t!="number"?FR(t):{top:t,right:t,bottom:t,left:t}}function Iu(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}function FB(t,e,A){let{reference:r,floating:n}=t;const i=is(e),o=YO(e),s=VO(o),l=Yr(e),a=i==="y",c=r.x+r.width/2-n.width/2,u=r.y+r.height/2-n.height/2,f=r[s]/2-n[s]/2;let d;switch(l){case"top":d={x:c,y:r.y-n.height};break;case"bottom":d={x:c,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:u};break;case"left":d={x:r.x-n.width,y:u};break;default:d={x:r.x,y:r.y}}switch(ns(e)){case"start":d[o]-=f*(A&&a?-1:1);break;case"end":d[o]+=f*(A&&a?-1:1);break}return d}const $R=async(t,e,A)=>{const{placement:r="bottom",strategy:n="absolute",middleware:i=[],platform:o}=A,s=i.filter(Boolean),l=await(o.isRTL==null?void 0:o.isRTL(e));let a=await o.getElementRects({reference:t,floating:e,strategy:n}),{x:c,y:u}=FB(a,r,l),f=r,d={},h=0;for(let g=0;g({name:"arrow",options:t,async fn(e){const{x:A,y:r,placement:n,rects:i,platform:o,elements:s,middlewareData:l}=e,{element:a,padding:c=0}=Vr(t,e)||{};if(a==null)return{};const u=$S(c),f={x:A,y:r},d=YO(n),h=VO(d),g=await o.getDimensions(a),B=d==="y",m=B?"top":"left",O=B?"bottom":"right",v=B?"clientHeight":"clientWidth",Q=i.reference[h]+i.reference[d]-f[d]-i.floating[h],C=f[d]-i.reference[d],b=await(o.getOffsetParent==null?void 0:o.getOffsetParent(a));let S=b?b[v]:0;(!S||!await(o.isElement==null?void 0:o.isElement(b)))&&(S=s.floating[v]||i.floating[h]);const x=Q/2-C/2,U=S/2-g[h]/2-1,E=Zn(u[m],U),T=Zn(u[O],U),F=E,H=S-g[h]-T,P=S/2-g[h]/2+x,L=og(F,P,H),$=!l.arrow&&ns(n)!=null&&P!=L&&i.reference[h]/2-(PF<=0)){var U,E;const F=(((U=i.flip)==null?void 0:U.index)||0)+1,H=C[F];if(H)return{data:{index:F,overflows:x},reset:{placement:H}};let P=(E=x.filter(L=>L.overflows[0]<=0).sort((L,$)=>L.overflows[1]-$.overflows[1])[0])==null?void 0:E.placement;if(!P)switch(d){case"bestFit":{var T;const L=(T=x.map($=>[$.placement,$.overflows.filter(_=>_>0).reduce((_,k)=>_+k,0)]).sort(($,_)=>$[1]-_[1])[0])==null?void 0:T[0];L&&(P=L);break}case"initialPlacement":P=s;break}if(n!==P)return{reset:{placement:P}}}return{}}}};function kB(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function PB(t){return QR.some(e=>t[e]>=0)}const PR=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:A}=e,{strategy:r="referenceHidden",...n}=Vr(t,e);switch(r){case"referenceHidden":{const i=await kl(e,{...n,elementContext:"reference"}),o=kB(i,A.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:PB(o)}}}case"escaped":{const i=await kl(e,{...n,altBoundary:!0}),o=kB(i,A.floating);return{data:{escapedOffsets:o,escaped:PB(o)}}}default:return{}}}}};async function TR(t,e){const{placement:A,platform:r,elements:n}=t,i=await(r.isRTL==null?void 0:r.isRTL(n.floating)),o=Yr(A),s=ns(A),l=is(A)==="y",a=["left","top"].includes(o)?-1:1,c=i&&l?-1:1,u=Vr(e,t);let{mainAxis:f,crossAxis:d,alignmentAxis:h}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...u};return s&&typeof h=="number"&&(d=s==="end"?h*-1:h),l?{x:d*c,y:f*a}:{x:f*a,y:d*c}}const IR=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){const{x:A,y:r}=e,n=await TR(e,t);return{x:A+n.x,y:r+n.y,data:n}}}},RR=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:A,y:r,placement:n}=e,{mainAxis:i=!0,crossAxis:o=!1,limiter:s={fn:B=>{let{x:m,y:O}=B;return{x:m,y:O}}},...l}=Vr(t,e),a={x:A,y:r},c=await kl(e,l),u=is(Yr(n)),f=XO(u);let d=a[f],h=a[u];if(i){const B=f==="y"?"top":"left",m=f==="y"?"bottom":"right",O=d+c[B],v=d-c[m];d=og(O,d,v)}if(o){const B=u==="y"?"top":"left",m=u==="y"?"bottom":"right",O=h+c[B],v=h-c[m];h=og(O,h,v)}const g=s.fn({...e,[f]:d,[u]:h});return{...g,data:{x:g.x-A,y:g.y-r}}}}},DR=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:A,y:r,placement:n,rects:i,middlewareData:o}=e,{offset:s=0,mainAxis:l=!0,crossAxis:a=!0}=Vr(t,e),c={x:A,y:r},u=is(n),f=XO(u);let d=c[f],h=c[u];const g=Vr(s,e),B=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(l){const v=f==="y"?"height":"width",Q=i.reference[f]-i.floating[v]+B.mainAxis,C=i.reference[f]+i.reference[v]-B.mainAxis;dC&&(d=C)}if(a){var m,O;const v=f==="y"?"width":"height",Q=["top","left"].includes(Yr(n)),C=i.reference[u]-i.floating[v]+(Q&&((m=o.offset)==null?void 0:m[u])||0)+(Q?0:B.crossAxis),b=i.reference[u]+i.reference[v]+(Q?0:((O=o.offset)==null?void 0:O[u])||0)-(Q?B.crossAxis:0);hb&&(h=b)}return{[f]:d,[u]:h}}}},HR=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:A,rects:r,platform:n,elements:i}=e,{apply:o=()=>{},...s}=Vr(t,e),l=await kl(e,s),a=Yr(A),c=ns(A),u=is(A)==="y",{width:f,height:d}=r.floating;let h,g;a==="top"||a==="bottom"?(h=a,g=c===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(g=a,h=c==="end"?"top":"bottom");const B=d-l[h],m=f-l[g],O=!e.middlewareData.shift;let v=B,Q=m;if(u){const b=f-l.left-l.right;Q=c||O?Zn(m,b):b}else{const b=d-l.top-l.bottom;v=c||O?Zn(B,b):b}if(O&&!c){const b=oA(l.left,0),S=oA(l.right,0),x=oA(l.top,0),U=oA(l.bottom,0);u?Q=f-2*(b!==0||S!==0?b+S:oA(l.left,l.right)):v=d-2*(x!==0||U!==0?x+U:oA(l.top,l.bottom))}await o({...e,availableWidth:Q,availableHeight:v});const C=await n.getDimensions(i.floating);return f!==C.width||d!==C.height?{reset:{rects:!0}}:{}}}};function Vn(t){return kS(t)?(t.nodeName||"").toLowerCase():"#document"}function cA(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Jr(t){var e;return(e=(kS(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function kS(t){return t instanceof Node||t instanceof cA(t).Node}function Kr(t){return t instanceof Element||t instanceof cA(t).Element}function wr(t){return t instanceof HTMLElement||t instanceof cA(t).HTMLElement}function TB(t){return typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof cA(t).ShadowRoot}function ra(t){const{overflow:e,overflowX:A,overflowY:r,display:n}=$A(t);return/auto|scroll|overlay|hidden|clip/.test(e+r+A)&&!["inline","contents"].includes(n)}function LR(t){return["table","td","th"].includes(Vn(t))}function KO(t){const e=WO(),A=$A(t);return A.transform!=="none"||A.perspective!=="none"||(A.containerType?A.containerType!=="normal":!1)||!e&&(A.backdropFilter?A.backdropFilter!=="none":!1)||!e&&(A.filter?A.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(A.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(A.contain||"").includes(r))}function _R(t){let e=No(t);for(;wr(e)&&!Df(e);){if(KO(e))return e;e=No(e)}return null}function WO(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Df(t){return["html","body","#document"].includes(Vn(t))}function $A(t){return cA(t).getComputedStyle(t)}function Hf(t){return Kr(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function No(t){if(Vn(t)==="html")return t;const e=t.assignedSlot||t.parentNode||TB(t)&&t.host||Jr(t);return TB(e)?e.host:e}function PS(t){const e=No(t);return Df(e)?t.ownerDocument?t.ownerDocument.body:t.body:wr(e)&&ra(e)?e:PS(e)}function Pl(t,e,A){var r;e===void 0&&(e=[]),A===void 0&&(A=!0);const n=PS(t),i=n===((r=t.ownerDocument)==null?void 0:r.body),o=cA(n);return i?e.concat(o,o.visualViewport||[],ra(n)?n:[],o.frameElement&&A?Pl(o.frameElement):[]):e.concat(n,Pl(n,[],A))}function TS(t){const e=$A(t);let A=parseFloat(e.width)||0,r=parseFloat(e.height)||0;const n=wr(t),i=n?t.offsetWidth:A,o=n?t.offsetHeight:r,s=Pu(A)!==i||Pu(r)!==o;return s&&(A=i,r=o),{width:A,height:r,$:s}}function jO(t){return Kr(t)?t:t.contextElement}function bo(t){const e=jO(t);if(!wr(e))return Xn(1);const A=e.getBoundingClientRect(),{width:r,height:n,$:i}=TS(e);let o=(i?Pu(A.width):A.width)/r,s=(i?Pu(A.height):A.height)/n;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}const NR=Xn(0);function IS(t){const e=cA(t);return!WO()||!e.visualViewport?NR:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function MR(t,e,A){return e===void 0&&(e=!1),!A||e&&A!==cA(t)?!1:e}function Ei(t,e,A,r){e===void 0&&(e=!1),A===void 0&&(A=!1);const n=t.getBoundingClientRect(),i=jO(t);let o=Xn(1);e&&(r?Kr(r)&&(o=bo(r)):o=bo(t));const s=MR(i,A,r)?IS(i):Xn(0);let l=(n.left+s.x)/o.x,a=(n.top+s.y)/o.y,c=n.width/o.x,u=n.height/o.y;if(i){const f=cA(i),d=r&&Kr(r)?cA(r):r;let h=f.frameElement;for(;h&&r&&d!==f;){const g=bo(h),B=h.getBoundingClientRect(),m=$A(h),O=B.left+(h.clientLeft+parseFloat(m.paddingLeft))*g.x,v=B.top+(h.clientTop+parseFloat(m.paddingTop))*g.y;l*=g.x,a*=g.y,c*=g.x,u*=g.y,l+=O,a+=v,h=cA(h).frameElement}}return Iu({width:c,height:u,x:l,y:a})}function ZR(t){let{rect:e,offsetParent:A,strategy:r}=t;const n=wr(A),i=Jr(A);if(A===i)return e;let o={scrollLeft:0,scrollTop:0},s=Xn(1);const l=Xn(0);if((n||!n&&r!=="fixed")&&((Vn(A)!=="body"||ra(i))&&(o=Hf(A)),wr(A))){const a=Ei(A);s=bo(A),l.x=a.x+A.clientLeft,l.y=a.y+A.clientTop}return{width:e.width*s.x,height:e.height*s.y,x:e.x*s.x-o.scrollLeft*s.x+l.x,y:e.y*s.y-o.scrollTop*s.y+l.y}}function XR(t){return Array.from(t.getClientRects())}function RS(t){return Ei(Jr(t)).left+Hf(t).scrollLeft}function VR(t){const e=Jr(t),A=Hf(t),r=t.ownerDocument.body,n=oA(e.scrollWidth,e.clientWidth,r.scrollWidth,r.clientWidth),i=oA(e.scrollHeight,e.clientHeight,r.scrollHeight,r.clientHeight);let o=-A.scrollLeft+RS(t);const s=-A.scrollTop;return $A(r).direction==="rtl"&&(o+=oA(e.clientWidth,r.clientWidth)-n),{width:n,height:i,x:o,y:s}}function YR(t,e){const A=cA(t),r=Jr(t),n=A.visualViewport;let i=r.clientWidth,o=r.clientHeight,s=0,l=0;if(n){i=n.width,o=n.height;const a=WO();(!a||a&&e==="fixed")&&(s=n.offsetLeft,l=n.offsetTop)}return{width:i,height:o,x:s,y:l}}function KR(t,e){const A=Ei(t,!0,e==="fixed"),r=A.top+t.clientTop,n=A.left+t.clientLeft,i=wr(t)?bo(t):Xn(1),o=t.clientWidth*i.x,s=t.clientHeight*i.y,l=n*i.x,a=r*i.y;return{width:o,height:s,x:l,y:a}}function IB(t,e,A){let r;if(e==="viewport")r=YR(t,A);else if(e==="document")r=VR(Jr(t));else if(Kr(e))r=KR(e,A);else{const n=IS(t);r={...e,x:e.x-n.x,y:e.y-n.y}}return Iu(r)}function DS(t,e){const A=No(t);return A===e||!Kr(A)||Df(A)?!1:$A(A).position==="fixed"||DS(A,e)}function WR(t,e){const A=e.get(t);if(A)return A;let r=Pl(t,[],!1).filter(s=>Kr(s)&&Vn(s)!=="body"),n=null;const i=$A(t).position==="fixed";let o=i?No(t):t;for(;Kr(o)&&!Df(o);){const s=$A(o),l=KO(o);!l&&s.position==="fixed"&&(n=null),(i?!l&&!n:!l&&s.position==="static"&&!!n&&["absolute","fixed"].includes(n.position)||ra(o)&&!l&&DS(t,o))?r=r.filter(c=>c!==o):n=s,o=No(o)}return e.set(t,r),r}function jR(t){let{element:e,boundary:A,rootBoundary:r,strategy:n}=t;const o=[...A==="clippingAncestors"?WR(e,this._c):[].concat(A),r],s=o[0],l=o.reduce((a,c)=>{const u=IB(e,c,n);return a.top=oA(u.top,a.top),a.right=Zn(u.right,a.right),a.bottom=Zn(u.bottom,a.bottom),a.left=oA(u.left,a.left),a},IB(e,s,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function GR(t){return TS(t)}function zR(t,e,A){const r=wr(e),n=Jr(e),i=A==="fixed",o=Ei(t,!0,i,e);let s={scrollLeft:0,scrollTop:0};const l=Xn(0);if(r||!r&&!i)if((Vn(e)!=="body"||ra(n))&&(s=Hf(e)),r){const a=Ei(e,!0,i,e);l.x=a.x+e.clientLeft,l.y=a.y+e.clientTop}else n&&(l.x=RS(n));return{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function RB(t,e){return!wr(t)||$A(t).position==="fixed"?null:e?e(t):t.offsetParent}function HS(t,e){const A=cA(t);if(!wr(t))return A;let r=RB(t,e);for(;r&&LR(r)&&$A(r).position==="static";)r=RB(r,e);return r&&(Vn(r)==="html"||Vn(r)==="body"&&$A(r).position==="static"&&!KO(r))?A:r||_R(t)||A}const qR=async function(t){let{reference:e,floating:A,strategy:r}=t;const n=this.getOffsetParent||HS,i=this.getDimensions;return{reference:zR(e,await n(A),r),floating:{x:0,y:0,...await i(A)}}};function JR(t){return $A(t).direction==="rtl"}const eD={convertOffsetParentRelativeRectToViewportRelativeRect:ZR,getDocumentElement:Jr,getClippingRect:jR,getOffsetParent:HS,getElementRects:qR,getClientRects:XR,getDimensions:GR,getScale:bo,isElement:Kr,isRTL:JR};function tD(t,e){let A=null,r;const n=Jr(t);function i(){clearTimeout(r),A&&A.disconnect(),A=null}function o(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),i();const{left:a,top:c,width:u,height:f}=t.getBoundingClientRect();if(s||e(),!u||!f)return;const d=Ra(c),h=Ra(n.clientWidth-(a+u)),g=Ra(n.clientHeight-(c+f)),B=Ra(a),O={rootMargin:-d+"px "+-h+"px "+-g+"px "+-B+"px",threshold:oA(0,Zn(1,l))||1};let v=!0;function Q(C){const b=C[0].intersectionRatio;if(b!==l){if(!v)return o();b?o(!1,b):r=setTimeout(()=>{o(!1,1e-7)},100)}v=!1}try{A=new IntersectionObserver(Q,{...O,root:n.ownerDocument})}catch{A=new IntersectionObserver(Q,O)}A.observe(t)}return o(!0),i}function AD(t,e,A,r){r===void 0&&(r={});const{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,a=jO(t),c=n||i?[...a?Pl(a):[],...Pl(e)]:[];c.forEach(m=>{n&&m.addEventListener("scroll",A,{passive:!0}),i&&m.addEventListener("resize",A)});const u=a&&s?tD(a,A):null;let f=-1,d=null;o&&(d=new ResizeObserver(m=>{let[O]=m;O&&O.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{d&&d.observe(e)})),A()}),a&&!l&&d.observe(a),d.observe(e));let h,g=l?Ei(t):null;l&&B();function B(){const m=Ei(t);g&&(m.x!==g.x||m.y!==g.y||m.width!==g.width||m.height!==g.height)&&A(),g=m,h=requestAnimationFrame(B)}return A(),()=>{c.forEach(m=>{n&&m.removeEventListener("scroll",A),i&&m.removeEventListener("resize",A)}),u&&u(),d&&d.disconnect(),d=null,l&&cancelAnimationFrame(h)}}const rD=(t,e,A)=>{const r=new Map,n={platform:eD,...A},i={...n.platform,_c:r};return $R(t,e,{...n,platform:i})},nD=t=>{function e(A){return{}.hasOwnProperty.call(A,"current")}return{name:"arrow",options:t,fn(A){const{element:r,padding:n}=typeof t=="function"?t(A):t;return r&&e(r)?r.current!=null?$B({element:r.current,padding:n}).fn(A):{}:r?$B({element:r,padding:n}).fn(A):{}}}};var Mc=typeof document<"u"?p.useLayoutEffect:p.useEffect;function Ru(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let A,r,n;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(A=t.length,A!=e.length)return!1;for(r=A;r--!==0;)if(!Ru(t[r],e[r]))return!1;return!0}if(n=Object.keys(t),A=n.length,A!==Object.keys(e).length)return!1;for(r=A;r--!==0;)if(!{}.hasOwnProperty.call(e,n[r]))return!1;for(r=A;r--!==0;){const i=n[r];if(!(i==="_owner"&&t.$$typeof)&&!Ru(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function LS(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function DB(t,e){const A=LS(t);return Math.round(e*A)/A}function HB(t){const e=p.useRef(t);return Mc(()=>{e.current=t}),e}function iD(t){t===void 0&&(t={});const{placement:e="bottom",strategy:A="absolute",middleware:r=[],platform:n,elements:{reference:i,floating:o}={},transform:s=!0,whileElementsMounted:l,open:a}=t,[c,u]=p.useState({x:0,y:0,strategy:A,placement:e,middlewareData:{},isPositioned:!1}),[f,d]=p.useState(r);Ru(f,r)||d(r);const[h,g]=p.useState(null),[B,m]=p.useState(null),O=p.useCallback($=>{$!=b.current&&(b.current=$,g($))},[g]),v=p.useCallback($=>{$!==S.current&&(S.current=$,m($))},[m]),Q=i||h,C=o||B,b=p.useRef(null),S=p.useRef(null),x=p.useRef(c),U=HB(l),E=HB(n),T=p.useCallback(()=>{if(!b.current||!S.current)return;const $={placement:e,strategy:A,middleware:f};E.current&&($.platform=E.current),rD(b.current,S.current,$).then(_=>{const k={..._,isPositioned:!0};F.current&&!Ru(x.current,k)&&(x.current=k,Ii.flushSync(()=>{u(k)}))})},[f,e,A,E]);Mc(()=>{a===!1&&x.current.isPositioned&&(x.current.isPositioned=!1,u($=>({...$,isPositioned:!1})))},[a]);const F=p.useRef(!1);Mc(()=>(F.current=!0,()=>{F.current=!1}),[]),Mc(()=>{if(Q&&(b.current=Q),C&&(S.current=C),Q&&C){if(U.current)return U.current(Q,C,T);T()}},[Q,C,T,U]);const H=p.useMemo(()=>({reference:b,floating:S,setReference:O,setFloating:v}),[O,v]),P=p.useMemo(()=>({reference:Q,floating:C}),[Q,C]),L=p.useMemo(()=>{const $={position:A,left:0,top:0};if(!P.floating)return $;const _=DB(P.floating,c.x),k=DB(P.floating,c.y);return s?{...$,transform:"translate("+_+"px, "+k+"px)",...LS(P.floating)>=1.5&&{willChange:"transform"}}:{position:A,left:_,top:k}},[A,s,P.floating,c.x,c.y]);return p.useMemo(()=>({...c,update:T,refs:H,elements:P,floatingStyles:L}),[c,T,H,P,L])}const _S="Popper",[NS,MS]=YA(_S),[oD,ZS]=NS(_S),sD=t=>{const{__scopePopper:e,children:A}=t,[r,n]=p.useState(null);return p.createElement(oD,{scope:e,anchor:r,onAnchorChange:n},A)},lD="PopperAnchor",aD=p.forwardRef((t,e)=>{const{__scopePopper:A,virtualRef:r,...n}=t,i=ZS(lD,A),o=p.useRef(null),s=Ie(e,o);return p.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||o.current)}),r?null:p.createElement(se.div,M({},n,{ref:s}))}),XS="PopperContent",[cD,kK]=NS(XS),uD=p.forwardRef((t,e)=>{var A,r,n,i,o,s,l,a;const{__scopePopper:c,side:u="bottom",sideOffset:f=0,align:d="center",alignOffset:h=0,arrowPadding:g=0,avoidCollisions:B=!0,collisionBoundary:m=[],collisionPadding:O=0,sticky:v="partial",hideWhenDetached:Q=!1,updatePositionStrategy:C="optimized",onPlaced:b,...S}=t,x=ZS(XS,c),[U,E]=p.useState(null),T=Ie(e,hA=>E(hA)),[F,H]=p.useState(null),P=Fb(F),L=(A=P==null?void 0:P.width)!==null&&A!==void 0?A:0,$=(r=P==null?void 0:P.height)!==null&&r!==void 0?r:0,_=u+(d!=="center"?"-"+d:""),k=typeof O=="number"?O:{top:0,right:0,bottom:0,left:0,...O},I=Array.isArray(m)?m:[m],Z=I.length>0,W={padding:k,boundary:I.filter(fD),altBoundary:Z},{refs:J,floatingStyles:pe,placement:ne,isPositioned:me,middlewareData:ie}=iD({strategy:"fixed",placement:_,whileElementsMounted:(...hA)=>AD(...hA,{animationFrame:C==="always"}),elements:{reference:x.anchor},middleware:[IR({mainAxis:f+$,alignmentAxis:h}),B&&RR({mainAxis:!0,crossAxis:!1,limiter:v==="partial"?DR():void 0,...W}),B&&kR({...W}),HR({...W,apply:({elements:hA,rects:br,availableWidth:pA,availableHeight:us})=>{const{width:Li,height:_i}=br.reference,Ni=hA.floating.style;Ni.setProperty("--radix-popper-available-width",`${pA}px`),Ni.setProperty("--radix-popper-available-height",`${us}px`),Ni.setProperty("--radix-popper-anchor-width",`${Li}px`),Ni.setProperty("--radix-popper-anchor-height",`${_i}px`)}}),F&&nD({element:F,padding:g}),dD({arrowWidth:L,arrowHeight:$}),Q&&PR({strategy:"referenceHidden",...W})]}),[z,ye]=VS(ne),Ve=Or(b);qt(()=>{me&&(Ve==null||Ve())},[me,Ve]);const Oe=(n=ie.arrow)===null||n===void 0?void 0:n.x,de=(i=ie.arrow)===null||i===void 0?void 0:i.y,fe=((o=ie.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,[vt,yt]=p.useState();return qt(()=>{U&&yt(window.getComputedStyle(U).zIndex)},[U]),p.createElement("div",{ref:J.setFloating,"data-radix-popper-content-wrapper":"",style:{...pe,transform:me?pe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:vt,"--radix-popper-transform-origin":[(s=ie.transformOrigin)===null||s===void 0?void 0:s.x,(l=ie.transformOrigin)===null||l===void 0?void 0:l.y].join(" ")},dir:t.dir},p.createElement(cD,{scope:c,placedSide:z,onArrowChange:H,arrowX:Oe,arrowY:de,shouldHideArrow:fe},p.createElement(se.div,M({"data-side":z,"data-align":ye},S,{ref:T,style:{...S.style,animation:me?void 0:"none",opacity:(a=ie.hide)!==null&&a!==void 0&&a.referenceHidden?0:void 0}}))))});function fD(t){return t!==null}const dD=t=>({name:"transformOrigin",options:t,fn(e){var A,r,n,i,o;const{placement:s,rects:l,middlewareData:a}=e,u=((A=a.arrow)===null||A===void 0?void 0:A.centerOffset)!==0,f=u?0:t.arrowWidth,d=u?0:t.arrowHeight,[h,g]=VS(s),B={start:"0%",center:"50%",end:"100%"}[g],m=((r=(n=a.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+f/2,O=((i=(o=a.arrow)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)+d/2;let v="",Q="";return h==="bottom"?(v=u?B:`${m}px`,Q=`${-d}px`):h==="top"?(v=u?B:`${m}px`,Q=`${l.floating.height+d}px`):h==="right"?(v=`${-d}px`,Q=u?B:`${O}px`):h==="left"&&(v=`${l.floating.width+d}px`,Q=u?B:`${O}px`),{data:{x:v,y:Q}}}});function VS(t){const[e,A="center"]=t.split("-");return[e,A]}const hD=sD,pD=aD,gD=uD,mD=p.forwardRef((t,e)=>p.createElement(se.span,M({},t,{ref:e,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...t.style}}))),OD=[" ","Enter","ArrowUp","ArrowDown"],wD=[" ","Enter"],Lf="Select",[_f,Nf,BD]=kO(Lf),[os,PK]=YA(Lf,[BD,MS]),GO=MS(),[vD,ss]=os(Lf),[yD,QD]=os(Lf),CD=t=>{const{__scopeSelect:e,children:A,open:r,defaultOpen:n,onOpenChange:i,value:o,defaultValue:s,onValueChange:l,dir:a,name:c,autoComplete:u,disabled:f,required:d}=t,h=GO(e),[g,B]=p.useState(null),[m,O]=p.useState(null),[v,Q]=p.useState(!1),C=Tf(a),[b=!1,S]=Xr({prop:r,defaultProp:n,onChange:i}),[x,U]=Xr({prop:o,defaultProp:s,onChange:l}),E=p.useRef(null),T=g?!!g.closest("form"):!0,[F,H]=p.useState(new Set),P=Array.from(F).map(L=>L.props.value).join(";");return p.createElement(hD,h,p.createElement(vD,{required:d,scope:e,trigger:g,onTriggerChange:B,valueNode:m,onValueNodeChange:O,valueNodeHasChildren:v,onValueNodeHasChildrenChange:Q,contentId:pr(),value:x,onValueChange:U,open:b,onOpenChange:S,dir:C,triggerPointerDownPosRef:E,disabled:f},p.createElement(_f.Provider,{scope:e},p.createElement(yD,{scope:t.__scopeSelect,onNativeOptionAdd:p.useCallback(L=>{H($=>new Set($).add(L))},[]),onNativeOptionRemove:p.useCallback(L=>{H($=>{const _=new Set($);return _.delete(L),_})},[])},A)),T?p.createElement(jS,{key:P,"aria-hidden":!0,required:d,tabIndex:-1,name:c,autoComplete:u,value:x,onChange:L=>U(L.target.value),disabled:f},x===void 0?p.createElement("option",{value:""}):null,Array.from(F)):null))},bD="SelectTrigger",SD=p.forwardRef((t,e)=>{const{__scopeSelect:A,disabled:r=!1,...n}=t,i=GO(A),o=ss(bD,A),s=o.disabled||r,l=Ie(e,o.onTriggerChange),a=Nf(A),[c,u,f]=GS(h=>{const g=a().filter(O=>!O.disabled),B=g.find(O=>O.value===o.value),m=zS(g,h,B);m!==void 0&&o.onValueChange(m.value)}),d=()=>{s||(o.onOpenChange(!0),f())};return p.createElement(pD,M({asChild:!0},i),p.createElement(se.button,M({type:"button",role:"combobox","aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":"none",dir:o.dir,"data-state":o.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":WD(o.value)?"":void 0},n,{ref:l,onClick:ae(n.onClick,h=>{h.currentTarget.focus()}),onPointerDown:ae(n.onPointerDown,h=>{const g=h.target;g.hasPointerCapture(h.pointerId)&&g.releasePointerCapture(h.pointerId),h.button===0&&h.ctrlKey===!1&&(d(),o.triggerPointerDownPosRef.current={x:Math.round(h.pageX),y:Math.round(h.pageY)},h.preventDefault())}),onKeyDown:ae(n.onKeyDown,h=>{const g=c.current!=="";!(h.ctrlKey||h.altKey||h.metaKey)&&h.key.length===1&&u(h.key),!(g&&h.key===" ")&&OD.includes(h.key)&&(d(),h.preventDefault())})})))}),xD=p.forwardRef((t,e)=>{const{__scopeSelect:A,children:r,...n}=t;return p.createElement(se.span,M({"aria-hidden":!0},n,{ref:e}),r||"▼")}),UD=t=>p.createElement(rS,M({asChild:!0},t)),Mo="SelectContent",ED=p.forwardRef((t,e)=>{const A=ss(Mo,t.__scopeSelect),[r,n]=p.useState();if(qt(()=>{n(new DocumentFragment)},[]),!A.open){const i=r;return i?Ii.createPortal(p.createElement(YS,{scope:t.__scopeSelect},p.createElement(_f.Slot,{scope:t.__scopeSelect},p.createElement("div",null,t.children))),i):null}return p.createElement(FD,M({},t,{ref:e}))}),Fr=10,[YS,Hi]=os(Mo),FD=p.forwardRef((t,e)=>{const{__scopeSelect:A,position:r="item-aligned",onCloseAutoFocus:n,onEscapeKeyDown:i,onPointerDownOutside:o,side:s,sideOffset:l,align:a,alignOffset:c,arrowPadding:u,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:g,avoidCollisions:B,...m}=t,O=ss(Mo,A),[v,Q]=p.useState(null),[C,b]=p.useState(null),S=Ie(e,z=>Q(z)),[x,U]=p.useState(null),[E,T]=p.useState(null),F=Nf(A),[H,P]=p.useState(!1),L=p.useRef(!1);p.useEffect(()=>{if(v)return hS(v)},[v]),nS();const $=p.useCallback(z=>{const[ye,...Ve]=F().map(fe=>fe.ref.current),[Oe]=Ve.slice(-1),de=document.activeElement;for(const fe of z)if(fe===de||(fe==null||fe.scrollIntoView({block:"nearest"}),fe===ye&&C&&(C.scrollTop=0),fe===Oe&&C&&(C.scrollTop=C.scrollHeight),fe==null||fe.focus(),document.activeElement!==de))return},[F,C]),_=p.useCallback(()=>$([x,v]),[$,x,v]);p.useEffect(()=>{H&&_()},[H,_]);const{onOpenChange:k,triggerPointerDownPosRef:I}=O;p.useEffect(()=>{if(v){let z={x:0,y:0};const ye=Oe=>{var de,fe,vt,yt;z={x:Math.abs(Math.round(Oe.pageX)-((de=(fe=I.current)===null||fe===void 0?void 0:fe.x)!==null&&de!==void 0?de:0)),y:Math.abs(Math.round(Oe.pageY)-((vt=(yt=I.current)===null||yt===void 0?void 0:yt.y)!==null&&vt!==void 0?vt:0))}},Ve=Oe=>{z.x<=10&&z.y<=10?Oe.preventDefault():v.contains(Oe.target)||k(!1),document.removeEventListener("pointermove",ye),I.current=null};return I.current!==null&&(document.addEventListener("pointermove",ye),document.addEventListener("pointerup",Ve,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ye),document.removeEventListener("pointerup",Ve,{capture:!0})}}},[v,k,I]),p.useEffect(()=>{const z=()=>k(!1);return window.addEventListener("blur",z),window.addEventListener("resize",z),()=>{window.removeEventListener("blur",z),window.removeEventListener("resize",z)}},[k]);const[Z,W]=GS(z=>{const ye=F().filter(de=>!de.disabled),Ve=ye.find(de=>de.ref.current===document.activeElement),Oe=zS(ye,z,Ve);Oe&&setTimeout(()=>Oe.ref.current.focus())}),J=p.useCallback((z,ye,Ve)=>{const Oe=!L.current&&!Ve;(O.value!==void 0&&O.value===ye||Oe)&&(U(z),Oe&&(L.current=!0))},[O.value]),pe=p.useCallback(()=>v==null?void 0:v.focus(),[v]),ne=p.useCallback((z,ye,Ve)=>{const Oe=!L.current&&!Ve;(O.value!==void 0&&O.value===ye||Oe)&&T(z)},[O.value]),me=r==="popper"?LB:$D,ie=me===LB?{side:s,sideOffset:l,align:a,alignOffset:c,arrowPadding:u,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:g,avoidCollisions:B}:{};return p.createElement(YS,{scope:A,content:v,viewport:C,onViewportChange:b,itemRefCallback:J,selectedItem:x,onItemLeave:pe,itemTextRefCallback:ne,focusSelectedItem:_,selectedItemText:E,position:r,isPositioned:H,searchRef:Z},p.createElement(fS,{as:Ui,allowPinchZoom:!0},p.createElement(tS,{asChild:!0,trapped:O.open,onMountAutoFocus:z=>{z.preventDefault()},onUnmountAutoFocus:ae(n,z=>{var ye;(ye=O.trigger)===null||ye===void 0||ye.focus({preventScroll:!0}),z.preventDefault()})},p.createElement(Jb,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:z=>z.preventDefault(),onDismiss:()=>O.onOpenChange(!1)},p.createElement(me,M({role:"listbox",id:O.contentId,"data-state":O.open?"open":"closed",dir:O.dir,onContextMenu:z=>z.preventDefault()},m,ie,{onPlaced:()=>P(!0),ref:S,style:{display:"flex",flexDirection:"column",outline:"none",...m.style},onKeyDown:ae(m.onKeyDown,z=>{const ye=z.ctrlKey||z.altKey||z.metaKey;if(z.key==="Tab"&&z.preventDefault(),!ye&&z.key.length===1&&W(z.key),["ArrowUp","ArrowDown","Home","End"].includes(z.key)){let Oe=F().filter(de=>!de.disabled).map(de=>de.ref.current);if(["ArrowUp","End"].includes(z.key)&&(Oe=Oe.slice().reverse()),["ArrowUp","ArrowDown"].includes(z.key)){const de=z.target,fe=Oe.indexOf(de);Oe=Oe.slice(fe+1)}setTimeout(()=>$(Oe)),z.preventDefault()}})}))))))}),$D=p.forwardRef((t,e)=>{const{__scopeSelect:A,onPlaced:r,...n}=t,i=ss(Mo,A),o=Hi(Mo,A),[s,l]=p.useState(null),[a,c]=p.useState(null),u=Ie(e,S=>c(S)),f=Nf(A),d=p.useRef(!1),h=p.useRef(!0),{viewport:g,selectedItem:B,selectedItemText:m,focusSelectedItem:O}=o,v=p.useCallback(()=>{if(i.trigger&&i.valueNode&&s&&a&&g&&B&&m){const S=i.trigger.getBoundingClientRect(),x=a.getBoundingClientRect(),U=i.valueNode.getBoundingClientRect(),E=m.getBoundingClientRect();if(i.dir!=="rtl"){const de=E.left-x.left,fe=U.left-de,vt=S.left-fe,yt=S.width+vt,hA=Math.max(yt,x.width),br=window.innerWidth-Fr,pA=EB(fe,[Fr,br-hA]);s.style.minWidth=yt+"px",s.style.left=pA+"px"}else{const de=x.right-E.right,fe=window.innerWidth-U.right-de,vt=window.innerWidth-S.right-fe,yt=S.width+vt,hA=Math.max(yt,x.width),br=window.innerWidth-Fr,pA=EB(fe,[Fr,br-hA]);s.style.minWidth=yt+"px",s.style.right=pA+"px"}const T=f(),F=window.innerHeight-Fr*2,H=g.scrollHeight,P=window.getComputedStyle(a),L=parseInt(P.borderTopWidth,10),$=parseInt(P.paddingTop,10),_=parseInt(P.borderBottomWidth,10),k=parseInt(P.paddingBottom,10),I=L+$+H+k+_,Z=Math.min(B.offsetHeight*5,I),W=window.getComputedStyle(g),J=parseInt(W.paddingTop,10),pe=parseInt(W.paddingBottom,10),ne=S.top+S.height/2-Fr,me=F-ne,ie=B.offsetHeight/2,z=B.offsetTop+ie,ye=L+$+z,Ve=I-ye;if(ye<=ne){const de=B===T[T.length-1].ref.current;s.style.bottom="0px";const fe=a.clientHeight-g.offsetTop-g.offsetHeight,vt=Math.max(me,ie+(de?pe:0)+fe+_),yt=ye+vt;s.style.height=yt+"px"}else{const de=B===T[0].ref.current;s.style.top="0px";const vt=Math.max(ne,L+g.offsetTop+(de?J:0)+ie)+Ve;s.style.height=vt+"px",g.scrollTop=ye-ne+g.offsetTop}s.style.margin=`${Fr}px 0`,s.style.minHeight=Z+"px",s.style.maxHeight=F+"px",r==null||r(),requestAnimationFrame(()=>d.current=!0)}},[f,i.trigger,i.valueNode,s,a,g,B,m,i.dir,r]);qt(()=>v(),[v]);const[Q,C]=p.useState();qt(()=>{a&&C(window.getComputedStyle(a).zIndex)},[a]);const b=p.useCallback(S=>{S&&h.current===!0&&(v(),O==null||O(),h.current=!1)},[v,O]);return p.createElement(kD,{scope:A,contentWrapper:s,shouldExpandOnScrollRef:d,onScrollButtonChange:b},p.createElement("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:Q}},p.createElement(se.div,M({},n,{ref:u,style:{boxSizing:"border-box",maxHeight:"100%",...n.style}}))))}),LB=p.forwardRef((t,e)=>{const{__scopeSelect:A,align:r="start",collisionPadding:n=Fr,...i}=t,o=GO(A);return p.createElement(gD,M({},o,i,{ref:e,align:r,collisionPadding:n,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}}))}),[kD,zO]=os(Mo,{}),_B="SelectViewport",PD=p.forwardRef((t,e)=>{const{__scopeSelect:A,...r}=t,n=Hi(_B,A),i=zO(_B,A),o=Ie(e,n.onViewportChange),s=p.useRef(0);return p.createElement(p.Fragment,null,p.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),p.createElement(_f.Slot,{scope:A},p.createElement(se.div,M({"data-radix-select-viewport":"",role:"presentation"},r,{ref:o,style:{position:"relative",flex:1,overflow:"auto",...r.style},onScroll:ae(r.onScroll,l=>{const a=l.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:u}=i;if(u!=null&&u.current&&c){const f=Math.abs(s.current-a.scrollTop);if(f>0){const d=window.innerHeight-Fr*2,h=parseFloat(c.style.minHeight),g=parseFloat(c.style.height),B=Math.max(h,g);if(B0?v:0,c.style.justifyContent="flex-end")}}}s.current=a.scrollTop})}))))}),TD="SelectGroup",[ID,RD]=os(TD),DD=p.forwardRef((t,e)=>{const{__scopeSelect:A,...r}=t,n=pr();return p.createElement(ID,{scope:A,id:n},p.createElement(se.div,M({role:"group","aria-labelledby":n},r,{ref:e})))}),HD="SelectLabel",LD=p.forwardRef((t,e)=>{const{__scopeSelect:A,...r}=t,n=RD(HD,A);return p.createElement(se.div,M({id:n.id},r,{ref:e}))}),lg="SelectItem",[_D,KS]=os(lg),ND=p.forwardRef((t,e)=>{const{__scopeSelect:A,value:r,disabled:n=!1,textValue:i,...o}=t,s=ss(lg,A),l=Hi(lg,A),a=s.value===r,[c,u]=p.useState(i??""),[f,d]=p.useState(!1),h=Ie(e,m=>{var O;return(O=l.itemRefCallback)===null||O===void 0?void 0:O.call(l,m,r,n)}),g=pr(),B=()=>{n||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return p.createElement(_D,{scope:A,value:r,disabled:n,textId:g,isSelected:a,onItemTextChange:p.useCallback(m=>{u(O=>{var v;return O||((v=m==null?void 0:m.textContent)!==null&&v!==void 0?v:"").trim()})},[])},p.createElement(_f.ItemSlot,{scope:A,value:r,disabled:n,textValue:c},p.createElement(se.div,M({role:"option","aria-labelledby":g,"data-highlighted":f?"":void 0,"aria-selected":a&&f,"data-state":a?"checked":"unchecked","aria-disabled":n||void 0,"data-disabled":n?"":void 0,tabIndex:n?void 0:-1},o,{ref:h,onFocus:ae(o.onFocus,()=>d(!0)),onBlur:ae(o.onBlur,()=>d(!1)),onPointerUp:ae(o.onPointerUp,B),onPointerMove:ae(o.onPointerMove,m=>{if(n){var O;(O=l.onItemLeave)===null||O===void 0||O.call(l)}else m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:ae(o.onPointerLeave,m=>{if(m.currentTarget===document.activeElement){var O;(O=l.onItemLeave)===null||O===void 0||O.call(l)}}),onKeyDown:ae(o.onKeyDown,m=>{var O;((O=l.searchRef)===null||O===void 0?void 0:O.current)!==""&&m.key===" "||(wD.includes(m.key)&&B(),m.key===" "&&m.preventDefault())})}))))}),Da="SelectItemText",MD=p.forwardRef((t,e)=>{const{__scopeSelect:A,className:r,style:n,...i}=t,o=ss(Da,A),s=Hi(Da,A),l=KS(Da,A),a=QD(Da,A),[c,u]=p.useState(null),f=Ie(e,m=>u(m),l.onItemTextChange,m=>{var O;return(O=s.itemTextRefCallback)===null||O===void 0?void 0:O.call(s,m,l.value,l.disabled)}),d=c==null?void 0:c.textContent,h=p.useMemo(()=>p.createElement("option",{key:l.value,value:l.value,disabled:l.disabled},d),[l.disabled,l.value,d]),{onNativeOptionAdd:g,onNativeOptionRemove:B}=a;return qt(()=>(g(h),()=>B(h)),[g,B,h]),p.createElement(p.Fragment,null,p.createElement(se.span,M({id:l.textId},i,{ref:f})),l.isSelected&&o.valueNode&&!o.valueNodeHasChildren?Ii.createPortal(i.children,o.valueNode):null)}),ZD="SelectItemIndicator",XD=p.forwardRef((t,e)=>{const{__scopeSelect:A,...r}=t;return KS(ZD,A).isSelected?p.createElement(se.span,M({"aria-hidden":!0},r,{ref:e})):null}),NB="SelectScrollUpButton",VD=p.forwardRef((t,e)=>{const A=Hi(NB,t.__scopeSelect),r=zO(NB,t.__scopeSelect),[n,i]=p.useState(!1),o=Ie(e,r.onScrollButtonChange);return qt(()=>{if(A.viewport&&A.isPositioned){let a=function(){const c=l.scrollTop>0;i(c)};var s=a;const l=A.viewport;return a(),l.addEventListener("scroll",a),()=>l.removeEventListener("scroll",a)}},[A.viewport,A.isPositioned]),n?p.createElement(WS,M({},t,{ref:o,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=A;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}})):null}),MB="SelectScrollDownButton",YD=p.forwardRef((t,e)=>{const A=Hi(MB,t.__scopeSelect),r=zO(MB,t.__scopeSelect),[n,i]=p.useState(!1),o=Ie(e,r.onScrollButtonChange);return qt(()=>{if(A.viewport&&A.isPositioned){let a=function(){const c=l.scrollHeight-l.clientHeight,u=Math.ceil(l.scrollTop)l.removeEventListener("scroll",a)}},[A.viewport,A.isPositioned]),n?p.createElement(WS,M({},t,{ref:o,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=A;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}})):null}),WS=p.forwardRef((t,e)=>{const{__scopeSelect:A,onAutoScroll:r,...n}=t,i=Hi("SelectScrollButton",A),o=p.useRef(null),s=Nf(A),l=p.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return p.useEffect(()=>()=>l(),[l]),qt(()=>{var a;const c=s().find(u=>u.ref.current===document.activeElement);c==null||(a=c.ref.current)===null||a===void 0||a.scrollIntoView({block:"nearest"})},[s]),p.createElement(se.div,M({"aria-hidden":!0},n,{ref:e,style:{flexShrink:0,...n.style},onPointerDown:ae(n.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:ae(n.onPointerMove,()=>{var a;(a=i.onItemLeave)===null||a===void 0||a.call(i),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:ae(n.onPointerLeave,()=>{l()})}))}),KD=p.forwardRef((t,e)=>{const{__scopeSelect:A,...r}=t;return p.createElement(se.div,M({"aria-hidden":!0},r,{ref:e}))});function WD(t){return t===""||t===void 0}const jS=p.forwardRef((t,e)=>{const{value:A,...r}=t,n=p.useRef(null),i=Ie(e,n),o=Eb(A);return p.useEffect(()=>{const s=n.current,l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(o!==A&&c){const u=new Event("change",{bubbles:!0});c.call(s,A),s.dispatchEvent(u)}},[o,A]),p.createElement(mD,{asChild:!0},p.createElement("select",M({},r,{ref:i,defaultValue:A})))});jS.displayName="BubbleSelect";function GS(t){const e=Or(t),A=p.useRef(""),r=p.useRef(0),n=p.useCallback(o=>{const s=A.current+o;e(s),function l(a){A.current=a,window.clearTimeout(r.current),a!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[e]),i=p.useCallback(()=>{A.current="",window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[A,n,i]}function zS(t,e,A){const n=e.length>1&&Array.from(e).every(a=>a===e[0])?e[0]:e,i=A?t.indexOf(A):-1;let o=jD(t,Math.max(i,0));n.length===1&&(o=o.filter(a=>a!==A));const l=o.find(a=>a.textValue.toLowerCase().startsWith(n.toLowerCase()));return l!==A?l:void 0}function jD(t,e){return t.map((A,r)=>t[(e+r)%t.length])}const GD=CD,qS=SD,zD=xD,qD=UD,JS=ED,JD=PD,e3=DD,ex=LD,tx=ND,t3=MD,A3=XD,Ax=VD,rx=YD,nx=KD,ix=GD,r3=e3,qO=p.forwardRef(({className:t,children:e,...A},r)=>y.jsxs(qS,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...A,children:[e,y.jsx(zD,{asChild:!0,children:y.jsx(CS,{className:"h-4 w-4 opacity-50"})})]}));qO.displayName=qS.displayName;const ox=p.forwardRef(({className:t,...e},A)=>y.jsx(Ax,{ref:A,className:ce("flex cursor-default items-center justify-center py-1",t),...e,children:y.jsx(gR,{})}));ox.displayName=Ax.displayName;const sx=p.forwardRef(({className:t,...e},A)=>y.jsx(rx,{ref:A,className:ce("flex cursor-default items-center justify-center py-1",t),...e,children:y.jsx(bS,{})}));sx.displayName=rx.displayName;const JO=p.forwardRef(({className:t,children:e,position:A="popper",...r},n)=>y.jsx(qD,{children:y.jsxs(JS,{ref:n,className:ce("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",A==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:A,...r,children:[y.jsx(ox,{}),y.jsx(JD,{className:ce("p-1",A==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:e}),y.jsx(sx,{})]})}));JO.displayName=JS.displayName;const n3=p.forwardRef(({className:t,...e},A)=>y.jsx(ex,{ref:A,className:ce("px-2 py-1.5 text-sm font-semibold",t),...e}));n3.displayName=ex.displayName;const mn=p.forwardRef(({className:t,children:e,...A},r)=>y.jsxs(tx,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...A,children:[y.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:y.jsx(A3,{children:y.jsx(dR,{className:"h-4 w-4"})})}),y.jsx(t3,{children:e})]}));mn.displayName=tx.displayName;const i3=p.forwardRef(({className:t,...e},A)=>y.jsx(nx,{ref:A,className:ce("-mx-1 my-1 h-px bg-muted",t),...e}));i3.displayName=nx.displayName;const lx="Collapsible",[o3,ax]=YA(lx),[s3,e0]=o3(lx),l3=p.forwardRef((t,e)=>{const{__scopeCollapsible:A,open:r,defaultOpen:n,disabled:i,onOpenChange:o,...s}=t,[l=!1,a]=Xr({prop:r,defaultProp:n,onChange:o});return p.createElement(s3,{scope:A,disabled:i,contentId:pr(),open:l,onOpenToggle:p.useCallback(()=>a(c=>!c),[a])},p.createElement(se.div,M({"data-state":t0(l),"data-disabled":i?"":void 0},s,{ref:e})))}),a3="CollapsibleTrigger",cx=p.forwardRef((t,e)=>{const{__scopeCollapsible:A,...r}=t,n=e0(a3,A);return p.createElement(se.button,M({type:"button","aria-controls":n.contentId,"aria-expanded":n.open||!1,"data-state":t0(n.open),"data-disabled":n.disabled?"":void 0,disabled:n.disabled},r,{ref:e,onClick:ae(t.onClick,n.onOpenToggle)}))}),ux="CollapsibleContent",fx=p.forwardRef((t,e)=>{const{forceMount:A,...r}=t,n=e0(ux,t.__scopeCollapsible);return p.createElement(rs,{present:A||n.open},({present:i})=>p.createElement(c3,M({},r,{ref:e,present:i})))}),c3=p.forwardRef((t,e)=>{const{__scopeCollapsible:A,present:r,children:n,...i}=t,o=e0(ux,A),[s,l]=p.useState(r),a=p.useRef(null),c=Ie(e,a),u=p.useRef(0),f=u.current,d=p.useRef(0),h=d.current,g=o.open||s,B=p.useRef(g),m=p.useRef();return p.useEffect(()=>{const O=requestAnimationFrame(()=>B.current=!1);return()=>cancelAnimationFrame(O)},[]),qt(()=>{const O=a.current;if(O){m.current=m.current||{transitionDuration:O.style.transitionDuration,animationName:O.style.animationName},O.style.transitionDuration="0s",O.style.animationName="none";const v=O.getBoundingClientRect();u.current=v.height,d.current=v.width,B.current||(O.style.transitionDuration=m.current.transitionDuration,O.style.animationName=m.current.animationName),l(r)}},[o.open,r]),p.createElement(se.div,M({"data-state":t0(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!g},i,{ref:c,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":h?`${h}px`:void 0,...t.style}}),g&&n)});function t0(t){return t?"open":"closed"}const dx=l3,u3=cx,f3=fx,Ai="Accordion",d3=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[A0,h3,p3]=kO(Ai),[Mf,TK]=YA(Ai,[p3,ax]),r0=ax(),hx=q.forwardRef((t,e)=>{const{type:A,...r}=t,n=r,i=r;return q.createElement(A0.Provider,{scope:t.__scopeAccordion},A==="multiple"?q.createElement(w3,M({},i,{ref:e})):q.createElement(O3,M({},n,{ref:e})))});hx.propTypes={type(t){const e=t.value||t.defaultValue;return t.type&&!["single","multiple"].includes(t.type)?new Error("Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`."):t.type==="multiple"&&typeof e=="string"?new Error("Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`."):t.type==="single"&&Array.isArray(e)?new Error("Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`."):null}};const[px,g3]=Mf(Ai),[gx,m3]=Mf(Ai,{collapsible:!1}),O3=q.forwardRef((t,e)=>{const{value:A,defaultValue:r,onValueChange:n=()=>{},collapsible:i=!1,...o}=t,[s,l]=Xr({prop:A,defaultProp:r,onChange:n});return q.createElement(px,{scope:t.__scopeAccordion,value:s?[s]:[],onItemOpen:l,onItemClose:q.useCallback(()=>i&&l(""),[i,l])},q.createElement(gx,{scope:t.__scopeAccordion,collapsible:i},q.createElement(mx,M({},o,{ref:e}))))}),w3=q.forwardRef((t,e)=>{const{value:A,defaultValue:r,onValueChange:n=()=>{},...i}=t,[o=[],s]=Xr({prop:A,defaultProp:r,onChange:n}),l=q.useCallback(c=>s((u=[])=>[...u,c]),[s]),a=q.useCallback(c=>s((u=[])=>u.filter(f=>f!==c)),[s]);return q.createElement(px,{scope:t.__scopeAccordion,value:o,onItemOpen:l,onItemClose:a},q.createElement(gx,{scope:t.__scopeAccordion,collapsible:!0},q.createElement(mx,M({},i,{ref:e}))))}),[B3,Zf]=Mf(Ai),mx=q.forwardRef((t,e)=>{const{__scopeAccordion:A,disabled:r,dir:n,orientation:i="vertical",...o}=t,s=q.useRef(null),l=Ie(s,e),a=h3(A),u=Tf(n)==="ltr",f=ae(t.onKeyDown,d=>{var h;if(!d3.includes(d.key))return;const g=d.target,B=a().filter(U=>{var E;return!((E=U.ref.current)!==null&&E!==void 0&&E.disabled)}),m=B.findIndex(U=>U.ref.current===g),O=B.length;if(m===-1)return;d.preventDefault();let v=m;const Q=0,C=O-1,b=()=>{v=m+1,v>C&&(v=Q)},S=()=>{v=m-1,v{const{__scopeAccordion:A,value:r,...n}=t,i=Zf(ag,A),o=g3(ag,A),s=r0(A),l=pr(),a=r&&o.value.includes(r)||!1,c=i.disabled||t.disabled;return q.createElement(v3,{scope:A,open:a,disabled:c,triggerId:l},q.createElement(dx,M({"data-orientation":i.orientation,"data-state":Ox(a)},s,n,{ref:e,disabled:c,open:a,onOpenChange:u=>{u?o.onItemOpen(r):o.onItemClose(r)}})))}),Q3="AccordionHeader",C3=q.forwardRef((t,e)=>{const{__scopeAccordion:A,...r}=t,n=Zf(Ai,A),i=n0(Q3,A);return q.createElement(se.h3,M({"data-orientation":n.orientation,"data-state":Ox(i.open),"data-disabled":i.disabled?"":void 0},r,{ref:e}))}),ZB="AccordionTrigger",b3=q.forwardRef((t,e)=>{const{__scopeAccordion:A,...r}=t,n=Zf(Ai,A),i=n0(ZB,A),o=m3(ZB,A),s=r0(A);return q.createElement(A0.ItemSlot,{scope:A},q.createElement(u3,M({"aria-disabled":i.open&&!o.collapsible||void 0,"data-orientation":n.orientation,id:i.triggerId},s,r,{ref:e})))}),S3="AccordionContent",x3=q.forwardRef((t,e)=>{const{__scopeAccordion:A,...r}=t,n=Zf(Ai,A),i=n0(S3,A),o=r0(A);return q.createElement(f3,M({role:"region","aria-labelledby":i.triggerId,"data-orientation":n.orientation},o,r,{ref:e,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...t.style}}))});function Ox(t){return t?"open":"closed"}const U3=hx,E3=y3,F3=C3,wx=b3,Bx=x3,XB=U3,cg=p.forwardRef(({className:t,...e},A)=>y.jsx(E3,{ref:A,className:ce("border-b",t),...e}));cg.displayName="AccordionItem";const ug=p.forwardRef(({className:t,children:e,...A},r)=>y.jsx(F3,{className:"flex",children:y.jsxs(wx,{ref:r,className:ce("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",t),...A,children:[e,y.jsx(bS,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"})]})}));ug.displayName=wx.displayName;const fg=p.forwardRef(({className:t,children:e,...A},r)=>y.jsx(Bx,{ref:r,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...A,children:y.jsx("div",{className:ce("pb-4 pt-0",t),children:e})}));fg.displayName=Bx.displayName;function $3(t,e=500){const[A,r]=q.useState(t),n=q.useRef(null);return q.useEffect(()=>{const i=performance.now();if(!n.current||i>=n.current+e)n.current=i,r(t);else{const o=window.setTimeout(()=>{n.current=i,r(t)},e);return()=>window.clearTimeout(o)}},[t,e]),A}const vx="Progress",Xf=100,[k3,IK]=YA(vx),[P3,T3]=k3(vx),yx=p.forwardRef((t,e)=>{const{__scopeProgress:A,value:r,max:n,getValueLabel:i=D3,...o}=t,s=dg(n)?n:Xf,l=Cx(r,s)?r:null,a=Du(l)?i(l,s):void 0;return p.createElement(P3,{scope:A,value:l,max:s},p.createElement(se.div,M({"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":Du(l)?l:void 0,"aria-valuetext":a,role:"progressbar","data-state":Qx(l,s),"data-value":l??void 0,"data-max":s},o,{ref:e})))});yx.propTypes={max(t,e,A){const r=t[e],n=String(r);return r&&!dg(r)?new Error(H3(n,A)):null},value(t,e,A){const r=t[e],n=String(r),i=dg(t.max)?t.max:Xf;return r!=null&&!Cx(r,i)?new Error(L3(n,A)):null}};const I3="ProgressIndicator",R3=p.forwardRef((t,e)=>{var A;const{__scopeProgress:r,...n}=t,i=T3(I3,r);return p.createElement(se.div,M({"data-state":Qx(i.value,i.max),"data-value":(A=i.value)!==null&&A!==void 0?A:void 0,"data-max":i.max},n,{ref:e}))});function D3(t,e){return`${Math.round(t/e*100)}%`}function Qx(t,e){return t==null?"indeterminate":t===e?"complete":"loading"}function Du(t){return typeof t=="number"}function dg(t){return Du(t)&&!isNaN(t)&&t>0}function Cx(t,e){return Du(t)&&!isNaN(t)&&t<=e&&t>=0}function H3(t,e){return`Invalid prop \`max\` of value \`${t}\` supplied to \`${e}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Xf}\`.`}function L3(t,e){return`Invalid prop \`value\` of value \`${t}\` supplied to \`${e}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${Xf} if no \`max\` prop is set) + - \`null\` if the progress is indeterminate. + +Defaulting to \`null\`.`}const bx=yx,_3=R3,Sx=p.forwardRef(({className:t,value:e,...A},r)=>y.jsx(bx,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",t),...A,children:y.jsx(_3,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(e||0)}%)`}})}));Sx.displayName=bx.displayName;function N3({settings:t,setSettings:e}){const[A,r]=p.useState(!1),[n,i]=p.useState(!1),[o,s]=p.useState(0),[l,a]=p.useState(0),c=$3(t.accessCode||"",500),u=(()=>t.accessCode?A?"LOADING":n?"VALID":"INVALID":"EMPTY")();async function f(d){const g=await(await fetch("https://backend.buildpicoapps.com/screenshot_to_code/get_access_code_usage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({access_code:d,secret:Cb})})).json();g.is_valid?(i(!0),s(g.used_credits),a(g.total_credits)):i(!1),r(!1)}return p.useEffect(()=>{c&&(r(!0),i(!0),setTimeout(async()=>{await f(c)},500))},[c]),y.jsxs("div",{className:"flex flex-col space-y-4 bg-slate-200 p-4 rounded dark:text-white dark:bg-slate-800",children:[y.jsx(nr,{htmlFor:"access-code",children:y.jsx("div",{children:"Access Code"})}),y.jsx(vn,{id:"access-code",className:"border-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-white",placeholder:"Enter your Screenshot to Code access code",value:t.accessCode||"",onChange:d=>e(h=>({...h,accessCode:d.target.value}))}),u==="EMPTY"&&y.jsx("div",{className:"flex items-center justify-between",children:y.jsx("a",{href:"https://buy.stripe.com/8wM6sre70gBW1nqaEE",target:"_blank",children:y.jsx(yA,{size:"sm",variant:"secondary",children:"Buy credits"})})}),u==="LOADING"&&y.jsx("div",{className:"flex items-center justify-between",children:y.jsx("span",{className:"text-xs text-gray-700",children:"Loading..."})}),u==="INVALID"&&y.jsx(y.Fragment,{children:y.jsx("div",{className:"flex items-center justify-between",children:y.jsx("span",{className:"text-xs text-gray-700",children:"Invalid access code"})})}),u==="VALID"&&y.jsxs(y.Fragment,{children:[y.jsx(Sx,{value:o/l*100}),y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("span",{className:"text-xs text-gray-700",children:[o," out of ",l," credits used"]}),y.jsx("a",{href:"https://buy.stripe.com/8wM6sre70gBW1nqaEE",target:"_blank",children:y.jsx(yA,{size:"sm",children:"Add credits"})})]})]})]})}function M3({settings:t,setSettings:e}){const A=o=>{e(s=>({...s,editorTheme:o}))},[r,n]=p.useState(!1),i=o=>{n(o==="models/gemini-pro-vision"),e(s=>({...s,model:o}))};return p.useEffect(()=>{n(t.model==="models/gemini-pro-vision")},[]),y.jsxs(SS,{children:[y.jsx(xS,{children:y.jsx(vT,{})}),y.jsxs(_O,{children:[y.jsx(NO,{children:y.jsx(ZO,{className:"mb-4",children:"Settings"})}),il&&y.jsx(N3,{settings:t,setSettings:e}),y.jsxs("div",{className:"flex items-center space-x-2",children:[y.jsxs(nr,{htmlFor:"image-generation",children:[y.jsx("div",{children:"DALL-E Placeholder Image Generation"}),y.jsx("div",{className:"font-light mt-2",children:"More fun with it but if you want to save money, turn it off."})]}),y.jsx(UO,{id:"image-generation",checked:t.isImageGenerationEnabled,onCheckedChange:()=>e(o=>({...o,isImageGenerationEnabled:!o.isImageGenerationEnabled}))})]}),y.jsxs("div",{className:"flex flex-col space-y-4",children:[y.jsxs(nr,{htmlFor:"model-selection",children:[y.jsx("div",{children:"Select model to use"}),y.jsx("div",{className:"font-light mt-2",children:"More fun with it but if you want to save money, turn it off."})]}),y.jsxs("select",{className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",value:t.model||"",onChange:o=>{i(o.target.value)},children:[y.jsx("option",{value:"gpt-4-vision",children:"GPT 4 Vision"}),y.jsx("option",{value:"models/gemini-pro-vision",children:"Gemini Pro Vision"})]})]}),y.jsxs("div",{className:"flex flex-col space-y-4",children:[r?y.jsxs(y.Fragment,{children:[y.jsxs(nr,{htmlFor:"google-api-key",children:[y.jsx("div",{children:"Google API key"}),y.jsx("div",{className:"font-light mt-2 leading-relaxed",children:"Only stored in your browser. Never stored on servers. Overrides your .env config."})]}),y.jsx(vn,{id:"google-api-key",placeholder:"Google API key",value:t.googleApiKey||"",onChange:o=>e(s=>({...s,googleApiKey:o.target.value}))})]}):y.jsxs(y.Fragment,{children:[y.jsxs(nr,{htmlFor:"openai-api-key",children:[y.jsx("div",{children:"OpenAI API key"}),y.jsx("div",{className:"font-light mt-2 leading-relaxed",children:"Only stored in your browser. Never stored on servers. Overrides your .env config."})]}),y.jsx(vn,{id:"openai-api-key",placeholder:"OpenAI API key",value:t.openAiApiKey||"",onChange:o=>e(s=>({...s,openAiApiKey:o.target.value}))})]}),!il&&y.jsxs(y.Fragment,{children:[y.jsxs(nr,{htmlFor:"openai-api-key",children:[y.jsx("div",{children:"OpenAI Base URL (optional)"}),y.jsx("div",{className:"font-light mt-2 leading-relaxed",children:"Replace with a proxy URL if you don't want to use the default."})]}),y.jsx(vn,{id:"openai-base-url",placeholder:"OpenAI Base URL",value:t.openAiBaseURL||"",onChange:o=>e(s=>({...s,openAiBaseURL:o.target.value}))})]}),y.jsx(XB,{type:"single",collapsible:!0,className:"w-full",children:y.jsxs(cg,{value:"item-1",children:[y.jsx(ug,{children:"Screenshot by URL Config"}),y.jsxs(fg,{children:[y.jsx(nr,{htmlFor:"screenshot-one-api-key",children:y.jsxs("div",{className:"leading-normal font-normal text-xs",children:["If you want to use URLs directly instead of taking the screenshot yourself, add a ScreenshotOne API key."," ",y.jsx("a",{href:"https://screenshotone.com?via=screenshot-to-code",className:"underline",target:"_blank",children:"Get 100 screenshots/mo for free."})]})}),y.jsx(vn,{id:"screenshot-one-api-key",className:"mt-2",placeholder:"ScreenshotOne API key",value:t.screenshotOneApiKey||"",onChange:o=>e(s=>({...s,screenshotOneApiKey:o.target.value}))})]})]})}),y.jsx(XB,{type:"single",collapsible:!0,className:"w-full",children:y.jsxs(cg,{value:"item-1",children:[y.jsx(ug,{children:"Theme Settings"}),y.jsxs(fg,{className:"space-y-4 flex flex-col",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx(nr,{htmlFor:"app-theme",children:y.jsx("div",{children:"App Theme"})}),y.jsx("div",{children:y.jsx("button",{className:"flex rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50t",onClick:()=>{var o,s;(o=document.querySelector("div.mt-2"))==null||o.classList.toggle("dark"),document.body.classList.toggle("dark"),(s=document.querySelector('div[role="presentation"]'))==null||s.classList.toggle("dark")},children:"Toggle dark mode"})})]}),y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx(nr,{htmlFor:"editor-theme",children:y.jsx("div",{children:"Code Editor Theme - requires page refresh to update"})}),y.jsx("div",{children:y.jsxs(ix,{name:"editor-theme",value:t.editorTheme,onValueChange:o=>A(o),children:[y.jsx(qO,{className:"w-[180px]",children:BI(t.editorTheme)}),y.jsxs(JO,{children:[y.jsx(mn,{value:"cobalt",children:"Cobalt"}),y.jsx(mn,{value:"espresso",children:"Espresso"})]})]})})]})]})]})})]}),y.jsx(MO,{children:y.jsx(BR,{children:"Save"})})]})]})}var i0=(t=>(t.ESPRESSO="espresso",t.COBALT="cobalt",t))(i0||{}),lt=(t=>(t.HTML_TAILWIND="html_tailwind",t.REACT_TAILWIND="react_tailwind",t.BOOTSTRAP="bootstrap",t.IONIC_TAILWIND="ionic_tailwind",t.SVG="svg",t))(lt||{}),ot=(t=>(t.INITIAL="INITIAL",t.CODING="CODING",t.CODE_READY="CODE_READY",t))(ot||{});function Z3({settings:t}){return y.jsxs(y.Fragment,{children:[y.jsx("a",{href:"https://screenshot-to-code.canny.io/feature-requests",target:"_blank",children:y.jsx("div",{className:`fixed z-50 bottom-16 right-5 rounded-md shadow bg-black\r + text-white px-4 text-xs py-3 cursor-pointer`,children:"feature requests?"})}),!t.accessCode&&y.jsx("a",{href:"https://picoapps.xyz?ref=screenshot-to-code",target:"_blank",children:y.jsx("div",{className:`fixed z-50 bottom-5 right-5 rounded-md shadow text-black\r + bg-white px-4 text-xs py-3 cursor-pointer`,children:"an open source project by Pico"})}),t.accessCode&&y.jsx("a",{href:"mailto:support@picoapps.xyz",target:"_blank",children:y.jsx("div",{className:`fixed z-50 bottom-5 right-5 rounded-md shadow text-black\r + bg-white px-4 text-xs py-3 cursor-pointer`,children:"email support"})})]})}function X3(){return y.jsx("div",{className:"flex flex-col space-y-4 bg-green-700 p-2 rounded text-stone-200 text-sm",children:y.jsxs("span",{children:["To use Screenshot to Code,"," ",y.jsx("a",{className:"inline underline hover:opacity-70",href:"https://buy.stripe.com/8wM6sre70gBW1nqaEE",target:"_blank",children:"buy some credits (100 generations for $36)"})," ","or use your own OpenAI API key with GPT4 vision access."," ",y.jsx("a",{href:"https://github.com/abi/screenshot-to-code/blob/main/Troubleshooting.md",className:"inline underline hover:opacity-70",target:"_blank",children:"Follow these instructions to get yourself a key."})," ","and paste it in the Settings dialog (gear icon above). Your key is only stored in your browser. Never stored on our servers."]})})}function V3(t,e){const[A,r]=p.useState(()=>{const n=window.localStorage.getItem(e);return n?JSON.parse(n):t});return p.useEffect(()=>{window.localStorage.setItem(e,JSON.stringify(A))},[e,A]),[A,r]}function Y3({doCreate:t,screenshotOneApiKey:e}){const[A,r]=p.useState(!1),[n,i]=p.useState("");async function o(){if(!e){ct.error("Please add a ScreenshotOne API key in the Settings dialog. This is optional - you can also drag/drop and upload images directly.",{duration:8e3});return}if(!n){ct.error("Please enter a URL");return}if(n)try{r(!0);const s=await fetch(`${Qb}/api/screenshot`,{method:"POST",body:JSON.stringify({url:n,apiKey:e}),headers:{"Content-Type":"application/json"}});if(!s.ok)throw new Error("Failed to capture screenshot");const l=await s.json();t([l.url])}catch(s){console.error(s),ct.error("Failed to capture screenshot. Look at the console and your backend logs for more details.")}finally{r(!1)}}return y.jsxs("div",{className:"max-w-[90%] min-w-[40%] gap-y-2 flex flex-col",children:[y.jsx("div",{className:"text-gray-500 text-sm",children:"Or screenshot a URL..."}),y.jsx(vn,{placeholder:"Enter URL",onChange:s=>i(s.target.value),value:n}),y.jsx(yA,{onClick:o,disabled:A,className:"bg-slate-400",children:A?"Capturing...":"Capture"})]})}const K3="AlertDialog",[W3,RK]=YA(K3,[mS]),ri=mS(),j3=t=>{const{__scopeAlertDialog:e,...A}=t,r=ri(e);return p.createElement(yS,M({},r,A,{modal:!0}))},G3=t=>{const{__scopeAlertDialog:e,...A}=t,r=ri(e);return p.createElement(QS,M({},r,A))},z3=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,...r}=t,n=ri(A);return p.createElement(RO,M({},n,r,{ref:e}))}),xx="AlertDialogContent",[q3,J3]=W3(xx),eH=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,children:r,...n}=t,i=ri(A),o=p.useRef(null),s=Ie(e,o),l=p.useRef(null);return p.createElement(aR,{contentName:xx,titleName:tH,docsSlug:"alert-dialog"},p.createElement(q3,{scope:A,cancelRef:l},p.createElement(DO,M({role:"alertdialog"},i,n,{ref:s,onOpenAutoFocus:ae(n.onOpenAutoFocus,a=>{var c;a.preventDefault(),(c=l.current)===null||c===void 0||c.focus({preventScroll:!0})}),onPointerDownOutside:a=>a.preventDefault(),onInteractOutside:a=>a.preventDefault()}),p.createElement($b,null,r),!1)))}),tH="AlertDialogTitle",AH=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,...r}=t,n=ri(A);return p.createElement(HO,M({},n,r,{ref:e}))}),rH=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,...r}=t,n=ri(A);return p.createElement(LO,M({},n,r,{ref:e}))}),nH=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,...r}=t,n=ri(A);return p.createElement(Rf,M({},n,r,{ref:e}))}),iH="AlertDialogCancel",oH=p.forwardRef((t,e)=>{const{__scopeAlertDialog:A,...r}=t,{cancelRef:n}=J3(iH,A),i=ri(A),o=Ie(e,n);return p.createElement(Rf,M({},i,r,{ref:o}))}),sH=j3,lH=G3,Ux=z3,Ex=eH,Fx=nH,$x=oH,kx=AH,Px=rH,aH=sH,cH=lH,Tx=p.forwardRef(({className:t,...e},A)=>y.jsx(Ux,{className:ce("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e,ref:A}));Tx.displayName=Ux.displayName;const Ix=p.forwardRef(({className:t,...e},A)=>y.jsxs(cH,{children:[y.jsx(Tx,{}),y.jsx(Ex,{ref:A,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...e})]}));Ix.displayName=Ex.displayName;const Rx=({className:t,...e})=>y.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",t),...e});Rx.displayName="AlertDialogHeader";const Dx=({className:t,...e})=>y.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});Dx.displayName="AlertDialogFooter";const Hx=p.forwardRef(({className:t,...e},A)=>y.jsx(kx,{ref:A,className:ce("text-lg font-semibold",t),...e}));Hx.displayName=kx.displayName;const uH=p.forwardRef(({className:t,...e},A)=>y.jsx(Px,{ref:A,className:ce("text-sm text-muted-foreground",t),...e}));uH.displayName=Px.displayName;const Lx=p.forwardRef(({className:t,...e},A)=>y.jsx(Fx,{ref:A,className:ce(FO(),t),...e}));Lx.displayName=Fx.displayName;const fH=p.forwardRef(({className:t,...e},A)=>y.jsx($x,{ref:A,className:ce(FO({variant:"outline"}),"mt-2 sm:mt-0",t),...e}));fH.displayName=$x.displayName;const dH=["microsoft","amazon","mit","stanford","bytedance","baidu"],hH=({open:t,onOpenChange:e})=>{const[A,r]=q.useState(""),n=async()=>{await fetch("https://backend.buildpicoapps.com/form",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:A,secret:Cb})})};return y.jsx(aH,{open:t,onOpenChange:e,children:y.jsxs(Ix,{children:[y.jsx(Rx,{children:y.jsx(Hx,{className:"mb-2 text-xl",children:"Enter your email to get started"})}),y.jsx("div",{className:"mb-2",children:y.jsx(vn,{placeholder:"Email",value:A,onChange:i=>{r(i.target.value)}})}),y.jsxs("div",{className:"flex flex-col space-y-3 text-sm",children:[y.jsxs("p",{children:["By providing your email, you consent to receiving occasional product updates, and you accept the"," ",y.jsx("a",{href:"https://a.picoapps.xyz/camera-write",target:"_blank",className:"underline",children:"terms of service"}),"."," "]}),y.jsxs("p",{children:[" ","Prefer to run it yourself locally? This project is open source."," ",y.jsx("a",{href:"https://github.com/abi/screenshot-to-code",target:"_blank",className:"underline",children:"Download the code and get started on Github."})]})]}),y.jsx(Dx,{children:y.jsx(Lx,{onClick:i=>{!A.trim()||!A.trim().includes("@")?(i.preventDefault(),vA.error("Please enter your email")):n()},children:"Agree & Continue"})}),y.jsxs("div",{children:[y.jsx("div",{className:`mx-auto grid max-w-lg items-center gap-x-2 \r + gap-y-10 sm:max-w-xl grid-cols-6 lg:mx-0 lg:max-w-none mt-10`,children:dH.map(i=>y.jsx("img",{className:"col-span-1 max-h-12 w-full object-contain grayscale opacity-50 hover:opacity-100",src:`https://picoapps.xyz/logos/${i}.png`,alt:i,width:120,height:48},i))}),y.jsx("div",{className:"text-gray-500 text-xs mt-4 text-center",children:"Designers and engineers from these organizations use Screenshot to Code to build interfaces faster."})]})]})})};/*! + * html2canvas 1.4.1 + * Copyright (c) 2022 Niklas von Hertzen + * Released under MIT License + *//*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var hg=function(t,e){return hg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,r){A.__proto__=r}||function(A,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(A[n]=r[n])},hg(t,e)};function WA(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");hg(t,e);function A(){this.constructor=t}t.prototype=e===null?Object.create(e):(A.prototype=e.prototype,new A)}var pg=function(){return pg=Object.assign||function(e){for(var A,r=1,n=arguments.length;r0&&i[i.length-1])&&(a[0]===6||a[0]===2)){A=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]=55296&&n<=56319&&A>10)+55296,o%1024+56320)),(n+1===A||r.length>16384)&&(i+=String.fromCharCode.apply(String,r),r.length=0)}return i},VB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",gH=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(var La=0;La"u"?[]:new Uint8Array(256);for(var _a=0;_a>4,c[n++]=(o&15)<<4|s>>2,c[n++]=(s&3)<<6|l&63;return a},OH=function(t){for(var e=t.length,A=[],r=0;r>vi,vH=1<>vi,QH=_x+yH,CH=QH,bH=32,SH=CH+bH,xH=65536>>o0,UH=1<=0){if(e<55296||e>56319&&e<=65535)return A=this.index[e>>vi],A=(A<>vi)],A=(A<>o0),A=this.index[A],A+=e>>vi&EH,A=this.index[A],A=(A<"u"?[]:new Uint8Array(256);for(var Na=0;NajB?(n.push(!0),s-=jB):n.push(!1),["normal","auto","loose"].indexOf(e)!==-1&&[8208,8211,12316,12448].indexOf(i)!==-1)return r.push(o),A.push(Og);if(s===RH||s===gg){if(o===0)return r.push(o),A.push(ci);var l=A[o-1];return XH.indexOf(l)===-1?(r.push(r[o-1]),A.push(l)):(r.push(o),A.push(ci))}if(r.push(o),s===NH)return A.push(e==="strict"?wg:Tl);if(s===Xx||s===_H)return A.push(ci);if(s===MH)return i>=131072&&i<=196605||i>=196608&&i<=262141?A.push(Tl):A.push(ci);A.push(s)}),[r,A,n]},ah=function(t,e,A,r){var n=r[A];if(Array.isArray(t)?t.indexOf(n)!==-1:t===n)for(var i=A;i<=r.length;){i++;var o=r[i];if(o===e)return!0;if(o!==yn)break}if(n===yn)for(var i=A;i>0;){i--;var s=r[i];if(Array.isArray(t)?t.indexOf(s)!==-1:t===s)for(var l=A;l<=r.length;){l++;var o=r[l];if(o===e)return!0;if(o!==yn)break}if(s!==yn)break}return!1},Av=function(t,e){for(var A=t;A>=0;){var r=e[A];if(r===yn)A--;else return r}return 0},KH=function(t,e,A,r,n){if(A[r]===0)return le;var i=r-1;if(Array.isArray(n)&&n[i]===!0)return le;var o=i-1,s=i+1,l=e[i],a=o>=0?e[o]:0,c=e[s];if(l===Nx&&c===Mx)return le;if(bg.indexOf(l)!==-1)return Vx;if(bg.indexOf(c)!==-1||Yx.indexOf(c)!==-1)return le;if(Av(i,e)===Zx)return Va;if(Cg.get(t[i])===gg||(l===Za||l===Xa)&&Cg.get(t[s])===gg||l===GB||c===GB||l===zB||[yn,mg,Ls].indexOf(l)===-1&&c===zB||[Ma,Qs,LH,Ki,Wi].indexOf(c)!==-1||Av(i,e)===Cs||ah(sh,Cs,i,e)||ah([Ma,Qs],wg,i,e)||ah(qB,qB,i,e))return le;if(l===yn)return Va;if(l===sh||c===sh)return le;if(c===Og||l===Og)return Va;if([mg,Ls,wg].indexOf(c)!==-1||l===HH||a===yg&&VH.indexOf(l)!==-1||l===Wi&&c===yg||c===JB||xr.indexOf(c)!==-1&&l===rA||xr.indexOf(l)!==-1&&c===rA||l===Ns&&[Tl,Za,Xa].indexOf(c)!==-1||[Tl,Za,Xa].indexOf(l)!==-1&&c===_s||xr.indexOf(l)!==-1&&ev.indexOf(c)!==-1||ev.indexOf(l)!==-1&&xr.indexOf(c)!==-1||[Ns,_s].indexOf(l)!==-1&&(c===rA||[Cs,Ls].indexOf(c)!==-1&&e[s+1]===rA)||[Cs,Ls].indexOf(l)!==-1&&c===rA||l===rA&&[rA,Wi,Ki].indexOf(c)!==-1)return le;if([rA,Wi,Ki,Ma,Qs].indexOf(c)!==-1)for(var u=i;u>=0;){var f=e[u];if(f===rA)return le;if([Wi,Ki].indexOf(f)!==-1)u--;else break}if([Ns,_s].indexOf(c)!==-1)for(var u=[Ma,Qs].indexOf(l)!==-1?o:i;u>=0;){var f=e[u];if(f===rA)return le;if([Wi,Ki].indexOf(f)!==-1)u--;else break}if(Qg===l&&[Qg,Zc,Bg,vg].indexOf(c)!==-1||[Zc,Bg].indexOf(l)!==-1&&[Zc,Xc].indexOf(c)!==-1||[Xc,vg].indexOf(l)!==-1&&c===Xc||tv.indexOf(l)!==-1&&[JB,_s].indexOf(c)!==-1||tv.indexOf(c)!==-1&&l===Ns||xr.indexOf(l)!==-1&&xr.indexOf(c)!==-1||l===Ki&&xr.indexOf(c)!==-1||xr.concat(rA).indexOf(l)!==-1&&c===Cs&&ZH.indexOf(t[s])===-1||xr.concat(rA).indexOf(c)!==-1&&l===Qs)return le;if(l===lh&&c===lh){for(var d=A[i],h=1;d>0&&(d--,e[d]===lh);)h++;if(h%2!==0)return le}return l===Za&&c===Xa?le:Va},WH=function(t,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var A=YH(t,e.lineBreak),r=A[0],n=A[1],i=A[2];(e.wordBreak==="break-all"||e.wordBreak==="break-word")&&(n=n.map(function(s){return[rA,ci,Xx].indexOf(s)!==-1?Tl:s}));var o=e.wordBreak==="keep-all"?i.map(function(s,l){return s&&t[l]>=19968&&t[l]<=40959}):void 0;return[r,n,o]},jH=function(){function t(e,A,r,n){this.codePoints=e,this.required=A===Vx,this.start=r,this.end=n}return t.prototype.slice=function(){return Ke.apply(void 0,this.codePoints.slice(this.start,this.end))},t}(),GH=function(t,e){var A=Yf(t),r=WH(A,e),n=r[0],i=r[1],o=r[2],s=A.length,l=0,a=0;return{next:function(){if(a>=s)return{done:!0,value:null};for(var c=le;a=Kx&&t<=57},FL=function(t){return t>=55296&&t<=57343},ji=function(t){return St(t)||t>=Gx&&t<=qx||t>=Wx&&t<=bL},$L=function(t){return t>=Wx&&t<=xL},kL=function(t){return t>=Gx&&t<=EL},PL=function(t){return $L(t)||kL(t)},TL=function(t){return t>=pL},Ga=function(t){return t===Hu||t===JH||t===eL},Lu=function(t){return PL(t)||TL(t)||t===nL},sv=function(t){return Lu(t)||St(t)||t===Xt},IL=function(t){return t>=wL&&t<=BL||t===vL||t>=yL&&t<=QL||t===CL},un=function(t,e){return t!==ol?!1:e!==Hu},za=function(t,e,A){return t===Xt?Lu(e)||un(e,A):Lu(t)?!0:!!(t===ol&&un(t,e))},uh=function(t,e,A){return t===gi||t===Xt?St(e)?!0:e===Il&&St(A):St(t===Il?e:t)},RL=function(t){var e=0,A=1;(t[e]===gi||t[e]===Xt)&&(t[e]===Xt&&(A=-1),e++);for(var r=[];St(t[e]);)r.push(t[e++]);var n=r.length?parseInt(Ke.apply(void 0,r),10):0;t[e]===Il&&e++;for(var i=[];St(t[e]);)i.push(t[e++]);var o=i.length,s=o?parseInt(Ke.apply(void 0,i),10):0;(t[e]===zx||t[e]===jx)&&e++;var l=1;(t[e]===gi||t[e]===Xt)&&(t[e]===Xt&&(l=-1),e++);for(var a=[];St(t[e]);)a.push(t[e++]);var c=a.length?parseInt(Ke.apply(void 0,a),10):0;return A*(n+s*Math.pow(10,-o))*Math.pow(10,l*c)},DL={type:2},HL={type:3},LL={type:4},_L={type:13},NL={type:8},ML={type:21},ZL={type:9},XL={type:10},VL={type:11},YL={type:12},KL={type:14},qa={type:23},WL={type:1},jL={type:25},GL={type:24},zL={type:26},qL={type:27},JL={type:28},e_={type:29},t_={type:31},Sg={type:32},Jx=function(){function t(){this._value=[]}return t.prototype.write=function(e){this._value=this._value.concat(Yf(e))},t.prototype.read=function(){for(var e=[],A=this.consumeToken();A!==Sg;)e.push(A),A=this.consumeToken();return e},t.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case Ya:return this.consumeStringToken(Ya);case tL:var A=this.peekCodePoint(0),r=this.peekCodePoint(1),n=this.peekCodePoint(2);if(sv(A)||un(r,n)){var i=za(A,r,n)?qH:zH,o=this.consumeName();return{type:5,value:o,flags:i}}break;case AL:if(this.peekCodePoint(0)===bs)return this.consumeCodePoint(),_L;break;case Ka:return this.consumeStringToken(Ka);case Wa:return DL;case Ss:return HL;case ch:if(this.peekCodePoint(0)===bs)return this.consumeCodePoint(),KL;break;case gi:if(uh(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case gL:return LL;case Xt:var s=e,l=this.peekCodePoint(0),a=this.peekCodePoint(1);if(uh(s,l,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(za(s,l,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(l===Xt&&a===sL)return this.consumeCodePoint(),this.consumeCodePoint(),GL;break;case Il:if(uh(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case nv:if(this.peekCodePoint(0)===ch)for(this.consumeCodePoint();;){var c=this.consumeCodePoint();if(c===ch&&(c=this.consumeCodePoint(),c===nv))return this.consumeToken();if(c===qA)return this.consumeToken()}break;case mL:return zL;case OL:return qL;case oL:if(this.peekCodePoint(0)===iL&&this.peekCodePoint(1)===Xt&&this.peekCodePoint(2)===Xt)return this.consumeCodePoint(),this.consumeCodePoint(),jL;break;case lL:var u=this.peekCodePoint(0),f=this.peekCodePoint(1),d=this.peekCodePoint(2);if(za(u,f,d)){var o=this.consumeName();return{type:7,value:o}}break;case aL:return JL;case ol:if(un(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case cL:return e_;case uL:if(this.peekCodePoint(0)===bs)return this.consumeCodePoint(),NL;break;case fL:return VL;case dL:return YL;case SL:case UL:var h=this.peekCodePoint(0),g=this.peekCodePoint(1);return h===gi&&(ji(g)||g===ja)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case iv:if(this.peekCodePoint(0)===bs)return this.consumeCodePoint(),ZL;if(this.peekCodePoint(0)===iv)return this.consumeCodePoint(),ML;break;case hL:if(this.peekCodePoint(0)===bs)return this.consumeCodePoint(),XL;break;case qA:return Sg}return Ga(e)?(this.consumeWhiteSpace(),t_):St(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Lu(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ke(e)}},t.prototype.consumeCodePoint=function(){var e=this._value.shift();return typeof e>"u"?-1:e},t.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},t.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},t.prototype.consumeUnicodeRangeToken=function(){for(var e=[],A=this.consumeCodePoint();ji(A)&&e.length<6;)e.push(A),A=this.consumeCodePoint();for(var r=!1;A===ja&&e.length<6;)e.push(A),A=this.consumeCodePoint(),r=!0;if(r){var n=parseInt(Ke.apply(void 0,e.map(function(l){return l===ja?Kx:l})),16),i=parseInt(Ke.apply(void 0,e.map(function(l){return l===ja?qx:l})),16);return{type:30,start:n,end:i}}var o=parseInt(Ke.apply(void 0,e),16);if(this.peekCodePoint(0)===Xt&&ji(this.peekCodePoint(1))){this.consumeCodePoint(),A=this.consumeCodePoint();for(var s=[];ji(A)&&s.length<6;)s.push(A),A=this.consumeCodePoint();var i=parseInt(Ke.apply(void 0,s),16);return{type:30,start:o,end:i}}else return{type:30,start:o,end:o}},t.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return e.toLowerCase()==="url"&&this.peekCodePoint(0)===Wa?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===Wa?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},t.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===qA)return{type:22,value:""};var A=this.peekCodePoint(0);if(A===Ka||A===Ya){var r=this.consumeStringToken(this.consumeCodePoint());return r.type===0&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===qA||this.peekCodePoint(0)===Ss)?(this.consumeCodePoint(),{type:22,value:r.value}):(this.consumeBadUrlRemnants(),qa)}for(;;){var n=this.consumeCodePoint();if(n===qA||n===Ss)return{type:22,value:Ke.apply(void 0,e)};if(Ga(n))return this.consumeWhiteSpace(),this.peekCodePoint(0)===qA||this.peekCodePoint(0)===Ss?(this.consumeCodePoint(),{type:22,value:Ke.apply(void 0,e)}):(this.consumeBadUrlRemnants(),qa);if(n===Ya||n===Ka||n===Wa||IL(n))return this.consumeBadUrlRemnants(),qa;if(n===ol)if(un(n,this.peekCodePoint(0)))e.push(this.consumeEscapedCodePoint());else return this.consumeBadUrlRemnants(),qa;else e.push(n)}},t.prototype.consumeWhiteSpace=function(){for(;Ga(this.peekCodePoint(0));)this.consumeCodePoint()},t.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(e===Ss||e===qA)return;un(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},t.prototype.consumeStringSlice=function(e){for(var A=5e4,r="";e>0;){var n=Math.min(A,e);r+=Ke.apply(void 0,this._value.splice(0,n)),e-=n}return this._value.shift(),r},t.prototype.consumeStringToken=function(e){var A="",r=0;do{var n=this._value[r];if(n===qA||n===void 0||n===e)return A+=this.consumeStringSlice(r),{type:0,value:A};if(n===Hu)return this._value.splice(0,r),WL;if(n===ol){var i=this._value[r+1];i!==qA&&i!==void 0&&(i===Hu?(A+=this.consumeStringSlice(r),r=-1,this._value.shift()):un(n,i)&&(A+=this.consumeStringSlice(r),A+=Ke(this.consumeEscapedCodePoint()),r=-1))}r++}while(!0)},t.prototype.consumeNumber=function(){var e=[],A=na,r=this.peekCodePoint(0);for((r===gi||r===Xt)&&e.push(this.consumeCodePoint());St(this.peekCodePoint(0));)e.push(this.consumeCodePoint());r=this.peekCodePoint(0);var n=this.peekCodePoint(1);if(r===Il&&St(n))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=rv;St(this.peekCodePoint(0));)e.push(this.consumeCodePoint());r=this.peekCodePoint(0),n=this.peekCodePoint(1);var i=this.peekCodePoint(2);if((r===zx||r===jx)&&((n===gi||n===Xt)&&St(i)||St(n)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=rv;St(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[RL(e),A]},t.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),A=e[0],r=e[1],n=this.peekCodePoint(0),i=this.peekCodePoint(1),o=this.peekCodePoint(2);if(za(n,i,o)){var s=this.consumeName();return{type:15,number:A,flags:r,unit:s}}return n===rL?(this.consumeCodePoint(),{type:16,number:A,flags:r}):{type:17,number:A,flags:r}},t.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(ji(e)){for(var A=Ke(e);ji(this.peekCodePoint(0))&&A.length<6;)A+=Ke(this.consumeCodePoint());Ga(this.peekCodePoint(0))&&this.consumeCodePoint();var r=parseInt(A,16);return r===0||FL(r)||r>1114111?ov:r}return e===qA?ov:e},t.prototype.consumeName=function(){for(var e="";;){var A=this.consumeCodePoint();if(sv(A))e+=Ke(A);else if(un(A,this.peekCodePoint(0)))e+=Ke(this.consumeEscapedCodePoint());else return this.reconsumeCodePoint(A),e}},t}(),eU=function(){function t(e){this._tokens=e}return t.create=function(e){var A=new Jx;return A.write(e),new t(A.read())},t.parseValue=function(e){return t.create(e).parseComponentValue()},t.parseValues=function(e){return t.create(e).parseComponentValues()},t.prototype.parseComponentValue=function(){for(var e=this.consumeToken();e.type===31;)e=this.consumeToken();if(e.type===32)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var A=this.consumeComponentValue();do e=this.consumeToken();while(e.type===31);if(e.type===32)return A;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},t.prototype.parseComponentValues=function(){for(var e=[];;){var A=this.consumeComponentValue();if(A.type===32)return e;e.push(A),e.push()}},t.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},t.prototype.consumeSimpleBlock=function(e){for(var A={type:e,values:[]},r=this.consumeToken();;){if(r.type===32||r_(r,e))return A;this.reconsumeToken(r),A.values.push(this.consumeComponentValue()),r=this.consumeToken()}},t.prototype.consumeFunction=function(e){for(var A={name:e.value,values:[],type:18};;){var r=this.consumeToken();if(r.type===32||r.type===3)return A;this.reconsumeToken(r),A.values.push(this.consumeComponentValue())}},t.prototype.consumeToken=function(){var e=this._tokens.shift();return typeof e>"u"?Sg:e},t.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},t}(),ia=function(t){return t.type===15},ls=function(t){return t.type===17},Qe=function(t){return t.type===20},A_=function(t){return t.type===0},xg=function(t,e){return Qe(t)&&t.value===e},tU=function(t){return t.type!==31},Zo=function(t){return t.type!==31&&t.type!==4},Br=function(t){var e=[],A=[];return t.forEach(function(r){if(r.type===4){if(A.length===0)throw new Error("Error parsing function args, zero tokens for arg");e.push(A),A=[];return}r.type!==31&&A.push(r)}),A.length&&e.push(A),e},r_=function(t,e){return e===11&&t.type===12||e===28&&t.type===29?!0:e===2&&t.type===3},Yn=function(t){return t.type===17||t.type===15},ze=function(t){return t.type===16||Yn(t)},AU=function(t){return t.length>1?[t[0],t[1]]:[t[0]]},mt={type:17,number:0,flags:na},s0={type:16,number:50,flags:na},Qn={type:16,number:100,flags:na},Ms=function(t,e,A){var r=t[0],n=t[1];return[Se(r,e),Se(typeof n<"u"?n:r,A)]},Se=function(t,e){if(t.type===16)return t.number/100*e;if(ia(t))switch(t.unit){case"rem":case"em":return 16*t.number;case"px":default:return t.number}return t.number},rU="deg",nU="grad",iU="rad",oU="turn",Kf={name:"angle",parse:function(t,e){if(e.type===15)switch(e.unit){case rU:return Math.PI*e.number/180;case nU:return Math.PI/200*e.number;case iU:return e.number;case oU:return Math.PI*2*e.number}throw new Error("Unsupported angle type")}},sU=function(t){return t.type===15&&(t.unit===rU||t.unit===nU||t.unit===iU||t.unit===oU)},lU=function(t){var e=t.filter(Qe).map(function(A){return A.value}).join(" ");switch(e){case"to bottom right":case"to right bottom":case"left top":case"top left":return[mt,mt];case"to top":case"bottom":return QA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[mt,Qn];case"to right":case"left":return QA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Qn,Qn];case"to bottom":case"top":return QA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Qn,mt];case"to left":case"right":return QA(270)}return 0},QA=function(t){return Math.PI*t/180},Dn={name:"color",parse:function(t,e){if(e.type===18){var A=n_[e.name];if(typeof A>"u")throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return A(t,e.values)}if(e.type===5){if(e.value.length===3){var r=e.value.substring(0,1),n=e.value.substring(1,2),i=e.value.substring(2,3);return Cn(parseInt(r+r,16),parseInt(n+n,16),parseInt(i+i,16),1)}if(e.value.length===4){var r=e.value.substring(0,1),n=e.value.substring(1,2),i=e.value.substring(2,3),o=e.value.substring(3,4);return Cn(parseInt(r+r,16),parseInt(n+n,16),parseInt(i+i,16),parseInt(o+o,16)/255)}if(e.value.length===6){var r=e.value.substring(0,2),n=e.value.substring(2,4),i=e.value.substring(4,6);return Cn(parseInt(r,16),parseInt(n,16),parseInt(i,16),1)}if(e.value.length===8){var r=e.value.substring(0,2),n=e.value.substring(2,4),i=e.value.substring(4,6),o=e.value.substring(6,8);return Cn(parseInt(r,16),parseInt(n,16),parseInt(i,16),parseInt(o,16)/255)}}if(e.type===20){var s=Dr[e.value.toUpperCase()];if(typeof s<"u")return s}return Dr.TRANSPARENT}},Hn=function(t){return(255&t)===0},st=function(t){var e=255&t,A=255&t>>8,r=255&t>>16,n=255&t>>24;return e<255?"rgba("+n+","+r+","+A+","+e/255+")":"rgb("+n+","+r+","+A+")"},Cn=function(t,e,A,r){return(t<<24|e<<16|A<<8|Math.round(r*255)<<0)>>>0},lv=function(t,e){if(t.type===17)return t.number;if(t.type===16){var A=e===3?1:255;return e===3?t.number/100*A:Math.round(t.number/100*A)}return 0},av=function(t,e){var A=e.filter(Zo);if(A.length===3){var r=A.map(lv),n=r[0],i=r[1],o=r[2];return Cn(n,i,o,1)}if(A.length===4){var s=A.map(lv),n=s[0],i=s[1],o=s[2],l=s[3];return Cn(n,i,o,l)}return 0};function fh(t,e,A){return A<0&&(A+=1),A>=1&&(A-=1),A<1/6?(e-t)*A*6+t:A<1/2?e:A<2/3?(e-t)*6*(2/3-A)+t:t}var cv=function(t,e){var A=e.filter(Zo),r=A[0],n=A[1],i=A[2],o=A[3],s=(r.type===17?QA(r.number):Kf.parse(t,r))/(Math.PI*2),l=ze(n)?n.number/100:0,a=ze(i)?i.number/100:0,c=typeof o<"u"&&ze(o)?Se(o,1):1;if(l===0)return Cn(a*255,a*255,a*255,1);var u=a<=.5?a*(l+1):a+l-a*l,f=a*2-u,d=fh(f,u,s+1/3),h=fh(f,u,s),g=fh(f,u,s-1/3);return Cn(d*255,h*255,g*255,c)},n_={hsl:cv,hsla:cv,rgb:av,rgba:av},sl=function(t,e){return Dn.parse(t,eU.create(e).parseComponentValue())},Dr={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},i_={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(t,e){return e.map(function(A){if(Qe(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},o_={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Wf=function(t,e){var A=Dn.parse(t,e[0]),r=e[1];return r&&ze(r)?{color:A,stop:r}:{color:A,stop:null}},uv=function(t,e){var A=t[0],r=t[t.length-1];A.stop===null&&(A.stop=mt),r.stop===null&&(r.stop=Qn);for(var n=[],i=0,o=0;oi?n.push(l):n.push(i),i=l}else n.push(null)}for(var a=null,o=0;oo.optimumDistance)?{optimumCorner:s,optimumDistance:c}:o},{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},a_=function(t,e,A,r,n){var i=0,o=0;switch(t.size){case 0:t.shape===0?i=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(A),Math.abs(A-n)):t.shape===1&&(i=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(A),Math.abs(A-n)));break;case 2:if(t.shape===0)i=o=Math.min(IA(e,A),IA(e,A-n),IA(e-r,A),IA(e-r,A-n));else if(t.shape===1){var s=Math.min(Math.abs(A),Math.abs(A-n))/Math.min(Math.abs(e),Math.abs(e-r)),l=fv(r,n,e,A,!0),a=l[0],c=l[1];i=IA(a-e,(c-A)/s),o=s*i}break;case 1:t.shape===0?i=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(A),Math.abs(A-n)):t.shape===1&&(i=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(A),Math.abs(A-n)));break;case 3:if(t.shape===0)i=o=Math.max(IA(e,A),IA(e,A-n),IA(e-r,A),IA(e-r,A-n));else if(t.shape===1){var s=Math.max(Math.abs(A),Math.abs(A-n))/Math.max(Math.abs(e),Math.abs(e-r)),u=fv(r,n,e,A,!1),a=u[0],c=u[1];i=IA(a-e,(c-A)/s),o=s*i}break}return Array.isArray(t.size)&&(i=Se(t.size[0],r),o=t.size.length===2?Se(t.size[1],n):i),[i,o]},c_=function(t,e){var A=QA(180),r=[];return Br(e).forEach(function(n,i){if(i===0){var o=n[0];if(o.type===20&&o.value==="to"){A=lU(n);return}else if(sU(o)){A=Kf.parse(t,o);return}}var s=Wf(t,n);r.push(s)}),{angle:A,stops:r,type:1}},Ja=function(t,e){var A=QA(180),r=[];return Br(e).forEach(function(n,i){if(i===0){var o=n[0];if(o.type===20&&["top","left","right","bottom"].indexOf(o.value)!==-1){A=lU(n);return}else if(sU(o)){A=(Kf.parse(t,o)+QA(270))%QA(360);return}}var s=Wf(t,n);r.push(s)}),{angle:A,stops:r,type:1}},u_=function(t,e){var A=QA(180),r=[],n=1,i=0,o=3,s=[];return Br(e).forEach(function(l,a){var c=l[0];if(a===0){if(Qe(c)&&c.value==="linear"){n=1;return}else if(Qe(c)&&c.value==="radial"){n=2;return}}if(c.type===18){if(c.name==="from"){var u=Dn.parse(t,c.values[0]);r.push({stop:mt,color:u})}else if(c.name==="to"){var u=Dn.parse(t,c.values[0]);r.push({stop:Qn,color:u})}else if(c.name==="color-stop"){var f=c.values.filter(Zo);if(f.length===2){var u=Dn.parse(t,f[1]),d=f[0];ls(d)&&r.push({stop:{type:16,number:d.number*100,flags:d.flags},color:u})}}}}),n===1?{angle:(A+QA(180))%QA(360),stops:r,type:n}:{size:o,shape:i,stops:r,position:s,type:n}},aU="closest-side",cU="farthest-side",uU="closest-corner",fU="farthest-corner",dU="circle",hU="ellipse",pU="cover",gU="contain",f_=function(t,e){var A=0,r=3,n=[],i=[];return Br(e).forEach(function(o,s){var l=!0;if(s===0){var a=!1;l=o.reduce(function(u,f){if(a)if(Qe(f))switch(f.value){case"center":return i.push(s0),u;case"top":case"left":return i.push(mt),u;case"right":case"bottom":return i.push(Qn),u}else(ze(f)||Yn(f))&&i.push(f);else if(Qe(f))switch(f.value){case dU:return A=0,!1;case hU:return A=1,!1;case"at":return a=!0,!1;case aU:return r=0,!1;case pU:case cU:return r=1,!1;case gU:case uU:return r=2,!1;case fU:return r=3,!1}else if(Yn(f)||ze(f))return Array.isArray(r)||(r=[]),r.push(f),!1;return u},l)}if(l){var c=Wf(t,o);n.push(c)}}),{size:r,shape:A,stops:n,position:i,type:2}},ec=function(t,e){var A=0,r=3,n=[],i=[];return Br(e).forEach(function(o,s){var l=!0;if(s===0?l=o.reduce(function(c,u){if(Qe(u))switch(u.value){case"center":return i.push(s0),!1;case"top":case"left":return i.push(mt),!1;case"right":case"bottom":return i.push(Qn),!1}else if(ze(u)||Yn(u))return i.push(u),!1;return c},l):s===1&&(l=o.reduce(function(c,u){if(Qe(u))switch(u.value){case dU:return A=0,!1;case hU:return A=1,!1;case gU:case aU:return r=0,!1;case cU:return r=1,!1;case uU:return r=2,!1;case pU:case fU:return r=3,!1}else if(Yn(u)||ze(u))return Array.isArray(r)||(r=[]),r.push(u),!1;return c},l)),l){var a=Wf(t,o);n.push(a)}}),{size:r,shape:A,stops:n,position:i,type:2}},d_=function(t){return t.type===1},h_=function(t){return t.type===2},l0={name:"image",parse:function(t,e){if(e.type===22){var A={url:e.value,type:0};return t.cache.addImage(e.value),A}if(e.type===18){var r=mU[e.name];if(typeof r>"u")throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(t,e.values)}throw new Error("Unsupported image type "+e.type)}};function p_(t){return!(t.type===20&&t.value==="none")&&(t.type!==18||!!mU[t.name])}var mU={"linear-gradient":c_,"-moz-linear-gradient":Ja,"-ms-linear-gradient":Ja,"-o-linear-gradient":Ja,"-webkit-linear-gradient":Ja,"radial-gradient":f_,"-moz-radial-gradient":ec,"-ms-radial-gradient":ec,"-o-radial-gradient":ec,"-webkit-radial-gradient":ec,"-webkit-gradient":u_},g_={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(t,e){if(e.length===0)return[];var A=e[0];return A.type===20&&A.value==="none"?[]:e.filter(function(r){return Zo(r)&&p_(r)}).map(function(r){return l0.parse(t,r)})}},m_={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(t,e){return e.map(function(A){if(Qe(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},O_={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(t,e){return Br(e).map(function(A){return A.filter(ze)}).map(AU)}},w_={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(t,e){return Br(e).map(function(A){return A.filter(Qe).map(function(r){return r.value}).join(" ")}).map(B_)}},B_=function(t){switch(t){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;case"repeat":default:return 0}},So;(function(t){t.AUTO="auto",t.CONTAIN="contain",t.COVER="cover"})(So||(So={}));var v_={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(t,e){return Br(e).map(function(A){return A.filter(y_)})}},y_=function(t){return Qe(t)||ze(t)},jf=function(t){return{name:"border-"+t+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Q_=jf("top"),C_=jf("right"),b_=jf("bottom"),S_=jf("left"),Gf=function(t){return{name:"border-radius-"+t,initialValue:"0 0",prefix:!1,type:1,parse:function(e,A){return AU(A.filter(ze))}}},x_=Gf("top-left"),U_=Gf("top-right"),E_=Gf("bottom-right"),F_=Gf("bottom-left"),zf=function(t){return{name:"border-"+t+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,A){switch(A){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},$_=zf("top"),k_=zf("right"),P_=zf("bottom"),T_=zf("left"),qf=function(t){return{name:"border-"+t+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,A){return ia(A)?A.number:0}}},I_=qf("top"),R_=qf("right"),D_=qf("bottom"),H_=qf("left"),L_={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},__={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(t,e){switch(e){case"rtl":return 1;case"ltr":default:return 0}}},N_={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(t,e){return e.filter(Qe).reduce(function(A,r){return A|M_(r.value)},0)}},M_=function(t){switch(t){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},Z_={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(t,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},X_={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(t,e){return e.type===20&&e.value==="normal"?0:e.type===17||e.type===15?e.number:0}},_u;(function(t){t.NORMAL="normal",t.STRICT="strict"})(_u||(_u={}));var V_={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(t,e){switch(e){case"strict":return _u.STRICT;case"normal":default:return _u.NORMAL}}},Y_={name:"line-height",initialValue:"normal",prefix:!1,type:4},dv=function(t,e){return Qe(t)&&t.value==="normal"?1.2*e:t.type===17?e*t.number:ze(t)?Se(t,e):e},K_={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(t,e){return e.type===20&&e.value==="none"?null:l0.parse(t,e)}},W_={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(t,e){switch(e){case"inside":return 0;case"outside":default:return 1}}},Ug={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(t,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":return 22;case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;case"none":default:return-1}}},Jf=function(t){return{name:"margin-"+t,initialValue:"0",prefix:!1,type:4}},j_=Jf("top"),G_=Jf("right"),z_=Jf("bottom"),q_=Jf("left"),J_={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(t,e){return e.filter(Qe).map(function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;case"visible":default:return 0}})}},eN={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(t,e){switch(e){case"break-word":return"break-word";case"normal":default:return"normal"}}},ed=function(t){return{name:"padding-"+t,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},tN=ed("top"),AN=ed("right"),rN=ed("bottom"),nN=ed("left"),iN={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(t,e){switch(e){case"right":return 2;case"center":case"justify":return 1;case"left":default:return 0}}},oN={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(t,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},sN={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(t,e){return e.length===1&&xg(e[0],"none")?[]:Br(e).map(function(A){for(var r={color:Dr.TRANSPARENT,offsetX:mt,offsetY:mt,blur:mt},n=0,i=0;i"u")throw new Error('Attempting to parse an unsupported transform function "'+e.name+'"');return A(e.values)}return null}},cN=function(t){var e=t.filter(function(A){return A.type===17}).map(function(A){return A.number});return e.length===6?e:null},uN=function(t){var e=t.filter(function(l){return l.type===17}).map(function(l){return l.number}),A=e[0],r=e[1];e[2],e[3];var n=e[4],i=e[5];e[6],e[7],e[8],e[9],e[10],e[11];var o=e[12],s=e[13];return e[14],e[15],e.length===16?[A,r,n,i,o,s]:null},fN={matrix:cN,matrix3d:uN},hv={type:16,number:50,flags:na},dN=[hv,hv],hN={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(t,e){var A=e.filter(ze);return A.length!==2?dN:[A[0],A[1]]}},pN={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(t,e){switch(e){case"hidden":return 1;case"collapse":return 2;case"visible":default:return 0}}},ll;(function(t){t.NORMAL="normal",t.BREAK_ALL="break-all",t.KEEP_ALL="keep-all"})(ll||(ll={}));var gN={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(t,e){switch(e){case"break-all":return ll.BREAK_ALL;case"keep-all":return ll.KEEP_ALL;case"normal":default:return ll.NORMAL}}},mN={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(t,e){if(e.type===20)return{auto:!0,order:0};if(ls(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},OU={name:"time",parse:function(t,e){if(e.type===15)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")}},ON={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(t,e){return ls(e)?e.number:1}},wN={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},BN={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(t,e){return e.filter(Qe).map(function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(A){return A!==0})}},vN={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(t,e){var A=[],r=[];return e.forEach(function(n){switch(n.type){case 20:case 0:A.push(n.value);break;case 17:A.push(n.number.toString());break;case 4:r.push(A.join(" ")),A.length=0;break}}),A.length&&r.push(A.join(" ")),r.map(function(n){return n.indexOf(" ")===-1?n:"'"+n+"'"})}},yN={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},QN={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(t,e){if(ls(e))return e.number;if(Qe(e))switch(e.value){case"bold":return 700;case"normal":default:return 400}return 400}},CN={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(t,e){return e.filter(Qe).map(function(A){return A.value})}},bN={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(t,e){switch(e){case"oblique":return"oblique";case"italic":return"italic";case"normal":default:return"normal"}}},rt=function(t,e){return(t&e)!==0},SN={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(t,e){if(e.length===0)return[];var A=e[0];return A.type===20&&A.value==="none"?[]:e}},xN={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(t,e){if(e.length===0)return null;var A=e[0];if(A.type===20&&A.value==="none")return null;for(var r=[],n=e.filter(tU),i=0;i1?1:0],this.overflowWrap=Y(e,eN,A.overflowWrap),this.paddingTop=Y(e,tN,A.paddingTop),this.paddingRight=Y(e,AN,A.paddingRight),this.paddingBottom=Y(e,rN,A.paddingBottom),this.paddingLeft=Y(e,nN,A.paddingLeft),this.paintOrder=Y(e,kN,A.paintOrder),this.position=Y(e,oN,A.position),this.textAlign=Y(e,iN,A.textAlign),this.textDecorationColor=Y(e,wN,(r=A.textDecorationColor)!==null&&r!==void 0?r:A.color),this.textDecorationLine=Y(e,BN,(n=A.textDecorationLine)!==null&&n!==void 0?n:A.textDecoration),this.textShadow=Y(e,sN,A.textShadow),this.textTransform=Y(e,lN,A.textTransform),this.transform=Y(e,aN,A.transform),this.transformOrigin=Y(e,hN,A.transformOrigin),this.visibility=Y(e,pN,A.visibility),this.webkitTextStrokeColor=Y(e,PN,A.webkitTextStrokeColor),this.webkitTextStrokeWidth=Y(e,TN,A.webkitTextStrokeWidth),this.wordBreak=Y(e,gN,A.wordBreak),this.zIndex=Y(e,mN,A.zIndex)}return t.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&this.visibility===0},t.prototype.isTransparent=function(){return Hn(this.backgroundColor)},t.prototype.isTransformed=function(){return this.transform!==null},t.prototype.isPositioned=function(){return this.position!==0},t.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},t.prototype.isFloating=function(){return this.float!==0},t.prototype.isInlineLevel=function(){return rt(this.display,4)||rt(this.display,33554432)||rt(this.display,268435456)||rt(this.display,536870912)||rt(this.display,67108864)||rt(this.display,134217728)},t}(),RN=function(){function t(e,A){this.content=Y(e,SN,A.content),this.quotes=Y(e,FN,A.quotes)}return t}(),gv=function(){function t(e,A){this.counterIncrement=Y(e,xN,A.counterIncrement),this.counterReset=Y(e,UN,A.counterReset)}return t}(),Y=function(t,e,A){var r=new Jx,n=A!==null&&typeof A<"u"?A.toString():e.initialValue;r.write(n);var i=new eU(r.read());switch(e.type){case 2:var o=i.parseComponentValue();return e.parse(t,Qe(o)?o.value:e.initialValue);case 0:return e.parse(t,i.parseComponentValue());case 1:return e.parse(t,i.parseComponentValues());case 4:return i.parseComponentValue();case 3:switch(e.format){case"angle":return Kf.parse(t,i.parseComponentValue());case"color":return Dn.parse(t,i.parseComponentValue());case"image":return l0.parse(t,i.parseComponentValue());case"length":var s=i.parseComponentValue();return Yn(s)?s:mt;case"length-percentage":var l=i.parseComponentValue();return ze(l)?l:mt;case"time":return OU.parse(t,i.parseComponentValue())}break}},DN="data-html2canvas-debug",HN=function(t){var e=t.getAttribute(DN);switch(e){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},Eg=function(t,e){var A=HN(t);return A===1||e===A},vr=function(){function t(e,A){if(this.context=e,this.textNodes=[],this.elements=[],this.flags=0,Eg(A,3))debugger;this.styles=new IN(e,window.getComputedStyle(A,null)),kg(A)&&(this.styles.animationDuration.some(function(r){return r>0})&&(A.style.animationDuration="0s"),this.styles.transform!==null&&(A.style.transform="none")),this.bounds=Vf(this.context,A),Eg(A,4)&&(this.flags|=16)}return t}(),LN="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",mv="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Zs=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(var tc=0;tc>4,c[n++]=(o&15)<<4|s>>2,c[n++]=(s&3)<<6|l&63;return a},NN=function(t){for(var e=t.length,A=[],r=0;r>yi,XN=1<>yi,YN=wU+VN,KN=YN,WN=32,jN=KN+WN,GN=65536>>a0,zN=1<=0){if(e<55296||e>56319&&e<=65535)return A=this.index[e>>yi],A=(A<>yi)],A=(A<>a0),A=this.index[A],A+=e>>yi&qN,A=this.index[A],A=(A<"u"?[]:new Uint8Array(256);for(var Ac=0;Ac=55296&&n<=56319&&A>10)+55296,o%1024+56320)),(n+1===A||r.length>16384)&&(i+=String.fromCharCode.apply(String,r),r.length=0)}return i},s9=e9(LN),gA="×",Bh="÷",l9=function(t){return s9.get(t)},a9=function(t,e,A){var r=A-2,n=e[r],i=e[A-1],o=e[A];if(i===ph&&o===gh)return gA;if(i===ph||i===gh||i===Bv||o===ph||o===gh||o===Bv)return Bh;if(i===yv&&[yv,mh,Qv,Cv].indexOf(o)!==-1||(i===Qv||i===mh)&&(o===mh||o===Oh)||(i===Cv||i===Oh)&&o===Oh||o===bv||o===vv||o===n9||i===r9)return gA;if(i===bv&&o===Sv){for(;n===vv;)n=e[--r];if(n===Sv)return gA}if(i===wh&&o===wh){for(var s=0;n===wh;)s++,n=e[--r];if(s%2===0)return gA}return Bh},c9=function(t){var e=i9(t),A=e.length,r=0,n=0,i=e.map(l9);return{next:function(){if(r>=A)return{done:!0,value:null};for(var o=gA;ro.x||c.y>o.y;return o=c,a===0?!0:u});return t.body.removeChild(e),s},h9=function(){return typeof new Image().crossOrigin<"u"},p9=function(){return typeof new XMLHttpRequest().responseType=="string"},g9=function(t){var e=new Image,A=t.createElement("canvas"),r=A.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,";try{r.drawImage(e,0,0),A.toDataURL()}catch{return!1}return!0},xv=function(t){return t[0]===0&&t[1]===255&&t[2]===0&&t[3]===255},m9=function(t){var e=t.createElement("canvas"),A=100;e.width=A,e.height=A;var r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,A,A);var n=new Image,i=e.toDataURL();n.src=i;var o=Fg(A,A,0,0,n);return r.fillStyle="red",r.fillRect(0,0,A,A),Uv(o).then(function(s){r.drawImage(s,0,0);var l=r.getImageData(0,0,A,A).data;r.fillStyle="red",r.fillRect(0,0,A,A);var a=t.createElement("div");return a.style.backgroundImage="url("+i+")",a.style.height=A+"px",xv(l)?Uv(Fg(A,A,0,0,a)):Promise.reject(!1)}).then(function(s){return r.drawImage(s,0,0),xv(r.getImageData(0,0,A,A).data)}).catch(function(){return!1})},Fg=function(t,e,A,r,n){var i="http://www.w3.org/2000/svg",o=document.createElementNS(i,"svg"),s=document.createElementNS(i,"foreignObject");return o.setAttributeNS(null,"width",t.toString()),o.setAttributeNS(null,"height",e.toString()),s.setAttributeNS(null,"width","100%"),s.setAttributeNS(null,"height","100%"),s.setAttributeNS(null,"x",A.toString()),s.setAttributeNS(null,"y",r.toString()),s.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(s),s.appendChild(n),o},Uv=function(t){return new Promise(function(e,A){var r=new Image;r.onload=function(){return e(r)},r.onerror=A,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(new XMLSerializer().serializeToString(t))})},pt={get SUPPORT_RANGE_BOUNDS(){var t=f9(document);return Object.defineProperty(pt,"SUPPORT_RANGE_BOUNDS",{value:t}),t},get SUPPORT_WORD_BREAKING(){var t=pt.SUPPORT_RANGE_BOUNDS&&d9(document);return Object.defineProperty(pt,"SUPPORT_WORD_BREAKING",{value:t}),t},get SUPPORT_SVG_DRAWING(){var t=g9(document);return Object.defineProperty(pt,"SUPPORT_SVG_DRAWING",{value:t}),t},get SUPPORT_FOREIGNOBJECT_DRAWING(){var t=typeof Array.from=="function"&&typeof window.fetch=="function"?m9(document):Promise.resolve(!1);return Object.defineProperty(pt,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:t}),t},get SUPPORT_CORS_IMAGES(){var t=h9();return Object.defineProperty(pt,"SUPPORT_CORS_IMAGES",{value:t}),t},get SUPPORT_RESPONSE_TYPE(){var t=p9();return Object.defineProperty(pt,"SUPPORT_RESPONSE_TYPE",{value:t}),t},get SUPPORT_CORS_XHR(){var t="withCredentials"in new XMLHttpRequest;return Object.defineProperty(pt,"SUPPORT_CORS_XHR",{value:t}),t},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var t=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(pt,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:t}),t}},al=function(){function t(e,A){this.text=e,this.bounds=A}return t}(),O9=function(t,e,A,r){var n=v9(e,A),i=[],o=0;return n.forEach(function(s){if(A.textDecorationLine.length||s.trim().length>0)if(pt.SUPPORT_RANGE_BOUNDS){var l=Ev(r,o,s.length).getClientRects();if(l.length>1){var a=c0(s),c=0;a.forEach(function(f){i.push(new al(f,Wr.fromDOMRectList(t,Ev(r,c+o,f.length).getClientRects()))),c+=f.length})}else i.push(new al(s,Wr.fromDOMRectList(t,l)))}else{var u=r.splitText(s.length);i.push(new al(s,w9(t,r))),r=u}else pt.SUPPORT_RANGE_BOUNDS||(r=r.splitText(s.length));o+=s.length}),i},w9=function(t,e){var A=e.ownerDocument;if(A){var r=A.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var i=Vf(t,r);return r.firstChild&&n.replaceChild(r.firstChild,r),i}}return Wr.EMPTY},Ev=function(t,e,A){var r=t.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(t,e),n.setEnd(t,e+A),n},c0=function(t){if(pt.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(t)).map(function(A){return A.segment})}return u9(t)},B9=function(t,e){if(pt.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(A.segment(t)).map(function(r){return r.segment})}return Q9(t,e)},v9=function(t,e){return e.letterSpacing!==0?c0(t):B9(t,e)},y9=[32,160,4961,65792,65793,4153,4241],Q9=function(t,e){for(var A=GH(t,{lineBreak:e.lineBreak,wordBreak:e.overflowWrap==="break-word"?"break-word":e.wordBreak}),r=[],n,i=function(){if(n.value){var o=n.value.slice(),s=Yf(o),l="";s.forEach(function(a){y9.indexOf(a)===-1?l+=Ke(a):(l.length&&r.push(l),r.push(Ke(a)),l="")}),l.length&&r.push(l)}};!(n=A.next()).done;)i();return r},C9=function(){function t(e,A,r){this.text=b9(A.data,r.textTransform),this.textBounds=O9(e,this.text,r,A)}return t}(),b9=function(t,e){switch(e){case 1:return t.toLowerCase();case 3:return t.replace(S9,x9);case 2:return t.toUpperCase();default:return t}},S9=/(^|\s|:|-|\(|\))([a-z])/g,x9=function(t,e,A){return t.length>0?e+A.toUpperCase():t},BU=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this;return n.src=r.currentSrc||r.src,n.intrinsicWidth=r.naturalWidth,n.intrinsicHeight=r.naturalHeight,n.context.cache.addImage(n.src),n}return e}(vr),vU=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this;return n.canvas=r,n.intrinsicWidth=r.width,n.intrinsicHeight=r.height,n}return e}(vr),yU=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this,i=new XMLSerializer,o=Vf(A,r);return r.setAttribute("width",o.width+"px"),r.setAttribute("height",o.height+"px"),n.svg="data:image/svg+xml,"+encodeURIComponent(i.serializeToString(r)),n.intrinsicWidth=r.width.baseVal.value,n.intrinsicHeight=r.height.baseVal.value,n.context.cache.addImage(n.svg),n}return e}(vr),QU=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this;return n.value=r.value,n}return e}(vr),$g=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this;return n.start=r.start,n.reversed=typeof r.reversed=="boolean"&&r.reversed===!0,n}return e}(vr),U9=[{type:15,flags:0,unit:"px",number:3}],E9=[{type:16,flags:0,number:50}],F9=function(t){return t.width>t.height?new Wr(t.left+(t.width-t.height)/2,t.top,t.height,t.height):t.width0)A.textNodes.push(new C9(t,n,A.styles));else if(go(n))if(PU(n)&&n.assignedNodes)n.assignedNodes().forEach(function(s){return Vc(t,s,A,r)});else{var o=xU(t,n);o.styles.isVisible()&&(T9(n,o,r)?o.flags|=4:I9(o.styles)&&(o.flags|=2),P9.indexOf(n.tagName)!==-1&&(o.flags|=8),A.elements.push(o),n.slot,n.shadowRoot?Vc(t,n.shadowRoot,o,r):!Zu(n)&&!FU(n)&&!Xu(n)&&Vc(t,n,o,r))}},xU=function(t,e){return Pg(e)?new BU(t,e):$U(e)?new vU(t,e):FU(e)?new yU(t,e):R9(e)?new QU(t,e):D9(e)?new $g(t,e):H9(e)?new u0(t,e):Xu(e)?new CU(t,e):Zu(e)?new bU(t,e):kU(e)?new SU(t,e):new vr(t,e)},UU=function(t,e){var A=xU(t,e);return A.flags|=4,Vc(t,e,A,A),A},T9=function(t,e,A){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||f0(t)&&A.styles.isTransparent()},I9=function(t){return t.isPositioned()||t.isFloating()},EU=function(t){return t.nodeType===Node.TEXT_NODE},go=function(t){return t.nodeType===Node.ELEMENT_NODE},kg=function(t){return go(t)&&typeof t.style<"u"&&!Yc(t)},Yc=function(t){return typeof t.className=="object"},R9=function(t){return t.tagName==="LI"},D9=function(t){return t.tagName==="OL"},H9=function(t){return t.tagName==="INPUT"},L9=function(t){return t.tagName==="HTML"},FU=function(t){return t.tagName==="svg"},f0=function(t){return t.tagName==="BODY"},$U=function(t){return t.tagName==="CANVAS"},$v=function(t){return t.tagName==="VIDEO"},Pg=function(t){return t.tagName==="IMG"},kU=function(t){return t.tagName==="IFRAME"},kv=function(t){return t.tagName==="STYLE"},_9=function(t){return t.tagName==="SCRIPT"},Zu=function(t){return t.tagName==="TEXTAREA"},Xu=function(t){return t.tagName==="SELECT"},PU=function(t){return t.tagName==="SLOT"},Pv=function(t){return t.tagName.indexOf("-")>0},N9=function(){function t(){this.counters={}}return t.prototype.getCounterValue=function(e){var A=this.counters[e];return A&&A.length?A[A.length-1]:1},t.prototype.getCounterValues=function(e){var A=this.counters[e];return A||[]},t.prototype.pop=function(e){var A=this;e.forEach(function(r){return A.counters[r].pop()})},t.prototype.parse=function(e){var A=this,r=e.counterIncrement,n=e.counterReset,i=!0;r!==null&&r.forEach(function(s){var l=A.counters[s.counter];l&&s.increment!==0&&(i=!1,l.length||l.push(1),l[Math.max(0,l.length-1)]+=s.increment)});var o=[];return i&&n.forEach(function(s){var l=A.counters[s.counter];o.push(s.counter),l||(l=A.counters[s.counter]=[]),l.push(s.reset)}),o},t}(),Tv={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Iv={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},M9={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Z9={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Gi=function(t,e,A,r,n,i){return tA?Rl(t,n,i.length>0):r.integers.reduce(function(o,s,l){for(;t>=s;)t-=s,o+=r.values[l];return o},"")+i},TU=function(t,e,A,r){var n="";do A||t--,n=r(t)+n,t/=e;while(t*e>=e);return n},Ye=function(t,e,A,r,n){var i=A-e+1;return(t<0?"-":"")+(TU(Math.abs(t),i,r,function(o){return Ke(Math.floor(o%i)+e)})+n)},ii=function(t,e,A){A===void 0&&(A=". ");var r=e.length;return TU(Math.abs(t),r,!1,function(n){return e[Math.floor(n%r)]})+A},to=1,sn=2,ln=4,Xs=8,Ur=function(t,e,A,r,n,i){if(t<-9999||t>9999)return Rl(t,4,n.length>0);var o=Math.abs(t),s=n;if(o===0)return e[0]+s;for(var l=0;o>0&&l<=4;l++){var a=o%10;a===0&&rt(i,to)&&s!==""?s=e[a]+s:a>1||a===1&&l===0||a===1&&l===1&&rt(i,sn)||a===1&&l===1&&rt(i,ln)&&t>100||a===1&&l>1&&rt(i,Xs)?s=e[a]+(l>0?A[l-1]:"")+s:a===1&&l>0&&(s=A[l-1]+s),o=Math.floor(o/10)}return(t<0?r:"")+s},Rv="十百千萬",Dv="拾佰仟萬",Hv="マイナス",vh="마이너스",Rl=function(t,e,A){var r=A?". ":"",n=A?"、":"",i=A?", ":"",o=A?" ":"";switch(e){case 0:return"•"+o;case 1:return"◦"+o;case 2:return"◾"+o;case 5:var s=Ye(t,48,57,!0,r);return s.length<4?"0"+s:s;case 4:return ii(t,"〇一二三四五六七八九",n);case 6:return Gi(t,1,3999,Tv,3,r).toLowerCase();case 7:return Gi(t,1,3999,Tv,3,r);case 8:return Ye(t,945,969,!1,r);case 9:return Ye(t,97,122,!1,r);case 10:return Ye(t,65,90,!1,r);case 11:return Ye(t,1632,1641,!0,r);case 12:case 49:return Gi(t,1,9999,Iv,3,r);case 35:return Gi(t,1,9999,Iv,3,r).toLowerCase();case 13:return Ye(t,2534,2543,!0,r);case 14:case 30:return Ye(t,6112,6121,!0,r);case 15:return ii(t,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return ii(t,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return Ur(t,"零一二三四五六七八九",Rv,"負",n,sn|ln|Xs);case 47:return Ur(t,"零壹貳參肆伍陸柒捌玖",Dv,"負",n,to|sn|ln|Xs);case 42:return Ur(t,"零一二三四五六七八九",Rv,"负",n,sn|ln|Xs);case 41:return Ur(t,"零壹贰叁肆伍陆柒捌玖",Dv,"负",n,to|sn|ln|Xs);case 26:return Ur(t,"〇一二三四五六七八九","十百千万",Hv,n,0);case 25:return Ur(t,"零壱弐参四伍六七八九","拾百千万",Hv,n,to|sn|ln);case 31:return Ur(t,"영일이삼사오육칠팔구","십백천만",vh,i,to|sn|ln);case 33:return Ur(t,"零一二三四五六七八九","十百千萬",vh,i,0);case 32:return Ur(t,"零壹貳參四五六七八九","拾百千",vh,i,to|sn|ln);case 18:return Ye(t,2406,2415,!0,r);case 20:return Gi(t,1,19999,Z9,3,r);case 21:return Ye(t,2790,2799,!0,r);case 22:return Ye(t,2662,2671,!0,r);case 22:return Gi(t,1,10999,M9,3,r);case 23:return ii(t,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ii(t,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Ye(t,3302,3311,!0,r);case 28:return ii(t,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return ii(t,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return Ye(t,3792,3801,!0,r);case 37:return Ye(t,6160,6169,!0,r);case 38:return Ye(t,4160,4169,!0,r);case 39:return Ye(t,2918,2927,!0,r);case 40:return Ye(t,1776,1785,!0,r);case 43:return Ye(t,3046,3055,!0,r);case 44:return Ye(t,3174,3183,!0,r);case 45:return Ye(t,3664,3673,!0,r);case 46:return Ye(t,3872,3881,!0,r);case 3:default:return Ye(t,48,57,!0,r)}},IU="data-html2canvas-ignore",Lv=function(){function t(e,A,r){if(this.context=e,this.options=r,this.scrolledElements=[],this.referenceElement=A,this.counters=new N9,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement,!1)}return t.prototype.toIFrame=function(e,A){var r=this,n=X9(e,A);if(!n.contentWindow)return Promise.reject("Unable to find iframe window");var i=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,s=n.contentWindow,l=s.document,a=K9(n).then(function(){return It(r,void 0,void 0,function(){var c,u;return bt(this,function(f){switch(f.label){case 0:return this.scrolledElements.forEach(z9),s&&(s.scrollTo(A.left,A.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(s.scrollY!==A.top||s.scrollX!==A.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(s.scrollX-A.left,s.scrollY-A.top,0,0))),c=this.options.onclone,u=this.clonedReferenceElement,typeof u>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:f.sent(),f.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Y9(l)]:[3,4];case 3:f.sent(),f.label=4;case 4:return typeof c=="function"?[2,Promise.resolve().then(function(){return c(l,u)}).then(function(){return n})]:[2,n]}})})});return l.open(),l.write(j9(document.doctype)+""),G9(this.referenceElement.ownerDocument,i,o),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),a},t.prototype.createElementClone=function(e){if(Eg(e,2))debugger;if($U(e))return this.createCanvasClone(e);if($v(e))return this.createVideoClone(e);if(kv(e))return this.createStyleClone(e);var A=e.cloneNode(!1);return Pg(A)&&(Pg(e)&&e.currentSrc&&e.currentSrc!==e.src&&(A.src=e.currentSrc,A.srcset=""),A.loading==="lazy"&&(A.loading="eager")),Pv(A)?this.createCustomElementClone(A):A},t.prototype.createCustomElementClone=function(e){var A=document.createElement("html2canvascustomelement");return yh(e.style,A),A},t.prototype.createStyleClone=function(e){try{var A=e.sheet;if(A&&A.cssRules){var r=[].slice.call(A.cssRules,0).reduce(function(i,o){return o&&typeof o.cssText=="string"?i+o.cssText:i},""),n=e.cloneNode(!1);return n.textContent=r,n}}catch(i){if(this.context.logger.error("Unable to access cssRules property",i),i.name!=="SecurityError")throw i}return e.cloneNode(!1)},t.prototype.createCanvasClone=function(e){var A;if(this.options.inlineImages&&e.ownerDocument){var r=e.ownerDocument.createElement("img");try{return r.src=e.toDataURL(),r}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var n=e.cloneNode(!1);try{n.width=e.width,n.height=e.height;var i=e.getContext("2d"),o=n.getContext("2d");if(o)if(!this.options.allowTaint&&i)o.putImageData(i.getImageData(0,0,e.width,e.height),0,0);else{var s=(A=e.getContext("webgl2"))!==null&&A!==void 0?A:e.getContext("webgl");if(s){var l=s.getContextAttributes();(l==null?void 0:l.preserveDrawingBuffer)===!1&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return n}catch{this.context.logger.info("Unable to clone canvas as it is tainted",e)}return n},t.prototype.createVideoClone=function(e){var A=e.ownerDocument.createElement("canvas");A.width=e.offsetWidth,A.height=e.offsetHeight;var r=A.getContext("2d");try{return r&&(r.drawImage(e,0,0,A.width,A.height),this.options.allowTaint||r.getImageData(0,0,A.width,A.height)),A}catch{this.context.logger.info("Unable to clone video as it is tainted",e)}var n=e.ownerDocument.createElement("canvas");return n.width=e.offsetWidth,n.height=e.offsetHeight,n},t.prototype.appendChildNode=function(e,A,r){(!go(A)||!_9(A)&&!A.hasAttribute(IU)&&(typeof this.options.ignoreElements!="function"||!this.options.ignoreElements(A)))&&(!this.options.copyStyles||!go(A)||!kv(A))&&e.appendChild(this.cloneNode(A,r))},t.prototype.cloneChildNodes=function(e,A,r){for(var n=this,i=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;i;i=i.nextSibling)if(go(i)&&PU(i)&&typeof i.assignedNodes=="function"){var o=i.assignedNodes();o.length&&o.forEach(function(s){return n.appendChildNode(A,s,r)})}else this.appendChildNode(A,i,r)},t.prototype.cloneNode=function(e,A){if(EU(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var r=e.ownerDocument.defaultView;if(r&&go(e)&&(kg(e)||Yc(e))){var n=this.createElementClone(e);n.style.transitionProperty="none";var i=r.getComputedStyle(e),o=r.getComputedStyle(e,":before"),s=r.getComputedStyle(e,":after");this.referenceElement===e&&kg(n)&&(this.clonedReferenceElement=n),f0(n)&&e8(n);var l=this.counters.parse(new gv(this.context,i)),a=this.resolvePseudoContent(e,n,o,cl.BEFORE);Pv(e)&&(A=!0),$v(e)||this.cloneChildNodes(e,n,A),a&&n.insertBefore(a,n.firstChild);var c=this.resolvePseudoContent(e,n,s,cl.AFTER);return c&&n.appendChild(c),this.counters.pop(l),(i&&(this.options.copyStyles||Yc(e))&&!kU(e)||A)&&yh(i,n),(e.scrollTop!==0||e.scrollLeft!==0)&&this.scrolledElements.push([n,e.scrollLeft,e.scrollTop]),(Zu(e)||Xu(e))&&(Zu(n)||Xu(n))&&(n.value=e.value),n}return e.cloneNode(!1)},t.prototype.resolvePseudoContent=function(e,A,r,n){var i=this;if(r){var o=r.content,s=A.ownerDocument;if(!(!s||!o||o==="none"||o==="-moz-alt-content"||r.display==="none")){this.counters.parse(new gv(this.context,r));var l=new RN(this.context,r),a=s.createElement("html2canvaspseudoelement");yh(r,a),l.content.forEach(function(u){if(u.type===0)a.appendChild(s.createTextNode(u.value));else if(u.type===22){var f=s.createElement("img");f.src=u.value,f.style.opacity="1",a.appendChild(f)}else if(u.type===18){if(u.name==="attr"){var d=u.values.filter(Qe);d.length&&a.appendChild(s.createTextNode(e.getAttribute(d[0].value)||""))}else if(u.name==="counter"){var h=u.values.filter(Zo),g=h[0],B=h[1];if(g&&Qe(g)){var m=i.counters.getCounterValue(g.value),O=B&&Qe(B)?Ug.parse(i.context,B.value):3;a.appendChild(s.createTextNode(Rl(m,O,!1)))}}else if(u.name==="counters"){var v=u.values.filter(Zo),g=v[0],Q=v[1],B=v[2];if(g&&Qe(g)){var C=i.counters.getCounterValues(g.value),b=B&&Qe(B)?Ug.parse(i.context,B.value):3,S=Q&&Q.type===0?Q.value:"",x=C.map(function(T){return Rl(T,b,!1)}).join(S);a.appendChild(s.createTextNode(x))}}}else if(u.type===20)switch(u.value){case"open-quote":a.appendChild(s.createTextNode(pv(l.quotes,i.quoteDepth++,!0)));break;case"close-quote":a.appendChild(s.createTextNode(pv(l.quotes,--i.quoteDepth,!1)));break;default:a.appendChild(s.createTextNode(u.value))}}),a.className=Tg+" "+Ig;var c=n===cl.BEFORE?" "+Tg:" "+Ig;return Yc(A)?A.className.baseValue+=c:A.className+=c,a}}},t.destroy=function(e){return e.parentNode?(e.parentNode.removeChild(e),!0):!1},t}(),cl;(function(t){t[t.BEFORE=0]="BEFORE",t[t.AFTER=1]="AFTER"})(cl||(cl={}));var X9=function(t,e){var A=t.createElement("iframe");return A.className="html2canvas-container",A.style.visibility="hidden",A.style.position="fixed",A.style.left="-10000px",A.style.top="0px",A.style.border="0",A.width=e.width.toString(),A.height=e.height.toString(),A.scrolling="no",A.setAttribute(IU,"true"),t.body.appendChild(A),A},V9=function(t){return new Promise(function(e){if(t.complete){e();return}if(!t.src){e();return}t.onload=e,t.onerror=e})},Y9=function(t){return Promise.all([].slice.call(t.images,0).map(V9))},K9=function(t){return new Promise(function(e,A){var r=t.contentWindow;if(!r)return A("No window assigned for iframe");var n=r.document;r.onload=t.onload=function(){r.onload=t.onload=null;var i=setInterval(function(){n.body.childNodes.length>0&&n.readyState==="complete"&&(clearInterval(i),e(t))},50)}})},W9=["all","d","content"],yh=function(t,e){for(var A=t.length-1;A>=0;A--){var r=t.item(A);W9.indexOf(r)===-1&&e.style.setProperty(r,t.getPropertyValue(r))}return e},j9=function(t){var e="";return t&&(e+=""),e},G9=function(t,e,A){t&&t.defaultView&&(e!==t.defaultView.pageXOffset||A!==t.defaultView.pageYOffset)&&t.defaultView.scrollTo(e,A)},z9=function(t){var e=t[0],A=t[1],r=t[2];e.scrollLeft=A,e.scrollTop=r},q9=":before",J9=":after",Tg="___html2canvas___pseudoelement_before",Ig="___html2canvas___pseudoelement_after",_v=`{ + content: "" !important; + display: none !important; +}`,e8=function(t){t8(t,"."+Tg+q9+_v+` + .`+Ig+J9+_v)},t8=function(t,e){var A=t.ownerDocument;if(A){var r=A.createElement("style");r.textContent=e,t.appendChild(r)}},RU=function(){function t(){}return t.getOrigin=function(e){var A=t._link;return A?(A.href=e,A.href=A.href,A.protocol+A.hostname+A.port):"about:blank"},t.isSameOrigin=function(e){return t.getOrigin(e)===t._origin},t.setContext=function(e){t._link=e.document.createElement("a"),t._origin=t.getOrigin(e.location.href)},t._origin="about:blank",t}(),A8=function(){function t(e,A){this.context=e,this._options=A,this._cache={}}return t.prototype.addImage=function(e){var A=Promise.resolve();return this.has(e)||(Ch(e)||o8(e))&&(this._cache[e]=this.loadImage(e)).catch(function(){}),A},t.prototype.match=function(e){return this._cache[e]},t.prototype.loadImage=function(e){return It(this,void 0,void 0,function(){var A,r,n,i,o=this;return bt(this,function(s){switch(s.label){case 0:return A=RU.isSameOrigin(e),r=!Qh(e)&&this._options.useCORS===!0&&pt.SUPPORT_CORS_IMAGES&&!A,n=!Qh(e)&&!A&&!Ch(e)&&typeof this._options.proxy=="string"&&pt.SUPPORT_CORS_XHR&&!r,!A&&this._options.allowTaint===!1&&!Qh(e)&&!Ch(e)&&!n&&!r?[2]:(i=e,n?[4,this.proxy(i)]:[3,2]);case 1:i=s.sent(),s.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise(function(l,a){var c=new Image;c.onload=function(){return l(c)},c.onerror=a,(s8(i)||r)&&(c.crossOrigin="anonymous"),c.src=i,c.complete===!0&&setTimeout(function(){return l(c)},500),o._options.imageTimeout>0&&setTimeout(function(){return a("Timed out ("+o._options.imageTimeout+"ms) loading image")},o._options.imageTimeout)})];case 3:return[2,s.sent()]}})})},t.prototype.has=function(e){return typeof this._cache[e]<"u"},t.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},t.prototype.proxy=function(e){var A=this,r=this._options.proxy;if(!r)throw new Error("No proxy defined");var n=e.substring(0,256);return new Promise(function(i,o){var s=pt.SUPPORT_RESPONSE_TYPE?"blob":"text",l=new XMLHttpRequest;l.onload=function(){if(l.status===200)if(s==="text")i(l.response);else{var u=new FileReader;u.addEventListener("load",function(){return i(u.result)},!1),u.addEventListener("error",function(f){return o(f)},!1),u.readAsDataURL(l.response)}else o("Failed to proxy resource "+n+" with status code "+l.status)},l.onerror=o;var a=r.indexOf("?")>-1?"&":"?";if(l.open("GET",""+r+a+"url="+encodeURIComponent(e)+"&responseType="+s),s!=="text"&&l instanceof XMLHttpRequest&&(l.responseType=s),A._options.imageTimeout){var c=A._options.imageTimeout;l.timeout=c,l.ontimeout=function(){return o("Timed out ("+c+"ms) proxying "+n)}}l.send()})},t}(),r8=/^data:image\/svg\+xml/i,n8=/^data:image\/.*;base64,/i,i8=/^data:image\/.*/i,o8=function(t){return pt.SUPPORT_SVG_DRAWING||!l8(t)},Qh=function(t){return i8.test(t)},s8=function(t){return n8.test(t)},Ch=function(t){return t.substr(0,4)==="blob"},l8=function(t){return t.substr(-3).toLowerCase()==="svg"||r8.test(t)},X=function(){function t(e,A){this.type=0,this.x=e,this.y=A}return t.prototype.add=function(e,A){return new t(this.x+e,this.y+A)},t}(),zi=function(t,e,A){return new X(t.x+(e.x-t.x)*A,t.y+(e.y-t.y)*A)},rc=function(){function t(e,A,r,n){this.type=1,this.start=e,this.startControl=A,this.endControl=r,this.end=n}return t.prototype.subdivide=function(e,A){var r=zi(this.start,this.startControl,e),n=zi(this.startControl,this.endControl,e),i=zi(this.endControl,this.end,e),o=zi(r,n,e),s=zi(n,i,e),l=zi(o,s,e);return A?new t(this.start,r,o,l):new t(l,s,i,this.end)},t.prototype.add=function(e,A){return new t(this.start.add(e,A),this.startControl.add(e,A),this.endControl.add(e,A),this.end.add(e,A))},t.prototype.reverse=function(){return new t(this.end,this.endControl,this.startControl,this.start)},t}(),wA=function(t){return t.type===1},a8=function(){function t(e){var A=e.styles,r=e.bounds,n=Ms(A.borderTopLeftRadius,r.width,r.height),i=n[0],o=n[1],s=Ms(A.borderTopRightRadius,r.width,r.height),l=s[0],a=s[1],c=Ms(A.borderBottomRightRadius,r.width,r.height),u=c[0],f=c[1],d=Ms(A.borderBottomLeftRadius,r.width,r.height),h=d[0],g=d[1],B=[];B.push((i+l)/r.width),B.push((h+u)/r.width),B.push((o+g)/r.height),B.push((a+f)/r.height);var m=Math.max.apply(Math,B);m>1&&(i/=m,o/=m,l/=m,a/=m,u/=m,f/=m,h/=m,g/=m);var O=r.width-l,v=r.height-f,Q=r.width-u,C=r.height-g,b=A.borderTopWidth,S=A.borderRightWidth,x=A.borderBottomWidth,U=A.borderLeftWidth,E=Se(A.paddingTop,e.bounds.width),T=Se(A.paddingRight,e.bounds.width),F=Se(A.paddingBottom,e.bounds.width),H=Se(A.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=i>0||o>0?Re(r.left+U/3,r.top+b/3,i-U/3,o-b/3,we.TOP_LEFT):new X(r.left+U/3,r.top+b/3),this.topRightBorderDoubleOuterBox=i>0||o>0?Re(r.left+O,r.top+b/3,l-S/3,a-b/3,we.TOP_RIGHT):new X(r.left+r.width-S/3,r.top+b/3),this.bottomRightBorderDoubleOuterBox=u>0||f>0?Re(r.left+Q,r.top+v,u-S/3,f-x/3,we.BOTTOM_RIGHT):new X(r.left+r.width-S/3,r.top+r.height-x/3),this.bottomLeftBorderDoubleOuterBox=h>0||g>0?Re(r.left+U/3,r.top+C,h-U/3,g-x/3,we.BOTTOM_LEFT):new X(r.left+U/3,r.top+r.height-x/3),this.topLeftBorderDoubleInnerBox=i>0||o>0?Re(r.left+U*2/3,r.top+b*2/3,i-U*2/3,o-b*2/3,we.TOP_LEFT):new X(r.left+U*2/3,r.top+b*2/3),this.topRightBorderDoubleInnerBox=i>0||o>0?Re(r.left+O,r.top+b*2/3,l-S*2/3,a-b*2/3,we.TOP_RIGHT):new X(r.left+r.width-S*2/3,r.top+b*2/3),this.bottomRightBorderDoubleInnerBox=u>0||f>0?Re(r.left+Q,r.top+v,u-S*2/3,f-x*2/3,we.BOTTOM_RIGHT):new X(r.left+r.width-S*2/3,r.top+r.height-x*2/3),this.bottomLeftBorderDoubleInnerBox=h>0||g>0?Re(r.left+U*2/3,r.top+C,h-U*2/3,g-x*2/3,we.BOTTOM_LEFT):new X(r.left+U*2/3,r.top+r.height-x*2/3),this.topLeftBorderStroke=i>0||o>0?Re(r.left+U/2,r.top+b/2,i-U/2,o-b/2,we.TOP_LEFT):new X(r.left+U/2,r.top+b/2),this.topRightBorderStroke=i>0||o>0?Re(r.left+O,r.top+b/2,l-S/2,a-b/2,we.TOP_RIGHT):new X(r.left+r.width-S/2,r.top+b/2),this.bottomRightBorderStroke=u>0||f>0?Re(r.left+Q,r.top+v,u-S/2,f-x/2,we.BOTTOM_RIGHT):new X(r.left+r.width-S/2,r.top+r.height-x/2),this.bottomLeftBorderStroke=h>0||g>0?Re(r.left+U/2,r.top+C,h-U/2,g-x/2,we.BOTTOM_LEFT):new X(r.left+U/2,r.top+r.height-x/2),this.topLeftBorderBox=i>0||o>0?Re(r.left,r.top,i,o,we.TOP_LEFT):new X(r.left,r.top),this.topRightBorderBox=l>0||a>0?Re(r.left+O,r.top,l,a,we.TOP_RIGHT):new X(r.left+r.width,r.top),this.bottomRightBorderBox=u>0||f>0?Re(r.left+Q,r.top+v,u,f,we.BOTTOM_RIGHT):new X(r.left+r.width,r.top+r.height),this.bottomLeftBorderBox=h>0||g>0?Re(r.left,r.top+C,h,g,we.BOTTOM_LEFT):new X(r.left,r.top+r.height),this.topLeftPaddingBox=i>0||o>0?Re(r.left+U,r.top+b,Math.max(0,i-U),Math.max(0,o-b),we.TOP_LEFT):new X(r.left+U,r.top+b),this.topRightPaddingBox=l>0||a>0?Re(r.left+Math.min(O,r.width-S),r.top+b,O>r.width+S?0:Math.max(0,l-S),Math.max(0,a-b),we.TOP_RIGHT):new X(r.left+r.width-S,r.top+b),this.bottomRightPaddingBox=u>0||f>0?Re(r.left+Math.min(Q,r.width-U),r.top+Math.min(v,r.height-x),Math.max(0,u-S),Math.max(0,f-x),we.BOTTOM_RIGHT):new X(r.left+r.width-S,r.top+r.height-x),this.bottomLeftPaddingBox=h>0||g>0?Re(r.left+U,r.top+Math.min(C,r.height-x),Math.max(0,h-U),Math.max(0,g-x),we.BOTTOM_LEFT):new X(r.left+U,r.top+r.height-x),this.topLeftContentBox=i>0||o>0?Re(r.left+U+H,r.top+b+E,Math.max(0,i-(U+H)),Math.max(0,o-(b+E)),we.TOP_LEFT):new X(r.left+U+H,r.top+b+E),this.topRightContentBox=l>0||a>0?Re(r.left+Math.min(O,r.width+U+H),r.top+b+E,O>r.width+U+H?0:l-U+H,a-(b+E),we.TOP_RIGHT):new X(r.left+r.width-(S+T),r.top+b+E),this.bottomRightContentBox=u>0||f>0?Re(r.left+Math.min(Q,r.width-(U+H)),r.top+Math.min(v,r.height+b+E),Math.max(0,u-(S+T)),f-(x+F),we.BOTTOM_RIGHT):new X(r.left+r.width-(S+T),r.top+r.height-(x+F)),this.bottomLeftContentBox=h>0||g>0?Re(r.left+U+H,r.top+C,Math.max(0,h-(U+H)),g-(x+F),we.BOTTOM_LEFT):new X(r.left+U+H,r.top+r.height-(x+F))}return t}(),we;(function(t){t[t.TOP_LEFT=0]="TOP_LEFT",t[t.TOP_RIGHT=1]="TOP_RIGHT",t[t.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",t[t.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(we||(we={}));var Re=function(t,e,A,r,n){var i=4*((Math.sqrt(2)-1)/3),o=A*i,s=r*i,l=t+A,a=e+r;switch(n){case we.TOP_LEFT:return new rc(new X(t,a),new X(t,a-s),new X(l-o,e),new X(l,e));case we.TOP_RIGHT:return new rc(new X(t,e),new X(t+o,e),new X(l,a-s),new X(l,a));case we.BOTTOM_RIGHT:return new rc(new X(l,e),new X(l,e+s),new X(t+o,a),new X(t,a));case we.BOTTOM_LEFT:default:return new rc(new X(l,a),new X(l-o,a),new X(t,e+s),new X(t,e))}},Vu=function(t){return[t.topLeftBorderBox,t.topRightBorderBox,t.bottomRightBorderBox,t.bottomLeftBorderBox]},c8=function(t){return[t.topLeftContentBox,t.topRightContentBox,t.bottomRightContentBox,t.bottomLeftContentBox]},Yu=function(t){return[t.topLeftPaddingBox,t.topRightPaddingBox,t.bottomRightPaddingBox,t.bottomLeftPaddingBox]},u8=function(){function t(e,A,r){this.offsetX=e,this.offsetY=A,this.matrix=r,this.type=0,this.target=6}return t}(),nc=function(){function t(e,A){this.path=e,this.target=A,this.type=1}return t}(),f8=function(){function t(e){this.opacity=e,this.type=2,this.target=6}return t}(),d8=function(t){return t.type===0},DU=function(t){return t.type===1},h8=function(t){return t.type===2},Nv=function(t,e){return t.length===e.length?t.some(function(A,r){return A===e[r]}):!1},p8=function(t,e,A,r,n){return t.map(function(i,o){switch(o){case 0:return i.add(e,A);case 1:return i.add(e+r,A);case 2:return i.add(e+r,A+n);case 3:return i.add(e,A+n)}return i})},HU=function(){function t(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return t}(),LU=function(){function t(e,A){if(this.container=e,this.parent=A,this.effects=[],this.curves=new a8(this.container),this.container.styles.opacity<1&&this.effects.push(new f8(this.container.styles.opacity)),this.container.styles.transform!==null){var r=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,i=this.container.styles.transform;this.effects.push(new u8(r,n,i))}if(this.container.styles.overflowX!==0){var o=Vu(this.curves),s=Yu(this.curves);Nv(o,s)?this.effects.push(new nc(o,6)):(this.effects.push(new nc(o,2)),this.effects.push(new nc(s,4)))}}return t.prototype.getEffects=function(e){for(var A=[2,3].indexOf(this.container.styles.position)===-1,r=this.parent,n=this.effects.slice(0);r;){var i=r.effects.filter(function(l){return!DU(l)});if(A||r.container.styles.position!==0||!r.parent){if(n.unshift.apply(n,i),A=[2,3].indexOf(r.container.styles.position)===-1,r.container.styles.overflowX!==0){var o=Vu(r.curves),s=Yu(r.curves);Nv(o,s)||n.unshift(new nc(s,6))}}else n.unshift.apply(n,i);r=r.parent}return n.filter(function(l){return rt(l.target,e)})},t}(),Rg=function(t,e,A,r){t.container.elements.forEach(function(n){var i=rt(n.flags,4),o=rt(n.flags,2),s=new LU(n,t);rt(n.styles.display,2048)&&r.push(s);var l=rt(n.flags,8)?[]:r;if(i||o){var a=i||n.styles.isPositioned()?A:e,c=new HU(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var u=n.styles.zIndex.order;if(u<0){var f=0;a.negativeZIndex.some(function(h,g){return u>h.element.container.styles.zIndex.order?(f=g,!1):f>0}),a.negativeZIndex.splice(f,0,c)}else if(u>0){var d=0;a.positiveZIndex.some(function(h,g){return u>=h.element.container.styles.zIndex.order?(d=g+1,!1):d>0}),a.positiveZIndex.splice(d,0,c)}else a.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?a.nonPositionedFloats.push(c):a.nonPositionedInlineLevel.push(c);Rg(s,c,i?c:A,l)}else n.styles.isInlineLevel()?e.inlineLevel.push(s):e.nonInlineLevel.push(s),Rg(s,e,A,l);rt(n.flags,8)&&_U(n,l)})},_U=function(t,e){for(var A=t instanceof $g?t.start:1,r=t instanceof $g?t.reversed:!1,n=0;n"u"?t[0]:A},Q8=function(t,e,A,r,n){var i=e[0],o=e[1],s=A[0],l=A[1];switch(t){case 2:return[new X(Math.round(r.left),Math.round(r.top+o)),new X(Math.round(r.left+r.width),Math.round(r.top+o)),new X(Math.round(r.left+r.width),Math.round(l+r.top+o)),new X(Math.round(r.left),Math.round(l+r.top+o))];case 3:return[new X(Math.round(r.left+i),Math.round(r.top)),new X(Math.round(r.left+i+s),Math.round(r.top)),new X(Math.round(r.left+i+s),Math.round(r.height+r.top)),new X(Math.round(r.left+i),Math.round(r.height+r.top))];case 1:return[new X(Math.round(r.left+i),Math.round(r.top+o)),new X(Math.round(r.left+i+s),Math.round(r.top+o)),new X(Math.round(r.left+i+s),Math.round(r.top+o+l)),new X(Math.round(r.left+i),Math.round(r.top+o+l))];default:return[new X(Math.round(n.left),Math.round(n.top)),new X(Math.round(n.left+n.width),Math.round(n.top)),new X(Math.round(n.left+n.width),Math.round(n.height+n.top)),new X(Math.round(n.left),Math.round(n.height+n.top))]}},C8="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Zv="Hidden Text",b8=function(){function t(e){this._data={},this._document=e}return t.prototype.parseMetrics=function(e,A){var r=this._document.createElement("div"),n=this._document.createElement("img"),i=this._document.createElement("span"),o=this._document.body;r.style.visibility="hidden",r.style.fontFamily=e,r.style.fontSize=A,r.style.margin="0",r.style.padding="0",r.style.whiteSpace="nowrap",o.appendChild(r),n.src=C8,n.width=1,n.height=1,n.style.margin="0",n.style.padding="0",n.style.verticalAlign="baseline",i.style.fontFamily=e,i.style.fontSize=A,i.style.margin="0",i.style.padding="0",i.appendChild(this._document.createTextNode(Zv)),r.appendChild(i),r.appendChild(n);var s=n.offsetTop-i.offsetTop+2;r.removeChild(i),r.appendChild(this._document.createTextNode(Zv)),r.style.lineHeight="normal",n.style.verticalAlign="super";var l=n.offsetTop-r.offsetTop+2;return o.removeChild(r),{baseline:s,middle:l}},t.prototype.getMetrics=function(e,A){var r=e+" "+A;return typeof this._data[r]>"u"&&(this._data[r]=this.parseMetrics(e,A)),this._data[r]},t}(),MU=function(){function t(e,A){this.context=e,this.options=A}return t}(),S8=1e4,x8=function(t){WA(e,t);function e(A,r){var n=t.call(this,A,r)||this;return n._activeEffects=[],n.canvas=r.canvas?r.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),r.canvas||(n.canvas.width=Math.floor(r.width*r.scale),n.canvas.height=Math.floor(r.height*r.scale),n.canvas.style.width=r.width+"px",n.canvas.style.height=r.height+"px"),n.fontMetrics=new b8(document),n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-r.x,-r.y),n.ctx.textBaseline="bottom",n._activeEffects=[],n.context.logger.debug("Canvas renderer initialized ("+r.width+"x"+r.height+") with scale "+r.scale),n}return e.prototype.applyEffects=function(A){for(var r=this;this._activeEffects.length;)this.popEffect();A.forEach(function(n){return r.applyEffect(n)})},e.prototype.applyEffect=function(A){this.ctx.save(),h8(A)&&(this.ctx.globalAlpha=A.opacity),d8(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),DU(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},e.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},e.prototype.renderStack=function(A){return It(this,void 0,void 0,function(){var r;return bt(this,function(n){switch(n.label){case 0:return r=A.element.container.styles,r.isVisible()?[4,this.renderStackContent(A)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}})})},e.prototype.renderNode=function(A){return It(this,void 0,void 0,function(){return bt(this,function(r){switch(r.label){case 0:if(rt(A.container.flags,16))debugger;return A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return r.sent(),[4,this.renderNodeContent(A)];case 2:r.sent(),r.label=3;case 3:return[2]}})})},e.prototype.renderTextWithLetterSpacing=function(A,r,n){var i=this;if(r===0)this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+n);else{var o=c0(A.text);o.reduce(function(s,l){return i.ctx.fillText(l,s,A.bounds.top+n),s+i.ctx.measureText(l).width},A.bounds.left)}},e.prototype.createFontStyle=function(A){var r=A.fontVariant.filter(function(o){return o==="normal"||o==="small-caps"}).join(""),n=k8(A.fontFamily).join(", "),i=ia(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,r,A.fontWeight,i,n].join(" "),n,i]},e.prototype.renderTextNode=function(A,r){return It(this,void 0,void 0,function(){var n,i,o,s,l,a,c,u,f=this;return bt(this,function(d){return n=this.createFontStyle(r),i=n[0],o=n[1],s=n[2],this.ctx.font=i,this.ctx.direction=r.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",l=this.fontMetrics.getMetrics(o,s),a=l.baseline,c=l.middle,u=r.paintOrder,A.textBounds.forEach(function(h){u.forEach(function(g){switch(g){case 0:f.ctx.fillStyle=st(r.color),f.renderTextWithLetterSpacing(h,r.letterSpacing,a);var B=r.textShadow;B.length&&h.text.trim().length&&(B.slice(0).reverse().forEach(function(m){f.ctx.shadowColor=st(m.color),f.ctx.shadowOffsetX=m.offsetX.number*f.options.scale,f.ctx.shadowOffsetY=m.offsetY.number*f.options.scale,f.ctx.shadowBlur=m.blur.number,f.renderTextWithLetterSpacing(h,r.letterSpacing,a)}),f.ctx.shadowColor="",f.ctx.shadowOffsetX=0,f.ctx.shadowOffsetY=0,f.ctx.shadowBlur=0),r.textDecorationLine.length&&(f.ctx.fillStyle=st(r.textDecorationColor||r.color),r.textDecorationLine.forEach(function(m){switch(m){case 1:f.ctx.fillRect(h.bounds.left,Math.round(h.bounds.top+a),h.bounds.width,1);break;case 2:f.ctx.fillRect(h.bounds.left,Math.round(h.bounds.top),h.bounds.width,1);break;case 3:f.ctx.fillRect(h.bounds.left,Math.ceil(h.bounds.top+c),h.bounds.width,1);break}}));break;case 1:r.webkitTextStrokeWidth&&h.text.trim().length&&(f.ctx.strokeStyle=st(r.webkitTextStrokeColor),f.ctx.lineWidth=r.webkitTextStrokeWidth,f.ctx.lineJoin=window.chrome?"miter":"round",f.ctx.strokeText(h.text,h.bounds.left,h.bounds.top+a)),f.ctx.strokeStyle="",f.ctx.lineWidth=0,f.ctx.lineJoin="miter";break}})}),[2]})})},e.prototype.renderReplacedElement=function(A,r,n){if(n&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var i=Ku(A),o=Yu(r);this.path(o),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(n,0,0,A.intrinsicWidth,A.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},e.prototype.renderNodeContent=function(A){return It(this,void 0,void 0,function(){var r,n,i,o,s,l,O,O,a,c,u,f,Q,d,h,C,g,B,m,O,v,Q,C;return bt(this,function(b){switch(b.label){case 0:this.applyEffects(A.getEffects(4)),r=A.container,n=A.curves,i=r.styles,o=0,s=r.textNodes,b.label=1;case 1:return o0&&P>0&&(x=i.ctx.createPattern(C,"repeat"),i.renderRepeat(E,x,$,_))):h_(c)&&(U=bh(A,r,[null,null,null]),E=U[0],T=U[1],F=U[2],H=U[3],P=U[4],L=c.position.length===0?[s0]:c.position,$=Se(L[0],H),_=Se(L[L.length-1],P),k=a_(c,$,_,H,P),I=k[0],Z=k[1],I>0&&Z>0&&(W=i.ctx.createRadialGradient(T+$,F+_,0,T+$,F+_,I),uv(c.stops,I*2).forEach(function(z){return W.addColorStop(z.stop,st(z.color))}),i.path(E),i.ctx.fillStyle=W,I!==Z?(J=A.bounds.left+.5*A.bounds.width,pe=A.bounds.top+.5*A.bounds.height,ne=Z/I,me=1/ne,i.ctx.save(),i.ctx.translate(J,pe),i.ctx.transform(1,0,0,ne,0,0),i.ctx.translate(-J,-pe),i.ctx.fillRect(T,me*(F-pe)+pe,H,P*me),i.ctx.restore()):i.ctx.fill())),ie.label=6;case 6:return r--,[2]}})},i=this,o=0,s=A.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return o0?c.style!==2?[3,5]:[4,this.renderDashedDottedBorder(c.color,c.width,s,A.curves,2)]:[3,11]):[3,13];case 4:return f.sent(),[3,11];case 5:return c.style!==3?[3,7]:[4,this.renderDashedDottedBorder(c.color,c.width,s,A.curves,3)];case 6:return f.sent(),[3,11];case 7:return c.style!==4?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,s,A.curves)];case 8:return f.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,s,A.curves)];case 10:f.sent(),f.label=11;case 11:s++,f.label=12;case 12:return l++,[3,3];case 13:return[2]}})})},e.prototype.renderDashedDottedBorder=function(A,r,n,i,o){return It(this,void 0,void 0,function(){var s,l,a,c,u,f,d,h,g,B,m,O,v,Q,C,b,C,b;return bt(this,function(S){return this.ctx.save(),s=w8(i,n),l=Mv(i,n),o===2&&(this.path(l),this.ctx.clip()),wA(l[0])?(a=l[0].start.x,c=l[0].start.y):(a=l[0].x,c=l[0].y),wA(l[1])?(u=l[1].end.x,f=l[1].end.y):(u=l[1].x,f=l[1].y),n===0||n===2?d=Math.abs(a-u):d=Math.abs(c-f),this.ctx.beginPath(),o===3?this.formatPath(s):this.formatPath(l.slice(0,2)),h=r<3?r*3:r*2,g=r<3?r*2:r,o===3&&(h=r,g=r),B=!0,d<=h*2?B=!1:d<=h*2+g?(m=d/(2*h+g),h*=m,g*=m):(O=Math.floor((d+g)/(h+g)),v=(d-O*h)/(O-1),Q=(d-(O+1)*h)/O,g=Q<=0||Math.abs(g-v)this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,A,r){let n=[];return this.decompose(0,e,n,2),r.length&&r.decompose(0,r.length,n,3),this.decompose(A,this.length,n,1),lr.from(n,this.length-(A-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,A=this.length){let r=[];return this.decompose(e,A,r,0),lr.from(r,A-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let A=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),n=new ul(this),i=new ul(e);for(let o=A,s=A;;){if(n.next(o),i.next(o),o=0,n.lineBreak!=i.lineBreak||n.done!=i.done||n.value!=i.value)return!1;if(s+=n.value.length,n.done||s>=r)return!0}}iter(e=1){return new ul(this,e)}iterRange(e,A=this.length){return new ZU(this,e,A)}iterLines(e,A){let r;if(e==null)r=this.iter();else{A==null&&(A=this.lines+1);let n=this.line(e).from;r=this.iterRange(n,Math.max(n,A==this.lines+1?this.length:A<=1?0:this.line(A-1).to))}return new XU(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ge.empty:e.length<=32?new We(e):lr.from(We.split(e,[]))}}class We extends ge{constructor(e,A=_8(e)){super(),this.text=e,this.length=A}get lines(){return this.text.length}get children(){return null}lineInner(e,A,r,n){for(let i=0;;i++){let o=this.text[i],s=n+o.length;if((A?r:s)>=e)return new N8(n,s,r,o);n=s+1,r++}}decompose(e,A,r,n){let i=e<=0&&A>=this.length?this:new We(Xv(this.text,e,A),Math.min(A,this.length)-Math.max(0,e));if(n&1){let o=r.pop(),s=Kc(i.text,o.text.slice(),0,i.length);if(s.length<=32)r.push(new We(s,o.length+i.length));else{let l=s.length>>1;r.push(new We(s.slice(0,l)),new We(s.slice(l)))}}else r.push(i)}replace(e,A,r){if(!(r instanceof We))return super.replace(e,A,r);let n=Kc(this.text,Kc(r.text,Xv(this.text,0,e)),A),i=this.length+r.length-(A-e);return n.length<=32?new We(n,i):lr.from(We.split(n,[]),i)}sliceString(e,A=this.length,r=` +`){let n="";for(let i=0,o=0;i<=A&&oe&&o&&(n+=r),ei&&(n+=s.slice(Math.max(0,e-i),A-i)),i=l+1}return n}flatten(e){for(let A of this.text)e.push(A)}scanIdentical(){return 0}static split(e,A){let r=[],n=-1;for(let i of e)r.push(i),n+=i.length+1,r.length==32&&(A.push(new We(r,n)),r=[],n=-1);return n>-1&&A.push(new We(r,n)),A}}class lr extends ge{constructor(e,A){super(),this.children=e,this.length=A,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,A,r,n){for(let i=0;;i++){let o=this.children[i],s=n+o.length,l=r+o.lines-1;if((A?l:s)>=e)return o.lineInner(e,A,r,n);n=s+1,r=l+1}}decompose(e,A,r,n){for(let i=0,o=0;o<=A&&i=o){let a=n&((o<=e?1:0)|(l>=A?2:0));o>=e&&l<=A&&!a?r.push(s):s.decompose(e-o,A-o,r,a)}o=l+1}}replace(e,A,r){if(r.lines=i&&A<=s){let l=o.replace(e-i,A-i,r),a=this.lines-o.lines+l.lines;if(l.lines>5-1&&l.lines>a>>5+1){let c=this.children.slice();return c[n]=l,new lr(c,this.length-(A-e)+r.length)}return super.replace(i,s,l)}i=s+1}return super.replace(e,A,r)}sliceString(e,A=this.length,r=` +`){let n="";for(let i=0,o=0;ie&&i&&(n+=r),eo&&(n+=s.sliceString(e-o,A-o,r)),o=l+1}return n}flatten(e){for(let A of this.children)A.flatten(e)}scanIdentical(e,A){if(!(e instanceof lr))return 0;let r=0,[n,i,o,s]=A>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=A,i+=A){if(n==o||i==s)return r;let l=this.children[n],a=e.children[i];if(l!=a)return r+l.scanIdentical(a,A);r+=l.length+1}}static from(e,A=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let d of e)r+=d.lines;if(r<32){let d=[];for(let h of e)h.flatten(d);return new We(d,A)}let n=Math.max(32,r>>5),i=n<<1,o=n>>1,s=[],l=0,a=-1,c=[];function u(d){let h;if(d.lines>i&&d instanceof lr)for(let g of d.children)u(g);else d.lines>o&&(l>o||!l)?(f(),s.push(d)):d instanceof We&&l&&(h=c[c.length-1])instanceof We&&d.lines+h.lines<=32?(l+=d.lines,a+=d.length+1,c[c.length-1]=new We(h.text.concat(d.text),h.length+1+d.length)):(l+d.lines>n&&f(),l+=d.lines,a+=d.length+1,c.push(d))}function f(){l!=0&&(s.push(c.length==1?c[0]:lr.from(c,a)),a=-1,l=c.length=0)}for(let d of e)u(d);return f(),s.length==1?s[0]:new lr(s,A)}}ge.empty=new We([""],0);function _8(t){let e=-1;for(let A of t)e+=A.length+1;return e}function Kc(t,e,A=0,r=1e9){for(let n=0,i=0,o=!0;i=A&&(l>r&&(s=s.slice(0,r-n)),n0?1:(e instanceof We?e.text.length:e.children.length)<<1]}nextInner(e,A){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],i=this.offsets[r],o=i>>1,s=n instanceof We?n.text.length:n.children.length;if(o==(A>0?s:0)){if(r==0)return this.done=!0,this.value="",this;A>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(A>0?0:1)){if(this.offsets[r]+=A,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof We){let l=n.text[o+(A<0?-1:0)];if(this.offsets[r]+=A,l.length>Math.max(0,e))return this.value=e==0?l:A>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(A<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=A):(A<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(A>0?1:(l instanceof We?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class ZU{constructor(e,A,r){this.value="",this.done=!1,this.cursor=new ul(e,A>r?-1:1),this.pos=A>r?e.length:0,this.from=Math.min(A,r),this.to=Math.max(A,r)}nextInner(e,A){if(A<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,A<0?this.pos-this.to:this.from-this.pos);let r=A<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*A,this.value=n.length<=r?n:A<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class XU{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:A,lineBreak:r,value:n}=this.inner.next(e);return A?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(ge.prototype[Symbol.iterator]=function(){return this.iter()},ul.prototype[Symbol.iterator]=ZU.prototype[Symbol.iterator]=XU.prototype[Symbol.iterator]=function(){return this});class N8{constructor(e,A,r,n){this.from=e,this.to=A,this.number=r,this.text=n}get length(){return this.to-this.from}}let xo="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(t=>t?parseInt(t,36):1);for(let t=1;tt)return xo[e-1]<=t;return!1}function Vv(t){return t>=127462&&t<=127487}const Yv=8205;function Kt(t,e,A=!0,r=!0){return(A?VU:Z8)(t,e,r)}function VU(t,e,A){if(e==t.length)return e;e&&YU(t.charCodeAt(e))&&KU(t.charCodeAt(e-1))&&e--;let r=Wc(t,e);for(e+=Dg(r);e=0&&Vv(Wc(t,o));)i++,o-=2;if(i%2==0)break;e+=2}else break}return e}function Z8(t,e,A){for(;e>0;){let r=VU(t,e-2,A);if(r=56320&&t<57344}function KU(t){return t>=55296&&t<56320}function Wc(t,e){let A=t.charCodeAt(e);if(!KU(A)||e+1==t.length)return A;let r=t.charCodeAt(e+1);return YU(r)?(A-55296<<10)+(r-56320)+65536:A}function Dg(t){return t<65536?1:2}const Hg=/\r\n?|\n/;var Dt=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(Dt||(Dt={}));class gr{constructor(e){this.sections=e}get length(){let e=0;for(let A=0;Ae)return i+(e-n);i+=s}else{if(r!=Dt.Simple&&a>=e&&(r==Dt.TrackDel&&ne||r==Dt.TrackBefore&&ne))return null;if(a>e||a==e&&A<0&&!s)return e==n||A<0?i:i+l;i+=l}n=a}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return i}touchesRange(e,A=e){for(let r=0,n=0;r=0&&n<=A&&s>=e)return nA?"cover":!0;n=s}return!1}toString(){let e="";for(let A=0;A=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(A=>typeof A!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new gr(e)}static create(e){return new gr(e)}}class At extends gr{constructor(e,A){super(e),this.inserted=A}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Lg(this,(A,r,n,i,o)=>e=e.replace(n,n+(r-A),o),!1),e}mapDesc(e,A=!1){return _g(this,e,A,!0)}invert(e){let A=this.sections.slice(),r=[];for(let n=0,i=0;n=0){A[n]=s,A[n+1]=o;let l=n>>1;for(;r.length0&&bn(r,A,i.text),i.forward(c),s+=c}let a=e[o++];for(;s>1].toJSON()))}return e}static of(e,A,r){let n=[],i=[],o=0,s=null;function l(c=!1){if(!c&&!n.length)return;of||u<0||f>A)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${A})`);let h=d?typeof d=="string"?ge.of(d.split(r||Hg)):d:ge.empty,g=h.length;if(u==f&&g==0)return;uo&&xt(n,u-o,-1),xt(n,f-u,g),bn(i,n,h),o=f}}return a(e),l(!s),s}static empty(e){return new At(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let A=[],r=[];for(let n=0;ns&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(i.length==1)A.push(i[0],0);else{for(;r.length=0&&A<=0&&A==t[n+1]?t[n]+=e:e==0&&t[n]==0?t[n+1]+=A:r?(t[n]+=e,t[n+1]+=A):t.push(e,A)}function bn(t,e,A){if(A.length==0)return;let r=e.length-2>>1;if(r>1])),!(A||o==t.sections.length||t.sections[o+1]<0);)s=t.sections[o++],l=t.sections[o++];e(n,a,i,c,u),n=a,i=c}}}function _g(t,e,A,r=!1){let n=[],i=r?[]:null,o=new Dl(t),s=new Dl(e);for(let l=-1;;)if(o.ins==-1&&s.ins==-1){let a=Math.min(o.len,s.len);xt(n,a,-1),o.forward(a),s.forward(a)}else if(s.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(s.len=0&&l=0){let a=0,c=o.len;for(;c;)if(s.ins==-1){let u=Math.min(c,s.len);a+=u,c-=u,s.forward(u)}else if(s.ins==0&&s.lenl||o.ins>=0&&o.len>l)&&(s||r.length>a),i.forward2(l),o.forward(l)}}}}class Dl{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return A>=e.length?ge.empty:e[A]}textBit(e){let{inserted:A}=this.set,r=this.i-2>>1;return r>=A.length&&!e?ge.empty:A[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class mi{constructor(e,A,r){this.from=e,this.to=A,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,A=-1){let r,n;return this.empty?r=n=e.mapPos(this.from,A):(r=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),r==this.from&&n==this.to?this:new mi(r,n,this.flags)}extend(e,A=e){if(e<=this.anchor&&A>=this.anchor)return D.range(e,A);let r=Math.abs(e-this.anchor)>Math.abs(A-this.anchor)?e:A;return D.range(this.anchor,r)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return D.range(e.anchor,e.head)}static create(e,A,r){return new mi(e,A,r)}}class D{constructor(e,A){this.ranges=e,this.mainIndex=A}map(e,A=-1){return e.empty?this:D.create(this.ranges.map(r=>r.map(e,A)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let A=0;Ae.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new D(e.ranges.map(A=>mi.fromJSON(A)),e.main)}static single(e,A=e){return new D([D.range(e,A)],0)}static create(e,A=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,n=0;ne?8:0)|i)}static normalized(e,A=0){let r=e[A];e.sort((n,i)=>n.from-i.from),A=e.indexOf(r);for(let n=1;ni.head?D.range(l,s):D.range(s,l))}}return new D(e,A)}}function jU(t,e){for(let A of t.ranges)if(A.to>e)throw new RangeError("Selection points outside of document")}let d0=0;class ee{constructor(e,A,r,n,i){this.combine=e,this.compareInput=A,this.compare=r,this.isStatic=n,this.id=d0++,this.default=e([]),this.extensions=typeof i=="function"?i(this):i}get reader(){return this}static define(e={}){return new ee(e.combine||(A=>A),e.compareInput||((A,r)=>A===r),e.compare||(e.combine?(A,r)=>A===r:h0),!!e.static,e.enables)}of(e){return new jc([],this,0,e)}compute(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new jc(e,this,1,A)}computeN(e,A){if(this.isStatic)throw new Error("Can't compute a static facet");return new jc(e,this,2,A)}from(e,A){return A||(A=r=>r),this.compute([e],r=>A(r.field(e)))}}function h0(t,e){return t==e||t.length==e.length&&t.every((A,r)=>A===e[r])}class jc{constructor(e,A,r,n){this.dependencies=e,this.facet=A,this.type=r,this.value=n,this.id=d0++}dynamicSlot(e){var A;let r=this.value,n=this.facet.compareInput,i=this.id,o=e[i]>>1,s=this.type==2,l=!1,a=!1,c=[];for(let u of this.dependencies)u=="doc"?l=!0:u=="selection"?a=!0:((A=e[u.id])!==null&&A!==void 0?A:1)&1||c.push(e[u.id]);return{create(u){return u.values[o]=r(u),1},update(u,f){if(l&&f.docChanged||a&&(f.docChanged||f.selection)||Ng(u,c)){let d=r(u);if(s?!Kv(d,u.values[o],n):!n(d,u.values[o]))return u.values[o]=d,1}return 0},reconfigure:(u,f)=>{let d,h=f.config.address[i];if(h!=null){let g=ju(f,h);if(this.dependencies.every(B=>B instanceof ee?f.facet(B)===u.facet(B):B instanceof yr?f.field(B,!1)==u.field(B,!1):!0)||(s?Kv(d=r(u),g,n):n(d=r(u),g)))return u.values[o]=g,0}else d=r(u);return u.values[o]=d,1}}}}function Kv(t,e,A){if(t.length!=e.length)return!1;for(let r=0;rt[l.id]),n=A.map(l=>l.type),i=r.filter(l=>!(l&1)),o=t[e.id]>>1;function s(l){let a=[];for(let c=0;cr===n),e);return e.provide&&(A.provides=e.provide(A)),A}create(e){let A=e.facet(Wv).find(r=>r.field==this);return((A==null?void 0:A.create)||this.createF)(e)}slot(e){let A=e[this.id]>>1;return{create:r=>(r.values[A]=this.create(r),1),update:(r,n)=>{let i=r.values[A],o=this.updateF(i,n);return this.compareF(i,o)?0:(r.values[A]=o,1)},reconfigure:(r,n)=>n.config.address[this.id]!=null?(r.values[A]=n.field(this),0):(r.values[A]=this.create(r),1)}}init(e){return[this,Wv.of({field:this,create:e})]}get extension(){return this}}const ui={lowest:4,low:3,default:2,high:1,highest:0};function xs(t){return e=>new GU(e,t)}const td={highest:xs(ui.highest),high:xs(ui.high),default:xs(ui.default),low:xs(ui.low),lowest:xs(ui.lowest)};class GU{constructor(e,A){this.inner=e,this.prec=A}}class Ad{of(e){return new Mg(this,e)}reconfigure(e){return Ad.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Mg{constructor(e,A){this.compartment=e,this.inner=A}}class Wu{constructor(e,A,r,n,i,o){for(this.base=e,this.compartments=A,this.dynamicSlots=r,this.address=n,this.staticValues=i,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,A,r){let n=[],i=Object.create(null),o=new Map;for(let f of V8(e,A,o))f instanceof yr?n.push(f):(i[f.facet.id]||(i[f.facet.id]=[])).push(f);let s=Object.create(null),l=[],a=[];for(let f of n)s[f.id]=a.length<<1,a.push(d=>f.slot(d));let c=r==null?void 0:r.config.facets;for(let f in i){let d=i[f],h=d[0].facet,g=c&&c[f]||[];if(d.every(B=>B.type==0))if(s[h.id]=l.length<<1|1,h0(g,d))l.push(r.facet(h));else{let B=h.combine(d.map(m=>m.value));l.push(r&&h.compare(B,r.facet(h))?r.facet(h):B)}else{for(let B of d)B.type==0?(s[B.id]=l.length<<1|1,l.push(B.value)):(s[B.id]=a.length<<1,a.push(m=>B.dynamicSlot(m)));s[h.id]=a.length<<1,a.push(B=>X8(B,h,d))}}let u=a.map(f=>f(s));return new Wu(e,o,u,s,l,i)}}function V8(t,e,A){let r=[[],[],[],[],[]],n=new Map;function i(o,s){let l=n.get(o);if(l!=null){if(l<=s)return;let a=r[l].indexOf(o);a>-1&&r[l].splice(a,1),o instanceof Mg&&A.delete(o.compartment)}if(n.set(o,s),Array.isArray(o))for(let a of o)i(a,s);else if(o instanceof Mg){if(A.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let a=e.get(o.compartment)||o.inner;A.set(o.compartment,a),i(a,s)}else if(o instanceof GU)i(o.inner,o.prec);else if(o instanceof yr)r[s].push(o),o.provides&&i(o.provides,s);else if(o instanceof jc)r[s].push(o),o.facet.extensions&&i(o.facet.extensions,ui.default);else{let a=o.extension;if(!a)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);i(a,s)}}return i(t,ui.default),r.reduce((o,s)=>o.concat(s))}function fl(t,e){if(e&1)return 2;let A=e>>1,r=t.status[A];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;t.status[A]=4;let n=t.computeSlot(t,t.config.dynamicSlots[A]);return t.status[A]=2|n}function ju(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const zU=ee.define(),qU=ee.define({combine:t=>t.some(e=>e),static:!0}),JU=ee.define({combine:t=>t.length?t[0]:void 0,static:!0}),eE=ee.define(),tE=ee.define(),AE=ee.define(),rE=ee.define({combine:t=>t.length?t[0]:!1});class en{constructor(e,A){this.type=e,this.value=A}static define(){return new Y8}}class Y8{of(e){return new en(this,e)}}class K8{constructor(e){this.map=e}of(e){return new Xe(this,e)}}class Xe{constructor(e,A){this.type=e,this.value=A}map(e){let A=this.type.map(this.value,e);return A===void 0?void 0:A==this.value?this:new Xe(this.type,A)}is(e){return this.type==e}static define(e={}){return new K8(e.map||(A=>A))}static mapEffects(e,A){if(!e.length)return e;let r=[];for(let n of e){let i=n.map(A);i&&r.push(i)}return r}}Xe.reconfigure=Xe.define();Xe.appendConfig=Xe.define();class it{constructor(e,A,r,n,i,o){this.startState=e,this.changes=A,this.selection=r,this.effects=n,this.annotations=i,this.scrollIntoView=o,this._doc=null,this._state=null,r&&jU(r,A.newLength),i.some(s=>s.type==it.time)||(this.annotations=i.concat(it.time.of(Date.now())))}static create(e,A,r,n,i,o){return new it(e,A,r,n,i,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let A of this.annotations)if(A.type==e)return A.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let A=this.annotation(it.userEvent);return!!(A&&(A==e||A.length>e.length&&A.slice(0,e.length)==e&&A[e.length]=="."))}}it.time=en.define();it.userEvent=en.define();it.addToHistory=en.define();it.remote=en.define();function W8(t,e){let A=[];for(let r=0,n=0;;){let i,o;if(r=t[r]))i=t[r++],o=t[r++];else if(n=0;n--){let i=r[n](t);i instanceof it?t=i:Array.isArray(i)&&i.length==1&&i[0]instanceof it?t=i[0]:t=iE(e,Uo(i),!1)}return t}function G8(t){let e=t.startState,A=e.facet(AE),r=t;for(let n=A.length-1;n>=0;n--){let i=A[n](t);i&&Object.keys(i).length&&(r=nE(r,Zg(e,i,t.changes.newLength),!0))}return r==t?t:it.create(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}const z8=[];function Uo(t){return t==null?z8:Array.isArray(t)?t:[t]}var Ir=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(Ir||(Ir={}));const q8=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Xg;try{Xg=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function J8(t){if(Xg)return Xg.test(t);for(let e=0;e"€"&&(A.toUpperCase()!=A.toLowerCase()||q8.test(A)))return!0}return!1}function eM(t){return e=>{if(!/\S/.test(e))return Ir.Space;if(J8(e))return Ir.Word;for(let A=0;A-1)return Ir.Word;return Ir.Other}}class Be{constructor(e,A,r,n,i,o){this.config=e,this.doc=A,this.selection=r,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=i,o&&(o._state=this);for(let s=0;sn.set(l,s)),A=null),n.set(o.value.compartment,o.value.extension)):o.is(Xe.reconfigure)?(A=null,r=o.value):o.is(Xe.appendConfig)&&(A=null,r=Uo(r).concat(o.value));let i;A?i=e.startState.values.slice():(A=Wu.resolve(r,n,this),i=new Be(A,this.doc,this.selection,A.dynamicSlots.map(()=>null),(s,l)=>l.reconfigure(s,this),null).values),new Be(A,e.newDoc,e.newSelection,i,(o,s)=>s.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(A=>({changes:{from:A.from,to:A.to,insert:e},range:D.cursor(A.from+e.length)}))}changeByRange(e){let A=this.selection,r=e(A.ranges[0]),n=this.changes(r.changes),i=[r.range],o=Uo(r.effects);for(let s=1;so.spec.fromJSON(s,l)))}}return Be.create({doc:e.doc,selection:D.fromJSON(e.selection),extensions:A.extensions?n.concat([A.extensions]):n})}static create(e={}){let A=Wu.resolve(e.extensions||[],new Map),r=e.doc instanceof ge?e.doc:ge.of((e.doc||"").split(A.staticFacet(Be.lineSeparator)||Hg)),n=e.selection?e.selection instanceof D?e.selection:D.single(e.selection.anchor,e.selection.head):D.single(0);return jU(n,r.length),A.staticFacet(qU)||(n=n.asSingle()),new Be(A,r,n,A.dynamicSlots.map(()=>null),(i,o)=>o.create(i),null)}get tabSize(){return this.facet(Be.tabSize)}get lineBreak(){return this.facet(Be.lineSeparator)||` +`}get readOnly(){return this.facet(rE)}phrase(e,...A){for(let r of this.facet(Be.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return A.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let i=+(n||1);return!i||i>A.length?r:A[i-1]})),e}languageDataAt(e,A,r=-1){let n=[];for(let i of this.facet(zU))for(let o of i(this,A,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){return eM(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:A,from:r,length:n}=this.doc.lineAt(e),i=this.charCategorizer(e),o=e-r,s=e-r;for(;o>0;){let l=Kt(A,o,!1);if(i(A.slice(l,o))!=Ir.Word)break;o=l}for(;st.length?t[0]:4});Be.lineSeparator=JU;Be.readOnly=rE;Be.phrases=ee.define({compare(t,e){let A=Object.keys(t),r=Object.keys(e);return A.length==r.length&&A.every(n=>t[n]==e[n])}});Be.languageData=zU;Be.changeFilter=eE;Be.transactionFilter=tE;Be.transactionExtender=AE;Ad.reconfigure=Xe.define();function p0(t,e,A={}){let r={};for(let n of t)for(let i of Object.keys(n)){let o=n[i],s=r[i];if(s===void 0)r[i]=o;else if(!(s===o||o===void 0))if(Object.hasOwnProperty.call(A,i))r[i]=A[i](s,o);else throw new Error("Config merge conflict for field "+i)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}class Fi{eq(e){return this==e}range(e,A=e){return Vg.create(e,A,this)}}Fi.prototype.startSide=Fi.prototype.endSide=0;Fi.prototype.point=!1;Fi.prototype.mapMode=Dt.TrackDel;let Vg=class oE{constructor(e,A,r){this.from=e,this.to=A,this.value=r}static create(e,A,r){return new oE(e,A,r)}};function Yg(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class g0{constructor(e,A,r,n){this.from=e,this.to=A,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,r,n=0){let i=r?this.to:this.from;for(let o=n,s=i.length;;){if(o==s)return o;let l=o+s>>1,a=i[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-A;if(l==o)return a>=0?o:s;a>=0?s=l:o=l+1}}between(e,A,r,n){for(let i=this.findIndex(A,-1e9,!0),o=this.findIndex(r,1e9,!1,i);id||f==d&&a.startSide>0&&a.endSide<=0)continue;(d-f||a.endSide-a.startSide)<0||(o<0&&(o=f),a.point&&(s=Math.max(s,d-f)),r.push(a),n.push(f-o),i.push(d-o))}return{mapped:r.length?new g0(n,i,r,s):null,pos:o}}}class ke{constructor(e,A,r,n){this.chunkPos=e,this.chunk=A,this.nextLayer=r,this.maxPoint=n}static create(e,A,r,n){return new ke(e,A,r,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let A of this.chunk)e+=A.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:A=[],sort:r=!1,filterFrom:n=0,filterTo:i=this.length}=e,o=e.filter;if(A.length==0&&!o)return this;if(r&&(A=A.slice().sort(Yg)),this.isEmpty)return A.length?ke.of(A):this;let s=new sE(this,null,-1).goto(0),l=0,a=[],c=new Hl;for(;s.value||l=0){let u=A[l++];c.addInner(u.from,u.to,u.value)||a.push(u)}else s.rangeIndex==1&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||is.to||i=i&&e<=i+o.length&&o.between(i,e-i,A-i,r)===!1)return}this.nextLayer.between(e,A,r)}}iter(e=0){return Ll.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,A=0){return Ll.from(e).goto(A)}static compare(e,A,r,n,i=-1){let o=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=i),s=A.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=i),l=jv(o,s,r),a=new Us(o,l,i),c=new Us(s,l,i);r.iterGaps((u,f,d)=>Gv(a,u,c,f,d,n)),r.empty&&r.length==0&&Gv(a,0,c,0,0,n)}static eq(e,A,r=0,n){n==null&&(n=1e9-1);let i=e.filter(c=>!c.isEmpty&&A.indexOf(c)<0),o=A.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(i.length!=o.length)return!1;if(!i.length)return!0;let s=jv(i,o),l=new Us(i,s,0).goto(r),a=new Us(o,s,0).goto(r);for(;;){if(l.to!=a.to||!Kg(l.active,a.active)||l.point&&(!a.point||!l.point.eq(a.point)))return!1;if(l.to>n)return!0;l.next(),a.next()}}static spans(e,A,r,n,i=-1){let o=new Us(e,null,i).goto(A),s=A,l=o.openStart;for(;;){let a=Math.min(o.to,r);if(o.point){let c=o.activeForPoint(o.to),u=o.pointFroms&&(n.span(s,a,o.active,l),l=o.openEnd(a));if(o.to>r)return l+(o.point&&o.to>r?1:0);s=o.to,o.next()}}static of(e,A=!1){let r=new Hl;for(let n of e instanceof Vg?[e]:A?tM(e):e)r.add(n.from,n.to,n.value);return r.finish()}}ke.empty=new ke([],[],null,-1);function tM(t){if(t.length>1)for(let e=t[0],A=1;A0)return t.slice().sort(Yg);e=r}return t}ke.empty.nextLayer=ke.empty;class Hl{finishChunk(e){this.chunks.push(new g0(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,r){this.addInner(e,A,r)||(this.nextLayer||(this.nextLayer=new Hl)).add(e,A,r)}addInner(e,A,r){let n=e-this.lastTo||r.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=A,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let r=A.value.length-1;return this.last=A.value[r],this.lastFrom=A.from[r]+e,this.lastTo=A.to[r]+e,!0}finish(){return this.finishInner(ke.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=ke.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}}function jv(t,e,A){let r=new Map;for(let i of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&n.push(new sE(o,A,r,i));return n.length==1?n[0]:new Ll(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let r of this.heap)r.goto(e,A);for(let r=this.heap.length>>1;r>=0;r--)Sh(this.heap,r);return this.next(),this}forward(e,A){for(let r of this.heap)r.forward(e,A);for(let r=this.heap.length>>1;r>=0;r--)Sh(this.heap,r);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Sh(this.heap,0)}}}function Sh(t,e){for(let A=t[e];;){let r=(e<<1)+1;if(r>=t.length)break;let n=t[r];if(r+1=0&&(n=t[r+1],r++),A.compare(n)<0)break;t[r]=A,t[e]=n,e=r}}class Us{constructor(e,A,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ll.from(e,A,r)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){sc(this.active,e),sc(this.activeTo,e),sc(this.activeRank,e),this.minActive=zv(this.active,this.activeTo)}addActive(e){let A=0,{value:r,to:n,rank:i}=this.cursor;for(;A-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),r&&sc(r,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let i=this.cursor.value;if(!i.point)this.addActive(r),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from=0&&r[n]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&A.push(this.active[r]);return A.reverse()}openEnd(e){let A=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)A++;return A}}function Gv(t,e,A,r,n,i){t.goto(e),A.goto(r);let o=r+n,s=r,l=r-e;for(;;){let a=t.to+l-A.to||t.endSide-A.endSide,c=a<0?t.to+l:A.to,u=Math.min(c,o);if(t.point||A.point?t.point&&A.point&&(t.point==A.point||t.point.eq(A.point))&&Kg(t.activeForPoint(t.to),A.activeForPoint(A.to))||i.comparePoint(s,u,t.point,A.point):u>s&&!Kg(t.active,A.active)&&i.compareRange(s,u,t.active,A.active),c>o)break;s=c,a<=0&&t.next(),a>=0&&A.next()}}function Kg(t,e){if(t.length!=e.length)return!1;for(let A=0;A=e;r--)t[r+1]=t[r];t[e]=A}function zv(t,e){let A=-1,r=1e9;for(let n=0;n=e)return n;if(n==t.length)break;i+=t.charCodeAt(n)==9?A-i%A:1,n=Kt(t,n)}return r===!0?-1:t.length}const Wg="ͼ",qv=typeof Symbol>"u"?"__"+Wg:Symbol.for(Wg),jg=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Jv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Kn{constructor(e,A){this.rules=[];let{finish:r}=A||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function i(o,s,l,a){let c=[],u=/^@(\w+)\b/.exec(o[0]),f=u&&u[1]=="keyframes";if(u&&s==null)return l.push(o[0]+";");for(let d in s){let h=s[d];if(/&/.test(d))i(d.split(/,\s*/).map(g=>o.map(B=>g.replace(/&/,B))).reduce((g,B)=>g.concat(B)),h,l);else if(h&&typeof h=="object"){if(!u)throw new RangeError("The value of a property ("+d+") should be a primitive value.");i(n(d),h,c,f)}else h!=null&&c.push(d.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+h+";")}(c.length||f)&&l.push((r&&!u&&!a?o.map(r):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in e)i(n(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Jv[qv]||1;return Jv[qv]=e+1,Wg+e.toString(36)}static mount(e,A,r){let n=e[jg],i=r&&r.nonce;n?i&&n.setNonce(i):n=new rM(e,i),n.mount(Array.isArray(A)?A:[A])}}let ey=new Map;class rM{constructor(e,A){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let i=ey.get(r);if(i)return e.adoptedStyleSheets=[i.sheet,...e.adoptedStyleSheets],e[jg]=i;this.sheet=new n.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],ey.set(r,this)}else{this.styleTag=r.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);let i=e.head||e;i.insertBefore(this.styleTag,i.firstChild)}this.modules=[],e[jg]=this}mount(e){let A=this.sheet,r=0,n=0;for(let i=0;i-1&&(this.modules.splice(s,1),n--,s=-1),s==-1){if(this.modules.splice(n++,0,o),A)for(let l=0;l",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},nM=typeof navigator<"u"&&/Mac/.test(navigator.platform),iM=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var gt=0;gt<10;gt++)Wn[48+gt]=Wn[96+gt]=String(gt);for(var gt=1;gt<=24;gt++)Wn[gt+111]="F"+gt;for(var gt=65;gt<=90;gt++)Wn[gt]=String.fromCharCode(gt+32),_l[gt]=String.fromCharCode(gt);for(var xh in Wn)_l.hasOwnProperty(xh)||(_l[xh]=Wn[xh]);function oM(t){var e=nM&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||iM&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",A=!e&&t.key||(t.shiftKey?_l:Wn)[t.keyCode]||t.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function Gu(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function Gg(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function sM(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Gc(t,e){if(!e.anchorNode)return!1;try{return Gg(t,e.anchorNode)}catch{return!1}}function Nl(t){return t.nodeType==3?$i(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function zu(t,e,A,r){return A?ty(t,e,A,r,-1)||ty(t,e,A,r,1):!1}function Ml(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function ty(t,e,A,r,n){for(;;){if(t==A&&e==r)return!0;if(e==(n<0?0:jr(t))){if(t.nodeName=="DIV")return!1;let i=t.parentNode;if(!i||i.nodeType!=1)return!1;e=Ml(t)+(n<0?0:1),t=i}else if(t.nodeType==1){if(t=t.childNodes[e+(n<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=n<0?jr(t):0}else return!1}}function jr(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function m0(t,e){let A=e?t.left:t.right;return{left:A,right:A,top:t.top,bottom:t.bottom}}function lM(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function aM(t,e,A,r,n,i,o,s){let l=t.ownerDocument,a=l.defaultView||window;for(let c=t,u=!1;c&&!u;)if(c.nodeType==1){let f,d=c==l.body,h=1,g=1;if(d)f=lM(a);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let O=c.getBoundingClientRect();h=O.width/c.offsetWidth,g=O.height/c.offsetHeight,f={left:O.left,right:O.left+c.clientWidth*h,top:O.top,bottom:O.top+c.clientHeight*g}}let B=0,m=0;if(n=="nearest")e.top0&&e.bottom>f.bottom+m&&(m=e.bottom-f.bottom+m+o)):e.bottom>f.bottom&&(m=e.bottom-f.bottom+o,A<0&&e.top-m0&&e.right>f.right+B&&(B=e.right-f.right+B+i)):e.right>f.right&&(B=e.right-f.right+i,A<0&&e.leftA.clientHeight||A.scrollWidth>A.clientWidth)return A;A=A.assignedSlot||A.parentNode}else if(A.nodeType==11)A=A.host;else break;return null}class uM{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:r}=e;this.set(A,Math.min(e.anchorOffset,A?jr(A):0),r,Math.min(e.focusOffset,r?jr(r):0))}set(e,A,r,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=r,this.focusOffset=n}}let Ji=null;function lE(t){if(t.setActive)return t.setActive();if(Ji)return t.focus(Ji);let e=[];for(let A=t;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(t.focus(Ji==null?{get preventScroll(){return Ji={preventScroll:!0},!0}}:void 0),!Ji){Ji=!1;for(let A=0;AMath.max(1,t.scrollHeight-t.clientHeight-4)}class Et{constructor(e,A,r=!0){this.node=e,this.offset=A,this.precise=r}static before(e,A){return new Et(e.parentNode,Ml(e),A)}static after(e,A){return new Et(e.parentNode,Ml(e)+1,A)}}const O0=[];class Pe{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let A=this.posAtStart;for(let r of this.children){if(r==e)return A;A+=r.length+r.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,A){if(this.flags&2){let r=this.dom,n=null,i;for(let o of this.children){if(o.flags&7){if(!o.dom&&(i=n?n.nextSibling:r.firstChild)){let s=Pe.get(i);(!s||!s.parent&&s.canReuseDOM(o))&&o.reuseDOM(i)}o.sync(e,A),o.flags&=-8}if(i=n?n.nextSibling:r.firstChild,A&&!A.written&&A.node==r&&i!=o.dom&&(A.written=!0),o.dom.parentNode==r)for(;i&&i!=o.dom;)i=ry(i);else r.insertBefore(o.dom,i);n=o.dom}for(i=n?n.nextSibling:r.firstChild,i&&A&&A.node==r&&(A.written=!0);i;)i=ry(i)}else if(this.flags&1)for(let r of this.children)r.flags&7&&(r.sync(e,A),r.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,A){let r;if(e==this.dom)r=this.dom.childNodes[A];else{let n=jr(e)==0?0:A==0?-1:1;for(;;){let i=e.parentNode;if(i==this.dom)break;n==0&&i.firstChild!=i.lastChild&&(e==i.firstChild?n=-1:n=1),e=i}n<0?r=e:r=e.nextSibling}if(r==this.dom.firstChild)return 0;for(;r&&!Pe.get(r);)r=r.nextSibling;if(!r)return this.length;for(let n=0,i=0;;n++){let o=this.children[n];if(o.dom==r)return i;i+=o.length+o.breakAfter}}domBoundsAround(e,A,r=0){let n=-1,i=-1,o=-1,s=-1;for(let l=0,a=r,c=r;lA)return u.domBoundsAround(e,A,a);if(f>=e&&n==-1&&(n=l,i=a),a>A&&u.dom.parentNode==this.dom){o=l,s=c;break}c=f,a=f+u.breakAfter}return{from:i,to:s<0?r+this.length:s,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let A=this.parent;A;A=A.parent){if(e&&(A.flags|=2),A.flags&1)return;A.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let A=e.parent;if(!A)return e;e=A}}replaceChildren(e,A,r=O0){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(A>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let r=this.children[--this.i];this.pos-=r.length+r.breakAfter}}}function fE(t,e,A,r,n,i,o,s,l){let{children:a}=t,c=a.length?a[e]:null,u=i.length?i[i.length-1]:null,f=u?u.breakAfter:o;if(!(e==r&&c&&!o&&!f&&i.length<2&&c.merge(A,n,i.length?u:null,A==0,s,l))){if(r0&&(!o&&i.length&&c.merge(A,c.length,i[0],!1,s,0)?c.breakAfter=i.shift().breakAfter:(A2);var G={mac:oy||/Mac/.test(sA.platform),windows:/Win/.test(sA.platform),linux:/Linux|X11/.test(sA.platform),ie:nd,ie_version:hE?zg.documentMode||6:Jg?+Jg[1]:qg?+qg[1]:0,gecko:ny,gecko_version:ny?+(/Firefox\/(\d+)/.exec(sA.userAgent)||[0,0])[1]:0,chrome:!!Uh,chrome_version:Uh?+Uh[1]:0,ios:oy,android:/Android\b/.test(sA.userAgent),webkit:iy,safari:pE,webkit_version:iy?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:zg.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const hM=256;class Gr extends Pe{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,A){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(A&&A.node==this.dom&&(A.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,A,r){return this.flags&8||r&&(!(r instanceof Gr)||this.length-(A-e)+r.length>hM||r.flags&8)?!1:(this.text=this.text.slice(0,e)+(r?r.text:"")+this.text.slice(A),this.markDirty(),!0)}split(e){let A=new Gr(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),A.flags|=this.flags&8,A}localPosFromDOM(e,A){return e==this.dom?A:A?this.text.length:0}domAtPos(e){return new Et(this.dom,e)}domBoundsAround(e,A,r){return{from:r,to:r+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,A){return pM(this.dom,e,A)}}class zr extends Pe{constructor(e,A=[],r=0){super(),this.mark=e,this.children=A,this.length=r;for(let n of A)n.setParent(this)}setAttrs(e){if(aE(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let A in this.mark.attrs)e.setAttribute(A,this.mark.attrs[A]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,A){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,A)}merge(e,A,r,n,i,o){return r&&(!(r instanceof zr&&r.mark.eq(this.mark))||e&&i<=0||Ae&&A.push(r=e&&(n=i),r=l,i++}let o=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new zr(this.mark,A,o)}domAtPos(e){return gE(this,e)}coordsAt(e,A){return OE(this,e,A)}}function pM(t,e,A){let r=t.nodeValue.length;e>r&&(e=r);let n=e,i=e,o=0;e==0&&A<0||e==r&&A>=0?G.chrome||G.gecko||(e?(n--,o=1):i=0)?0:s.length-1];return G.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(s,a=>a.width)||l),o?m0(l,o<0):l||null}class Oi extends Pe{static create(e,A,r){return new Oi(e,A,r)}constructor(e,A,r){super(),this.widget=e,this.length=A,this.side=r,this.prevWidget=null}split(e){let A=Oi.create(this.widget,this.length-e,this.side);return this.length-=e,A}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,A,r,n,i,o){return r&&(!(r instanceof Oi)||!this.widget.compare(r.widget)||e>0&&i<=0||A0)?Et.before(this.dom):Et.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,A){let r=this.widget.coordsAt(this.dom,e,A);if(r)return r;let n=this.dom.getClientRects(),i=null;if(!n.length)return null;let o=this.side?this.side<0:e>0;for(let s=o?n.length-1:0;i=n[s],!(e>0?s==0:s==n.length-1||i.top0?Et.before(this.dom):Et.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ge.empty}get isHidden(){return!0}}Gr.prototype.children=Oi.prototype.children=Xo.prototype.children=O0;function gE(t,e){let A=t.dom,{children:r}=t,n=0;for(let i=0;ni&&e0;i--){let o=r[i-1];if(o.dom.parentNode==A)return o.domAtPos(o.length)}for(let i=n;i0&&e instanceof zr&&n.length&&(r=n[n.length-1])instanceof zr&&r.mark.eq(e.mark)?mE(r,e.children[0],A-1):(n.push(e),e.setParent(t)),t.length+=e.length}function OE(t,e,A){let r=null,n=-1,i=null,o=-1;function s(a,c){for(let u=0,f=0;u=c&&(d.children.length?s(d,c-f):(!i||i.isHidden&&A>0)&&(h>c||f==h&&d.getSide()>0)?(i=d,o=c-f):(f-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let i of r)if(i!=A&&(n.indexOf(i)==-1||t[i]!==e[i]))return!1;return!0}function tm(t,e,A){let r=!1;if(e)for(let n in e)A&&n in A||(r=!0,n=="style"?t.style.cssText="":t.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(r=!0,n=="style"?t.style.cssText=A[n]:t.setAttribute(n,A[n]));return r}function mM(t){let e=Object.create(null);for(let A=0;A0&&this.children[r-1].length==0;)this.children[--r].destroy();return this.children.length=r,this.markDirty(),this.length=e,A}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){w0(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,A){mE(this,e,A)}addLineDeco(e){let A=e.spec.attributes,r=e.spec.class;A&&(this.attrs=em(A,this.attrs||{})),r&&(this.attrs=em({class:r},this.attrs||{}))}domAtPos(e){return gE(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,A){var r;this.dom?this.flags&4&&(aE(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(tm(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,A);let n=this.dom.lastChild;for(;n&&Pe.get(n)instanceof zr;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((r=Pe.get(n))===null||r===void 0?void 0:r.isEditable)==!1&&(!G.ios||!this.children.some(i=>i instanceof Gr))){let i=document.createElement("BR");i.cmIgnore=!0,this.dom.appendChild(i)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,A;for(let r of this.children){if(!(r instanceof Gr)||/[^ -~]/.test(r.text))return null;let n=Nl(r.dom);if(n.length!=1)return null;e+=n[0].width,A=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:A}:null}coordsAt(e,A){let r=OE(this,e,A);if(!this.children.length&&r&&this.parent){let{heightOracle:n}=this.parent.view.viewState,i=r.bottom-r.top;if(Math.abs(i-n.lineHeight)<2&&n.textHeight=A){if(i instanceof et)return i;if(o>A)break}n=o+i.breakAfter}return null}}class Ln extends Pe{constructor(e,A,r){super(),this.widget=e,this.length=A,this.deco=r,this.breakAfter=0,this.prevWidget=null}merge(e,A,r,n,i,o){return r&&(!(r instanceof Ln)||!this.widget.compare(r.widget)||e>0&&i<=0||A0}}class id{eq(e){return!1}updateDOM(e,A){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,A,r){return null}get isHidden(){return!1}destroy(e){}}var MA=function(t){return t[t.Text=0]="Text",t[t.WidgetBefore=1]="WidgetBefore",t[t.WidgetAfter=2]="WidgetAfter",t[t.WidgetRange=3]="WidgetRange",t}(MA||(MA={}));class Je extends Fi{constructor(e,A,r,n){super(),this.startSide=e,this.endSide=A,this.widget=r,this.spec=n}get heightRelevant(){return!1}static mark(e){return new oa(e)}static widget(e){let A=Math.max(-1e4,Math.min(1e4,e.side||0)),r=!!e.block;return A+=r&&!e.inlineOrder?A>0?3e8:-4e8:A>0?1e8:-1e8,new jn(e,A,A,r,e.widget||null,!1)}static replace(e){let A=!!e.block,r,n;if(e.isBlockGap)r=-5e8,n=4e8;else{let{start:i,end:o}=wE(e,A);r=(i?A?-3e8:-1:5e8)-1,n=(o?A?2e8:1:-6e8)+1}return new jn(e,r,n,A,e.widget||null,!0)}static line(e){return new sa(e)}static set(e,A=!1){return ke.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Je.none=ke.empty;class oa extends Je{constructor(e){let{start:A,end:r}=wE(e);super(A?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var A,r;return this==e||e instanceof oa&&this.tagName==e.tagName&&(this.class||((A=this.attrs)===null||A===void 0?void 0:A.class))==(e.class||((r=e.attrs)===null||r===void 0?void 0:r.class))&&w0(this.attrs,e.attrs,"class")}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}}oa.prototype.point=!1;class sa extends Je{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof sa&&this.spec.class==e.spec.class&&w0(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}}sa.prototype.mapMode=Dt.TrackBefore;sa.prototype.point=!0;class jn extends Je{constructor(e,A,r,n,i,o){super(A,r,i,e),this.block=n,this.isReplace=o,this.mapMode=n?A<=0?Dt.TrackBefore:Dt.TrackAfter:Dt.TrackDel}get type(){return this.startSide!=this.endSide?MA.WidgetRange:this.startSide<=0?MA.WidgetBefore:MA.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof jn&&OM(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}}jn.prototype.point=!0;function wE(t,e=!1){let{inclusiveStart:A,inclusiveEnd:r}=t;return A==null&&(A=t.inclusive),r==null&&(r=t.inclusive),{start:A??e,end:r??e}}function OM(t,e){return t==e||!!(t&&e&&t.compare(e))}function Am(t,e,A,r=0){let n=A.length-1;n>=0&&A[n]+r>=t?A[n]=Math.max(A[n],e):A.push(t,e)}class dl{constructor(e,A,r,n){this.doc=e,this.pos=A,this.end=r,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=A}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof Ln&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new et),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(ac(new Xo(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof Ln)&&this.getLine()}buildText(e,A,r){for(;e>0;){if(this.textOff==this.text.length){let{value:i,lineBreak:o,done:s}=this.cursor.next(this.skip);if(this.skip=0,s)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=i,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(A.slice(A.length-r)),this.getLine().append(ac(new Gr(this.text.slice(this.textOff,this.textOff+n)),A),r),this.atCursorPos=!0,this.textOff+=n,e-=n,r=0}}span(e,A,r,n){this.buildText(A-e,r,n),this.pos=A,this.openStart<0&&(this.openStart=n)}point(e,A,r,n,i,o){if(this.disallowBlockEffectsFor[o]&&r instanceof jn){if(r.block)throw new RangeError("Block decorations may not be specified via plugins");if(A>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=A-e;if(r instanceof jn)if(r.block)r.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Ln(r.widget||new ly("div"),s,r));else{let l=Oi.create(r.widget||new ly("span"),s,s?0:r.startSide),a=this.atCursorPos&&!l.isEditable&&i<=n.length&&(e0),c=!l.isEditable&&(en.length||r.startSide<=0),u=this.getLine();this.pendingBuffer==2&&!a&&!l.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),a&&(u.append(ac(new Xo(1),n),i),i=n.length+Math.max(0,i-n.length)),u.append(ac(l,n),i),this.atCursorPos=c,this.pendingBuffer=c?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(r);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=A),this.openStart<0&&(this.openStart=i)}static build(e,A,r,n,i){let o=new dl(e,A,r,i);return o.openEnd=ke.spans(n,A,r,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function ac(t,e){for(let A of e)t=new zr(A,[t],t.length);return t}class ly extends id{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const BE=ee.define(),vE=ee.define(),yE=ee.define(),QE=ee.define(),rm=ee.define(),CE=ee.define(),bE=ee.define(),SE=ee.define({combine:t=>t.some(e=>e)}),wM=ee.define({combine:t=>t.some(e=>e)});class Fo{constructor(e,A="nearest",r="nearest",n=5,i=5,o=!1){this.range=e,this.y=A,this.x=r,this.yMargin=n,this.xMargin=i,this.isSnapshot=o}map(e){return e.empty?this:new Fo(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Fo(D.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const cc=Xe.define({map:(t,e)=>t.map(e)});function _n(t,e,A){let r=t.facet(QE);r.length?r[0](e):window.onerror?window.onerror(String(e),A,void 0,void 0,e):A?console.error(A+":",e):console.error(e)}const od=ee.define({combine:t=>t.length?t[0]:!0});let BM=0;const Vs=ee.define();class Gn{constructor(e,A,r,n,i){this.id=e,this.create=A,this.domEventHandlers=r,this.domEventObservers=n,this.extension=i(this)}static define(e,A){const{eventHandlers:r,eventObservers:n,provide:i,decorations:o}=A||{};return new Gn(BM++,e,r,n,s=>{let l=[Vs.of(s)];return o&&l.push(Zl.of(a=>{let c=a.plugin(s);return c?o(c):Je.none})),i&&l.push(i(s)),l})}static fromClass(e,A){return Gn.define(r=>new e(r),A)}}class Eh{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(r){if(_n(A.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(A){_n(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(r){_n(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const xE=ee.define(),B0=ee.define(),Zl=ee.define(),v0=ee.define(),UE=ee.define();function ay(t,e,A){let r=t.state.facet(UE);if(!r.length)return r;let n=r.map(o=>o instanceof Function?o(t):o),i=[];return ke.spans(n,e,A,{point(){},span(o,s,l,a){let c=i;for(let u=l.length-1;u>=0;u--,a--){let f=l[u].spec.bidiIsolate,d;if(f!=null)if(a>0&&c.length&&(d=c[c.length-1]).to==o&&d.direction==f)d.to=s,c=d.inner;else{let h={from:o,to:s,direction:f,inner:[]};c.push(h),c=h.inner}}}}),i}const EE=ee.define();function FE(t){let e=0,A=0,r=0,n=0;for(let i of t.state.facet(EE)){let o=i(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(A=Math.max(A,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(n=Math.max(n,o.bottom)))}return{left:e,right:A,top:r,bottom:n}}const Ys=ee.define();class UA{constructor(e,A,r,n){this.fromA=e,this.toA=A,this.fromB=r,this.toB=n}join(e){return new UA(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,r=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>r.toA)){if(n.toAc)break;i+=2}if(!l)return r;new UA(l.fromA,l.toA,l.fromB,l.toB).addToSet(r),o=l.toA,s=l.toB}}}class qu{constructor(e,A,r){this.view=e,this.state=A,this.transactions=r,this.flags=0,this.startState=e.state,this.changes=At.empty(this.startState.doc.length);for(let i of r)this.changes=this.changes.compose(i.changes);let n=[];this.changes.iterChangedRanges((i,o,s,l)=>n.push(new UA(i,o,s,l))),this.changedRanges=n}static create(e,A,r){return new qu(e,A,r)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Ot=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Ot||(Ot={}));const Xl=Ot.LTR,$E=Ot.RTL;function kE(t){let e=[];for(let A=0;A=A){if(s.level==r)return o;(i<0||(n!=0?n<0?s.fromA:e[i].level>s.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}function PE(t,e){if(t.length!=e.length)return!1;for(let A=0;A=0;g-=3)if(JA[g+1]==-d){let B=JA[g+2],m=B&2?n:B&4?B&1?i:n:0;m&&(be[u]=be[JA[g]]=m),s=g;break}}else{if(JA.length==189)break;JA[s++]=u,JA[s++]=f,JA[s++]=l}else if((h=be[u])==2||h==1){let g=h==n;l=g?0:1;for(let B=s-3;B>=0;B-=3){let m=JA[B+2];if(m&2)break;if(g)JA[B+2]|=2;else{if(m&4)break;JA[B+2]|=4}}}}}function xM(t,e,A,r){for(let n=0,i=r;n<=A.length;n++){let o=n?A[n-1].to:t,s=nl;)h==B&&(h=A[--g].from,B=g?A[g-1].to:t),be[--h]=d;l=c}else i=a,l++}}}function im(t,e,A,r,n,i,o){let s=r%2?2:1;if(r%2==n%2)for(let l=e,a=0;ll&&o.push(new Sn(l,g.from,d));let B=g.direction==Xl!=!(d%2);om(t,B?r+1:r,n,g.inner,g.from,g.to,o),l=g.to}h=g.to}else{if(h==A||(c?be[h]!=s:be[h]==s))break;h++}f?im(t,l,h,r+1,n,f,o):le;){let c=!0,u=!1;if(!a||l>i[a-1].to){let g=be[l-1];g!=s&&(c=!1,u=g==16)}let f=!c&&s==1?[]:null,d=c?r:r+1,h=l;e:for(;;)if(a&&h==i[a-1].to){if(u)break e;let g=i[--a];if(!c)for(let B=g.from,m=a;;){if(B==e)break e;if(m&&i[m-1].to==B)B=i[--m].from;else{if(be[B-1]==s)break e;break}}if(f)f.push(g);else{g.tobe.length;)be[be.length]=256;let r=[],n=e==Xl?0:1;return om(t,n,n,A,0,t.length,r),r}function TE(t){return[new Sn(0,t,0)]}let IE="";function EM(t,e,A,r,n){var i;let o=r.head-t.from,s=-1;if(o==0){if(!n||!t.length)return null;e[0].level!=A&&(o=e[0].side(!1,A),s=0)}else if(o==t.length){if(n)return null;let f=e[e.length-1];f.level!=A&&(o=f.side(!0,A),s=e.length-1)}s<0&&(s=Sn.find(e,o,(i=r.bidiLevel)!==null&&i!==void 0?i:-1,r.assoc));let l=e[s];o==l.side(n,A)&&(l=e[s+=n?1:-1],o=l.side(!n,A));let a=n==(l.dir==A),c=Kt(t.text,o,a);if(IE=t.text.slice(Math.min(o,c),Math.max(o,c)),c!=l.side(n,A))return D.cursor(c+t.from,a?-1:1,l.level);let u=s==(n?e.length-1:0)?null:e[s+(n?1:-1)];return!u&&l.level!=A?D.cursor(n?t.to:t.from,n?-1:1,A):u&&u.level0&&r.length&&(r.every(({fromA:a,toA:c})=>cthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!RM(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let i=n>-1?$M(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:a,to:c}=this.hasComposition;r=new UA(a,c,e.changes.mapPos(a,-1),e.changes.mapPos(c,1)).addToSet(r.slice())}this.hasComposition=i?{from:i.range.fromB,to:i.range.toB}:null,(G.ie||G.chrome)&&!i&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,s=this.updateDeco(),l=TM(o,s,e.changes);return r=UA.extendWithRanges(r,l),!(this.flags&7)&&r.length==0?!1:(this.updateInner(r,e.startState.doc.length,i),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A,r){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,A,r);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=G.chrome||G.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||n.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let i=[];if(this.view.viewport.from||this.view.viewport.to=0?n[o]:null;if(!s)break;let{fromA:l,toA:a,fromB:c,toB:u}=s,f,d,h,g;if(r&&r.range.fromBc){let Q=dl.build(this.view.state.doc,c,r.range.fromB,this.decorations,this.dynamicDecorationMap),C=dl.build(this.view.state.doc,r.range.toB,u,this.decorations,this.dynamicDecorationMap);d=Q.breakAtStart,h=Q.openStart,g=C.openEnd;let b=this.compositionView(r);C.breakAtStart?b.breakAfter=1:C.content.length&&b.merge(b.length,b.length,C.content[0],!1,C.openStart,0)&&(b.breakAfter=C.content[0].breakAfter,C.content.shift()),Q.content.length&&b.merge(0,0,Q.content[Q.content.length-1],!0,0,Q.openEnd)&&Q.content.pop(),f=Q.content.concat(b).concat(C.content)}else({content:f,breakAtStart:d,openStart:h,openEnd:g}=dl.build(this.view.state.doc,c,u,this.decorations,this.dynamicDecorationMap));let{i:B,off:m}=i.findPos(a,1),{i:O,off:v}=i.findPos(l,-1);fE(this,O,v,B,m,f,d,h,g)}r&&this.fixCompositionDOM(r)}compositionView(e){let A=new Gr(e.text.nodeValue);A.flags|=8;for(let{deco:n}of e.marks)A=new zr(n,[A],A.length);let r=new et;return r.append(A,0),r}fixCompositionDOM(e){let A=(i,o)=>{o.flags|=8|(o.children.some(l=>l.flags&7)?1:0),this.markedForComposition.add(o);let s=Pe.get(i);s&&s!=o&&(s.dom=null),o.setDOM(i)},r=this.childPos(e.range.fromB,1),n=this.children[r.i];A(e.line,n);for(let i=e.marks.length-1;i>=-1;i--)r=n.childPos(r.off,1),n=n.children[r.i],A(i>=0?e.marks[i].node:e.text,n)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let r=this.view.root.activeElement,n=r==this.dom,i=!n&&Gc(this.dom,this.view.observer.selectionRange)&&!(r&&this.dom.contains(r));if(!(n||A||i))return;let o=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(s.anchor)),a=s.empty?l:this.moveToLine(this.domAtPos(s.head));if(G.gecko&&s.empty&&!this.hasComposition&&FM(l)){let u=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(u,l.node.childNodes[l.offset]||null)),l=a=new Et(u,0),o=!0}let c=this.view.observer.selectionRange;(o||!c.focusNode||!zu(l.node,l.offset,c.anchorNode,c.anchorOffset)||!zu(a.node,a.offset,c.focusNode,c.focusOffset))&&(this.view.observer.ignore(()=>{G.android&&G.chrome&&this.dom.contains(c.focusNode)&&IM(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let u=Gu(this.view.root);if(u)if(s.empty){if(G.gecko){let f=kM(l.node,l.offset);if(f&&f!=3){let d=DE(l.node,l.offset,f==1?1:-1);d&&(l=new Et(d.node,d.offset))}}u.collapse(l.node,l.offset),s.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=s.bidiLevel)}else if(u.extend){u.collapse(l.node,l.offset);try{u.extend(a.node,a.offset)}catch{}}else{let f=document.createRange();s.anchor>s.head&&([l,a]=[a,l]),f.setEnd(a.node,a.offset),f.setStart(l.node,l.offset),u.removeAllRanges(),u.addRange(f)}i&&this.view.root.activeElement==this.dom&&(this.dom.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(l,a)),this.impreciseAnchor=l.precise?null:new Et(c.anchorNode,c.anchorOffset),this.impreciseHead=a.precise?null:new Et(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,r=Gu(e.root),{anchorNode:n,anchorOffset:i}=e.observer.selectionRange;if(!r||!A.empty||!A.assoc||!r.modify)return;let o=et.find(this,A.head);if(!o)return;let s=o.posAtStart;if(A.head==s||A.head==s+o.length)return;let l=this.coordsAt(A.head,-1),a=this.coordsAt(A.head,1);if(!l||!a||l.bottom>a.top)return;let c=this.domAtPos(A.head+A.assoc);r.collapse(c.node,c.offset),r.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=A.from&&r.collapse(n,i)}moveToLine(e){let A=this.dom,r;if(e.node!=A)return e;for(let n=e.offset;!r&&n=0;n--){let i=Pe.get(A.childNodes[n]);i instanceof et&&(r=i.domAtPos(i.length))}return r?new Et(r.node,r.offset,!0):e}nearest(e){for(let A=e;A;){let r=Pe.get(A);if(r&&r.rootView==this)return r;A=A.parentNode}return null}posFromDOM(e,A){let r=this.nearest(e);if(!r)throw new RangeError("Trying to find position for a DOM position outside of the document");return r.localPosFromDOM(e,A)+r.posAtStart}domAtPos(e){let{i:A,off:r}=this.childCursor().findPos(e,-1);for(;A=0;o--){let s=this.children[o],l=i-s.breakAfter,a=l-s.length;if(le||s.covers(1))&&(!r||s instanceof et&&!(r instanceof et&&A>=0))&&(r=s,n=a),i=a}return r?r.coordsAt(e-n,A):null}coordsForChar(e){let{i:A,off:r}=this.childPos(e,1),n=this.children[A];if(!(n instanceof et))return null;for(;n.children.length;){let{i:s,off:l}=n.childPos(r,1);for(;;s++){if(s==n.children.length)return null;if((n=n.children[s]).length)break}r=l}if(!(n instanceof Gr))return null;let i=Kt(n.text,r);if(i==r)return null;let o=$i(n.dom,r,i).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,l=this.view.textDirection==Ot.LTR;for(let a=0,c=0;cn)break;if(a>=r){let d=u.dom.getBoundingClientRect();if(A.push(d.height),o){let h=u.dom.lastChild,g=h?Nl(h):[];if(g.length){let B=g[g.length-1],m=l?B.right-d.left:d.right-B.left;m>s&&(s=m,this.minWidth=i,this.minWidthFrom=a,this.minWidthTo=f)}}}a=f+u.breakAfter}return A}textDirectionAt(e){let{i:A}=this.childPos(e,1);return getComputedStyle(this.children[A].dom).direction=="rtl"?Ot.RTL:Ot.LTR}measureTextSize(){for(let i of this.children)if(i instanceof et){let o=i.measureTextSize();if(o)return o}let e=document.createElement("div"),A,r,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let i=Nl(e.firstChild)[0];A=e.getBoundingClientRect().height,r=i?i.width/27:7,n=i?i.height:A,e.remove()}),{lineHeight:A,charWidth:r,textHeight:n}}childCursor(e=this.length){let A=this.children.length;return A&&(e-=this.children[--A].length),new uE(this.children,e,A)}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let r=0,n=0;;n++){let i=n==A.viewports.length?null:A.viewports[n],o=i?i.from-1:this.length;if(o>r){let s=(A.lineBlockAt(o).bottom-A.lineBlockAt(r).top)/this.view.scaleY;e.push(Je.replace({widget:new uy(s),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!i)break;r=i.to+1}return Je.set(e)}updateDeco(){let e=this.view.state.facet(Zl).map((A,r)=>(this.dynamicDecorationMap[r]=typeof A=="function")?A(this.view):A);for(let A=e.length;AA.anchor?-1:1),n;if(!r)return;!A.empty&&(n=this.coordsAt(A.anchor,A.anchor>A.head?-1:1))&&(r={left:Math.min(r.left,n.left),top:Math.min(r.top,n.top),right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)});let i=FE(this.view),o={left:r.left-i.left,top:r.top-i.top,right:r.right+i.right,bottom:r.bottom+i.bottom},{offsetWidth:s,offsetHeight:l}=this.view.scrollDOM;aM(this.view.scrollDOM,o,A.head0)r=r.childNodes[n-1],n=jr(r);else break}if(A>=0)for(let r=t,n=e;;){if(r.nodeType==3)return{node:r,offset:n};if(r.nodeType==1&&n=0)r=r.childNodes[n],n=0;else break}return null}function kM(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(A=!0)}),A}function DM(t,e,A=1){let r=t.charCategorizer(e),n=t.doc.lineAt(e),i=e-n.from;if(n.length==0)return D.cursor(e);i==0?A=1:i==n.length&&(A=-1);let o=i,s=i;A<0?o=Kt(n.text,i,!1):s=Kt(n.text,i);let l=r(n.text.slice(o,s));for(;o>0;){let a=Kt(n.text,o,!1);if(r(n.text.slice(a,o))!=l)break;o=a}for(;st?e.left-t:Math.max(0,t-e.right)}function LM(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function Fh(t,e){return t.tope.top+1}function fy(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function sm(t,e,A){let r,n,i,o,s=!1,l,a,c,u;for(let h=t.firstChild;h;h=h.nextSibling){let g=Nl(h);for(let B=0;Bv||o==v&&i>O){r=h,n=m,i=O,o=v;let Q=v?A0?B0)}O==0?A>m.bottom&&(!c||c.bottomm.top)&&(a=h,u=m):c&&Fh(c,m)?c=dy(c,m.bottom):u&&Fh(u,m)&&(u=fy(u,m.top))}}if(c&&c.bottom>=A?(r=l,n=c):u&&u.top<=A&&(r=a,n=u),!r)return{node:t,offset:0};let f=Math.max(n.left,Math.min(n.right,e));if(r.nodeType==3)return hy(r,f,A);if(s&&r.contentEditable!="false")return sm(r,f,A);let d=Array.prototype.indexOf.call(t.childNodes,r)+(e>=(n.left+n.right)/2?1:0);return{node:t,offset:d}}function hy(t,e,A){let r=t.nodeValue.length,n=-1,i=1e9,o=0;for(let s=0;sA?c.top-A:A-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&u=(c.left+c.right)/2,d=f;if((G.chrome||G.gecko)&&$i(t,s).getBoundingClientRect().left==c.right&&(d=!f),u<=0)return{node:t,offset:s+(d?1:0)};n=s+(d?1:0),i=u}}}return{node:t,offset:n>-1?n:o>0?t.nodeValue.length:0}}function HE(t,e,A,r=-1){var n,i;let o=t.contentDOM.getBoundingClientRect(),s=o.top+t.viewState.paddingTop,l,{docHeight:a}=t.viewState,{x:c,y:u}=e,f=u-s;if(f<0)return 0;if(f>a)return t.state.doc.length;for(let Q=t.viewState.heightOracle.textHeight/2,C=!1;l=t.elementAtHeight(f),l.type!=MA.Text;)for(;f=r>0?l.bottom+Q:l.top-Q,!(f>=0&&f<=a);){if(C)return A?null:0;C=!0,r=-r}u=s+f;let d=l.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:A?null:py(t,o,l,c,u);let h=t.dom.ownerDocument,g=t.root.elementFromPoint?t.root:h,B=g.elementFromPoint(c,u);B&&!t.contentDOM.contains(B)&&(B=null),B||(c=Math.max(o.left+1,Math.min(o.right-1,c)),B=g.elementFromPoint(c,u),B&&!t.contentDOM.contains(B)&&(B=null));let m,O=-1;if(B&&((n=t.docView.nearest(B))===null||n===void 0?void 0:n.isEditable)!=!1){if(h.caretPositionFromPoint){let Q=h.caretPositionFromPoint(c,u);Q&&({offsetNode:m,offset:O}=Q)}else if(h.caretRangeFromPoint){let Q=h.caretRangeFromPoint(c,u);Q&&({startContainer:m,startOffset:O}=Q,(!t.contentDOM.contains(m)||G.safari&&_M(m,O,c)||G.chrome&&NM(m,O,c))&&(m=void 0))}}if(!m||!t.docView.dom.contains(m)){let Q=et.find(t.docView,d);if(!Q)return f>l.top+l.height/2?l.to:l.from;({node:m,offset:O}=sm(Q.dom,c,u))}let v=t.docView.nearest(m);if(!v)return null;if(v.isWidget&&((i=v.dom)===null||i===void 0?void 0:i.nodeType)==1){let Q=v.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let s=t.viewState.heightOracle.textHeight,l=Math.floor((n-A.top-(t.defaultLineHeight-s)*.5)/s);i+=l*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(A.from,A.to);return A.from+AM(o,i,t.state.tabSize)}function _M(t,e,A){let r;if(t.nodeType!=3||e!=(r=t.nodeValue.length))return!1;for(let n=t.nextSibling;n;n=n.nextSibling)if(n.nodeType!=1||n.nodeName!="BR")return!1;return $i(t,r-1,r).getBoundingClientRect().left>A}function NM(t,e,A){if(e!=0)return!1;for(let n=t;;){let i=n.parentNode;if(!i||i.nodeType!=1||i.firstChild!=n)return!1;if(i.classList.contains("cm-line"))break;n=i}let r=t.nodeType==1?t.getBoundingClientRect():$i(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return A-r.left>5}function MM(t,e){let A=t.lineBlockAt(e);if(Array.isArray(A.type)){for(let r of A.type)if(r.to>e||r.to==e&&(r.to==A.to||r.type==MA.Text))return r}return A}function ZM(t,e,A,r){let n=MM(t,e.head),i=!r||n.type!=MA.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(i){let o=t.dom.getBoundingClientRect(),s=t.textDirectionAt(n.from),l=t.posAtCoords({x:A==(s==Ot.LTR)?o.right-1:o.left+1,y:(i.top+i.bottom)/2});if(l!=null)return D.cursor(l,A?-1:1)}return D.cursor(A?n.to:n.from,A?-1:1)}function gy(t,e,A,r){let n=t.state.doc.lineAt(e.head),i=t.bidiSpans(n),o=t.textDirectionAt(n.from);for(let s=e,l=null;;){let a=EM(n,i,o,s,A),c=IE;if(!a){if(n.number==(A?t.state.doc.lines:1))return s;c=` +`,n=t.state.doc.line(n.number+(A?1:-1)),i=t.bidiSpans(n),a=D.cursor(A?n.from:n.to)}if(l){if(!l(c))return s}else{if(!r)return a;l=r(c)}s=a}}function XM(t,e,A){let r=t.state.charCategorizer(e),n=r(A);return i=>{let o=r(i);return n==Ir.Space&&(n=o),n==o}}function VM(t,e,A,r){let n=e.head,i=A?1:-1;if(n==(A?t.state.doc.length:0))return D.cursor(n,e.assoc);let o=e.goalColumn,s,l=t.contentDOM.getBoundingClientRect(),a=t.coordsAtPos(n,e.assoc||-1),c=t.documentTop;if(a)o==null&&(o=a.left-l.left),s=i<0?a.top:a.bottom;else{let d=t.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,t.defaultCharacterWidth*(n-d.from))),s=(i<0?d.top:d.bottom)+c}let u=l.left+o,f=r??t.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let h=s+(f+d)*i,g=HE(t,{x:u,y:h},!1,i);if(hl.bottom||(i<0?gn)){let B=t.docView.coordsForChar(g),m=!B||h{if(e>i&&en(t)),A.from,e.head>A.from?-1:1);return r==A.from?A:D.cursor(r,rnull),G.gecko&&l7(e.contentDOM.ownerDocument)}handleEvent(e){!e7(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||this.runHandlers(e.type,e)}runHandlers(e,A){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,A);for(let n of r.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=KM(e),r=this.handlers,n=this.view.contentDOM;for(let i in A)if(i!="scroll"){let o=!A[i].handlers.length,s=r[i];s&&o!=!s.handlers.length&&(n.removeEventListener(i,this.handleEvent),s=null),s||n.addEventListener(i,this.handleEvent,{passive:o})}for(let i in r)i!="scroll"&&!A[i]&&n.removeEventListener(i,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&Date.now()r.keyCode==e.keyCode))&&!e.ctrlKey||WM.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(){let e=this.pendingIOSKey;return e?(this.pendingIOSKey=void 0,Eo(this.view.contentDOM,e.key,e.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:G.safari&&!G.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function my(t,e){return(A,r)=>{try{return e.call(t,r,A)}catch(n){_n(A.state,n)}}}function KM(t){let e=Object.create(null);function A(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of t){let n=r.spec;if(n&&n.domEventHandlers)for(let i in n.domEventHandlers){let o=n.domEventHandlers[i];o&&A(i).handlers.push(my(r.value,o))}if(n&&n.domEventObservers)for(let i in n.domEventObservers){let o=n.domEventObservers[i];o&&A(i).observers.push(my(r.value,o))}}for(let r in XA)A(r).handlers.push(XA[r]);for(let r in VA)A(r).observers.push(VA[r]);return e}const LE=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],WM="dthko",_E=[16,17,18,20,91,92,224,225],uc=6;function fc(t){return Math.max(0,t)*.7+8}function jM(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class GM{constructor(e,A,r,n){this.view=e,this.startEvent=A,this.style=r,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParent=cM(e.contentDOM),this.atoms=e.state.facet(v0).map(o=>o(e));let i=e.contentDOM.ownerDocument;i.addEventListener("mousemove",this.move=this.move.bind(this)),i.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(Be.allowMultipleSelections)&&zM(e,A),this.dragging=JM(e,A)&&XE(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){var A;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&jM(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let r=0,n=0,i=((A=this.scrollParent)===null||A===void 0?void 0:A.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},o=FE(this.view);e.clientX-o.left<=i.left+uc?r=-fc(i.left-e.clientX):e.clientX+o.right>=i.right-uc&&(r=fc(e.clientX-i.right)),e.clientY-o.top<=i.top+uc?n=-fc(i.top-e.clientY):e.clientY+o.bottom>=i.bottom-uc&&(n=fc(e.clientY-i.bottom)),this.setScrollSpeed(r,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let A=null;for(let r=0;rthis.select(this.lastEvent),20)}}function zM(t,e){let A=t.state.facet(BE);return A.length?A[0](e):G.mac?e.metaKey:e.ctrlKey}function qM(t,e){let A=t.state.facet(vE);return A.length?A[0](e):G.mac?!e.altKey:!e.ctrlKey}function JM(t,e){let{main:A}=t.state.selection;if(A.empty)return!1;let r=Gu(t.root);if(!r||r.rangeCount==0)return!0;let n=r.getRangeAt(0).getClientRects();for(let i=0;i=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function e7(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,r;A!=t.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(r=Pe.get(A))&&r.ignoreEvent(e))return!1;return!0}const XA=Object.create(null),VA=Object.create(null),NE=G.ie&&G.ie_version<15||G.ios&&G.webkit_version<604;function t7(t){let e=t.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{t.focus(),A.remove(),ME(t,A.value)},50)}function ME(t,e){let{state:A}=t,r,n=1,i=A.toText(e),o=i.lines==A.selection.ranges.length;if(lm!=null&&A.selection.ranges.every(l=>l.empty)&&lm==i.toString()){let l=-1;r=A.changeByRange(a=>{let c=A.doc.lineAt(a.from);if(c.from==l)return{range:a};l=c.from;let u=A.toText((o?i.line(n++).text:e)+A.lineBreak);return{changes:{from:c.from,insert:u},range:D.cursor(a.from+u.length)}})}else o?r=A.changeByRange(l=>{let a=i.line(n++);return{changes:{from:l.from,to:l.to,insert:a.text},range:D.cursor(l.from+a.length)}}):r=A.replaceSelection(i);t.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}VA.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};XA.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&(t.inputState.lastEscPress=Date.now()),!1);VA.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};VA.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};XA.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let r of t.state.facet(yE))if(A=r(t,e),A)break;if(!A&&e.button==0&&(A=n7(t,e)),A){let r=!t.hasFocus;t.inputState.startMouseSelection(new GM(t,e,A,r)),r&&t.observer.ignore(()=>lE(t.contentDOM));let n=t.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}return!1};function Oy(t,e,A,r){if(r==1)return D.cursor(e,A);if(r==2)return DM(t.state,e,A);{let n=et.find(t.docView,e),i=t.state.doc.lineAt(n?n.posAtEnd:e),o=n?n.posAtStart:i.from,s=n?n.posAtEnd:i.to;return st>=e.top&&t<=e.bottom,wy=(t,e,A)=>ZE(e,A)&&t>=A.left&&t<=A.right;function A7(t,e,A,r){let n=et.find(t.docView,e);if(!n)return 1;let i=e-n.posAtStart;if(i==0)return 1;if(i==n.length)return-1;let o=n.coordsAt(i,-1);if(o&&wy(A,r,o))return-1;let s=n.coordsAt(i,1);return s&&wy(A,r,s)?1:o&&ZE(r,o)?-1:1}function By(t,e){let A=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:A,bias:A7(t,A,e.clientX,e.clientY)}}const r7=G.ie&&G.ie_version<=11;let vy=null,yy=0,Qy=0;function XE(t){if(!r7)return t.detail;let e=vy,A=Qy;return vy=t,Qy=Date.now(),yy=!e||A>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(yy+1)%3:1}function n7(t,e){let A=By(t,e),r=XE(e),n=t.state.selection;return{update(i){i.docChanged&&(A.pos=i.changes.mapPos(A.pos),n=n.map(i.changes))},get(i,o,s){let l=By(t,i),a,c=Oy(t,l.pos,l.bias,r);if(A.pos!=l.pos&&!o){let u=Oy(t,A.pos,A.bias,r),f=Math.min(u.from,c.from),d=Math.max(u.to,c.to);c=f1&&(a=i7(n,l.pos))?a:s?n.addRange(c):D.create([c])}}}function i7(t,e){for(let A=0;A=e)return D.create(t.ranges.slice(0,A).concat(t.ranges.slice(A+1)),t.mainIndex==A?0:t.mainIndex-(t.mainIndex>A?1:0))}return null}XA.dragstart=(t,e)=>{let{selection:{main:A}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let i=n.posAtStart,o=i+n.length;(i>=A.to||o<=A.from)&&(A=D.range(i,o))}}let{inputState:r}=t;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(A.from,A.to)),e.dataTransfer.effectAllowed="copyMove"),!1};XA.dragend=t=>(t.inputState.draggedContent=null,!1);function Cy(t,e,A,r){if(!A)return;let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:i}=t.inputState,o=r&&i&&qM(t,e)?{from:i.from,to:i.to}:null,s={from:n,insert:A},l=t.state.changes(o?[o,s]:s);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(n,-1),head:l.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}XA.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let r=Array(A.length),n=0,i=()=>{++n==A.length&&Cy(t,e,r.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(s.result)||(r[o]=s.result),i()},s.readAsText(A[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return Cy(t,e,r,!0),!0}return!1};XA.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let A=NE?null:e.clipboardData;return A?(ME(t,A.getData("text/plain")||A.getData("text/uri-text")),!0):(t7(t),!1)};function o7(t,e){let A=t.dom.parentNode;if(!A)return;let r=A.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),t.focus()},50)}function s7(t){let e=[],A=[],r=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:i}of t.selection.ranges){let o=t.doc.lineAt(i);o.number>n&&(e.push(o.text),A.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),n=o.number}r=!0}return{text:e.join(t.lineBreak),ranges:A,linewise:r}}let lm=null;XA.copy=XA.cut=(t,e)=>{let{text:A,ranges:r,linewise:n}=s7(t.state);if(!A&&!n)return!1;lm=n?A:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let i=NE?null:e.clipboardData;return i?(i.clearData(),i.setData("text/plain",A),!0):(o7(t,A),!1)};const VE=en.define();function YE(t,e){let A=[];for(let r of t.facet(bE)){let n=r(t,e);n&&A.push(n)}return A?t.update({effects:A,annotations:VE.of(!0)}):null}function KE(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let A=YE(t.state,e);A?t.dispatch(A):t.update([])}},10)}VA.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),KE(t)};VA.blur=t=>{t.observer.clearSelectionRange(),KE(t)};VA.compositionstart=VA.compositionupdate=t=>{t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)};VA.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,G.chrome&&G.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50)};VA.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};XA.beforeinput=(t,e)=>{var A;let r;if(G.chrome&&G.android&&(r=LE.find(n=>n.inputType==e.inputType))&&(t.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let n=((A=window.visualViewport)===null||A===void 0?void 0:A.height)||0;setTimeout(()=>{var i;(((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0)>n+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return!1};const by=new Set;function l7(t){by.has(t)||(by.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const Sy=["pre-wrap","normal","pre-line","break-spaces"];class a7{constructor(e){this.lineWrapping=e,this.doc=ge.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,A){let r=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((A-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Sy.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let r=0;r-1,l=Math.round(A)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=A,this.charWidth=r,this.textHeight=n,this.lineLength=i,l){this.heightSamples={};for(let a=0;a0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,A){this.height!=A&&(Math.abs(this.height-A)>qc&&(e.heightChanged=!0),this.height=A)}replace(e,A,r){return Lt.of(r)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,r,n){let i=this,o=r.doc;for(let s=n.length-1;s>=0;s--){let{fromA:l,toA:a,fromB:c,toB:u}=n[s],f=i.lineAt(l,$e.ByPosNoHeight,r.setDoc(A),0,0),d=f.to>=a?f:i.lineAt(a,$e.ByPosNoHeight,r,0,0);for(u+=d.to-a,a=d.to;s>0&&f.from<=n[s-1].toA;)l=n[s-1].fromA,c=n[s-1].fromB,s--,li*2){let s=e[A-1];s.break?e.splice(--A,1,s.left,null,s.right):e.splice(--A,1,s.left,s.right),r+=1+s.break,n-=s.size}else if(i>n*2){let s=e[r];s.break?e.splice(r,1,s.left,null,s.right):e.splice(r,1,s.left,s.right),r+=2+s.break,i-=s.size}else break;else if(n=i&&o(this.blockAt(0,r,n,i))}updateHeight(e,A=0,r=!1,n){return n&&n.from<=A&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class iA extends WE{constructor(e,A){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,A,r,n){return new ar(n,this.length,r,this.height,this.breaks)}replace(e,A,r){let n=r[0];return r.length==1&&(n instanceof iA||n instanceof ht&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof ht?n=new iA(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Lt.of(r)}updateHeight(e,A=0,r=!1,n){return n&&n.from<=A&&n.more?this.setHeight(e,n.heights[n.index++]):(r||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class ht extends Lt{constructor(e){super(e,0)}heightMetrics(e,A){let r=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,i=n-r+1,o,s=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*i);o=l/i,this.length>i+1&&(s=(this.height-l)/(this.length-i-1))}else o=this.height/i;return{firstLine:r,lastLine:n,perLine:o,perChar:s}}blockAt(e,A,r,n){let{firstLine:i,lastLine:o,perLine:s,perChar:l}=this.heightMetrics(A,n);if(A.lineWrapping){let a=n+Math.round(Math.max(0,Math.min(1,(e-r)/this.height))*this.length),c=A.doc.lineAt(a),u=s+c.length*l,f=Math.max(r,e-u/2);return new ar(c.from,c.length,f,u,0)}else{let a=Math.max(0,Math.min(o-i,Math.floor((e-r)/s))),{from:c,length:u}=A.doc.line(i+a);return new ar(c,u,r+s*a,s,0)}}lineAt(e,A,r,n,i){if(A==$e.ByHeight)return this.blockAt(e,r,n,i);if(A==$e.ByPosNoHeight){let{from:d,to:h}=r.doc.lineAt(e);return new ar(d,h-d,0,0,0)}let{firstLine:o,perLine:s,perChar:l}=this.heightMetrics(r,i),a=r.doc.lineAt(e),c=s+a.length*l,u=a.number-o,f=n+s*u+l*(a.from-i-u);return new ar(a.from,a.length,Math.max(n,Math.min(f,n+this.height-c)),c,0)}forEachLine(e,A,r,n,i,o){e=Math.max(e,i),A=Math.min(A,i+this.length);let{firstLine:s,perLine:l,perChar:a}=this.heightMetrics(r,i);for(let c=e,u=n;c<=A;){let f=r.doc.lineAt(c);if(c==e){let h=f.number-s;u+=l*h+a*(e-i-h)}let d=l+a*f.length;o(new ar(f.from,f.length,u,d,0)),u+=d,c=f.to+1}}replace(e,A,r){let n=this.length-A;if(n>0){let i=r[r.length-1];i instanceof ht?r[r.length-1]=new ht(i.length+n):r.push(null,new ht(n-1))}if(e>0){let i=r[0];i instanceof ht?r[0]=new ht(e+i.length):r.unshift(new ht(e-1),null)}return Lt.of(r)}decomposeLeft(e,A){A.push(new ht(e-1),null)}decomposeRight(e,A){A.push(null,new ht(this.length-e-1))}updateHeight(e,A=0,r=!1,n){let i=A+this.length;if(n&&n.from<=A+this.length&&n.more){let o=[],s=Math.max(A,n.from),l=-1;for(n.from>A&&o.push(new ht(n.from-A-1).updateHeight(e,A));s<=i&&n.more;){let c=e.doc.lineAt(s).length;o.length&&o.push(null);let u=n.heights[n.index++];l==-1?l=u:Math.abs(u-l)>=qc&&(l=-2);let f=new iA(c,u);f.outdated=!1,o.push(f),s+=c+1}s<=i&&o.push(null,new ht(i-s).updateHeight(e,s));let a=Lt.of(o);return(l<0||Math.abs(a.height-this.height)>=qc||Math.abs(l-this.heightMetrics(e,A).perLine)>=qc)&&(e.heightChanged=!0),a}else(r||this.outdated)&&(this.setHeight(e,e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class u7 extends Lt{constructor(e,A,r){super(e.length+A+r.length,e.height+r.height,A|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,A,r,n){let i=r+this.left.height;return es))return a;let c=A==$e.ByPosNoHeight?$e.ByPosNoHeight:$e.ByPos;return l?a.join(this.right.lineAt(s,c,r,o,s)):this.left.lineAt(s,c,r,n,i).join(a)}forEachLine(e,A,r,n,i,o){let s=n+this.left.height,l=i+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,A,r,s,l,o);else{let a=this.lineAt(l,$e.ByPos,r,n,i);e=e&&a.from<=A&&o(a),A>a.to&&this.right.forEachLine(a.to+1,A,r,s,l,o)}}replace(e,A,r){let n=this.left.length+this.break;if(Athis.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,r));let i=[];e>0&&this.decomposeLeft(e,i);let o=i.length;for(let s of r)i.push(s);if(e>0&&xy(i,o-1),A=r&&A.push(null)),e>r&&this.right.decomposeLeft(e-r,A)}decomposeRight(e,A){let r=this.left.length,n=r+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e2*A.size||A.size>2*e.size?Lt.of(this.break?[e,null,A]:[e,A]):(this.left=e,this.right=A,this.height=e.height+A.height,this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,r=!1,n){let{left:i,right:o}=this,s=A+i.length+this.break,l=null;return n&&n.from<=A+i.length&&n.more?l=i=i.updateHeight(e,A,r,n):i.updateHeight(e,A,r),n&&n.from<=s+o.length&&n.more?l=o=o.updateHeight(e,s,r,n):o.updateHeight(e,s,r),l?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function xy(t,e){let A,r;t[e]==null&&(A=t[e-1])instanceof ht&&(r=t[e+1])instanceof ht&&t.splice(e-1,3,new ht(A.length+1+r.length))}const f7=5;class y0{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let r=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof iA?n.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new iA(r-this.pos,-1)),this.writtenTo=r,A>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,r){if(e=f7)&&this.addLineDeco(n,i,o)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenToe&&this.nodes.push(new iA(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,A){let r=new ht(A-e);return this.oracle.doc.lineAt(e).to==A&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof iA)return e;let A=new iA(0,-1);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,r){let n=this.ensureLine();n.length+=r,n.collapsed+=r,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+r}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof iA)&&!this.isCovered?this.nodes.push(new iA(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&u.overflow!="visible"){let f=c.getBoundingClientRect();i=Math.max(i,f.left),o=Math.min(o,f.right),s=Math.max(s,f.top),l=a==t.parentNode?f.bottom:Math.min(l,f.bottom)}a=u.position=="absolute"||u.position=="fixed"?c.offsetParent:c.parentNode}else if(a.nodeType==11)a=a.host;else break;return{left:i-A.left,right:Math.max(i,o)-A.left,top:s-(A.top+e),bottom:Math.max(s,l)-(A.top+e)}}function g7(t,e){let A=t.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}class kh{constructor(e,A,r){this.from=e,this.to=A,this.size=r}static same(e,A){if(e.length!=A.length)return!1;for(let r=0;rtypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new a7(A),this.stateDeco=e.facet(Zl).filter(r=>typeof r!="function"),this.heightMap=Lt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle.setDoc(e.doc),[new UA(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Je.set(this.lineGaps.map(r=>r.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let r=0;r<=1;r++){let n=r?A.head:A.anchor;if(!e.some(({from:i,to:o})=>n>=i&&n<=o)){let{from:i,to:o}=this.lineBlockAt(n);e.push(new dc(i,o))}}this.viewports=e.sort((r,n)=>r.from-n.from),this.scaler=this.heightMap.height<=7e6?Ey:new B7(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:Ks(e,this.scaler))})}update(e,A=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=this.state.facet(Zl).filter(c=>typeof c!="function");let n=e.changedRanges,i=UA.extendWithRanges(n,d7(r,this.stateDeco,e?e.changes:At.empty(this.state.doc.length))),o=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),i),this.heightMap.height!=o&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=i.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,A));let a=!e.changes.empty||e.flags&2||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(wM)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let A=e.contentDOM,r=window.getComputedStyle(A),n=this.heightOracle,i=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?Ot.RTL:Ot.LTR;let o=this.heightOracle.mustRefreshForWrapping(i),s=A.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let a=0,c=0;if(s.width&&s.height){let Q=s.width/A.offsetWidth,C=s.height/A.offsetHeight;(Q>.995&&Q<1.005||!isFinite(Q)||Math.abs(s.width-A.offsetWidth)<1)&&(Q=1),(C>.995&&C<1.005||!isFinite(C)||Math.abs(s.height-A.offsetHeight)<1)&&(C=1),(this.scaleX!=Q||this.scaleY!=C)&&(this.scaleX=Q,this.scaleY=C,a|=8,o=l=!0)}let u=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=u||this.paddingBottom!=f)&&(this.paddingTop=u,this.paddingBottom=f,a|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,a|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=cE(e.scrollDOM);let h=(this.printing?g7:p7)(A,this.paddingTop),g=h.top-this.pixelViewport.top,B=h.bottom-this.pixelViewport.bottom;this.pixelViewport=h;let m=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(m!=this.inView&&(this.inView=m,m&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let O=s.width;if((this.contentDOMWidth!=O||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,a|=8),l){let Q=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(Q)&&(o=!0),o||n.lineWrapping&&Math.abs(O-this.contentDOMWidth)>n.charWidth){let{lineHeight:C,charWidth:b,textHeight:S}=e.docView.measureTextSize();o=C>0&&n.refresh(i,C,b,S,O/b,Q),o&&(e.docView.minWidth=0,a|=8)}g>0&&B>0?c=Math.max(g,B):g<0&&B<0&&(c=Math.min(g,B)),n.heightChanged=!1;for(let C of this.viewports){let b=C.from==this.viewport.from?Q:e.docView.measureVisibleLineHeights(C);this.heightMap=(o?Lt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle,[new UA(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new c7(C.from,b))}n.heightChanged&&(a|=2)}let v=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return v&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(a&2||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,i=this.heightOracle,{visibleTop:o,visibleBottom:s}=this,l=new dc(n.lineAt(o-r*1e3,$e.ByHeight,i,0,0).from,n.lineAt(s+(1-r)*1e3,$e.ByHeight,i,0,0).to);if(A){let{head:a}=A.range;if(al.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=n.lineAt(a,$e.ByPos,i,0,0),f;A.y=="center"?f=(u.top+u.bottom)/2-c/2:A.y=="start"||A.y=="nearest"&&a=s+Math.max(10,Math.min(r,250)))&&n>o-2*1e3&&i>1,o=n<<1;if(this.defaultTextDirection!=Ot.LTR&&!r)return[];let s=[],l=(a,c,u,f)=>{if(c-aa&&BB.from>=u.from&&B.to<=u.to&&Math.abs(B.from-a)B.fromm));if(!g){if(cB.from<=c&&B.to>=c)){let B=A.moveToLineBoundary(D.cursor(c),!1,!0).head;B>a&&(c=B)}g=new kh(a,c,this.gapSize(u,a,c,f))}s.push(g)};for(let a of this.viewportLines){if(a.lengtha.from&&l(a.from,f,a,c),dA.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let A=[];ke.spans(e,this.viewport.from,this.viewport.to,{span(n,i){A.push({from:n,to:i})},point(){}},20);let r=A.length!=this.visibleRanges.length||this.visibleRanges.some((n,i)=>n.from!=A[i].from||n.to!=A[i].to);return this.visibleRanges=A,r?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||Ks(this.heightMap.lineAt(e,$e.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return Ks(this.heightMap.lineAt(this.scaler.fromDOM(e),$e.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return Ks(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class dc{constructor(e,A){this.from=e,this.to=A}}function O7(t,e,A){let r=[],n=t,i=0;return ke.spans(A,t,e,{span(){},point(o,s){o>n&&(r.push({from:n,to:o}),i+=o-n),n=s}},20),n=1)return e[e.length-1].to;let r=Math.floor(t*A);for(let n=0;;n++){let{from:i,to:o}=e[n],s=o-i;if(r<=s)return i+r;r-=s}}function pc(t,e){let A=0;for(let{from:r,to:n}of t.ranges){if(e<=n){A+=e-r;break}A+=n-r}return A/t.total}function w7(t,e){for(let A of t)if(e(A))return A}const Ey={toDOM(t){return t},fromDOM(t){return t},scale:1};class B7{constructor(e,A,r){let n=0,i=0,o=0;this.viewports=r.map(({from:s,to:l})=>{let a=A.lineAt(s,$e.ByPos,e,0,0).top,c=A.lineAt(l,$e.ByPos,e,0,0).bottom;return n+=c-a,{from:s,to:l,top:a,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let s of this.viewports)s.domTop=o+(s.top-i)*this.scale,o=s.domBottom=s.domTop+(s.bottom-s.top),i=s.bottom}toDOM(e){for(let A=0,r=0,n=0;;A++){let i=AKs(n,e)):t._content)}const gc=ee.define({combine:t=>t.join(" ")}),am=ee.define({combine:t=>t.indexOf(!0)>-1}),cm=Kn.newName(),jE=Kn.newName(),GE=Kn.newName(),zE={"&light":"."+jE,"&dark":"."+GE};function um(t,e,A){return new Kn(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,n=>{if(n=="&")return t;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):t+" "+r}})}const v7=um("."+cm,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},zE),Ws="￿";class y7{constructor(e,A){this.points=e,this.text="",this.lineSeparator=A.facet(Be.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ws}readRange(e,A){if(!e)return this;let r=e.parentNode;for(let n=e;;){this.findPointBefore(r,n);let i=this.text.length;this.readNode(n);let o=n.nextSibling;if(o==A)break;let s=Pe.get(n),l=Pe.get(o);(s&&l?s.breakAfter:(s?s.breakAfter:Fy(n))||Fy(o)&&(n.nodeName!="BR"||n.cmIgnore)&&this.text.length>i)&&this.lineBreak(),n=o}return this.findPointBefore(r,A),this}readTextNode(e){let A=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,A.length));for(let r=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let i=-1,o=1,s;if(this.lineSeparator?(i=A.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(s=n.exec(A))&&(i=s.index,o=s[0].length),this.append(A.slice(r,i<0?A.length:i)),i<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=i+o}}readNode(e){if(e.cmIgnore)return;let A=Pe.get(e),r=A&&A.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let n=r.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==A&&(r.pos=this.text.length)}findPointInside(e,A){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(Q7(e,r.node,r.offset)?A:0))}}function Q7(t,e,A){for(;;){if(!e||A-1)this.newSel=null;else if(A>-1&&(this.bounds=e.docView.domBoundsAround(A,r,0))){let s=i||o?[]:x7(e),l=new y7(s,e.state);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=U7(s,this.bounds.from)}else{let s=e.observer.selectionRange,l=i&&i.node==s.focusNode&&i.offset==s.focusOffset||!Gg(e.contentDOM,s.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),a=o&&o.node==s.anchorNode&&o.offset==s.anchorOffset||!Gg(e.contentDOM,s.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset);this.newSel=D.single(a,l)}}}function qE(t,e){let A,{newSel:r}=e,n=t.state.selection.main,i=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:s}=e.bounds,l=n.from,a=null;(i===8||G.android&&e.text.length=n.from&&A.to<=n.to&&(A.from!=n.from||A.to!=n.to)&&n.to-n.from-(A.to-A.from)<=4?A={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,A.from).append(A.insert).append(t.state.doc.slice(A.to,n.to))}:(G.mac||G.android)&&A&&A.from==A.to&&A.from==n.head-1&&/^\. ?$/.test(A.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(r&&A.insert.length==2&&(r=D.single(r.main.anchor-1,r.main.head-1)),A={from:n.from,to:n.to,insert:ge.of([" "])}):G.chrome&&A&&A.from==A.to&&A.from==n.head&&A.insert.toString()==` + `&&t.lineWrapping&&(r&&(r=D.single(r.main.anchor-1,r.main.head-1)),A={from:n.from,to:n.to,insert:ge.of([" "])}),A){if(G.ios&&t.inputState.flushIOSKey()||G.android&&(A.from==n.from&&A.to==n.to&&A.insert.length==1&&A.insert.lines==2&&Eo(t.contentDOM,"Enter",13)||(A.from==n.from-1&&A.to==n.to&&A.insert.length==0||i==8&&A.insert.lengthn.head)&&Eo(t.contentDOM,"Backspace",8)||A.from==n.from&&A.to==n.to+1&&A.insert.length==0&&Eo(t.contentDOM,"Delete",46)))return!0;let o=A.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let s,l=()=>s||(s=b7(t,A,r));return t.state.facet(CE).some(a=>a(t,A.from,A.to,o,l))||t.dispatch(l()),!0}else if(r&&!r.main.eq(n)){let o=!1,s="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(o=!0),s=t.inputState.lastSelectionOrigin),t.dispatch({selection:r,scrollIntoView:o,userEvent:s}),!0}else return!1}function b7(t,e,A){let r,n=t.state,i=n.selection.main;if(e.from>=i.from&&e.to<=i.to&&e.to-e.from>=(i.to-i.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let s=i.frome.to?n.sliceDoc(e.to,i.to):"";r=n.replaceSelection(t.state.toText(s+e.insert.sliceString(0,void 0,t.state.lineBreak)+l))}else{let s=n.changes(e),l=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=i.to&&e.to>=i.to-10){let a=t.state.sliceDoc(e.from,e.to),c,u=A&&RE(t,A.main.head);if(u){let h=e.insert.length-(e.to-e.from);c={from:u.from,to:u.to-h}}else c=t.state.doc.lineAt(i.head);let f=i.to-e.to,d=i.to-i.from;r=n.changeByRange(h=>{if(h.from==i.from&&h.to==i.to)return{changes:s,range:l||h.map(s)};let g=h.to-f,B=g-a.length;if(h.to-h.from!=d||t.state.sliceDoc(B,g)!=a||h.to>=c.from&&h.from<=c.to)return{range:h};let m=n.changes({from:B,to:g,insert:e.insert}),O=h.to-i.to;return{changes:m,range:l?D.range(Math.max(0,l.anchor+O),Math.max(0,l.head+O)):h.map(m)}})}else r={changes:s,selection:l&&n.selection.replaceRange(l)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:o,scrollIntoView:!0})}function S7(t,e,A,r){let n=Math.min(t.length,e.length),i=0;for(;i0&&s>0&&t.charCodeAt(o-1)==e.charCodeAt(s-1);)o--,s--;if(r=="end"){let l=Math.max(0,i-Math.min(o,s));A-=o+l-i}if(o=o?i-A:0;i-=l,s=i+(s-o),o=i}else if(s=s?i-A:0;i-=l,o=i+(o-s),s=i}return{from:i,toA:o,toB:s}}function x7(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:A,anchorOffset:r,focusNode:n,focusOffset:i}=t.observer.selectionRange;return A&&(e.push(new $y(A,r)),(n!=A||i!=r)&&e.push(new $y(n,i))),e}function U7(t,e){if(t.length==0)return null;let A=t[0].pos,r=t.length==2?t[1].pos:A;return A>-1&&r>-1?D.single(A+e,r+e):null}const E7={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Ph=G.ie&&G.ie_version<=11;class F7{constructor(e){this.view=e,this.active=!1,this.selectionRange=new uM,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let r of A)this.queue.push(r);(G.ie&&G.ie_version<=11||G.ios&&e.composing)&&A.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),Ph&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((A,r)=>A!=e[r]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,n=this.selectionRange;if(r.state.facet(od)?r.root.activeElement!=this.dom:!Gc(r.dom,n))return;let i=n.anchorNode&&r.docView.nearest(n.anchorNode);if(i&&i.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(G.ie&&G.ie_version<=11||G.android&&G.chrome)&&!r.state.selection.main.empty&&n.focusNode&&zu(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=G.safari&&e.root.nodeType==11&&sM(this.dom.ownerDocument)==this.dom&&$7(this.view)||Gu(e.root);if(!A||this.selectionRange.eq(A))return!1;let r=Gc(this.dom,A);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let i=this.delayedAndroidKey;i&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=i.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&i.force&&Eo(this.dom,i.key,i.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,r=-1,n=!1;for(let i of e){let o=this.readMutation(i);o&&(o.typeOver&&(n=!0),A==-1?{from:A,to:r}=o:(A=Math.min(o.from,A),r=Math.max(o.to,r)))}return{from:A,to:r,typeOver:n}}readChange(){let{from:e,to:A,typeOver:r}=this.processRecords(),n=this.selectionChanged&&Gc(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new C7(this.view,e,A,r);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let r=this.view.state,n=qE(this.view,A);return this.view.state==r&&this.view.update([]),n}readMutation(e){let A=this.view.docView.nearest(e.target);if(!A||A.ignoreMutation(e))return null;if(A.markDirty(e.type=="attributes"),e.type=="attributes"&&(A.flags|=4),e.type=="childList"){let r=ky(A,e.previousSibling||e.target.previousSibling,-1),n=ky(A,e.nextSibling||e.target.nextSibling,1);return{from:r?A.posAfter(r):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,A,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function ky(t,e,A){for(;e;){let r=Pe.get(e);if(r&&r.parent==t)return r;let n=e.parentNode;e=n!=t.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function $7(t){let e=null;function A(l){l.preventDefault(),l.stopImmediatePropagation(),e=l.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",A,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",A,!0),!e)return null;let r=e.startContainer,n=e.startOffset,i=e.endContainer,o=e.endOffset,s=t.docView.domAtPos(t.state.selection.main.anchor);return zu(s.node,s.offset,i,o)&&([r,n,i,o]=[i,o,r,n]),{anchorNode:r,anchorOffset:n,focusNode:i,focusOffset:o}}class Ae{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:A}=e;this.dispatchTransactions=e.dispatchTransactions||A&&(r=>r.forEach(n=>A(n,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||fM(e.parent)||document,this.viewState=new Uy(e.state||Be.create(e)),e.scrollTo&&e.scrollTo.is(cc)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Vs).map(r=>new Eh(r));for(let r of this.plugins)r.update(this);this.observer=new F7(this),this.inputState=new YM(this),this.inputState.ensureHandlers(this.plugins),this.docView=new cy(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}dispatch(...e){let A=e.length==1&&e[0]instanceof it?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(A,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let A=!1,r=!1,n,i=this.state;for(let f of e){if(f.startState!=i)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");i=f.state}if(this.destroyed){this.viewState.state=i;return}let o=this.hasFocus,s=0,l=null;e.some(f=>f.annotation(VE))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=YE(i,o),l||(s=1));let a=this.observer.delayedAndroidKey,c=null;if(a?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(i.doc)||!this.state.selection.eq(i.selection))&&(c=null)):this.observer.clear(),i.facet(Be.phrases)!=this.state.facet(Be.phrases))return this.setState(i);n=qu.create(this,i,e),n.flags|=s;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(u&&(u=u.map(f.changes)),f.scrollIntoView){let{main:d}=f.state.selection;u=new Fo(d.empty?d:D.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of f.effects)d.is(cc)&&(u=d.value.clip(this.state))}this.viewState.update(n,u),this.bidiCache=Ju.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),A=this.docView.update(n),this.state.facet(Ys)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(A,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(gc)!=n.state.facet(gc)&&(this.viewState.mustMeasureContent=!0),(A||r||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!n.empty)for(let f of this.state.facet(rm))try{f(n)}catch(d){_n(this.state,d,"update listener")}(l||c)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),c&&!qE(this,c)&&a.force&&Eo(this.contentDOM,a.key,a.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let A=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new Uy(e),this.plugins=e.facet(Vs).map(r=>new Eh(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView=new cy(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}A&&this.focus(),this.requestMeasure()}updatePlugins(e){let A=e.startState.facet(Vs),r=e.state.facet(Vs);if(A!=r){let n=[];for(let i of r){let o=A.indexOf(i);if(o<0)n.push(new Eh(i));else{let s=this.plugins[o];s.mustUpdate=e,n.push(s)}}for(let i of this.plugins)i.mustUpdate!=e&&i.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let A=null,r=this.scrollDOM,n=r.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let s=0;;s++){if(o<0)if(cE(r))i=-1,o=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(n);i=d.from,o=d.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(s>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];l&4||([this.measureRequests,a]=[a,this.measureRequests]);let c=a.map(d=>{try{return d.read(this)}catch(h){return _n(this.state,h),Py}}),u=qu.create(this,this.state,[]),f=!1;u.flags|=l,A?A.flags|=l:A=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),f=this.docView.update(u));for(let d=0;d1||h<-1){n=n+h,r.scrollTop=n/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(A&&!A.empty)for(let s of this.state.facet(rm))s(A)}get themeClasses(){return cm+" "+(this.state.facet(am)?GE:jE)+" "+this.state.facet(gc)}updateAttrs(){let e=Ty(this,xE,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),A={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(od)?"true":"false",class:"cm-content",style:`${G.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(A["aria-readonly"]="true"),Ty(this,B0,A);let r=this.observer.ignore(()=>{let n=tm(this.contentDOM,this.contentAttrs,A),i=tm(this.dom,this.editorAttrs,e);return n||i});return this.editorAttrs=e,this.contentAttrs=A,r}showAnnouncements(e){let A=!0;for(let r of e)for(let n of r.effects)if(n.is(Ae.announce)){A&&(this.announceDOM.textContent=""),A=!1;let i=this.announceDOM.appendChild(document.createElement("div"));i.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(Ys);let e=this.state.facet(Ae.cspNonce);Kn.mount(this.root,this.styleModules.concat(v7).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let A=0;Ar.spec==e)||null),A&&A.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,A,r){return $h(this,e,gy(this,e,A,r))}moveByGroup(e,A){return $h(this,e,gy(this,e,A,r=>XM(this,e.head,r)))}moveToLineBoundary(e,A,r=!0){return ZM(this,e,A,r)}moveVertically(e,A,r){return $h(this,e,VM(this,e,A,r))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,A=0){return this.docView.posFromDOM(e,A)}posAtCoords(e,A=!0){return this.readMeasured(),HE(this,e,A)}coordsAtPos(e,A=1){this.readMeasured();let r=this.docView.coordsAt(e,A);if(!r||r.left==r.right)return r;let n=this.state.doc.lineAt(e),i=this.bidiSpans(n),o=i[Sn.find(i,e-n.from,-1,A)];return m0(r,o.dir==Ot.LTR==A>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(SE)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>k7)return TE(e.length);let A=this.textDirectionAt(e.from),r;for(let i of this.bidiCache)if(i.from==e.from&&i.dir==A&&(i.fresh||PE(i.isolates,r=ay(this,e.from,e.to))))return i.order;r||(r=ay(this,e.from,e.to));let n=UM(e.text,A,r);return this.bidiCache.push(new Ju(e.from,e.to,A,r,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||G.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{lE(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,A={}){return cc.of(new Fo(typeof e=="number"?D.cursor(e):e,A.y,A.x,A.yMargin,A.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:A}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return cc.of(new Fo(D.cursor(r.from),"start","start",r.top-e,A,!0))}static domEventHandlers(e){return Gn.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Gn.define(()=>({}),{eventObservers:e})}static theme(e,A){let r=Kn.newName(),n=[gc.of(r),Ys.of(um(`.${r}`,e))];return A&&A.dark&&n.push(am.of(!0)),n}static baseTheme(e){return td.lowest(Ys.of(um("."+cm,e,zE)))}static findFromDOM(e){var A;let r=e.querySelector(".cm-content"),n=r&&Pe.get(r)||Pe.get(e);return((A=n==null?void 0:n.rootView)===null||A===void 0?void 0:A.view)||null}}Ae.styleModule=Ys;Ae.inputHandler=CE;Ae.focusChangeEffect=bE;Ae.perLineTextDirection=SE;Ae.exceptionSink=QE;Ae.updateListener=rm;Ae.editable=od;Ae.mouseSelectionStyle=yE;Ae.dragMovesSelection=vE;Ae.clickAddsSelectionRange=BE;Ae.decorations=Zl;Ae.atomicRanges=v0;Ae.bidiIsolatedRanges=UE;Ae.scrollMargins=EE;Ae.darkTheme=am;Ae.cspNonce=ee.define({combine:t=>t.length?t[0]:""});Ae.contentAttributes=B0;Ae.editorAttributes=xE;Ae.lineWrapping=Ae.contentAttributes.of({class:"cm-lineWrapping"});Ae.announce=Xe.define();const k7=4096,Py={};class Ju{constructor(e,A,r,n,i,o){this.from=e,this.to=A,this.dir=r,this.isolates=n,this.fresh=i,this.order=o}static update(e,A){if(A.empty&&!e.some(i=>i.fresh))return e;let r=[],n=e.length?e[e.length-1].dir:Ot.LTR;for(let i=Math.max(0,e.length-10);i=0;n--){let i=r[n],o=typeof i=="function"?i(t):i;o&&em(o,A)}return A}const P7=G.mac?"mac":G.windows?"win":G.linux?"linux":"key";function T7(t,e){const A=t.split(/-(?!$)/);let r=A[A.length-1];r=="Space"&&(r=" ");let n,i,o,s;for(let l=0;lr.concat(n),[]))),A}let On=null;const D7=4e3;function H7(t,e=P7){let A=Object.create(null),r=Object.create(null),n=(o,s)=>{let l=r[o];if(l==null)r[o]=s;else if(l!=s)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},i=(o,s,l,a,c)=>{var u,f;let d=A[o]||(A[o]=Object.create(null)),h=s.split(/ (?!$)/).map(m=>T7(m,e));for(let m=1;m{let Q=On={view:v,prefix:O,scope:o};return setTimeout(()=>{On==Q&&(On=null)},D7),!0}]})}let g=h.join(" ");n(g,!1);let B=d[g]||(d[g]={preventDefault:!1,stopPropagation:!1,run:((f=(u=d._any)===null||u===void 0?void 0:u.run)===null||f===void 0?void 0:f.slice())||[]});l&&B.run.push(l),a&&(B.preventDefault=!0),c&&(B.stopPropagation=!0)};for(let o of t){let s=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let a of s){let c=A[a]||(A[a]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let u in c)c[u].run.push(o.any)}let l=o[e]||o.key;if(l)for(let a of s)i(a,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&i(a,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return A}function L7(t,e,A,r){let n=oM(e),i=Wc(n,0),o=Dg(i)==n.length&&n!=" ",s="",l=!1,a=!1,c=!1;On&&On.view==A&&On.scope==r&&(s=On.prefix+" ",_E.indexOf(e.keyCode)<0&&(a=!0,On=null));let u=new Set,f=B=>{if(B){for(let m of B.run)if(!u.has(m)&&(u.add(m),m(A,e)))return B.stopPropagation&&(c=!0),!0;B.preventDefault&&(B.stopPropagation&&(c=!0),a=!0)}return!1},d=t[r],h,g;return d&&(f(d[s+mc(n,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(G.windows&&e.ctrlKey&&e.altKey)&&(h=Wn[e.keyCode])&&h!=n?(f(d[s+mc(h,e,!0)])||e.shiftKey&&(g=_l[e.keyCode])!=n&&g!=h&&f(d[s+mc(g,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(d[s+mc(n,e,!0)])&&(l=!0),!l&&f(d._any)&&(l=!0)),a&&(l=!0),l&&c&&e.stopPropagation(),l}const _7=!G.ios,N7={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};_7&&(N7[".cm-line"].caretColor="transparent !important");class ki extends Fi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}ki.prototype.elementClass="";ki.prototype.toDOM=void 0;ki.prototype.mapMode=Dt.TrackBefore;ki.prototype.startSide=ki.prototype.endSide=-1;ki.prototype.point=!0;const Th=ee.define(),Jc=ee.define(),fm=ee.define({combine:t=>t.some(e=>e)});function M7(t){let e=[Z7];return t&&t.fixed===!1&&e.push(fm.of(!0)),e}const Z7=Gn.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Jc).map(e=>new Dy(t,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!t.state.facet(fm),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,A=t.view.viewport,r=Math.min(e.to,A.to)-Math.max(e.from,A.from);this.syncGutters(r<(A.to-A.from)*.8)}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(fm)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let A=ke.iter(this.view.state.facet(Th),this.view.viewport.from),r=[],n=this.gutters.map(i=>new X7(i,this.view.viewport,-this.view.documentPadding.top));for(let i of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(i.type)){let o=!0;for(let s of i.type)if(s.type==MA.Text&&o){dm(A,r,s.from);for(let l of n)l.line(this.view,s,r);o=!1}else if(s.widget)for(let l of n)l.widget(this.view,s)}else if(i.type==MA.Text){dm(A,r,i.from);for(let o of n)o.line(this.view,i,r)}else if(i.widget)for(let o of n)o.widget(this.view,i);for(let i of n)i.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(Jc),A=t.state.facet(Jc),r=t.docChanged||t.heightChanged||t.viewportChanged||!ke.eq(t.startState.facet(Th),t.state.facet(Th),t.view.viewport.from,t.view.viewport.to);if(e==A)for(let n of this.gutters)n.update(t)&&(r=!0);else{r=!0;let n=[];for(let i of A){let o=e.indexOf(i);o<0?n.push(new Dy(this.view,i)):(this.gutters[o].update(t),n.push(this.gutters[o]))}for(let i of this.gutters)i.dom.remove(),n.indexOf(i)<0&&i.destroy();for(let i of n)this.dom.appendChild(i.dom);this.gutters=n}return r}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Ae.scrollMargins.of(e=>{let A=e.plugin(t);return!A||A.gutters.length==0||!A.fixed?null:e.textDirection==Ot.LTR?{left:A.dom.offsetWidth*e.scaleX}:{right:A.dom.offsetWidth*e.scaleX}})});function Ry(t){return Array.isArray(t)?t:[t]}function dm(t,e,A){for(;t.value&&t.from<=A;)t.from==A&&e.push(t.value),t.next()}class X7{constructor(e,A,r){this.gutter=e,this.height=r,this.i=0,this.cursor=ke.iter(e.markers,A.from)}addElement(e,A,r){let{gutter:n}=this,i=(A.top-this.height)/e.scaleY,o=A.height/e.scaleY;if(this.i==n.elements.length){let s=new JE(e,o,i,r);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(e,o,i,r);this.height=A.bottom,this.i++}line(e,A,r){let n=[];dm(this.cursor,n,A.from),r.length&&(n=n.concat(r));let i=this.gutter.config.lineMarker(e,A,n);i&&n.unshift(i);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(e,A,n)}widget(e,A){let r=this.gutter.config.widgetMarker(e,A.widget,A);r&&this.addElement(e,A,[r])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let A=e.elements.pop();e.dom.removeChild(A.dom),A.destroy()}}}class Dy{constructor(e,A){this.view=e,this.config=A,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in A.domEventHandlers)this.dom.addEventListener(r,n=>{let i=n.target,o;if(i!=this.dom&&this.dom.contains(i)){for(;i.parentNode!=this.dom;)i=i.parentNode;let l=i.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=n.clientY;let s=e.lineBlockAtHeight(o-e.documentTop);A.domEventHandlers[r](e,s,n)&&n.preventDefault()});this.markers=Ry(A.markers(e)),A.initialSpacer&&(this.spacer=new JE(e,0,0,[A.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let A=this.markers;if(this.markers=Ry(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let r=e.view.viewport;return!ke.eq(this.markers,A,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class JE{constructor(e,A,r,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,A,r,n)}update(e,A,r,n){this.height!=A&&(this.height=A,this.dom.style.height=A+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),V7(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,A){let r="cm-gutterElement",n=this.dom.firstChild;for(let i=0,o=0;;){let s=o,l=ii(s,l,a)||o(s,l,a):o}return r}})}});class Ih extends ki{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Rh(t,e){return t.state.facet(mo).formatNumber(e,t.state)}const K7=Jc.compute([mo],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Y7)},lineMarker(e,A,r){return r.some(n=>n.toDOM)?null:new Ih(Rh(e,e.state.doc.lineAt(A.from).number))},widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(mo)!=e.state.facet(mo),initialSpacer(e){return new Ih(Rh(e,Hy(e.state.doc.lines)))},updateSpacer(e,A){let r=Rh(A.view,Hy(A.view.state.doc.lines));return r==e.number?e:new Ih(r)},domEventHandlers:t.facet(mo).domEventHandlers}));function W7(t={}){return[mo.of(t),M7(),K7]}function Hy(t){let e=9;for(;e{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=_t.match(e)),A=>{let r=e(A);return r===void 0?null:[this,r]}}}oe.closedBy=new oe({deserialize:t=>t.split(" ")});oe.openedBy=new oe({deserialize:t=>t.split(" ")});oe.group=new oe({deserialize:t=>t.split(" ")});oe.contextHash=new oe({perNode:!0});oe.lookAhead=new oe({perNode:!0});oe.mounted=new oe({perNode:!0});class Vl{constructor(e,A,r){this.tree=e,this.overlay=A,this.parser=r}static get(e){return e&&e.props&&e.props[oe.mounted.id]}}const G7=Object.create(null);class _t{constructor(e,A,r,n=0){this.name=e,this.props=A,this.id=r,this.flags=n}static define(e){let A=e.props&&e.props.length?Object.create(null):G7,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new _t(e.name||"",A,e.id,r);if(e.props){for(let i of e.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");A[i[0].id]=i[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let A=this.prop(oe.group);return A?A.indexOf(e)>-1:!1}return this.id==e}static match(e){let A=Object.create(null);for(let r in e)for(let n of r.split(" "))A[n]=e[r];return r=>{for(let n=r.prop(oe.group),i=-1;i<(n?n.length:0);i++){let o=A[i<0?r.name:n[i]];if(o)return o}}}}_t.none=new _t("",Object.create(null),0,8);class C0{constructor(e){this.types=e;for(let A=0;A0;for(let l=this.cursor(o|xe.IncludeAnonymous);;){let a=!1;if(l.from<=i&&l.to>=n&&(!s&&l.type.isAnonymous||A(l)!==!1)){if(l.firstChild())continue;a=!0}for(;a&&r&&(s||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;a=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let A in this.props)e.push([+A,this.props[A]]);return e}balance(e={}){return this.children.length<=8?this:x0(_t.none,this.children,this.positions,0,this.children.length,0,this.length,(A,r,n)=>new _e(this.type,A,r,n,this.propValues),e.makeTree||((A,r,n)=>new _e(_t.none,A,r,n)))}static build(e){return eZ(e)}}_e.empty=new _e(_t.none,[],[],0);class b0{constructor(e,A){this.buffer=e,this.index=A}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new b0(this.buffer,this.index)}}class zn{constructor(e,A,r){this.buffer=e,this.length=A,this.set=r}get type(){return _t.none}toString(){let e=[];for(let A=0;A0));l=o[l+3]);return s}slice(e,A,r){let n=this.buffer,i=new Uint16Array(A-e),o=0;for(let s=e,l=0;s=e&&Ae;case 1:return A<=e&&r>e;case 2:return r>e;case 4:return!0}}function Yl(t,e,A,r){for(var n;t.from==t.to||(A<1?t.from>=e:t.from>e)||(A>-1?t.to<=e:t.to0?s.length:-1;e!=a;e+=A){let c=s[e],u=l[e]+o.from;if(tF(n,r,u,u+c.length)){if(c instanceof zn){if(i&xe.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,A,r-u,n);if(f>-1)return new cr(new z7(o,c,e,u),null,f)}else if(i&xe.IncludeAnonymous||!c.type.isAnonymous||S0(c)){let f;if(!(i&xe.IgnoreMounts)&&(f=Vl.get(c))&&!f.overlay)return new Ft(f.tree,u,e,o);let d=new Ft(c,u,e,o);return i&xe.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(A<0?c.children.length-1:0,A,r,n)}}}if(i&xe.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+A:e=A<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,A,r=0){let n;if(!(r&xe.IgnoreOverlays)&&(n=Vl.get(this._tree))&&n.overlay){let i=e-this.from;for(let{from:o,to:s}of n.overlay)if((A>0?o<=i:o=i:s>i))return new Ft(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,A,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function _y(t,e,A,r){let n=t.cursor(),i=[];if(!n.firstChild())return i;if(A!=null){for(;!n.type.is(A);)if(!n.nextSibling())return i}for(;;){if(r!=null&&n.type.is(r))return i;if(n.type.is(e)&&i.push(n.node),!n.nextSibling())return r==null?i:[]}}function hm(t,e,A=e.length-1){for(let r=t.parent;A>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[A]&&e[A]!=r.name)return!1;A--}}return!0}class z7{constructor(e,A,r,n){this.parent=e,this.buffer=A,this.index=r,this.start=n}}class cr extends AF{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,A,r){super(),this.context=e,this._parent=A,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,A,r){let{buffer:n}=this.context,i=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.context.start,r);return i<0?null:new cr(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,A,r=0){if(r&xe.ExcludeBuffers)return null;let{buffer:n}=this.context,i=n.findChild(this.index+4,n.buffer[this.index+3],A>0?1:-1,e-this.context.start,A);return i<0?null:new cr(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,A=e.buffer[this.index+3];return A<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new cr(this.context,this._parent,A):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,A=this._parent?this._parent.index+4:0;return this.index==A?this.externalSibling(-1):new cr(this.context,this._parent,e.findChild(A,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],A=[],{buffer:r}=this.context,n=this.index+4,i=r.buffer[this.index+3];if(i>n){let o=r.buffer[this.index+1];e.push(r.slice(n,i,o)),A.push(0)}return new _e(this.type,e,A,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function rF(t){if(!t.length)return null;let e=0,A=t[0];for(let i=1;iA.from||o.to=e){let s=new Ft(o.tree,o.overlay[0].from+i.from,-1,i);(n||(n=[r])).push(Yl(s,e,A,!1))}}return n?rF(n):r}class ef{get name(){return this.type.name}constructor(e,A=0){if(this.mode=A,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Ft)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,A){this.index=e;let{start:r,buffer:n}=this.buffer;return this.type=A||n.set.types[n.buffer[e]],this.from=r+n.buffer[e+1],this.to=r+n.buffer[e+2],!0}yield(e){return e?e instanceof Ft?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,A,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,A,r,this.mode));let{buffer:n}=this.buffer,i=n.findChild(this.index+4,n.buffer[this.index+3],e,A-this.buffer.start,r);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,A,r=this.mode){return this.buffer?r&xe.ExcludeBuffers?!1:this.enterChild(1,e,A):this.yield(this._tree.enter(e,A,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&xe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&xe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:A}=this.buffer,r=this.stack.length-1;if(e<0){let n=r<0?0:this.stack[r]+4;if(this.index!=n)return this.yieldBuf(A.findChild(n,this.index,-1,0,4))}else{let n=A.buffer[this.index+3];if(n<(r<0?A.buffer.length:A.buffer[this.stack[r]+3]))return this.yieldBuf(n)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let A,r,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let i=A+e,o=e<0?-1:r._tree.children.length;i!=o;i+=e){let s=r._tree.children[i];if(this.mode&xe.IncludeAnonymous||s instanceof zn||!s.type.isAnonymous||S0(s))return!1}return!0}move(e,A){if(A&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,A=0){for(;(this.from==this.to||(A<1?this.from>=e:this.from>e)||(A>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;A=o,r=i+1;break e}n=this.stack[--i]}for(let n=r;n=0;i--){if(i<0)return hm(this.node,e,n);let o=r[A.buffer[this.stack[i]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}}function S0(t){return t.children.some(e=>e instanceof zn||!e.type.isAnonymous||S0(e))}function eZ(t){var e;let{buffer:A,nodeSet:r,maxBufferLength:n=eF,reused:i=[],minRepeatType:o=r.types.length}=t,s=Array.isArray(A)?new b0(A,A.length):A,l=r.types,a=0,c=0;function u(C,b,S,x,U,E){let{id:T,start:F,end:H,size:P}=s,L=c;for(;P<0;)if(s.next(),P==-1){let Z=i[T];S.push(Z),x.push(F-C);return}else if(P==-3){a=T;return}else if(P==-4){c=T;return}else throw new RangeError(`Unrecognized record size: ${P}`);let $=l[T],_,k,I=F-C;if(H-F<=n&&(k=B(s.pos-b,U))){let Z=new Uint16Array(k.size-k.skip),W=s.pos-k.size,J=Z.length;for(;s.pos>W;)J=m(k.start,Z,J);_=new zn(Z,H-k.start,r),I=k.start-C}else{let Z=s.pos-P;s.next();let W=[],J=[],pe=T>=o?T:-1,ne=0,me=H;for(;s.pos>Z;)pe>=0&&s.id==pe&&s.size>=0?(s.end<=me-n&&(h(W,J,F,ne,s.end,me,pe,L),ne=W.length,me=s.end),s.next()):E>2500?f(F,Z,W,J):u(F,Z,W,J,pe,E+1);if(pe>=0&&ne>0&&ne-1&&ne>0){let ie=d($);_=x0($,W,J,0,W.length,0,H-F,ie,ie)}else _=g($,W,J,H-F,L-H)}S.push(_),x.push(I)}function f(C,b,S,x){let U=[],E=0,T=-1;for(;s.pos>b;){let{id:F,start:H,end:P,size:L}=s;if(L>4)s.next();else{if(T>-1&&H=0;P-=3)F[L++]=U[P],F[L++]=U[P+1]-H,F[L++]=U[P+2]-H,F[L++]=L;S.push(new zn(F,U[2]-H,r)),x.push(H-C)}}function d(C){return(b,S,x)=>{let U=0,E=b.length-1,T,F;if(E>=0&&(T=b[E])instanceof _e){if(!E&&T.type==C&&T.length==x)return T;(F=T.prop(oe.lookAhead))&&(U=S[E]+T.length+F)}return g(C,b,S,x,U)}}function h(C,b,S,x,U,E,T,F){let H=[],P=[];for(;C.length>x;)H.push(C.pop()),P.push(b.pop()+S-U);C.push(g(r.types[T],H,P,E-U,F-E)),b.push(U-S)}function g(C,b,S,x,U=0,E){if(a){let T=[oe.contextHash,a];E=E?[T].concat(E):[T]}if(U>25){let T=[oe.lookAhead,U];E=E?[T].concat(E):[T]}return new _e(C,b,S,x,E)}function B(C,b){let S=s.fork(),x=0,U=0,E=0,T=S.end-n,F={size:0,start:0,skip:0};e:for(let H=S.pos-C;S.pos>H;){let P=S.size;if(S.id==b&&P>=0){F.size=x,F.start=U,F.skip=E,E+=4,x+=4,S.next();continue}let L=S.pos-P;if(P<0||L=o?4:0,_=S.start;for(S.next();S.pos>L;){if(S.size<0)if(S.size==-3)$+=4;else break e;else S.id>=o&&($+=4);S.next()}U=_,x+=P,E+=$}return(b<0||x==C)&&(F.size=x,F.start=U,F.skip=E),F.size>4?F:void 0}function m(C,b,S){let{id:x,start:U,end:E,size:T}=s;if(s.next(),T>=0&&x4){let H=s.pos-(T-4);for(;s.pos>H;)S=m(C,b,S)}b[--S]=F,b[--S]=E-C,b[--S]=U-C,b[--S]=x}else T==-3?a=x:T==-4&&(c=x);return S}let O=[],v=[];for(;s.pos>0;)u(t.start||0,t.bufferStart||0,O,v,-1,0);let Q=(e=t.length)!==null&&e!==void 0?e:O.length?v[0]+O[0].length:0;return new _e(l[t.topID],O.reverse(),v.reverse(),Q)}const Ny=new WeakMap;function eu(t,e){if(!t.isAnonymous||e instanceof zn||e.type!=t)return 1;let A=Ny.get(e);if(A==null){A=1;for(let r of e.children){if(r.type!=t||!(r instanceof _e)){A=1;break}A+=eu(t,r)}Ny.set(e,A)}return A}function x0(t,e,A,r,n,i,o,s,l){let a=0;for(let h=r;h=c)break;b+=S}if(v==Q+1){if(b>c){let S=h[Q];d(S.children,S.positions,0,S.children.length,g[Q]+O);continue}u.push(h[Q])}else{let S=g[v-1]+h[v-1].length-C;u.push(x0(t,h,g,Q,v,C,S,null,l))}f.push(C+O-i)}}return d(e,A,r,n,0),(s||l)(u,f,o)}class nF{constructor(){this.map=new WeakMap}setBuffer(e,A,r){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(A,r)}getBuffer(e,A){let r=this.map.get(e);return r&&r.get(A)}set(e,A){e instanceof cr?this.setBuffer(e.context.buffer,e.index,A):e instanceof Ft&&this.map.set(e.tree,A)}get(e){return e instanceof cr?this.getBuffer(e.context.buffer,e.index):e instanceof Ft?this.map.get(e.tree):void 0}cursorSet(e,A){e.buffer?this.setBuffer(e.buffer.buffer,e.index,A):this.map.set(e.tree,A)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class Hr{constructor(e,A,r,n,i=!1,o=!1){this.from=e,this.to=A,this.tree=r,this.offset=n,this.open=(i?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,A=[],r=!1){let n=[new Hr(0,e.length,e,0,!1,r)];for(let i of A)i.to>e.length&&n.push(i);return n}static applyChanges(e,A,r=128){if(!A.length)return e;let n=[],i=1,o=e.length?e[0]:null;for(let s=0,l=0,a=0;;s++){let c=s=r)for(;o&&o.from=f.from||u<=f.to||a){let d=Math.max(f.from,l)-a,h=Math.min(f.to,u)-a;f=d>=h?null:new Hr(d,h,f.tree,f.offset+a,s>0,!!c)}if(f&&n.push(f),o.to>u)break;o=inew bA(n.from,n.to)):[new bA(0,0)]:[new bA(0,e.length)],this.createParse(e,A||[],r)}parse(e,A,r){let n=this.startParse(e,A,r);for(;;){let i=n.advance();if(i)return i}}}class tZ{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,A){return this.string.slice(e,A)}}function AZ(t){return(e,A,r,n)=>new nZ(e,t,A,r,n)}class My{constructor(e,A,r,n,i){this.parser=e,this.parse=A,this.overlay=r,this.target=n,this.from=i}}function Zy(t){if(!t.length||t.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(t))}class rZ{constructor(e,A,r,n,i,o,s){this.parser=e,this.predicate=A,this.mounts=r,this.index=n,this.start=i,this.target=o,this.prev=s,this.depth=0,this.ranges=[]}}const pm=new oe({perNode:!0});class nZ{constructor(e,A,r,n,i){this.nest=A,this.input=r,this.fragments=n,this.ranges=i,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let r=this.baseParse.advance();if(!r)return null;if(this.baseParse=null,this.baseTree=r,this.startInner(),this.stoppedAt!=null)for(let n of this.inner)n.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let r=this.baseTree;return this.stoppedAt!=null&&(r=new _e(r.type,r.children,r.positions,r.length,r.propValues.concat([[pm,this.stoppedAt]]))),r}let e=this.inner[this.innerDone],A=e.parse.advance();if(A){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[oe.mounted.id]=new Vl(A,e.overlay,e.parser),e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let A=this.innerDone;A=this.stoppedAt)s=!1;else if(e.hasNode(n)){if(A){let a=A.mounts.find(c=>c.frag.from<=n.from&&c.frag.to>=n.to&&c.mount.overlay);if(a)for(let c of a.mount.overlay){let u=c.from+a.pos,f=c.to+a.pos;u>=n.from&&f<=n.to&&!A.ranges.some(d=>d.fromu)&&A.ranges.push({from:u,to:f})}}s=!1}else if(r&&(o=iZ(r.ranges,n.from,n.to)))s=o!=2;else if(!n.type.isAnonymous&&(i=this.nest(n,this.input))&&(n.fromnew bA(u.from-n.from,u.to-n.from)):null,n.tree,c.length?c[0].from:n.from)),i.overlay?c.length&&(r={ranges:c,depth:0,prev:r}):s=!1}}else A&&(l=A.predicate(n))&&(l===!0&&(l=new bA(n.from,n.to)),l.fromnew bA(c.from-A.start,c.to-A.start)),A.target,a[0].from))),A=A.prev}r&&!--r.depth&&(r=r.prev)}}}}function iZ(t,e,A){for(let r of t){if(r.from>=A)break;if(r.to>e)return r.from<=e&&r.to>=A?2:1}return 0}function Xy(t,e,A,r,n,i){if(e=e.to);r++);let o=n.children[r],s=o.buffer,l=[r];function a(c,u,f,d,h,g){let B=A[g],m=[],O=[];Xy(o,c,B,m,O,d);let v=s[B+1],Q=s[B+2];l.push(m.length);let C=g?a(B+4,s[B+3],o.set.types[s[B]],v,Q-v,g-1):e.toTree();return m.push(C),O.push(v-d),Xy(o,s[B+3],u,m,O,d),new _e(f,m,O,h)}n.children[r]=a(0,s.length,_t.none,0,o.length,A.length-1);for(let c of l){let u=t.tree.children[c],f=t.tree.positions[c];t.yield(new Ft(u,f+t.from,c,t._tree))}}class Vy{constructor(e,A){this.offset=A,this.done=!1,this.cursor=e.cursor(xe.IncludeAnonymous|xe.IgnoreMounts)}moveTo(e){let{cursor:A}=this,r=e-this.offset;for(;!this.done&&A.from=e&&A.enter(r,1,xe.IgnoreOverlays|xe.ExcludeBuffers)||A.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let A=this.cursor.tree;;){if(A==e.tree)return!0;if(A.children.length&&A.positions[0]==0&&A.children[0]instanceof _e)A=A.children[0];else break}return!1}}let sZ=class{constructor(e){var A;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let r=this.curFrag=e[0];this.curTo=(A=r.tree.prop(pm))!==null&&A!==void 0?A:r.to,this.inner=new Vy(r.tree,-r.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let A=this.curFrag=this.fragments[this.fragI];this.curTo=(e=A.tree.prop(pm))!==null&&e!==void 0?e:A.to,this.inner=new Vy(A.tree,-A.offset)}}findMounts(e,A){var r;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let i=this.inner.cursor.node;i;i=i.parent){let o=(r=i.tree)===null||r===void 0?void 0:r.prop(oe.mounted);if(o&&o.parser==A)for(let s=this.fragI;s=i.to)break;l.tree==this.curFrag.tree&&n.push({frag:l,pos:i.from-l.offset,mount:o})}}}return n}};function Yy(t,e){let A=null,r=e;for(let n=1,i=0;n=s)break;l.to<=o||(A||(r=A=e.slice()),l.froms&&A.splice(i+1,0,new bA(s,l.to))):l.to>s?A[i--]=new bA(s,l.to):A.splice(i--,1))}}return r}function lZ(t,e,A,r){let n=0,i=0,o=!1,s=!1,l=-1e9,a=[];for(;;){let c=n==t.length?1e9:o?t[n].to:t[n].from,u=i==e.length?1e9:s?e[i].to:e[i].from;if(o!=s){let f=Math.max(l,A),d=Math.min(c,u,r);fnew bA(f.from+r,f.to+r)),u=lZ(e,c,l,a);for(let f=0,d=l;;f++){let h=f==u.length,g=h?a:u[f].from;if(g>d&&A.push(new Hr(d,g,n.tree,-o,i.from>=d||i.openStart,i.to<=g||i.openEnd)),h)break;d=u[f].to}}else A.push(new Hr(l,a,n.tree,-o,i.from>=o||i.openStart,i.to<=s||i.openEnd))}return A}let aZ=0;class ir{constructor(e,A,r){this.set=e,this.base=A,this.modified=r,this.id=aZ++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let A=new ir([],null,[]);if(A.set.push(A),e)for(let r of e.set)A.set.push(r);return A}static defineModifier(){let e=new tf;return A=>A.modified.indexOf(e)>-1?A:tf.get(A.base||A,A.modified.concat(e).sort((r,n)=>r.id-n.id))}}let cZ=0;class tf{constructor(){this.instances=[],this.id=cZ++}static get(e,A){if(!A.length)return e;let r=A[0].instances.find(s=>s.base==e&&uZ(A,s.modified));if(r)return r;let n=[],i=new ir(n,e,A);for(let s of A)s.instances.push(i);let o=fZ(A);for(let s of e.set)if(!s.modified.length)for(let l of o)n.push(tf.get(s,l));return i}}function uZ(t,e){return t.length==e.length&&t.every((A,r)=>A==e[r])}function fZ(t){let e=[[]];for(let A=0;Ar.length-A.length)}function sd(t){let e=Object.create(null);for(let A in t){let r=t[A];Array.isArray(r)||(r=[r]);for(let n of A.split(" "))if(n){let i=[],o=2,s=n;for(let u=0;;){if(s=="..."&&u>0&&u+3==n.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!f)throw new RangeError("Invalid path: "+n);if(i.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),u+=f[0].length,u==n.length)break;let d=n[u++];if(u==n.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);s=n.slice(u)}let l=i.length-1,a=i[l];if(!a)throw new RangeError("Invalid path: "+n);let c=new Af(r,o,l>0?i.slice(0,l):null);e[a]=c.sort(e[a])}}return oF.add(e)}const oF=new oe;class Af{constructor(e,A,r,n){this.tags=e,this.mode=A,this.context=r,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let s of i)for(let l of s.set){let a=A[l.id];if(a){o=o?o+" "+a:a;break}}return o},scope:r}}function dZ(t,e){let A=null;for(let r of t){let n=r.style(e);n&&(A=A?A+" "+n:n)}return A}function hZ(t,e,A,r=0,n=t.length){let i=new pZ(r,Array.isArray(e)?e:[e],A);i.highlightRange(t.cursor(),r,n,"",i.highlighters),i.flush(n)}class pZ{constructor(e,A,r){this.at=e,this.highlighters=A,this.span=r,this.class=""}startSpan(e,A){A!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=A)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,A,r,n,i){let{type:o,from:s,to:l}=e;if(s>=r||l<=A)return;o.isTop&&(i=this.highlighters.filter(d=>!d.scope||d.scope(o)));let a=n,c=gZ(e)||Af.empty,u=dZ(i,c.tags);if(u&&(a&&(a+=" "),a+=u,c.mode==1&&(n+=(n?" ":"")+u)),this.startSpan(Math.max(A,s),a),c.opaque)return;let f=e.tree&&e.tree.prop(oe.mounted);if(f&&f.overlay){let d=e.node.enter(f.overlay[0].from+s,1),h=this.highlighters.filter(B=>!B.scope||B.scope(f.tree.type)),g=e.firstChild();for(let B=0,m=s;;B++){let O=B=v||!e.nextSibling())););if(!O||v>r)break;m=O.to+s,m>A&&(this.highlightRange(d.cursor(),Math.max(A,O.from+s),Math.min(r,m),"",h),this.startSpan(Math.min(r,m),a))}g&&e.parent()}else if(e.firstChild()){f&&(n="");do if(!(e.to<=A)){if(e.from>=r)break;this.highlightRange(e,A,r,n,i),this.startSpan(Math.min(r,e.to),a)}while(e.nextSibling());e.parent()}}}function gZ(t){let e=t.type.prop(oF);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const N=ir.define,wc=N(),fn=N(),Wy=N(fn),jy=N(fn),dn=N(),Bc=N(dn),Dh=N(dn),Ar=N(),oi=N(Ar),er=N(),tr=N(),gm=N(),Es=N(gm),vc=N(),w={comment:wc,lineComment:N(wc),blockComment:N(wc),docComment:N(wc),name:fn,variableName:N(fn),typeName:Wy,tagName:N(Wy),propertyName:jy,attributeName:N(jy),className:N(fn),labelName:N(fn),namespace:N(fn),macroName:N(fn),literal:dn,string:Bc,docString:N(Bc),character:N(Bc),attributeValue:N(Bc),number:Dh,integer:N(Dh),float:N(Dh),bool:N(dn),regexp:N(dn),escape:N(dn),color:N(dn),url:N(dn),keyword:er,self:N(er),null:N(er),atom:N(er),unit:N(er),modifier:N(er),operatorKeyword:N(er),controlKeyword:N(er),definitionKeyword:N(er),moduleKeyword:N(er),operator:tr,derefOperator:N(tr),arithmeticOperator:N(tr),logicOperator:N(tr),bitwiseOperator:N(tr),compareOperator:N(tr),updateOperator:N(tr),definitionOperator:N(tr),typeOperator:N(tr),controlOperator:N(tr),punctuation:gm,separator:N(gm),bracket:Es,angleBracket:N(Es),squareBracket:N(Es),paren:N(Es),brace:N(Es),content:Ar,heading:oi,heading1:N(oi),heading2:N(oi),heading3:N(oi),heading4:N(oi),heading5:N(oi),heading6:N(oi),contentSeparator:N(Ar),list:N(Ar),quote:N(Ar),emphasis:N(Ar),strong:N(Ar),link:N(Ar),monospace:N(Ar),strikethrough:N(Ar),inserted:N(),deleted:N(),changed:N(),invalid:N(),meta:vc,documentMeta:N(vc),annotation:N(vc),processingInstruction:N(vc),definition:ir.defineModifier(),constant:ir.defineModifier(),function:ir.defineModifier(),standard:ir.defineModifier(),local:ir.defineModifier(),special:ir.defineModifier()};sF([{tag:w.link,class:"tok-link"},{tag:w.heading,class:"tok-heading"},{tag:w.emphasis,class:"tok-emphasis"},{tag:w.strong,class:"tok-strong"},{tag:w.keyword,class:"tok-keyword"},{tag:w.atom,class:"tok-atom"},{tag:w.bool,class:"tok-bool"},{tag:w.url,class:"tok-url"},{tag:w.labelName,class:"tok-labelName"},{tag:w.inserted,class:"tok-inserted"},{tag:w.deleted,class:"tok-deleted"},{tag:w.literal,class:"tok-literal"},{tag:w.string,class:"tok-string"},{tag:w.number,class:"tok-number"},{tag:[w.regexp,w.escape,w.special(w.string)],class:"tok-string2"},{tag:w.variableName,class:"tok-variableName"},{tag:w.local(w.variableName),class:"tok-variableName tok-local"},{tag:w.definition(w.variableName),class:"tok-variableName tok-definition"},{tag:w.special(w.variableName),class:"tok-variableName2"},{tag:w.definition(w.propertyName),class:"tok-propertyName tok-definition"},{tag:w.typeName,class:"tok-typeName"},{tag:w.namespace,class:"tok-namespace"},{tag:w.className,class:"tok-className"},{tag:w.macroName,class:"tok-macroName"},{tag:w.propertyName,class:"tok-propertyName"},{tag:w.operator,class:"tok-operator"},{tag:w.comment,class:"tok-comment"},{tag:w.meta,class:"tok-meta"},{tag:w.invalid,class:"tok-invalid"},{tag:w.punctuation,class:"tok-punctuation"}]);var Hh;const Oo=new oe;function lF(t){return ee.define({combine:t?e=>e.concat(t):void 0})}const U0=new oe;class LA{constructor(e,A,r=[],n=""){this.data=e,this.name=n,Be.prototype.hasOwnProperty("tree")||Object.defineProperty(Be.prototype,"tree",{get(){return kt(this)}}),this.parser=A,this.extension=[Ko.of(this),Be.languageData.of((i,o,s)=>{let l=Gy(i,o,s),a=l.type.prop(Oo);if(!a)return[];let c=i.facet(a),u=l.type.prop(U0);if(u){let f=l.resolve(o-l.from,s);for(let d of u)if(d.test(f,i)){let h=i.facet(d.facet);return d.type=="replace"?h:h.concat(c)}}return c})].concat(r)}isActiveAt(e,A,r=-1){return Gy(e,A,r).type.prop(Oo)==this.data}findRegions(e){let A=e.facet(Ko);if((A==null?void 0:A.data)==this.data)return[{from:0,to:e.doc.length}];if(!A||!A.allowsNesting)return[];let r=[],n=(i,o)=>{if(i.prop(Oo)==this.data){r.push({from:o,to:o+i.length});return}let s=i.prop(oe.mounted);if(s){if(s.tree.prop(Oo)==this.data){if(s.overlay)for(let l of s.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+i.length});return}else if(s.overlay){let l=r.length;if(n(s.tree,s.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?A:void 0)]}),e.name)}configure(e,A){return new Vo(this.data,this.parser.configure(e),A||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function kt(t){let e=t.field(LA.state,!1);return e?e.tree:_e.empty}class mZ{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,A){let r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,A):this.string.slice(e-r,A-r)}}let Fs=null;class rf{constructor(e,A,r=[],n,i,o,s,l){this.parser=e,this.state=A,this.fragments=r,this.tree=n,this.treeLen=i,this.viewport=o,this.skipped=s,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,A,r){return new rf(e,A,[],_e.empty,0,r,[],null)}startParse(){return this.parser.startParse(new mZ(this.state.doc),this.fragments)}work(e,A){return A!=null&&A>=this.state.doc.length&&(A=void 0),this.tree!=_e.empty&&this.isDone(A??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),A!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&A=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(A=this.parse.advance()););}),this.treeLen=e,this.tree=A,this.fragments=this.withoutTempSkipped(Hr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let A=Fs;Fs=this;try{return e()}finally{Fs=A}}withoutTempSkipped(e){for(let A;A=this.tempSkipped.pop();)e=zy(e,A.from,A.to);return e}changes(e,A){let{fragments:r,tree:n,treeLen:i,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((a,c,u,f)=>l.push({fromA:a,toA:c,fromB:u,toB:f})),r=Hr.applyChanges(r,l),n=_e.empty,i=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){s=[];for(let a of this.skipped){let c=e.mapPos(a.from,1),u=e.mapPos(a.to,-1);ce.from&&(this.fragments=zy(this.fragments,n,i),this.skipped.splice(r--,1))}return this.skipped.length>=A?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,A){this.skipped.push({from:e,to:A})}static getSkippingParser(e){return new class extends iF{createParse(A,r,n){let i=n[0].from,o=n[n.length-1].to;return{parsedPos:i,advance(){let l=Fs;if(l){for(let a of n)l.tempSkipped.push(a);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new _e(_t.none,[],[],o-i)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let A=this.fragments;return this.treeLen>=e&&A.length&&A[0].from==0&&A[0].to>=e}static get(){return Fs}}function zy(t,e,A){return Hr.applyChanges(t,[{fromA:e,toA:A,fromB:e,toB:A}])}class Yo{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let A=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),A.viewport.to);return A.work(20,r)||A.takeTree(),new Yo(A)}static init(e){let A=Math.min(3e3,e.doc.length),r=rf.create(e.facet(Ko).parser,e,{from:0,to:A});return r.work(20,A)||r.takeTree(),new Yo(r)}}LA.state=yr.define({create:Yo.init,update(t,e){for(let A of e.effects)if(A.is(LA.setState))return A.value;return e.startState.facet(Ko)!=e.state.facet(Ko)?Yo.init(e.state):t.apply(e)}});let aF=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(aF=t=>{let e=-1,A=setTimeout(()=>{e=requestIdleCallback(t,{timeout:500-100})},100);return()=>e<0?clearTimeout(A):cancelIdleCallback(e)});const Lh=typeof navigator<"u"&&(!((Hh=navigator.scheduling)===null||Hh===void 0)&&Hh.isInputPending)?()=>navigator.scheduling.isInputPending():null,OZ=Gn.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let A=this.view.state.field(LA.state).context;(A.updateViewport(e.view.viewport)||this.view.viewport.to>A.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(A)}scheduleWork(){if(this.working)return;let{state:e}=this.view,A=e.field(LA.state);(A.tree!=A.context.tree||!A.context.isDone(e.doc.length))&&(this.working=aF(this.work))}work(e){this.working=null;let A=Date.now();if(this.chunkEndn+1e3,l=i.context.work(()=>Lh&&Lh()||Date.now()>o,n+(s?0:1e5));this.chunkBudget-=Date.now()-A,(l||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:LA.setState.of(new Yo(i.context))})),this.chunkBudget>0&&!(l&&!s)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(A=>_n(this.view.state,A)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ko=ee.define({combine(t){return t.length?t[0]:null},enables:t=>[LA.state,OZ,Ae.contentAttributes.compute([t],e=>{let A=e.facet(t);return A&&A.name?{"data-language":A.name}:{}})]});class E0{constructor(e,A=[]){this.language=e,this.support=A,this.extension=[e,A]}}const wZ=ee.define(),ld=ee.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(A=>A!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function nf(t){let e=t.facet(ld);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function of(t,e){let A="",r=t.tabSize,n=t.facet(ld)[0];if(n==" "){for(;e>=r;)A+=" ",e-=r;n=" "}for(let i=0;i=e?BZ(t,A,e):null}class ad{constructor(e,A={}){this.state=e,this.options=A,this.unit=nf(e)}lineAt(e,A=1){let r=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:i}=this.options;return n!=null&&n>=r.from&&n<=r.to?i&&n==e?{text:"",from:e}:(A<0?n-1&&(i+=o-this.countColumn(r,r.search(/\S|$/))),i}countColumn(e,A=e.length){return rd(e,this.state.tabSize,A)}lineIndent(e,A=1){let{text:r,from:n}=this.lineAt(e,A),i=this.options.overrideIndentation;if(i){let o=i(n);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const cd=new oe;function BZ(t,e,A){let r=e.resolveStack(A),n=r.node.enterUnfinishedNodesBefore(A);if(n!=r.node){let i=[];for(let o=n;o!=r.node;o=o.parent)i.push(o);for(let o=i.length-1;o>=0;o--)r={node:i[o],next:r}}return uF(r,t,A)}function uF(t,e,A){for(let r=t;r;r=r.next){let n=yZ(r.node);if(n)return n(F0.create(e,A,r))}return 0}function vZ(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function yZ(t){let e=t.type.prop(cd);if(e)return e;let A=t.firstChild,r;if(A&&(r=A.type.prop(oe.closedBy))){let n=t.lastChild,i=n&&r.indexOf(n.name)>-1;return o=>fF(o,!0,1,void 0,i&&!vZ(o)?n.from:void 0)}return t.parent==null?QZ:null}function QZ(){return 0}class F0 extends ad{constructor(e,A,r){super(e.state,e.options),this.base=e,this.pos=A,this.context=r}get node(){return this.context.node}static create(e,A,r){return new F0(e,A,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let A=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(A.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(CZ(r,e))break;A=this.state.doc.lineAt(r.from)}return this.lineIndent(A.from)}continue(){return uF(this.context.next,this.base,this.pos)}}function CZ(t,e){for(let A=e;A;A=A.parent)if(t==A)return!0;return!1}function bZ(t){let e=t.node,A=e.childAfter(e.from),r=e.lastChild;if(!A)return null;let n=t.options.simulateBreak,i=t.state.doc.lineAt(A.from),o=n==null||n<=i.from?i.to:Math.min(i.to,n);for(let s=A.to;;){let l=e.childAfter(s);if(!l||l==r)return null;if(!l.type.isSkipped)return l.fromfF(r,e,A,t)}function fF(t,e,A,r,n){let i=t.textAfter,o=i.match(/^\s*/)[0].length,s=r&&i.slice(o,o+r.length)==r||n==t.pos+o,l=e?bZ(t):null;return l?s?t.column(l.from):t.column(l.to):t.baseIndent+(s?0:t.unit*A)}const xZ=t=>t.baseIndent;function tu({except:t,units:e=1}={}){return A=>{let r=t&&t.test(A.textAfter);return A.baseIndent+(r?0:e*A.unit)}}const $0=new oe;function dF(t){let e=t.firstChild,A=t.lastChild;return e&&e.tos.prop(Oo)==o.data:o?s=>s==o:void 0,this.style=sF(e.map(s=>({tag:s.tag,class:s.class||n(Object.assign({},s,{tag:null}))})),{all:i}).style,this.module=r?new Kn(r):null,this.themeType=A.themeType}static define(e,A){return new ud(e,A||{})}}const mm=ee.define(),hF=ee.define({combine(t){return t.length?[t[0]]:null}});function _h(t){let e=t.facet(mm);return e.length?e:t.facet(hF)}function UZ(t,e){let A=[FZ],r;return t instanceof ud&&(t.module&&A.push(Ae.styleModule.of(t.module)),r=t.themeType),e!=null&&e.fallback?A.push(hF.of(t)):r?A.push(mm.computeN([Ae.darkTheme],n=>n.facet(Ae.darkTheme)==(r=="dark")?[t]:[])):A.push(mm.of(t)),A}class EZ{constructor(e){this.markCache=Object.create(null),this.tree=kt(e.state),this.decorations=this.buildDeco(e,_h(e.state))}update(e){let A=kt(e.state),r=_h(e.state),n=r!=_h(e.startState);A.length{r.add(o,s,this.markCache[l]||(this.markCache[l]=Je.mark({class:l})))},n,i);return r.finish()}}const FZ=td.high(Gn.fromClass(EZ,{decorations:t=>t.decorations})),$Z=Ae.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),pF=1e4,gF="()[]{}",mF=ee.define({combine(t){return p0(t,{afterCursor:!0,brackets:gF,maxScanDistance:pF,renderMatch:TZ})}}),kZ=Je.mark({class:"cm-matchingBracket"}),PZ=Je.mark({class:"cm-nonmatchingBracket"});function TZ(t){let e=[],A=t.matched?kZ:PZ;return e.push(A.range(t.start.from,t.start.to)),t.end&&e.push(A.range(t.end.from,t.end.to)),e}const IZ=yr.define({create(){return Je.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let A=[],r=e.state.facet(mF);for(let n of e.state.selection.ranges){if(!n.empty)continue;let i=ur(e.state,n.head,-1,r)||n.head>0&&ur(e.state,n.head-1,1,r)||r.afterCursor&&(ur(e.state,n.head,1,r)||n.headAe.decorations.from(t)}),RZ=[IZ,$Z];function DZ(t={}){return[mF.of(t),RZ]}const OF=new oe;function Om(t,e,A){let r=t.prop(e<0?oe.openedBy:oe.closedBy);if(r)return r;if(t.name.length==1){let n=A.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[A[n+e]]}return null}function wm(t){let e=t.type.prop(OF);return e?e(t.node):t}function ur(t,e,A,r={}){let n=r.maxScanDistance||pF,i=r.brackets||gF,o=kt(t),s=o.resolveInner(e,A);for(let l=s;l;l=l.parent){let a=Om(l.type,A,i);if(a&&l.from0?e>=c.from&&ec.from&&e<=c.to))return HZ(t,e,A,l,c,a,i)}}return LZ(t,e,A,o,s.type,n,i)}function HZ(t,e,A,r,n,i,o){let s=r.parent,l={from:n.from,to:n.to},a=0,c=s==null?void 0:s.cursor();if(c&&(A<0?c.childBefore(r.from):c.childAfter(r.to)))do if(A<0?c.to<=r.from:c.from>=r.to){if(a==0&&i.indexOf(c.type.name)>-1&&c.from0)return null;let a={from:A<0?e-1:e,to:A>0?e+1:e},c=t.doc.iterRange(e,A>0?t.doc.length:0),u=0;for(let f=0;!c.next().done&&f<=i;){let d=c.value;A<0&&(f+=d.length);let h=e+f*A;for(let g=A>0?0:d.length-1,B=A>0?d.length:-1;g!=B;g+=A){let m=o.indexOf(d[g]);if(!(m<0||r.resolveInner(h+g,1).type!=n))if(m%2==0==A>0)u++;else{if(u==1)return{start:a,end:{from:h+g,to:h+g+1},matched:m>>1==l>>1};u--}}A>0&&(f+=d.length)}return c.done?{start:a,matched:!1}:null}const _Z=Object.create(null),qy=[_t.none],Jy=[],NZ=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])NZ[t]=MZ(_Z,e);function Nh(t,e){Jy.indexOf(t)>-1||(Jy.push(t),console.warn(e))}function MZ(t,e){let A=[];for(let i of e.split(" ")){let o=[];for(let s of i.split(".")){let l=t[s]||w[s];l?typeof l=="function"?o.length?o=o.map(l):Nh(s,`Modifier ${s} used at start of tag`):o.length?Nh(s,`Tag ${s} used as modifier`):o=Array.isArray(l)?l:[l]:Nh(s,`Unknown highlighting tag ${s}`)}for(let s of o)A.push(s)}if(!A.length)return 0;let r=e.replace(/ /g,"_"),n=_t.define({id:qy.length,name:r,props:[sd({[r]:A})]});return qy.push(n),n.id}const Pt=({variant:t,settings:e,styles:A})=>{const r=Ae.theme({"&":{backgroundColor:e.background,color:e.foreground},".cm-content":{caretColor:e.caret},".cm-cursor, .cm-dropCursor":{borderLeftColor:e.caret},"&.cm-focused .cm-selectionBackgroundm .cm-selectionBackground, .cm-content ::selection":{backgroundColor:e.selection},".cm-activeLine":{backgroundColor:e.lineHighlight},".cm-gutters":{backgroundColor:e.gutterBackground,color:e.gutterForeground},".cm-activeLineGutter":{backgroundColor:e.lineHighlight}},{dark:t==="dark"}),n=ud.define(A);return[r,UZ(n)]};Pt({variant:"dark",settings:{background:"#200020",foreground:"#D0D0FF",caret:"#7070FF",selection:"#80000080",gutterBackground:"#200020",gutterForeground:"#C080C0",lineHighlight:"#80000040"},styles:[{tag:w.comment,color:"#404080"},{tag:[w.string,w.regexp],color:"#999999"},{tag:w.number,color:"#7090B0"},{tag:[w.bool,w.null],color:"#8080A0"},{tag:[w.punctuation,w.derefOperator],color:"#805080"},{tag:w.keyword,color:"#60B0FF"},{tag:w.definitionKeyword,color:"#B0FFF0"},{tag:w.moduleKeyword,color:"#60B0FF"},{tag:w.operator,color:"#A0A0FF"},{tag:[w.variableName,w.self],color:"#008080"},{tag:w.operatorKeyword,color:"#A0A0FF"},{tag:w.controlKeyword,color:"#80A0FF"},{tag:w.className,color:"#70E080"},{tag:[w.function(w.propertyName),w.propertyName],color:"#50A0A0"},{tag:w.tagName,color:"#009090"},{tag:w.modifier,color:"#B0FFF0"},{tag:[w.squareBracket,w.attributeName],color:"#D0D0FF"}]});Pt({variant:"light",settings:{background:"#fcfcfc",foreground:"#5c6166",caret:"#ffaa33",selection:"#036dd626",gutterBackground:"#fcfcfc",gutterForeground:"#8a919966",lineHighlight:"#8a91991a"},styles:[{tag:w.comment,color:"#787b8099"},{tag:w.string,color:"#86b300"},{tag:w.regexp,color:"#4cbf99"},{tag:[w.number,w.bool,w.null],color:"#ffaa33"},{tag:w.variableName,color:"#5c6166"},{tag:[w.definitionKeyword,w.modifier],color:"#fa8d3e"},{tag:[w.keyword,w.special(w.brace)],color:"#fa8d3e"},{tag:w.operator,color:"#ed9366"},{tag:w.separator,color:"#5c6166b3"},{tag:w.punctuation,color:"#5c6166"},{tag:[w.definition(w.propertyName),w.function(w.variableName)],color:"#f2ae49"},{tag:[w.className,w.definition(w.typeName)],color:"#22a4e6"},{tag:[w.tagName,w.typeName,w.self,w.labelName],color:"#55b4d4"},{tag:w.angleBracket,color:"#55b4d480"},{tag:w.attributeName,color:"#f2ae49"}]});Pt({variant:"dark",settings:{background:"#15191EFA",foreground:"#EEF2F7",caret:"#C4C4C4",selection:"#90B2D557",gutterBackground:"#15191EFA",gutterForeground:"#aaaaaa95",lineHighlight:"#57575712"},styles:[{tag:w.comment,color:"#6E6E6E"},{tag:[w.string,w.regexp,w.special(w.brace)],color:"#5C81B3"},{tag:w.number,color:"#C1E1B8"},{tag:w.bool,color:"#53667D"},{tag:[w.definitionKeyword,w.modifier,w.function(w.propertyName)],color:"#A3D295",fontWeight:"bold"},{tag:[w.keyword,w.moduleKeyword,w.operatorKeyword,w.operator],color:"#697A8E",fontWeight:"bold"},{tag:[w.variableName,w.attributeName],color:"#708E67"},{tag:[w.function(w.variableName),w.definition(w.propertyName),w.derefOperator],color:"#fff"},{tag:w.tagName,color:"#A3D295"}]});Pt({variant:"dark",settings:{background:"#2e241d",foreground:"#BAAE9E",caret:"#A7A7A7",selection:"#DDF0FF33",gutterBackground:"#28211C",gutterForeground:"#BAAE9E90",lineHighlight:"#FFFFFF08"},styles:[{tag:w.comment,color:"#666666"},{tag:[w.string,w.special(w.brace)],color:"#54BE0D"},{tag:w.regexp,color:"#E9C062"},{tag:w.number,color:"#CF6A4C"},{tag:[w.keyword,w.operator],color:"#5EA6EA"},{tag:w.variableName,color:"#7587A6"},{tag:[w.definitionKeyword,w.modifier],color:"#F9EE98"},{tag:[w.propertyName,w.function(w.variableName)],color:"#937121"},{tag:[w.typeName,w.angleBracket,w.tagName],color:"#9B859D"}]});Pt({variant:"dark",settings:{background:"#3b2627",foreground:"#E6E1C4",caret:"#E6E1C4",selection:"#16120E",gutterBackground:"#3b2627",gutterForeground:"#E6E1C490",lineHighlight:"#1F1611"},styles:[{tag:w.comment,color:"#6B4E32"},{tag:[w.keyword,w.operator,w.derefOperator],color:"#EF5D32"},{tag:w.className,color:"#EFAC32",fontWeight:"bold"},{tag:[w.typeName,w.propertyName,w.function(w.variableName),w.definition(w.variableName)],color:"#EFAC32"},{tag:w.definition(w.typeName),color:"#EFAC32",fontWeight:"bold"},{tag:w.labelName,color:"#EFAC32",fontWeight:"bold"},{tag:[w.number,w.bool],color:"#6C99BB"},{tag:[w.variableName,w.self],color:"#7DAF9C"},{tag:[w.string,w.special(w.brace),w.regexp],color:"#D9D762"},{tag:[w.angleBracket,w.tagName,w.attributeName],color:"#EFCB43"}]});Pt({variant:"dark",settings:{background:"#000205",foreground:"#FFFFFF",caret:"#E60065",selection:"#E60C6559",gutterBackground:"#000205",gutterForeground:"#ffffff90",lineHighlight:"#4DD7FC1A"},styles:[{tag:w.comment,color:"#404040"},{tag:[w.string,w.special(w.brace),w.regexp],color:"#00D8FF"},{tag:w.number,color:"#E62286"},{tag:[w.variableName,w.attributeName,w.self],color:"#E62286",fontWeight:"bold"},{tag:w.function(w.variableName),color:"#fff",fontWeight:"bold"}]});Pt({variant:"light",settings:{background:"#fff",foreground:"#000",caret:"#000",selection:"#BDD5FC",gutterBackground:"#fff",gutterForeground:"#00000070",lineHighlight:"#FFFBD1"},styles:[{tag:w.comment,color:"#BCC8BA"},{tag:[w.string,w.special(w.brace),w.regexp],color:"#5D90CD"},{tag:[w.number,w.bool,w.null],color:"#46A609"},{tag:w.keyword,color:"#AF956F"},{tag:[w.definitionKeyword,w.modifier],color:"#C52727"},{tag:[w.angleBracket,w.tagName,w.attributeName],color:"#606060"},{tag:w.self,color:"#000"}]});const ZZ=Pt({variant:"dark",settings:{background:"#00254b",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#B36539BF",gutterBackground:"#00254b",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},styles:[{tag:w.comment,color:"#0088FF"},{tag:w.string,color:"#3AD900"},{tag:w.regexp,color:"#80FFC2"},{tag:[w.number,w.bool,w.null],color:"#FF628C"},{tag:[w.definitionKeyword,w.modifier],color:"#FFEE80"},{tag:w.variableName,color:"#CCCCCC"},{tag:w.self,color:"#FF80E1"},{tag:[w.className,w.definition(w.propertyName),w.function(w.variableName),w.definition(w.typeName),w.labelName],color:"#FFDD00"},{tag:[w.keyword,w.operator],color:"#FF9D00"},{tag:[w.propertyName,w.typeName],color:"#80FFBB"},{tag:w.special(w.brace),color:"#EDEF7D"},{tag:w.attributeName,color:"#9EFFFF"},{tag:w.derefOperator,color:"#fff"}]});Pt({variant:"dark",settings:{background:"#060521",foreground:"#E0E0E0",caret:"#FFFFFFA6",selection:"#122BBB",gutterBackground:"#060521",gutterForeground:"#E0E0E090",lineHighlight:"#FFFFFF0F"},styles:[{tag:w.comment,color:"#AEAEAE"},{tag:[w.string,w.special(w.brace),w.regexp],color:"#8DFF8E"},{tag:[w.className,w.definition(w.propertyName),w.function(w.variableName),w.function(w.definition(w.variableName)),w.definition(w.typeName)],color:"#A3EBFF"},{tag:[w.number,w.bool,w.null],color:"#62E9BD"},{tag:[w.keyword,w.operator],color:"#2BF1DC"},{tag:[w.definitionKeyword,w.modifier],color:"#F8FBB1"},{tag:[w.variableName,w.self],color:"#B683CA"},{tag:[w.angleBracket,w.tagName,w.typeName,w.propertyName],color:"#60A4F1"},{tag:w.derefOperator,color:"#E0E0E0"},{tag:w.attributeName,color:"#7BACCA"}]});Pt({variant:"dark",settings:{background:"#2d2f3f",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"#44475a",gutterBackground:"#282a36",gutterForeground:"rgb(144, 145, 148)",lineHighlight:"#44475a"},styles:[{tag:w.comment,color:"#6272a4"},{tag:[w.string,w.special(w.brace)],color:"#f1fa8c"},{tag:[w.number,w.self,w.bool,w.null],color:"#bd93f9"},{tag:[w.keyword,w.operator],color:"#ff79c6"},{tag:[w.definitionKeyword,w.typeName],color:"#8be9fd"},{tag:w.definition(w.typeName),color:"#f8f8f2"},{tag:[w.className,w.definition(w.propertyName),w.function(w.variableName),w.attributeName],color:"#50fa7b"}]});const XZ=Pt({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#80C7FF",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#C1E2F8"},styles:[{tag:w.comment,color:"#AAAAAA"},{tag:[w.keyword,w.operator,w.typeName,w.tagName,w.propertyName],color:"#2F6F9F",fontWeight:"bold"},{tag:[w.attributeName,w.definition(w.propertyName)],color:"#4F9FD0"},{tag:[w.className,w.string,w.special(w.brace)],color:"#CF4F5F"},{tag:w.number,color:"#CF4F5F",fontWeight:"bold"},{tag:w.variableName,fontWeight:"bold"}]});Pt({variant:"light",settings:{background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},styles:[{tag:w.comment,color:"#9995b7"},{tag:w.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[w.definitionKeyword,w.modifier],color:"#ff5792"},{tag:[w.className,w.tagName,w.definition(w.typeName)],color:"#0094f0"},{tag:[w.number,w.bool,w.null,w.special(w.brace)],color:"#5842ff"},{tag:[w.definition(w.propertyName),w.function(w.variableName)],color:"#0095a8"},{tag:w.typeName,color:"#b3694d"},{tag:[w.propertyName,w.variableName],color:"#fa8900"},{tag:w.operator,color:"#ff5792"},{tag:w.self,color:"#e64100"},{tag:[w.string,w.regexp],color:"#00b368"},{tag:[w.paren,w.bracket],color:"#0431fa"},{tag:w.labelName,color:"#00bdd6"},{tag:w.attributeName,color:"#e64100"},{tag:w.angleBracket,color:"#9995b7"}]});Pt({variant:"light",settings:{background:"#faf4ed",foreground:"#575279",caret:"#575279",selection:"#6e6a8614",gutterBackground:"#faf4ed",gutterForeground:"#57527970",lineHighlight:"#6e6a860d"},styles:[{tag:w.comment,color:"#9893a5"},{tag:[w.bool,w.null],color:"#286983"},{tag:w.number,color:"#d7827e"},{tag:w.className,color:"#d7827e"},{tag:[w.angleBracket,w.tagName,w.typeName],color:"#56949f"},{tag:w.attributeName,color:"#907aa9"},{tag:w.punctuation,color:"#797593"},{tag:[w.keyword,w.modifier],color:"#286983"},{tag:[w.string,w.regexp],color:"#ea9d34"},{tag:w.variableName,color:"#d7827e"}]});Pt({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#FFFD0054",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#00000008"},styles:[{tag:w.comment,color:"#CFCFCF"},{tag:[w.number,w.bool,w.null],color:"#E66C29"},{tag:[w.className,w.definition(w.propertyName),w.function(w.variableName),w.labelName,w.definition(w.typeName)],color:"#2EB43B"},{tag:w.keyword,color:"#D8B229"},{tag:w.operator,color:"#4EA44E",fontWeight:"bold"},{tag:[w.definitionKeyword,w.modifier],color:"#925A47"},{tag:w.string,color:"#704D3D"},{tag:w.typeName,color:"#2F8996"},{tag:[w.variableName,w.propertyName],color:"#77ACB0"},{tag:w.self,color:"#77ACB0",fontWeight:"bold"},{tag:w.regexp,color:"#E3965E"},{tag:[w.tagName,w.angleBracket],color:"#BAA827"},{tag:w.attributeName,color:"#B06520"},{tag:w.derefOperator,color:"#000"}]});Pt({variant:"light",settings:{background:"#fef7e5",foreground:"#586E75",caret:"#000000",selection:"#073642",gutterBackground:"#fef7e5",gutterForeground:"#586E7580",lineHighlight:"#EEE8D5"},styles:[{tag:w.comment,color:"#93A1A1"},{tag:w.string,color:"#2AA198"},{tag:w.regexp,color:"#D30102"},{tag:w.number,color:"#D33682"},{tag:w.variableName,color:"#268BD2"},{tag:[w.keyword,w.operator,w.punctuation],color:"#859900"},{tag:[w.definitionKeyword,w.modifier],color:"#073642",fontWeight:"bold"},{tag:[w.className,w.self,w.definition(w.propertyName)],color:"#268BD2"},{tag:w.function(w.variableName),color:"#268BD2"},{tag:[w.bool,w.null],color:"#B58900"},{tag:w.tagName,color:"#268BD2",fontWeight:"bold"},{tag:w.angleBracket,color:"#93A1A1"},{tag:w.attributeName,color:"#93A1A1"},{tag:w.typeName,color:"#859900"}]});Pt({variant:"light",settings:{background:"#FFFFFF",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C80",lineHighlight:"#EFEFEF"},styles:[{tag:w.comment,color:"#8E908C"},{tag:[w.variableName,w.self,w.propertyName,w.attributeName,w.regexp],color:"#C82829"},{tag:[w.number,w.bool,w.null],color:"#F5871F"},{tag:[w.className,w.typeName,w.definition(w.typeName)],color:"#C99E00"},{tag:[w.string,w.special(w.brace)],color:"#718C00"},{tag:w.operator,color:"#3E999F"},{tag:[w.definition(w.propertyName),w.function(w.variableName)],color:"#4271AE"},{tag:w.keyword,color:"#8959A8"},{tag:w.derefOperator,color:"#4D4D4C"}]});const VZ=t=>{let{state:e}=t,A=e.doc.lineAt(e.selection.main.from),r=P0(t.state,A.from);return r.line?YZ(t):r.block?WZ(t):!1};function k0(t,e){return({state:A,dispatch:r})=>{if(A.readOnly)return!1;let n=t(e,A);return n?(r(A.update(n)),!0):!1}}const YZ=k0(zZ,0),KZ=k0(wF,0),WZ=k0((t,e)=>wF(t,e,GZ(e)),0);function P0(t,e){let A=t.languageDataAt("commentTokens",e);return A.length?A[0]:{}}const $s=50;function jZ(t,{open:e,close:A},r,n){let i=t.sliceDoc(r-$s,r),o=t.sliceDoc(n,n+$s),s=/\s*$/.exec(i)[0].length,l=/^\s*/.exec(o)[0].length,a=i.length-s;if(i.slice(a-e.length,a)==e&&o.slice(l,l+A.length)==A)return{open:{pos:r-s,margin:s&&1},close:{pos:n+l,margin:l&&1}};let c,u;n-r<=2*$s?c=u=t.sliceDoc(r,n):(c=t.sliceDoc(r,r+$s),u=t.sliceDoc(n-$s,n));let f=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(u)[0].length,h=u.length-d-A.length;return c.slice(f,f+e.length)==e&&u.slice(h,h+A.length)==A?{open:{pos:r+f+e.length,margin:/\s/.test(c.charAt(f+e.length))?1:0},close:{pos:n-d-A.length,margin:/\s/.test(u.charAt(h-1))?1:0}}:null}function GZ(t){let e=[];for(let A of t.selection.ranges){let r=t.doc.lineAt(A.from),n=A.to<=r.to?r:t.doc.lineAt(A.to),i=e.length-1;i>=0&&e[i].to>r.from?e[i].to=n.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return e}function wF(t,e,A=e.selection.ranges){let r=A.map(i=>P0(e,i.from).block);if(!r.every(i=>i))return null;let n=A.map((i,o)=>jZ(e,r[o],i.from,i.to));if(t!=2&&!n.every(i=>i))return{changes:e.changes(A.map((i,o)=>n[o]?[]:[{from:i.from,insert:r[o].open+" "},{from:i.to,insert:" "+r[o].close}]))};if(t!=1&&n.some(i=>i)){let i=[];for(let o=0,s;on&&(i==o||o>u.from)){n=u.from;let f=/^\s*/.exec(u.text)[0].length,d=f==u.length,h=u.text.slice(f,f+a.length)==a?f:-1;fi.comment<0&&(!i.empty||i.single))){let i=[];for(let{line:s,token:l,indent:a,empty:c,single:u}of r)(u||!c)&&i.push({from:s.from+a,insert:l+" "});let o=e.changes(i);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&r.some(i=>i.comment>=0)){let i=[];for(let{line:o,comment:s,token:l}of r)if(s>=0){let a=o.from+s,c=a+l.length;o.text[c-o.from]==" "&&c++,i.push({from:a,to:c})}return{changes:i}}return null}const Bm=en.define(),qZ=en.define(),JZ=ee.define(),BF=ee.define({combine(t){return p0(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,A)=>A},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,A)=>(r,n)=>e(r,n)||A(r,n)})}});function e6(t){let e=0;return t.iterChangedRanges((A,r)=>e=r),e}const vF=yr.define({create(){return fr.empty},update(t,e){let A=e.state.facet(BF),r=e.annotation(Bm);if(r){let l=e.docChanged?D.single(e6(e.changes)):void 0,a=Wt.fromTransaction(e,l),c=r.side,u=c==0?t.undone:t.done;return a?u=sf(u,u.length,A.minDepth,a):u=SF(u,e.startState.selection),new fr(c==0?r.rest:u,c==0?u:r.rest)}let n=e.annotation(qZ);if((n=="full"||n=="before")&&(t=t.isolate()),e.annotation(it.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let i=Wt.fromTransaction(e),o=e.annotation(it.time),s=e.annotation(it.userEvent);return i?t=t.addChanges(i,o,s,A,e):e.selection&&(t=t.addSelection(e.startState.selection,o,s,A.newGroupDelay)),(n=="full"||n=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new fr(t.done.map(Wt.fromJSON),t.undone.map(Wt.fromJSON))}});function t6(t={}){return[vF,BF.of(t),Ae.domEventHandlers({beforeinput(e,A){let r=e.inputType=="historyUndo"?QF:e.inputType=="historyRedo"?CF:null;return r?(e.preventDefault(),r(A)):!1}})]}function yF(t,e){return function({state:A,dispatch:r}){if(!e&&A.readOnly)return!1;let n=A.field(vF,!1);if(!n)return!1;let i=n.pop(t,A,e);return i?(r(i),!0):!1}}const QF=yF(0,!1),CF=yF(1,!1);class Wt{constructor(e,A,r,n,i){this.changes=e,this.effects=A,this.mapped=r,this.startSelection=n,this.selectionsAfter=i}setSelAfter(e){return new Wt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,A,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(A=this.mapped)===null||A===void 0?void 0:A.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(n=>n.toJSON())}}static fromJSON(e){return new Wt(e.changes&&At.fromJSON(e.changes),[],e.mapped&&gr.fromJSON(e.mapped),e.startSelection&&D.fromJSON(e.startSelection),e.selectionsAfter.map(D.fromJSON))}static fromTransaction(e,A){let r=SA;for(let n of e.startState.facet(JZ)){let i=n(e);i.length&&(r=r.concat(i))}return!r.length&&e.changes.empty?null:new Wt(e.changes.invert(e.startState.doc),r,void 0,A||e.startState.selection,SA)}static selection(e){return new Wt(void 0,SA,void 0,void 0,e)}}function sf(t,e,A,r){let n=e+1>A+20?e-A-1:0,i=t.slice(n,e);return i.push(r),i}function A6(t,e){let A=[],r=!1;return t.iterChangedRanges((n,i)=>A.push(n,i)),e.iterChangedRanges((n,i,o,s)=>{for(let l=0;l=a&&o<=c&&(r=!0)}}),r}function r6(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((A,r)=>A.empty!=e.ranges[r].empty).length===0}function bF(t,e){return t.length?e.length?t.concat(e):t:e}const SA=[],n6=200;function SF(t,e){if(t.length){let A=t[t.length-1],r=A.selectionsAfter.slice(Math.max(0,A.selectionsAfter.length-n6));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),sf(t,t.length-1,1e9,A.setSelAfter(r)))}else return[Wt.selection([e])]}function i6(t){let e=t[t.length-1],A=t.slice();return A[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),A}function Mh(t,e){if(!t.length)return t;let A=t.length,r=SA;for(;A;){let n=o6(t[A-1],e,r);if(n.changes&&!n.changes.empty||n.effects.length){let i=t.slice(0,A);return i[A-1]=n,i}else e=n.mapped,A--,r=n.selectionsAfter}return r.length?[Wt.selection(r)]:SA}function o6(t,e,A){let r=bF(t.selectionsAfter.length?t.selectionsAfter.map(s=>s.map(e)):SA,A);if(!t.changes)return Wt.selection(r);let n=t.changes.map(e),i=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(i):i;return new Wt(n,Xe.mapEffects(t.effects,e),o,t.startSelection.map(i),r)}const s6=/^(input\.type|delete)($|\.)/;class fr{constructor(e,A,r=0,n=void 0){this.done=e,this.undone=A,this.prevTime=r,this.prevUserEvent=n}isolate(){return this.prevTime?new fr(this.done,this.undone):this}addChanges(e,A,r,n,i){let o=this.done,s=o[o.length-1];return s&&s.changes&&!s.changes.empty&&e.changes&&(!r||s6.test(r))&&(!s.selectionsAfter.length&&A-this.prevTime0&&A-this.prevTimeA.empty?t.moveByChar(A,e):fd(A,e))}function Tt(t){return t.textDirectionAt(t.state.selection.main.head)==Ot.LTR}const UF=t=>xF(t,!Tt(t)),EF=t=>xF(t,Tt(t));function FF(t,e){return jA(t,A=>A.empty?t.moveByGroup(A,e):fd(A,e))}const l6=t=>FF(t,!Tt(t)),a6=t=>FF(t,Tt(t));function c6(t,e,A){if(e.type.prop(A))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function dd(t,e,A){let r=kt(t).resolveInner(e.head),n=A?oe.closedBy:oe.openedBy;for(let l=e.head;;){let a=A?r.childAfter(l):r.childBefore(l);if(!a)break;c6(t,a,n)?r=a:l=A?a.to:a.from}let i=r.type.prop(n),o,s;return i&&(o=A?ur(t,r.from,1):ur(t,r.to,-1))&&o.matched?s=A?o.end.to:o.end.from:s=A?r.to:r.from,D.cursor(s,A?-1:1)}const u6=t=>jA(t,e=>dd(t.state,e,!Tt(t))),f6=t=>jA(t,e=>dd(t.state,e,Tt(t)));function $F(t,e){return jA(t,A=>{if(!A.empty)return fd(A,e);let r=t.moveVertically(A,e);return r.head!=A.head?r:t.moveToLineBoundary(A,e)})}const kF=t=>$F(t,!1),PF=t=>$F(t,!0);function TF(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,A.height):fd(o,e));if(n.eq(r.selection))return!1;let i;if(A.selfScroll){let o=t.coordsAtPos(r.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),l=s.top+A.marginTop,a=s.bottom-A.marginBottom;o&&o.top>l&&o.bottomIF(t,!1),vm=t=>IF(t,!0);function ni(t,e,A){let r=t.lineBlockAt(e.head),n=t.moveToLineBoundary(e,A);if(n.head==e.head&&n.head!=(A?r.to:r.from)&&(n=t.moveToLineBoundary(e,A,!1)),!A&&n.head==r.from&&r.length){let i=/^\s*/.exec(t.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;i&&e.head!=r.from+i&&(n=D.cursor(r.from+i))}return n}const d6=t=>jA(t,e=>ni(t,e,!0)),h6=t=>jA(t,e=>ni(t,e,!1)),p6=t=>jA(t,e=>ni(t,e,!Tt(t))),g6=t=>jA(t,e=>ni(t,e,Tt(t))),m6=t=>jA(t,e=>D.cursor(t.lineBlockAt(e.head).from,1)),O6=t=>jA(t,e=>D.cursor(t.lineBlockAt(e.head).to,-1));function w6(t,e,A){let r=!1,n=as(t.selection,i=>{let o=ur(t,i.head,-1)||ur(t,i.head,1)||i.head>0&&ur(t,i.head-1,1)||i.headw6(t,e,!1);function kA(t,e){let A=as(t.state.selection,r=>{let n=e(r);return D.range(r.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)});return A.eq(t.state.selection)?!1:(t.dispatch(Qr(t.state,A)),!0)}function RF(t,e){return kA(t,A=>t.moveByChar(A,e))}const DF=t=>RF(t,!Tt(t)),HF=t=>RF(t,Tt(t));function LF(t,e){return kA(t,A=>t.moveByGroup(A,e))}const v6=t=>LF(t,!Tt(t)),y6=t=>LF(t,Tt(t)),Q6=t=>kA(t,e=>dd(t.state,e,!Tt(t))),C6=t=>kA(t,e=>dd(t.state,e,Tt(t)));function _F(t,e){return kA(t,A=>t.moveVertically(A,e))}const NF=t=>_F(t,!1),MF=t=>_F(t,!0);function ZF(t,e){return kA(t,A=>t.moveVertically(A,e,TF(t).height))}const tQ=t=>ZF(t,!1),AQ=t=>ZF(t,!0),b6=t=>kA(t,e=>ni(t,e,!0)),S6=t=>kA(t,e=>ni(t,e,!1)),x6=t=>kA(t,e=>ni(t,e,!Tt(t))),U6=t=>kA(t,e=>ni(t,e,Tt(t))),E6=t=>kA(t,e=>D.cursor(t.lineBlockAt(e.head).from)),F6=t=>kA(t,e=>D.cursor(t.lineBlockAt(e.head).to)),rQ=({state:t,dispatch:e})=>(e(Qr(t,{anchor:0})),!0),nQ=({state:t,dispatch:e})=>(e(Qr(t,{anchor:t.doc.length})),!0),iQ=({state:t,dispatch:e})=>(e(Qr(t,{anchor:t.selection.main.anchor,head:0})),!0),oQ=({state:t,dispatch:e})=>(e(Qr(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),$6=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),k6=({state:t,dispatch:e})=>{let A=hd(t).map(({from:r,to:n})=>D.range(r,Math.min(n+1,t.doc.length)));return e(t.update({selection:D.create(A),userEvent:"select"})),!0},P6=({state:t,dispatch:e})=>{let A=as(t.selection,r=>{var n;let i=kt(t).resolveStack(r.from,1);for(let o=i;o;o=o.next){let{node:s}=o;if((s.from=r.to||s.to>r.to&&s.from<=r.from)&&(!((n=s.parent)===null||n===void 0)&&n.parent))return D.range(s.to,s.from)}return r});return e(Qr(t,A)),!0},T6=({state:t,dispatch:e})=>{let A=t.selection,r=null;return A.ranges.length>1?r=D.create([A.main]):A.main.empty||(r=D.create([D.cursor(A.main.head)])),r?(e(Qr(t,r)),!0):!1};function la(t,e){if(t.state.readOnly)return!1;let A="delete.selection",{state:r}=t,n=r.changeByRange(i=>{let{from:o,to:s}=i;if(o==s){let l=e(i);lo&&(A="delete.forward",l=yc(t,l,!0)),o=Math.min(o,l),s=Math.max(s,l)}else o=yc(t,o,!1),s=yc(t,s,!0);return o==s?{range:i}:{changes:{from:o,to:s},range:D.cursor(o,on(t)))r.between(e,e,(n,i)=>{ne&&(e=A?i:n)});return e}const XF=(t,e)=>la(t,A=>{let r=A.from,{state:n}=t,i=n.doc.lineAt(r),o,s;if(!e&&r>i.from&&rXF(t,!1),VF=t=>XF(t,!0),YF=(t,e)=>la(t,A=>{let r=A.head,{state:n}=t,i=n.doc.lineAt(r),o=n.charCategorizer(r);for(let s=null;;){if(r==(e?i.to:i.from)){r==A.head&&i.number!=(e?n.doc.lines:1)&&(r+=e?1:-1);break}let l=Kt(i.text,r-i.from,e)+i.from,a=i.text.slice(Math.min(r,l)-i.from,Math.max(r,l)-i.from),c=o(a);if(s!=null&&c!=s)break;(a!=" "||r!=A.head)&&(s=c),r=l}return r}),KF=t=>YF(t,!1),I6=t=>YF(t,!0),R6=t=>la(t,e=>{let A=t.lineBlockAt(e.head).to;return e.headla(t,e=>{let A=t.moveToLineBoundary(e,!1).head;return e.head>A?A:Math.max(0,e.head-1)}),H6=t=>la(t,e=>{let A=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let A=t.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ge.of(["",""])},range:D.cursor(r.from)}));return e(t.update(A,{scrollIntoView:!0,userEvent:"input"})),!0},_6=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=t.changeByRange(r=>{if(!r.empty||r.from==0||r.from==t.doc.length)return{range:r};let n=r.from,i=t.doc.lineAt(n),o=n==i.from?n-1:Kt(i.text,n-i.from,!1)+i.from,s=n==i.to?n+1:Kt(i.text,n-i.from,!0)+i.from;return{changes:{from:o,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(o,n))},range:D.cursor(s)}});return A.changes.empty?!1:(e(t.update(A,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function hd(t){let e=[],A=-1;for(let r of t.selection.ranges){let n=t.doc.lineAt(r.from),i=t.doc.lineAt(r.to);if(!r.empty&&r.to==i.from&&(i=t.doc.lineAt(r.to-1)),A>=n.number){let o=e[e.length-1];o.to=i.to,o.ranges.push(r)}else e.push({from:n.from,to:i.to,ranges:[r]});A=i.number+1}return e}function WF(t,e,A){if(t.readOnly)return!1;let r=[],n=[];for(let i of hd(t)){if(A?i.to==t.doc.length:i.from==0)continue;let o=t.doc.lineAt(A?i.to+1:i.from-1),s=o.length+1;if(A){r.push({from:i.to,to:o.to},{from:i.from,insert:o.text+t.lineBreak});for(let l of i.ranges)n.push(D.range(Math.min(t.doc.length,l.anchor+s),Math.min(t.doc.length,l.head+s)))}else{r.push({from:o.from,to:i.from},{from:i.to,insert:t.lineBreak+o.text});for(let l of i.ranges)n.push(D.range(l.anchor-s,l.head-s))}}return r.length?(e(t.update({changes:r,scrollIntoView:!0,selection:D.create(n,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const N6=({state:t,dispatch:e})=>WF(t,e,!1),M6=({state:t,dispatch:e})=>WF(t,e,!0);function jF(t,e,A){if(t.readOnly)return!1;let r=[];for(let n of hd(t))A?r.push({from:n.from,insert:t.doc.slice(n.from,n.to)+t.lineBreak}):r.push({from:n.to,insert:t.lineBreak+t.doc.slice(n.from,n.to)});return e(t.update({changes:r,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Z6=({state:t,dispatch:e})=>jF(t,e,!1),X6=({state:t,dispatch:e})=>jF(t,e,!0),V6=t=>{if(t.state.readOnly)return!1;let{state:e}=t,A=e.changes(hd(e).map(({from:n,to:i})=>(n>0?n--:it.moveVertically(n,!0)).map(A);return t.dispatch({changes:A,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Y6(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let A=kt(t).resolveInner(e),r=A.childBefore(e),n=A.childAfter(e),i;return r&&n&&r.to<=e&&n.from>=e&&(i=r.type.prop(oe.closedBy))&&i.indexOf(n.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(n.from).from&&!/\S/.test(t.sliceDoc(r.to,n.from))?{from:r.to,to:n.from}:null}const K6=GF(!1),W6=GF(!0);function GF(t){return({state:e,dispatch:A})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{let{from:i,to:o}=n,s=e.doc.lineAt(i),l=!t&&i==o&&Y6(e,i);t&&(i=o=(o<=s.to?s:e.doc.lineAt(o)).to);let a=new ad(e,{simulateBreak:i,simulateDoubleBreak:!!l}),c=cF(a,i);for(c==null&&(c=rd(/^\s*/.exec(e.doc.lineAt(i).text)[0],e.tabSize));os.from&&i{let n=[];for(let o=r.from;o<=r.to;){let s=t.doc.lineAt(o);s.number>A&&(r.empty||r.to>s.from)&&(e(s,n,r),A=s.number),o=s.to+1}let i=t.changes(n);return{changes:n,range:D.range(i.mapPos(r.anchor,1),i.mapPos(r.head,1))}})}const j6=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let A=Object.create(null),r=new ad(t,{overrideIndentation:i=>{let o=A[i];return o??-1}}),n=T0(t,(i,o,s)=>{let l=cF(r,i.from);if(l==null)return;/\S/.test(i.text)||(l=0);let a=/^\s*/.exec(i.text)[0],c=of(t,l);(a!=c||s.fromt.readOnly?!1:(e(t.update(T0(t,(A,r)=>{r.push({from:A.from,insert:t.facet(ld)})}),{userEvent:"input.indent"})),!0),qF=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(T0(t,(A,r)=>{let n=/^\s*/.exec(A.text)[0];if(!n)return;let i=rd(n,t.tabSize),o=0,s=of(t,Math.max(0,i-nf(t)));for(;o({mac:t.key,run:t.run,shift:t.shift}))),q6=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:u6,shift:Q6},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:f6,shift:C6},{key:"Alt-ArrowUp",run:N6},{key:"Shift-Alt-ArrowUp",run:Z6},{key:"Alt-ArrowDown",run:M6},{key:"Shift-Alt-ArrowDown",run:X6},{key:"Escape",run:T6},{key:"Mod-Enter",run:W6},{key:"Alt-l",mac:"Ctrl-l",run:k6},{key:"Mod-i",run:P6,preventDefault:!0},{key:"Mod-[",run:qF},{key:"Mod-]",run:zF},{key:"Mod-Alt-\\",run:j6},{key:"Shift-Mod-k",run:V6},{key:"Shift-Mod-\\",run:B6},{key:"Mod-/",run:VZ},{key:"Alt-A",run:KZ}].concat(z6),J6={key:"Tab",run:zF,shift:qF};class lf{constructor(e,A,r,n,i,o,s,l,a,c=0,u){this.p=e,this.stack=A,this.state=r,this.reducePos=n,this.pos=i,this.score=o,this.buffer=s,this.bufferBase=l,this.curContext=a,this.lookAhead=c,this.parent=u}toString(){return`[${this.stack.filter((e,A)=>A%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,A,r=0){let n=e.parser.context;return new lf(e,[],A,r,r,0,[],0,n?new sQ(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,A){this.stack.push(this.state,A,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var A;let r=e>>19,n=e&65535,{parser:i}=this.p,o=i.dynamicPrecedence(n);if(o&&(this.score+=o),r==0){this.pushState(i.getGoto(this.state,n,!0),this.reducePos),n=2e3&&!(!((A=this.p.parser.nodeSet.types[n])===null||A===void 0)&&A.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=a):this.p.lastBigReductionSizes;)this.stack.pop();this.reduceContext(n,l)}storeNode(e,A,r,n=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&o.buffer[s-4]==0&&o.buffer[s-1]>-1){if(A==r)return;if(o.buffer[s-2]>=A){o.buffer[s-2]=r;return}}}if(!i||this.pos==r)this.buffer.push(e,A,r,n);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,n>4&&(n-=4);this.buffer[o]=e,this.buffer[o+1]=A,this.buffer[o+2]=r,this.buffer[o+3]=n}}shift(e,A,r,n){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(A,r),A<=this.p.parser.maxNode&&this.buffer.push(A,r,n,4);else{let i=e,{parser:o}=this.p;(n>this.pos||A<=o.maxNode)&&(this.pos=n,o.stateFlag(i,1)||(this.reducePos=n)),this.pushState(i,r),this.shiftContext(A,r),A<=o.maxNode&&this.buffer.push(A,r,n,4)}}apply(e,A,r,n){e&65536?this.reduce(e):this.shift(e,A,r,n)}useNode(e,A){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(A,n),this.buffer.push(r,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,A=e.buffer.length;for(;A>0&&e.buffer[A-2]>e.reducePos;)A-=4;let r=e.buffer.slice(A),n=e.bufferBase+A;for(;e&&n==e.bufferBase;)e=e.parent;return new lf(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,n,this.curContext,this.lookAhead,e)}recoverByDelete(e,A){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,A,4),this.storeNode(0,this.pos,A,r?8:4),this.pos=this.reducePos=A,this.score-=190}canShift(e){for(let A=new eX(this);;){let r=this.p.parser.stateSlot(A.state,4)||this.p.parser.hasAction(A.state,e);if(r==0)return!1;if(!(r&65536))return!0;A.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let A=this.p.parser.nextStates(this.state);if(A.length>8||this.stack.length>=120){let n=[];for(let i=0,o;il&1&&s==o)||n.push(A[i],o)}A=n}let r=[];for(let n=0;n>19,n=A&65535,i=this.stack.length-r*3;if(i<0||e.getGoto(this.stack[i],n,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;A=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(A),!0}findForcedReduction(){let{parser:e}=this.p,A=[],r=(n,i)=>{if(!A.includes(n))return A.push(n),e.allActions(n,o=>{if(!(o&393216))if(o&65536){let s=(o>>19)-i;if(s>1){let l=o&65535,a=this.stack.length-s*3;if(a>=0&&e.getGoto(this.stack[a],l,!1)>=0)return s<<19|65536|l}}else{let s=r(o,i+1);if(s!=null)return s}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let A=0;Athis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class sQ{constructor(e,A){this.tracker=e,this.context=A,this.hash=e.strict?e.hash(A):0}}class eX{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let A=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let n=this.start.p.parser.getGoto(this.stack[this.base-3],A,!0);this.state=n}}class af{constructor(e,A,r){this.stack=e,this.pos=A,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,A=e.bufferBase+e.buffer.length){return new af(e,A,A-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new af(this.stack,this.pos,this.index)}}function js(t,e=Uint16Array){if(typeof t!="string")return t;let A=null;for(let r=0,n=0;r=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,s=!0),i+=l,s)break;i*=46}A?A[n++]=i:A=new e(i)}return A}class Au{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const lQ=new Au;class tX{constructor(e,A){this.input=e,this.ranges=A,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=lQ,this.rangeIndex=0,this.pos=this.chunkPos=A[0].from,this.range=A[0],this.end=A[A.length-1].to,this.readNext()}resolveOffset(e,A){let r=this.range,n=this.rangeIndex,i=this.pos+e;for(;ir.to:i>=r.to;){if(n==this.ranges.length-1)return null;let o=this.ranges[++n];i+=o.from-r.to,r=o}return i}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,A.from);return this.end}peek(e){let A=this.chunkOff+e,r,n;if(A>=0&&A=this.chunk2Pos&&rs.to&&(this.chunk2=this.chunk2.slice(0,s.to-r)),n=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),n}acceptToken(e,A=0){let r=A?this.resolveOffset(A,-1):this.pos;if(r==null||r=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,A){if(A?(this.token=A,A.start=e,A.lookAhead=e+1,A.value=A.extended=-1):this.token=lQ,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&A<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,A-this.chunkPos);if(e>=this.chunk2Pos&&A<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,A-this.chunk2Pos);if(e>=this.range.from&&A<=this.range.to)return this.input.read(e,A);let r="";for(let n of this.ranges){if(n.from>=A)break;n.to>e&&(r+=this.input.read(Math.max(n.from,e),Math.min(n.to,A)))}return r}}class $o{constructor(e,A){this.data=e,this.id=A}token(e,A){let{parser:r}=A.p;JF(this.data,e,A,this.id,r.data,r.tokenPrecTable)}}$o.prototype.contextual=$o.prototype.fallback=$o.prototype.extend=!1;class cf{constructor(e,A,r){this.precTable=A,this.elseToken=r,this.data=typeof e=="string"?js(e):e}token(e,A){let r=e.pos,n=0;for(;;){let i=e.next<0,o=e.resolveOffset(1,1);if(JF(this.data,e,A,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(i||n++,o==null)break;e.reset(o,e.token)}n&&(e.reset(r,e.token),e.acceptToken(this.elseToken,n))}}cf.prototype.contextual=$o.prototype.fallback=$o.prototype.extend=!1;class Cr{constructor(e,A={}){this.token=e,this.contextual=!!A.contextual,this.fallback=!!A.fallback,this.extend=!!A.extend}}function JF(t,e,A,r,n,i){let o=0,s=1<0){let h=t[d];if(l.allows(h)&&(e.token.value==-1||e.token.value==h||AX(h,e.token.value,n,i))){e.acceptToken(h);break}}let c=e.next,u=0,f=t[o+2];if(e.next<0&&f>u&&t[a+f*3-3]==65535){o=t[a+f*3-1];continue e}for(;u>1,h=a+d+(d<<1),g=t[h],B=t[h+1]||65536;if(c=B)u=d+1;else{o=t[h+2],e.advance();continue e}}break}}function aQ(t,e,A){for(let r=e,n;(n=t[r])!=65535;r++)if(n==A)return r-e;return-1}function AX(t,e,A,r){let n=aQ(A,r,e);return n<0||aQ(A,r,t)e)&&!r.type.isError)return A<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(t.length,Math.max(r.from+1,e+25));if(A<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return A<0?0:t.length}}class rX{constructor(e,A){this.fragments=e,this.nodeSet=A,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cQ(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cQ(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(i instanceof _e){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(o),this.index.push(0))}else this.index[A]++,this.nextStart=o+i.length}}}class nX{constructor(e,A){this.stream=A,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Au)}getActions(e){let A=0,r=null,{parser:n}=e.p,{tokenizers:i}=n,o=n.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,l=0;for(let a=0;au.end+25&&(l=Math.max(u.lookAhead,l)),u.value!=0)){let f=A;if(u.extended>-1&&(A=this.addActions(e,u.extended,u.end,A)),A=this.addActions(e,u.value,u.end,A),!c.extend&&(r=u,A>f))break}}for(;this.actions.length>A;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Au,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,A=this.addActions(e,r.value,r.end,A)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let A=new Au,{pos:r,p:n}=e;return A.start=r,A.end=Math.min(r+1,n.stream.end),A.value=r==n.stream.end?n.parser.eofTerm:0,A}updateCachedToken(e,A,r){let n=this.stream.clipPos(r.pos);if(A.token(this.stream.reset(n,e),r),e.value>-1){let{parser:i}=r.p;for(let o=0;o=0&&r.p.parser.dialect.allows(s>>1)){s&1?e.extended=s>>1:e.value=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(n+1)}putAction(e,A,r,n){for(let i=0;ie.bufferLength*4?new rX(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,A=this.minStackPos,r=this.stacks=[],n,i;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;oA)r.push(s);else{if(this.advanceStack(s,r,e))continue;{n||(n=[],i=[]),n.push(s);let l=this.tokens.getMainToken(s);i.push(l.value,l.end)}}break}}if(!r.length){let o=n&&sX(n);if(o)return tA&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw tA&&n&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+A);this.recovering||(this.recovering=5)}if(this.recovering&&n){let o=this.stoppedAt!=null&&n[0].pos>this.stoppedAt?n[0]:this.runRecovery(n,i,r);if(o)return tA&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((s,l)=>l.score-s.score);r.length>o;)r.pop();r.some(s=>s.reducePos>A)&&this.recovering--}else if(r.length>1){e:for(let o=0;o500&&a.buffer.length>500)if((s.score-a.score||s.buffer.length-a.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let a=e.curContext&&e.curContext.tracker.strict,c=a?e.curContext.hash:0;for(let u=this.fragments.nodeAt(n);u;){let f=this.parser.nodeSet.types[u.type.id]==u.type?i.getGoto(e.state,u.type.id):-1;if(f>-1&&u.length&&(!a||(u.prop(oe.contextHash)||0)==c))return e.useNode(u,f),tA&&console.log(o+this.stackID(e)+` (via reuse of ${i.getName(u.type.id)})`),!0;if(!(u instanceof _e)||u.children.length==0||u.positions[0]>0)break;let d=u.children[0];if(d instanceof _e&&u.positions[0]==0)u=d;else break}}let s=i.stateSlot(e.state,4);if(s>0)return e.reduce(s),tA&&console.log(o+this.stackID(e)+` (via always-reduce ${i.getName(s&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let a=0;an?A.push(h):r.push(h)}return!1}advanceFully(e,A){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return uQ(e,A),!0}}runRecovery(e,A,r){let n=null,i=!1;for(let o=0;o ":"";if(s.deadEnd&&(i||(i=!0,s.restart(),tA&&console.log(c+this.stackID(s)+" (restarted)"),this.advanceFully(s,r))))continue;let u=s.split(),f=c;for(let d=0;u.forceReduce()&&d<10&&(tA&&console.log(f+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));d++)tA&&(f=this.stackID(u)+" -> ");for(let d of s.recoverByInsert(l))tA&&console.log(c+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>s.pos?(a==s.pos&&(a++,l=0),s.recoverByDelete(l,a),tA&&console.log(c+this.stackID(s)+` (via recover-delete ${this.parser.getName(l)})`),uQ(s,r)):(!n||n.scoret;class e${constructor(e){this.start=e.start,this.shift=e.shift||Xh,this.reduce=e.reduce||Xh,this.reuse=e.reuse||Xh,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Wo extends iF{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let A=e.nodeNames.split(" ");this.minRepeatTerm=A.length;for(let s=0;se.topRules[s][1]),n=[];for(let s=0;s=0)i(c,l,s[a++]);else{let u=s[a+-c];for(let f=-c;f>0;f--)i(s[a++],l,u);a++}}}this.nodeSet=new C0(A.map((s,l)=>_t.define({name:l>=this.minRepeatTerm?void 0:s,id:l,props:n[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=eF;let o=js(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let s=0;stypeof s=="number"?new $o(o,s):s),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,A,r){let n=new iX(this,e,A,r);for(let i of this.wrappers)n=i(n,e,A,r);return n}getGoto(e,A,r=!1){let n=this.goto;if(A>=n[0])return-1;for(let i=n[A+1];;){let o=n[i++],s=o&1,l=n[i++];if(s&&r)return l;for(let a=i+(o>>1);i0}validAction(e,A){return!!this.allActions(e,r=>r==A?!0:null)}allActions(e,A){let r=this.stateSlot(e,4),n=r?A(r):void 0;for(let i=this.stateSlot(e,1);n==null;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=kr(this.data,i+2);else break;n=A(kr(this.data,i+1))}return n}nextStates(e){let A=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=kr(this.data,r+2);else break;if(!(this.data[r+2]&1)){let n=this.data[r+1];A.some((i,o)=>o&1&&i==n)||A.push(this.data[r],n)}}return A}configure(e){let A=Object.assign(Object.create(Wo.prototype),this);if(e.props&&(A.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);A.top=r}return e.tokenizers&&(A.tokenizers=this.tokenizers.map(r=>{let n=e.tokenizers.find(i=>i.from==r);return n?n.to:r})),e.specializers&&(A.specializers=this.specializers.slice(),A.specializerSpecs=this.specializerSpecs.map((r,n)=>{let i=e.specializers.find(s=>s.from==r.external);if(!i)return r;let o=Object.assign(Object.assign({},r),{external:i.to});return A.specializers[n]=fQ(o),o})),e.contextTracker&&(A.context=e.contextTracker),e.dialect&&(A.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(A.strict=e.strict),e.wrap&&(A.wrappers=A.wrappers.concat(e.wrap)),e.bufferLength!=null&&(A.bufferLength=e.bufferLength),A}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let A=this.dynamicPrecedences;return A==null?0:A[e]||0}parseDialect(e){let A=Object.keys(this.dialects),r=A.map(()=>!1);if(e)for(let i of e.split(" ")){let o=A.indexOf(i);o>=0&&(r[o]=!0)}let n=null;for(let i=0;ir)&&A.p.parser.stateFlag(A.state,2)&&(!e||e.scoret.external(A,r)<<1|e}return t.get}const lX=54,aX=1,cX=55,uX=2,fX=56,dX=3,dQ=4,hX=5,uf=6,t$=7,A$=8,r$=9,n$=10,pX=11,gX=12,mX=13,Vh=57,OX=14,hQ=58,i$=20,wX=22,o$=23,BX=24,Qm=26,s$=27,vX=28,yX=31,QX=34,CX=36,bX=37,SX=0,xX=1,UX={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},EX={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},pQ={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 FX(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}function l$(t){return t==9||t==10||t==13||t==32}let gQ=null,mQ=null,OQ=0;function Cm(t,e){let A=t.pos+e;if(OQ==A&&mQ==t)return gQ;let r=t.peek(e);for(;l$(r);)r=t.peek(++e);let n="";for(;FX(r);)n+=String.fromCharCode(r),r=t.peek(++e);return mQ=t,OQ=A,gQ=n?n.toLowerCase():r==$X||r==kX?void 0:null}const a$=60,ff=62,I0=47,$X=63,kX=33,PX=45;function wQ(t,e){this.name=t,this.parent=e,this.hash=e?e.hash:0;for(let A=0;A-1?new wQ(Cm(r,1)||"",t):t},reduce(t,e){return e==i$&&t?t.parent:t},reuse(t,e,A,r){let n=e.type.id;return n==uf||n==CX?new wQ(Cm(r,1)||"",t):t},hash(t){return t?t.hash:0},strict:!1}),RX=new Cr((t,e)=>{if(t.next!=a$){t.next<0&&e.context&&t.acceptToken(Vh);return}t.advance();let A=t.next==I0;A&&t.advance();let r=Cm(t,0);if(r===void 0)return;if(!r)return t.acceptToken(A?OX:uf);let n=e.context?e.context.name:null;if(A){if(r==n)return t.acceptToken(pX);if(n&&EX[n])return t.acceptToken(Vh,-2);if(e.dialectEnabled(SX))return t.acceptToken(gX);for(let i=e.context;i;i=i.parent)if(i.name==r)return;t.acceptToken(mX)}else{if(r=="script")return t.acceptToken(t$);if(r=="style")return t.acceptToken(A$);if(r=="textarea")return t.acceptToken(r$);if(UX.hasOwnProperty(r))return t.acceptToken(n$);n&&pQ[n]&&pQ[n][r]?t.acceptToken(Vh,-1):t.acceptToken(uf)}},{contextual:!0}),DX=new Cr(t=>{for(let e=0,A=0;;A++){if(t.next<0){A&&t.acceptToken(hQ);break}if(t.next==PX)e++;else if(t.next==ff&&e>=2){A>3&&t.acceptToken(hQ,-2);break}else e=0;t.advance()}});function HX(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}const LX=new Cr((t,e)=>{if(t.next==I0&&t.peek(1)==ff){let A=e.dialectEnabled(xX)||HX(e.context);t.acceptToken(A?hX:dQ,2)}else t.next==ff&&t.acceptToken(dQ,1)});function R0(t,e,A){let r=2+t.length;return new Cr(n=>{for(let i=0,o=0,s=0;;s++){if(n.next<0){s&&n.acceptToken(e);break}if(i==0&&n.next==a$||i==1&&n.next==I0||i>=2&&io?n.acceptToken(e,-o):n.acceptToken(A,-(o-2));break}else if((n.next==10||n.next==13)&&s){n.acceptToken(e,1);break}else i=o=0;n.advance()}})}const _X=R0("script",lX,aX),NX=R0("style",cX,uX),MX=R0("textarea",fX,dX),ZX=sd({"Text RawText":w.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":w.angleBracket,TagName:w.tagName,"MismatchedCloseTag/TagName":[w.tagName,w.invalid],AttributeName:w.attributeName,"AttributeValue UnquotedAttributeValue":w.attributeValue,Is:w.definitionOperator,"EntityReference CharacterReference":w.character,Comment:w.blockComment,ProcessingInst:w.processingInstruction,DoctypeDecl:w.documentMeta}),XX=Wo.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:IX,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[ZX],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let a=s.type.id;if(a==vX)return Yh(s,l,A);if(a==yX)return Yh(s,l,r);if(a==QX)return Yh(s,l,n);if(a==i$&&i.length){let c=s.node,u=c.firstChild,f=u&&BQ(u,l),d;if(f){for(let h of i)if(h.tag==f&&(!h.attrs||h.attrs(d||(d=c$(c,l))))){let g=c.lastChild;return{parser:h.parser,overlay:[{from:u.to,to:g.type.id==bX?g.from:c.to}]}}}}if(o&&a==o$){let c=s.node,u;if(u=c.firstChild){let f=o[l.read(u.from,u.to)];if(f)for(let d of f){if(d.tagName&&d.tagName!=BQ(c.parent,l))continue;let h=c.lastChild;if(h.type.id==Qm){let g=h.from+1,B=h.lastChild,m=h.to-(B&&B.isError?0:1);if(m>g)return{parser:d.parser,overlay:[{from:g,to:m}]}}else if(h.type.id==s$)return{parser:d.parser,overlay:[{from:h.from,to:h.to}]}}}}return null})}const VX=96,vQ=1,YX=97,KX=98,yQ=2,f$=[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],WX=58,jX=40,d$=95,GX=91,ru=45,zX=46,qX=35,JX=37,eV=38,tV=92,AV=10;function df(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function rV(t){return t>=48&&t<=57}const nV=new Cr((t,e)=>{for(let A=!1,r=0,n=0;;n++){let{next:i}=t;if(df(i)||i==ru||i==d$||A&&rV(i))!A&&(i!=ru||n>0)&&(A=!0),r===n&&i==ru&&r++,t.advance();else if(i==tV&&t.peek(1)!=AV)t.advance(),t.next>-1&&t.advance(),A=!0;else{A&&t.acceptToken(i==jX?YX:r==2&&e.canShift(yQ)?yQ:KX);break}}}),iV=new Cr(t=>{if(f$.includes(t.peek(-1))){let{next:e}=t;(df(e)||e==d$||e==qX||e==zX||e==GX||e==WX||e==ru||e==eV)&&t.acceptToken(VX)}}),oV=new Cr(t=>{if(!f$.includes(t.peek(-1))){let{next:e}=t;if(e==JX&&(t.advance(),t.acceptToken(vQ)),df(e)){do t.advance();while(df(t.next));t.acceptToken(vQ)}}}),sV=sd({"AtKeyword import charset namespace keyframes media supports":w.definitionKeyword,"from to selector":w.keyword,NamespaceName:w.namespace,KeyframeName:w.labelName,KeyframeRangeName:w.operatorKeyword,TagName:w.tagName,ClassName:w.className,PseudoClassName:w.constant(w.className),IdName:w.labelName,"FeatureName PropertyName":w.propertyName,AttributeName:w.attributeName,NumberLiteral:w.number,KeywordQuery:w.keyword,UnaryQueryOp:w.operatorKeyword,"CallTag ValueName":w.atom,VariableName:w.variableName,Callee:w.operatorKeyword,Unit:w.unit,"UniversalSelector NestingSelector":w.definitionOperator,MatchOp:w.compareOperator,"ChildOp SiblingOp, LogicOp":w.logicOperator,BinOp:w.arithmeticOperator,Important:w.modifier,Comment:w.blockComment,ColorLiteral:w.color,"ParenthesizedContent StringLiteral":w.string,":":w.punctuation,"PseudoOp #":w.derefOperator,"; ,":w.separator,"( )":w.paren,"[ ]":w.squareBracket,"{ }":w.brace}),lV={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},aV={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},cV={__proto__:null,not:128,only:128},uV=Wo.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[iV,oV,nV,1,2,3,4,new cf("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:t=>lV[t]||-1},{term:56,get:t=>aV[t]||-1},{term:98,get:t=>cV[t]||-1}],tokenPrec:1169});let Kh=null;function Wh(){if(!Kh&&typeof document=="object"&&document.body){let{style:t}=document.body,e=[],A=new Set;for(let r in t)r!="cssText"&&r!="cssFloat"&&typeof t[r]=="string"&&(/[A-Z]/.test(r)&&(r=r.replace(/[A-Z]/g,n=>"-"+n.toLowerCase())),A.has(r)||(e.push(r),A.add(r)));Kh=e.sort().map(r=>({type:"property",label:r}))}return Kh||[]}const QQ=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),CQ=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),fV=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),nn=/^(\w[\w-]*|-\w[\w-]*|)$/,dV=/^-(-[\w-]*)?$/;function hV(t,e){var A;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let r=(A=t.parent)===null||A===void 0?void 0:A.firstChild;return(r==null?void 0:r.name)!="Callee"?!1:e.sliceString(r.from,r.to)=="var"}const bQ=new nF,pV=["Declaration"];function gV(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function h$(t,e,A){if(e.to-e.from>4096){let r=bQ.get(e);if(r)return r;let n=[],i=new Set,o=e.cursor(xe.IncludeAnonymous);if(o.firstChild())do for(let s of h$(t,o.node,A))i.has(s.label)||(i.add(s.label),n.push(s));while(o.nextSibling());return bQ.set(e,n),n}else{let r=[],n=new Set;return e.cursor().iterate(i=>{var o;if(A(i)&&i.matchContext(pV)&&((o=i.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let s=t.sliceString(i.from,i.to);n.has(s)||(n.add(s),r.push({label:s,type:"variable"}))}}),r}}const mV=t=>e=>{let{state:A,pos:r}=e,n=kt(A).resolveInner(r,-1),i=n.type.isError&&n.from==n.to-1&&A.doc.sliceString(n.from,n.to)=="-";if(n.name=="PropertyName"||(i||n.name=="TagName")&&/^(Block|Styles)$/.test(n.resolve(n.to).name))return{from:n.from,options:Wh(),validFor:nn};if(n.name=="ValueName")return{from:n.from,options:CQ,validFor:nn};if(n.name=="PseudoClassName")return{from:n.from,options:QQ,validFor:nn};if(t(n)||(e.explicit||i)&&hV(n,A.doc))return{from:t(n)||i?n.from:r,options:h$(A.doc,gV(n),t),validFor:dV};if(n.name=="TagName"){for(let{parent:l}=n;l;l=l.parent)if(l.name=="Block")return{from:n.from,options:Wh(),validFor:nn};return{from:n.from,options:fV,validFor:nn}}if(!e.explicit)return null;let o=n.resolve(r),s=o.childBefore(r);return s&&s.name==":"&&o.name=="PseudoClassSelector"?{from:r,options:QQ,validFor:nn}:s&&s.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:r,options:CQ,validFor:nn}:o.name=="Block"||o.name=="Styles"?{from:r,options:Wh(),validFor:nn}:null},OV=mV(t=>t.name=="VariableName"),hf=Vo.define({name:"css",parser:uV.configure({props:[cd.add({Declaration:tu()}),$0.add({"Block KeyframeList":dF})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function wV(){return new E0(hf,hf.data.of({autocomplete:OV}))}const BV=304,SQ=1,vV=2,yV=305,QV=307,CV=308,bV=3,SV=4,xV=[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],p$=125,UV=59,xQ=47,EV=42,FV=43,$V=45,kV=new e$({start:!1,shift(t,e){return e==bV||e==SV||e==QV?t:e==CV},strict:!1}),PV=new Cr((t,e)=>{let{next:A}=t;(A==p$||A==-1||e.context)&&t.acceptToken(yV)},{contextual:!0,fallback:!0}),TV=new Cr((t,e)=>{let{next:A}=t,r;xV.indexOf(A)>-1||A==xQ&&((r=t.peek(1))==xQ||r==EV)||A!=p$&&A!=UV&&A!=-1&&!e.context&&t.acceptToken(BV)},{contextual:!0}),IV=new Cr((t,e)=>{let{next:A}=t;if((A==FV||A==$V)&&(t.advance(),A==t.next)){t.advance();let r=!e.context&&e.canShift(SQ);t.acceptToken(r?SQ:vV)}},{contextual:!0}),RV=sd({"get set async static":w.modifier,"for while do if else switch try catch finally return throw break continue default case":w.controlKeyword,"in of await yield void typeof delete instanceof":w.operatorKeyword,"let var const using function class extends":w.definitionKeyword,"import export from":w.moduleKeyword,"with debugger as new":w.keyword,TemplateString:w.special(w.string),super:w.atom,BooleanLiteral:w.bool,this:w.self,null:w.null,Star:w.modifier,VariableName:w.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":w.function(w.variableName),VariableDefinition:w.definition(w.variableName),Label:w.labelName,PropertyName:w.propertyName,PrivatePropertyName:w.special(w.propertyName),"CallExpression/MemberExpression/PropertyName":w.function(w.propertyName),"FunctionDeclaration/VariableDefinition":w.function(w.definition(w.variableName)),"ClassDeclaration/VariableDefinition":w.definition(w.className),PropertyDefinition:w.definition(w.propertyName),PrivatePropertyDefinition:w.definition(w.special(w.propertyName)),UpdateOp:w.updateOperator,"LineComment Hashbang":w.lineComment,BlockComment:w.blockComment,Number:w.number,String:w.string,Escape:w.escape,ArithOp:w.arithmeticOperator,LogicOp:w.logicOperator,BitOp:w.bitwiseOperator,CompareOp:w.compareOperator,RegExp:w.regexp,Equals:w.definitionOperator,Arrow:w.function(w.punctuation),": Spread":w.punctuation,"( )":w.paren,"[ ]":w.squareBracket,"{ }":w.brace,"InterpolationStart InterpolationEnd":w.special(w.brace),".":w.derefOperator,", ;":w.separator,"@":w.meta,TypeName:w.typeName,TypeDefinition:w.definition(w.typeName),"type enum interface implements namespace module declare":w.definitionKeyword,"abstract global Privacy readonly override":w.modifier,"is keyof unique infer":w.operatorKeyword,JSXAttributeValue:w.attributeValue,JSXText:w.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":w.angleBracket,"JSXIdentifier JSXNameSpacedName":w.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":w.attributeName,"JSXBuiltin/JSXIdentifier":w.standard(w.tagName)}),DV={__proto__:null,export:16,as:21,from:29,default:32,async:37,function:38,extends:48,this:52,true:60,false:60,null:72,void:76,typeof:80,super:98,new:132,delete:148,yield:157,await:161,class:166,public:223,private:223,protected:223,readonly:225,instanceof:244,satisfies:247,in:248,const:250,import:282,keyof:337,unique:341,infer:347,is:383,abstract:403,implements:405,type:407,let:410,var:412,using:415,interface:421,enum:425,namespace:431,module:433,declare:437,global:441,for:460,of:469,while:472,with:476,do:480,if:484,else:486,switch:490,case:496,try:502,catch:506,finally:510,return:514,throw:518,break:522,continue:526,debugger:530},HV={__proto__:null,async:119,get:121,set:123,declare:183,public:185,private:185,protected:185,static:187,abstract:189,override:191,readonly:197,accessor:199,new:387},LV={__proto__:null,"<":139},_V=Wo.deserialize({version:14,states:"$6zO%TQUOOO%[QUOOO'_QWOOP(lOSOOO*zQ(CjO'#CgO+ROpO'#ChO+aO!bO'#ChO+oO07`O'#D[O.QQUO'#DbO.bQUO'#DmO%[QUO'#DwO0fQUO'#EPOOQ(CY'#EX'#EXO1PQSO'#EUOOQO'#Ej'#EjOOQO'#Id'#IdO1XQSO'#GlO1dQSO'#EiO1iQSO'#EiO3kQ(CjO'#JeO6[Q(CjO'#JfO6xQSO'#FXO6}Q#tO'#FpOOQ(CY'#Fa'#FaO7YO&jO'#FaO7hQ,UO'#FwO9OQSO'#FvOOQ(CY'#Jf'#JfOOQ(CW'#Je'#JeO9TQSO'#GpOOQQ'#KQ'#KQO9`QSO'#IQO9eQ(C[O'#IROOQQ'#JR'#JROOQQ'#IV'#IVQ`QUOOO`QUOOO%[QUO'#DoO9mQUO'#D{O9tQUO'#D}O9ZQSO'#GlO9{Q,UO'#CmO:ZQSO'#EhO:fQSO'#EsO:kQ,UO'#F`O;YQSO'#GlOOQO'#KR'#KRO;_QSO'#KRO;mQSO'#GtO;mQSO'#GuO;mQSO'#GwO9ZQSO'#GzO]QSO'#HZO>eQSO'#HaO>eQSO'#HcO`QUO'#HeO>eQSO'#HgO>eQSO'#HjO>jQSO'#HpO>oQ(C]O'#HvO%[QUO'#HxO>zQ(C]O'#HzO?VQ(C]O'#H|O9eQ(C[O'#IOO?bQ(CjO'#CgO@dQWO'#DgQOQSOOO%[QUO'#D}O@zQSO'#EQO9{Q,UO'#EhOAVQSO'#EhOAbQ`O'#F`OOQQ'#Ce'#CeOOQ(CW'#Dl'#DlOOQ(CW'#Ji'#JiO%[QUO'#JiOOQO'#Jm'#JmOOQO'#Ia'#IaOBbQWO'#EaOOQ(CW'#E`'#E`OC^Q(C`O'#EaOChQWO'#ETOOQO'#Jl'#JlOC|QWO'#JmOEZQWO'#ETOChQWO'#EaPEhO?MpO'#C`POOO)CDp)CDpOOOO'#IW'#IWOEsOpO,59SOOQ(CY,59S,59SOOOO'#IX'#IXOFRO!bO,59SO%[QUO'#D^OOOO'#IZ'#IZOFaO07`O,59vOOQ(CY,59v,59vOFoQUO'#I[OGSQSO'#JgOIUQbO'#JgO+}QUO'#JgOI]QSO,59|OIsQSO'#EjOJQQSO'#JuOJ]QSO'#JtOJ]QSO'#JtOJeQSO,5;WOJjQSO'#JsOOQ(CY,5:X,5:XOJqQUO,5:XOLrQ(CjO,5:cOMcQSO,5:kOM|Q(C[O'#JrONTQSO'#JqO9TQSO'#JqONiQSO'#JqONqQSO,5;VONvQSO'#JqO!#OQbO'#JfOOQ(CY'#Cg'#CgO%[QUO'#EPO!#nQ`O,5:pOOQO'#Jn'#JnOOQO-ElOOQQ'#JZ'#JZOOQQ,5>m,5>mOOQQ-ExQ(CjO,5:iOOQO,5@m,5@mO!?iQ,UO,5=WO!?wQ(C[O'#J[O9OQSO'#J[O!@YQ(C[O,59XO!@eQWO,59XO!@mQ,UO,59XO9{Q,UO,59XO!@xQSO,5;TO!AQQSO'#HYO!AfQSO'#KVO%[QUO,5;xO!7cQWO,5;zO!AnQSO,5=sO!AsQSO,5=sO!AxQSO,5=sO9eQ(C[O,5=sO;mQSO,5=cOOQO'#Cs'#CsO!BWQWO,5=`O!B`Q,UO,5=aO!BkQSO,5=cO!BpQ`O,5=fO!BxQSO'#KRO>jQSO'#HPO9ZQSO'#HRO!B}QSO'#HRO9{Q,UO'#HTO!CSQSO'#HTOOQQ,5=i,5=iO!CXQSO'#HUO!CjQSO'#CmO!CoQSO,58}O!CyQSO,58}O!FOQUO,58}OOQQ,58},58}O!F`Q(C[O,58}O%[QUO,58}O!HkQUO'#H]OOQQ'#H^'#H^OOQQ'#H_'#H_O`QUO,5=uO!IRQSO,5=uO`QUO,5={O`QUO,5=}O!IWQSO,5>PO`QUO,5>RO!I]QSO,5>UO!IbQUO,5>[OOQQ,5>b,5>bO%[QUO,5>bO9eQ(C[O,5>dOOQQ,5>f,5>fO!MlQSO,5>fOOQQ,5>h,5>hO!MlQSO,5>hOOQQ,5>j,5>jO!MqQWO'#DYO%[QUO'#JiO!N`QWO'#JiO!N}QWO'#DhO# `QWO'#DhO##qQUO'#DhO##xQSO'#JhO#$QQSO,5:RO#$VQSO'#EnO#$eQSO'#JvO#$mQSO,5;XO#$rQWO'#DhO#%PQWO'#ESOOQ(CY,5:l,5:lO%[QUO,5:lO#%WQSO,5:lO>jQSO,5;SO!@eQWO,5;SO!@mQ,UO,5;SO9{Q,UO,5;SO#%`QSO,5@TO#%eQ!LQO,5:pOOQO-E<_-E<_O#&kQ(C`O,5:{OChQWO,5:oO#&uQWO,5:oOChQWO,5:{O!@YQ(C[O,5:oOOQ(CW'#Ed'#EdOOQO,5:{,5:{O%[QUO,5:{O#'SQ(C[O,5:{O#'_Q(C[O,5:{O!@eQWO,5:oOOQO,5;R,5;RO#'mQ(C[O,5:{POOO'#IU'#IUP#(RO?MpO,58zPOOO,58z,58zOOOO-EvO+}QUO,5>vOOQO,5>|,5>|O#(mQUO'#I[OOQO-EWQ(CjO1G0yO#>_Q(CjO1G0yO#@VQ(CjO1G0yO#CVQ$IUO'#CgO#ETQ$IUO1G1[O#E[Q$IUO'#JfO!,YQSO1G1bO#ElQ(CjO,5?SOOQ(CW-EeQSO1G3kO$.fQUO1G3mO$2jQUO'#HlOOQQ1G3p1G3pO$2wQSO'#HrO>jQSO'#HtOOQQ1G3v1G3vO$3PQUO1G3vO9eQ(C[O1G3|OOQQ1G4O1G4OOOQ(CW'#GX'#GXO9eQ(C[O1G4QO9eQ(C[O1G4SO$7WQSO,5@TO!*SQUO,5;YO9TQSO,5;YO>jQSO,5:SO!*SQUO,5:SO!@eQWO,5:SO$7]Q$IUO,5:SOOQO,5;Y,5;YO$7gQWO'#I]O$7}QSO,5@SOOQ(CY1G/m1G/mO$8VQWO'#IcO$8aQSO,5@bOOQ(CW1G0s1G0sO# `QWO,5:SOOQO'#I`'#I`O$8iQWO,5:nOOQ(CY,5:n,5:nO#%ZQSO1G0WOOQ(CY1G0W1G0WO%[QUO1G0WOOQ(CY1G0n1G0nO>jQSO1G0nO!@eQWO1G0nO!@mQ,UO1G0nOOQ(CW1G5o1G5oO!@YQ(C[O1G0ZOOQO1G0g1G0gO%[QUO1G0gO$8pQ(C[O1G0gO$8{Q(C[O1G0gO!@eQWO1G0ZOChQWO1G0ZO$9ZQ(C[O1G0gOOQO1G0Z1G0ZO$9oQ(CjO1G0gPOOO-EvO$:]QSO1G5mO$:eQSO1G5zO$:mQbO1G5{O9TQSO,5>|O$:wQ(CjO1G5xO%[QUO1G5xO$;XQ(C[O1G5xO$;jQSO1G5wO$;jQSO1G5wO9TQSO1G5wO$;rQSO,5?PO9TQSO,5?POOQO,5?P,5?PO$WOOQQ,5>W,5>WO%[QUO'#HmO%(vQSO'#HoOOQQ,5>^,5>^O9TQSO,5>^OOQQ,5>`,5>`OOQQ7+)b7+)bOOQQ7+)h7+)hOOQQ7+)l7+)lOOQQ7+)n7+)nO%({QWO1G5oO%)aQ$IUO1G0tO%)kQSO1G0tOOQO1G/n1G/nO%)vQ$IUO1G/nO>jQSO1G/nO!*SQUO'#DhOOQO,5>w,5>wOOQO-E},5>}OOQO-EjQSO7+&YO!@eQWO7+&YOOQO7+%u7+%uO$9oQ(CjO7+&ROOQO7+&R7+&RO%[QUO7+&RO%*QQ(C[O7+&RO!@YQ(C[O7+%uO!@eQWO7+%uO%*]Q(C[O7+&RO%*kQ(CjO7++dO%[QUO7++dO%*{QSO7++cO%*{QSO7++cOOQO1G4k1G4kO9TQSO1G4kO%+TQSO1G4kOOQO7+%z7+%zO#%ZQSO<xOOQO-E<[-E<[O%2yQbO,5>yO%[QUO,5>yOOQO-E<]-E<]O%3TQSO1G5qOOQ(CY<tQ$IUO1G0yO%>{Q$IUO1G0yO%@sQ$IUO1G0yO%AWQ(CjO<XOOQQ,5>Z,5>ZO& PQSO1G3xO9TQSO7+&`O!*SQUO7+&`OOQO7+%Y7+%YO& UQ$IUO1G5{O>jQSO7+%YOOQ(CY<jQSO<jQSO7+)dO&6mQSO<{AN>{O%[QUOAN?XOOQO<PQSO7+*ZO&>[QSO<= ZO&>dQ`O7+*]OOQ(CW<nQ`O<uQSO<= dOOQQG27kG27kO9eQ(C[OG27kO!*SQUO1G4vO&>}QSO7++uO%MbQSOANAyOOQQANAyANAyO!&^Q,UOANAyO&?VQSOANAyOOQQANA{ANA{O9eQ(C[OANA{O#NWQSOANA{OOQO'#HW'#HWOOQO7+*e7+*eOOQQG22uG22uOOQQANEPANEPOOQQANEQANEQOOQQANBTANBTO&?_QSOANBTOOQQ<fOPZXYZXlZXzZX{ZX}ZX!fZX!gZX!iZX!mZX#YZX#edX#hZX#iZX#jZX#kZX#lZX#mZX#nZX#oZX#pZX#rZX#tZX#vZX#wZX#|ZX(TZX(dZX(kZX(lZX!WZX!XZX~O#zZX~P#APOP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO#t:RO#v:TO#w:UO(TVO(d$ZO(k#|O(l#}O~O#z.iO~P#C^O#Y:ZO#|:ZO#z(YX!X(YX~P! UO_'[a!W'[a'm'[a'k'[a!h'[a!T'[ap'[a!Y'[a%b'[a!b'[a~P!7zOP#giY#gi_#gil#gi{#gi!W#gi!f#gi!g#gi!i#gi!m#gi#h#gi#i#gi#j#gi#k#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi'm#gi(T#gi(d#gi'k#gi!T#gi!h#gip#gi!Y#gi%b#gi!b#gi~P#,sO_#{i!W#{i'm#{i'k#{i!T#{i!h#{ip#{i!Y#{i%b#{i!b#{i~P!7zO$X.nO$Z.nO~O$X.oO$Z.oO~O!b)_O#Y.pO!Y$_X$U$_X$X$_X$Z$_X$b$_X~O!V.qO~O!Y)bO$U.sO$X)aO$Z)aO$b.tO~O!W:VO!X(XX~P#C^O!X.uO~O!b)_O$b(mX~O$b.wO~Or)qO(U)rO(V.zO~O!T/OO~P!&^O!WdX!bdX!hdX!h$tX(ddX~P!/bO!h/UO~P#,sO!W/VO!b#uO(d'gO!h(qX~O!h/[O~O!V*SO'v%`O!h(qP~O#e/^O~O!T$tX!W$tX!b${X~P!/bO!W/_O!T(rX~P#,sO!b/aO~O!T/cO~Ol/gO!b#uO!i%^O(P%RO(d'gO~O'v/iO~O!b+YO~O_%gO!W/mO'm%gO~O!X/oO~P!3`O!^/pO!_/pO'w!lO(W!mO~O}/rO(W!mO~O#U/sO~O'v&QOe'aX!W'aX~O!W*lOe(Qa~Oe/xO~Oz/yO{/yO}/zOhwa(kwa(lwa!Wwa#Ywa~Oewa#zwa~P$ tOz)vO})wOh$ma(k$ma(l$ma!W$ma#Y$ma~Oe$ma#z$ma~P$!jOz)vO})wOh$oa(k$oa(l$oa!W$oa#Y$oa~Oe$oa#z$oa~P$#]O#e/|O~Oe$}a!W$}a#Y$}a#z$}a~P!0kO!b#uO~O#e0PO~O!W*}O_(va'm(va~Oz#yO{#zO}#{O!g#wO!i#xO(TVOP!oiY!oil!oi!W!oi!f!oi!m!oi#h!oi#i!oi#j!oi#k!oi#l!oi#m!oi#n!oi#o!oi#p!oi#r!oi#t!oi#v!oi#w!oi(d!oi(k!oi(l!oi~O_!oi'm!oi'k!oi!T!oi!h!oip!oi!Y!oi%b!oi!b!oi~P$$zOh.UO!Y'VO%b.TO~Oj0ZO'v0YO~P!1]O!b+YO_(Oa!Y(Oa'm(Oa!W(Oa~O#e0aO~OYZX!WdX!XdX~O!W0bO!X(zX~O!X0dO~OY0eO~O`0gO'v+bO'xTO'{UO~O!Y%wO'v%`O^'iX!W'iX~O!W+gO^(ya~O!h0jO~P!7zOY0mO~O^0nO~O#Y0qO~Oh0tO!Y$|O~O(W(tO!X(wP~Oh0}O!Y0zO%b0|O(P%RO~OY1XO!W1VO!X(xX~O!X1YO~O^1[O_%gO'm%gO~O'v#mO'xTO'{UO~O#Y$eO#|$eOP(YXY(YXl(YXz(YX{(YX}(YX!W(YX!f(YX!i(YX!m(YX#h(YX#i(YX#j(YX#k(YX#l(YX#m(YX#n(YX#o(YX#r(YX#t(YX#v(YX#w(YX(T(YX(d(YX(k(YX(l(YX~O#p1_O&S1`O_(YX!g(YX~P$+sO#Y$eO#p1_O&S1`O~O_1bO~P%[O_1dO~O&]1gOP&ZiQ&ZiW&Zi_&Zib&Zic&Zij&Zil&Zim&Zin&Zit&Ziv&Zix&Zi}&Zi!R&Zi!S&Zi!Y&Zi!d&Zi!i&Zi!l&Zi!m&Zi!n&Zi!p&Zi!r&Zi!u&Zi!y&Zi#q&Zi$R&Zi$V&Zi%a&Zi%c&Zi%e&Zi%f&Zi%g&Zi%j&Zi%l&Zi%o&Zi%p&Zi%r&Zi&O&Zi&U&Zi&W&Zi&Y&Zi&[&Zi&_&Zi&e&Zi&k&Zi&m&Zi&o&Zi&q&Zi&s&Zi'k&Zi'v&Zi'x&Zi'{&Zi(T&Zi(c&Zi(p&Zi!X&Zi`&Zi&b&Zi~O`1mO!X1kO&b1lO~P`O!YXO!i1oO~O&i,jOP&diQ&diW&di_&dib&dic&dij&dil&dim&din&dit&div&dix&di}&di!R&di!S&di!Y&di!d&di!i&di!l&di!m&di!n&di!p&di!r&di!u&di!y&di#q&di$R&di$V&di%a&di%c&di%e&di%f&di%g&di%j&di%l&di%o&di%p&di%r&di&O&di&U&di&W&di&Y&di&[&di&_&di&e&di&k&di&m&di&o&di&q&di&s&di'k&di'v&di'x&di'{&di(T&di(c&di(p&di!X&di&]&di`&di&b&di~O!T1uO~O!W![a!X![a~P#C^Om!nO}!oO!V1{O(W!mO!W'PX!X'PX~P@OO!W,zO!X([a~O!W'VX!X'VX~P!7SO!W,}O!X(ja~O!X2SO~P'_O_%gO#Y2]O'm%gO~O_%gO!b#uO#Y2]O'm%gO~O_%gO!b#uO!m2aO#Y2]O'm%gO(d'gO~O_%gO'm%gO~P!7zO!W$aOp$la~O!T'Oi!W'Oi~P!7zO!W'{O!T(Zi~O!W(SO!T(hi~O!T(ii!W(ii~P!7zO!W(fi!h(fi_(fi'm(fi~P!7zO#Y2cO!W(fi!h(fi_(fi'm(fi~O!W(`O!h(ei~O}%aO!Y%bO!y]O#c2hO#d2gO'v%`O~O}%aO!Y%bO#d2gO'v%`O~Oh2oO!Y'VO%b2nO~Oh2oO!Y'VO%b2nO(P%RO~O#ewaPwaYwa_walwa!fwa!gwa!iwa!mwa#hwa#iwa#jwa#kwa#lwa#mwa#nwa#owa#pwa#rwa#twa#vwa#wwa'mwa(Twa(dwa!hwa!Twa'kwapwa!Ywa%bwa!bwa~P$ tO#e$maP$maY$ma_$mal$ma{$ma!f$ma!g$ma!i$ma!m$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#o$ma#p$ma#r$ma#t$ma#v$ma#w$ma'm$ma(T$ma(d$ma!h$ma!T$ma'k$map$ma!Y$ma%b$ma!b$ma~P$!jO#e$oaP$oaY$oa_$oal$oa{$oa!f$oa!g$oa!i$oa!m$oa#h$oa#i$oa#j$oa#k$oa#l$oa#m$oa#n$oa#o$oa#p$oa#r$oa#t$oa#v$oa#w$oa'm$oa(T$oa(d$oa!h$oa!T$oa'k$oap$oa!Y$oa%b$oa!b$oa~P$#]O#e$}aP$}aY$}a_$}al$}a{$}a!W$}a!f$}a!g$}a!i$}a!m$}a#h$}a#i$}a#j$}a#k$}a#l$}a#m$}a#n$}a#o$}a#p$}a#r$}a#t$}a#v$}a#w$}a'm$}a(T$}a(d$}a!h$}a!T$}a'k$}a#Y$}ap$}a!Y$}a%b$}a!b$}a~P#,sO_#]q!W#]q'm#]q'k#]q!T#]q!h#]qp#]q!Y#]q%b#]q!b#]q~P!7zOe'QX!W'QX~P!'vO!W._Oe(^a~O!V2wO!W'RX!h'RX~P%[O!W.bO!h(_a~O!W.bO!h(_a~P!7zO!T2zO~O#z!ka!X!ka~PJxO#z!ca!W!ca!X!ca~P#C^O#z!oa!X!oa~P!:eO#z!qa!X!qa~P!=OO!Y3^O$VfO$`3_O~O!X3cO~Op3dO~P#,sO_$iq!W$iq'm$iq'k$iq!T$iq!h$iqp$iq!Y$iq%b$iq!b$iq~P!7zO!T3eO~P#,sOz)vO})wO(l){Oh%Yi(k%Yi!W%Yi#Y%Yi~Oe%Yi#z%Yi~P$J]Oz)vO})wOh%[i(k%[i(l%[i!W%[i#Y%[i~Oe%[i#z%[i~P$KOO(d$ZO~P#,sO!V3hO'v%`O!W']X!h']X~O!W/VO!h(qa~O!W/VO!b#uO!h(qa~O!W/VO!b#uO(d'gO!h(qa~Oe$vi!W$vi#Y$vi#z$vi~P!0kO!V3pO'v*XO!T'_X!W'_X~P!1YO!W/_O!T(ra~O!W/_O!T(ra~P#,sO!b#uO#p3xO~Ol3{O!b#uO(d'gO~Oe(Ri!W(Ri~P!0kO#Y4OOe(Ri!W(Ri~P!0kO!h4RO~O_$jq!W$jq'm$jq'k$jq!T$jq!h$jqp$jq!Y$jq%b$jq!b$jq~P!7zO!T4VO~O!W4WO!Y(sX~P#,sO!g#wO~P4XO_$tX!Y$tX%VZX'm$tX!W$tX~P!/bO%V4YO_iXhiXziX}iX!YiX'miX(kiX(liX!WiX~O%V4YO~O`4`O%c4aO'v+bO'xTO'{UO!W'hX!X'hX~O!W0bO!X(za~OY4eO~O^4fO~O_%gO'm%gO~P#,sO!Y$|O~P#,sO!W4nO#Y4pO!X(wX~O!X4qO~Om!nO}4rO!]!xO!^!uO!_!uO!y9rO!}!pO#O!pO#P!pO#Q!pO#R!pO#U4wO#V!yO'w!lO'xTO'{UO(W!mO(c!sO~O!X4vO~P%%QOh4|O!Y0zO%b4{O~Oh4|O!Y0zO%b4{O(P%RO~O`5TO'v#mO'xTO'{UO!W'gX!X'gX~O!W1VO!X(xa~O'xTO'{UO(W5VO~O^5ZO~O#p5^O&S5_O~PMhO!h5`O~P%[O_5bO~O_5bO~P%[O`1mO!X5gO&b1lO~P`O!b5iO~O!b5kO!W(]i!X(]i!b(]i!i(]i(P(]i~O!W#bi!X#bi~P#C^O#Y5lO!W#bi!X#bi~O!W![i!X![i~P#C^O_%gO#Y5uO'm%gO~O_%gO!b#uO#Y5uO'm%gO~O!W(fq!h(fq_(fq'm(fq~P!7zO!W(`O!h(eq~O}%aO!Y%bO#d5|O'v%`O~O!Y'VO%b6PO~Oh6SO!Y'VO%b6PO~O#e%YiP%YiY%Yi_%Yil%Yi{%Yi!f%Yi!g%Yi!i%Yi!m%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#o%Yi#p%Yi#r%Yi#t%Yi#v%Yi#w%Yi'm%Yi(T%Yi(d%Yi!h%Yi!T%Yi'k%Yip%Yi!Y%Yi%b%Yi!b%Yi~P$J]O#e%[iP%[iY%[i_%[il%[i{%[i!f%[i!g%[i!i%[i!m%[i#h%[i#i%[i#j%[i#k%[i#l%[i#m%[i#n%[i#o%[i#p%[i#r%[i#t%[i#v%[i#w%[i'm%[i(T%[i(d%[i!h%[i!T%[i'k%[ip%[i!Y%[i%b%[i!b%[i~P$KOO#e$viP$viY$vi_$vil$vi{$vi!W$vi!f$vi!g$vi!i$vi!m$vi#h$vi#i$vi#j$vi#k$vi#l$vi#m$vi#n$vi#o$vi#p$vi#r$vi#t$vi#v$vi#w$vi'm$vi(T$vi(d$vi!h$vi!T$vi'k$vi#Y$vip$vi!Y$vi%b$vi!b$vi~P#,sOe'Qa!W'Qa~P!0kO!W'Ra!h'Ra~P!7zO!W.bO!h(_i~O#z#]i!W#]i!X#]i~P#C^OP$]Oz#yO{#zO}#{O!g#wO!i#xO!m$]O(TVOY#gil#gi!f#gi#i#gi#j#gi#k#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~O#h#gi~P%3jO#h9zO~P%3jOP$]Oz#yO{#zO}#{O!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O(TVOY#gi!f#gi#l#gi#m#gi#n#gi#o#gi#p#gi#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~Ol#gi~P%5uOl9|O~P%5uOP$]Ol9|Oz#yO{#zO}#{O!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O(TVO#r#gi#t#gi#v#gi#w#gi#z#gi(d#gi(k#gi(l#gi!W#gi!X#gi~OY#gi!f#gi#m#gi#n#gi#o#gi#p#gi~P%8QOY:YO!f:OO#m:OO#n:OO#o:XO#p:OO~P%8QOP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO(TVO#t#gi#v#gi#w#gi#z#gi(d#gi(l#gi!W#gi!X#gi~O(k#gi~P%:lO(k#|O~P%:lOP$]OY:YOl9|Oz#yO{#zO}#{O!f:OO!g#wO!i#xO!m$]O#h9zO#i9{O#j9{O#k9{O#l9}O#m:OO#n:OO#o:XO#p:OO#r:PO#t:RO(TVO(k#|O#v#gi#w#gi#z#gi(d#gi!W#gi!X#gi~O(l#gi~P%yP?^P?^PPP?^PAOP?^P?^P?^PASPPAXPArPFjPPPFnPPPPFnIoPPPIuJpPFnPMOPPPP! ^FnPPPFnPFnP!#lFnP!'Q!(S!(]P!)P!)T!)PPPPPP!,`!(SPP!,|!-vP!0jFnFn!0o!3y!8`!8`!}P#@^#@e#@mPPPP#D{#Gr#NZ#N^#Na$ Y$ ]$ `$ g$ oPP$ u$ y$!q$#p$#t$$YPP$$^$$d$$hP$$k$$o$$r$%h$&P$&h$&l$&o$&r$&x$&{$'P$'TR!{RoqOXst!Z#c%f&i&k&l&n,b,g1g1jY!uQ'V-S0z4uQ%lvQ%tyQ%{|Q&a!VS&}!e,zQ']!iS'c!r!xS*_$|*dQ+`%uQ+m%}Q,R&ZQ-Q'UQ-['^Q-d'dQ/p*fQ1U,SR:d9u%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|,_,b,g-W-`-n-t.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2w4r4|5^5_5b5u7Z7`7o7yS#p]9r!r)W$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ*o%VQ+e%wQ,T&^Q,[&fQ.X:[Q0W+WQ0[+YQ0g+fQ1^,YQ2k.UQ4`0bQ5T1VQ6R2oQ6X:]Q6z4aR8P6S&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;ct!nQ!r!u!x!y&}'U'V'c'd'e,z-Q-S-d0z4u4w$^$si#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mQ&O|Q&{!eS'R%b,}Q+e%wQ,T&^Q/{*sQ0g+fQ0l+lQ1],XQ1^,YQ4`0bQ4i0nQ5T1VQ5W1XQ5X1[Q6z4aQ6}4fQ7h5ZQ8g7OR8r7ernOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jR,V&b&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'X'i'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;b;c[#[WZ#V#Y'O'y!S%cm#g#h#k%^%a(S(^(_(`*z*{*},^,t-r-x-y-z-|1o2g2h5k5|Q%oxQ%syS%x|%}Q&U!TQ'Y!hQ'[!iQ(g#rS*R$x*VS+_%t%uQ+c%wQ+|&XQ,Q&ZS-Z']'^Q.W(hQ/Z*SQ0`+`Q0f+fQ0h+gQ0k+kQ1P+}S1T,R,SQ2X-[Q3g/VQ4_0bQ4c0eQ4h0mQ5S1UQ6d3hQ6y4aQ6|4eQ8c6xR9X8dv$zi#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i!S%qy!i!t%s%t%u&|'[']'^'b'l*^+_+`,w-Z-[-c/h0`2Q2X2`3zQ+X%oQ+r&RQ+u&SQ,P&ZQ.V(gQ1O+|U1S,Q,R,SQ2p.WQ4}1PS5R1T1UQ7d5S#O;d#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mg;e:X:Y:_:a:c:j:l:n:r:t:xW%Pi%R*l;`S&R!Q&`Q&S!RQ&T!SR+p&P$_%Oi#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mT)r$u)sV*p%V:[:]U'R!e%b,}S(u#y#zQ+j%zS.P(c(dQ0u+vQ4P/yR7S4n&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;c$i$`c#X#d%j%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.j.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ'P!eR1|,zv!nQ!e!r!u!x!y&}'U'V'c'd'e,z-Q-S-d0z4u4wS*^$|*dS/h*_*fQ/q*gQ0w+xQ3z/pR3}/snqOXst!Z#c%f&i&k&l&n,b,g1g1jQ&p!^Q'm!wS(i#t9yQ+]%rQ+z&UQ+{&WQ-X'ZQ-f'fS.](n:fS0O*x:oQ0^+^Q0y+yQ1n,iQ1p,jQ1x,uQ2V-YQ2Y-^S4U0P:uQ4Z0_S4^0a:vQ5m1zQ5q2WQ5v2_Q6w4[Q7t5oQ7u5rQ7x5wR8x7q$d$_c#X#d%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VS(f#o'`U*i$}(m3ZS+S%j.jQ2l0WQ6O2kQ8O6RR9P8P$d$^c#X#d%k%m'x(O(j(q(y(z({(|(})O)P)Q)R)S)T)V)Y)^)h+T+i,x-g-l-q-s.^.d.h.k.l.{/}1v1y2Z2b2v2{2|2}3O3P3Q3R3S3T3U3V3W3X3[3]3b4T4]5n5t5y6V6W6]6^7U7s7w8Q8U8V8{9Z9b9s;VS(e#o'`S(w#z$_S+R%j.jS.Q(d(fQ.m)XQ0T+SR2i.R&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cS#p]9rQ&k!XQ&l!YQ&n![Q&o!]R1f,eQ'W!hQ+U%oQ-V'YS.S(g+XQ2T-UW2m.V.W0V0XQ5p2UU5}2j2l2pS7{6O6QS8}7}8OS9d8|9PQ9l9eR9o9mU!vQ'V-ST4s0z4u!Q_OXZ`st!V!Z#c#g%^%f&`&b&i&k&l&n(`,b,g-y1g1j]!pQ!r'V-S0z4uT#p]9r%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yS(u#y#zS.P(c(d!s:|$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cY!tQ'V-S0z4uQ'b!rS'l!u!xS'n!y4wS-c'c'dQ-e'eR2`-dQ'k!tS([#f1aS-b'b'nQ/Y*RQ/f*^Q2a-eQ3l/ZS3u/g/qQ6c3gS6n3{3}Q8Z6dR8b6qQ#vbQ'j!tS(Z#f1aS(]#l*wQ*y%_Q+Z%pQ+a%vU-a'b'k'nQ-u([Q/X*RQ/e*^Q/k*aQ0]+[Q1Q,OS2^-b-eQ2f-}S3k/Y/ZS3t/f/qQ3w/jQ3y/lQ5P1RQ5x2aQ6b3gQ6f3lS6j3u3}Q6o3|Q7b5QS8Y6c6dQ8^6kQ8`6nQ8o7cQ9T8ZQ9U8_Q9W8bQ9`8pQ9h9VQ;P:zQ;[;TR;];UV!vQ'V-S%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yS#vz!j!r:y$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cR;P;b%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yQ%_j!S%py!i!t%s%t%u&|'[']'^'b'l*^+_+`,w-Z-[-c/h0`2Q2X2`3zS%vz!jQ+[%qQ,O&ZW1R,P,Q,R,SU5Q1S1T1US7c5R5SQ8p7d!r:z$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ;T;aR;U;b$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7yY#aWZ#V#Y'y!S%cm#g#h#k%^%a(S(^(_(`*z*{*},^,t-r-x-y-z-|1o2g2h5k5|Q,]&f!p:{$[$m)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cR;O'OS'S!e%bR2O,}%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|,_,b,g-W-`-n-t.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2w4r4|5^5_5b5u7Z7`7o7y!r)W$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cQ,[&fQ0W+WQ2k.UQ6R2oR8P6S!f$Uc#X%j'x(O(j(q)Q)R)S)T)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9s!T:Q)V)h,x.j1v1y2{3T3U3V3W3[3b5n6W6]6^7U7s8Q8U8V9Z9b;V!b$Wc#X%j'x(O(j(q)S)T)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9s!P:S)V)h,x.j1v1y2{3V3W3[3b5n6W6]6^7U7s8Q8U8V9Z9b;V!^$[c#X%j'x(O(j(q)Y)^+i-g-l-q-s.^.d.{/}2Z2b2v3X4T4]5t5y6V7w8{9sQ3f/Tz;c)V)h,x.j1v1y2{3[3b5n6W6]6^7U7s8Q8U8V9Z9b;VQ;h;jR;i;k&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cS$nh$oR3_.p'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.p.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cT$jf$pQ$hfS)a$k)eR)m$pT$if$pT)c$k)e'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%f%l%y&b&e&f&i&k&l&n&r&z'O'X'i'y'{(R(Y(n(r(v)j)u*x*|+W,_,b,g,s,v-W-`-n-t.U.b.i.p.q/z0P0a0}1_1`1b1d1g1j1l1{2]2c2o2w3^4p4r4|5^5_5b5l5u6S7Z7`7o7y8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;cT$nh$oQ$qhR)l$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%f%l%y&b&e&f&i&k&l&n&r&z'X'i'y'{(R(Y(n(r(v)u*x*|+W,_,b,g-W-`-n-t.U.b.i/z0P0a0}1_1`1b1d1g1j1l2]2c2o2w4r4|5^5_5b5u6S7Z7`7o7y!s;a$[$m'O)j,s,v.q1{3^4p5l8h8y9q9t9u9x9y9z9{9|9}:O:P:Q:R:S:T:U:V:Z:d:e:f:h:o:p:u:v;c#clOPXZst!Z!`!o#R#c#n#{$m%f&b&e&f&i&k&l&n&r&z'X(v)j*|+W,_,b,g-W.U.q/z0}1_1`1b1d1g1j1l2o3^4r4|5^5_5b6S7Z7`7ov$}i#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i#O(m#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mQ*t%ZQ.|)vg3Z:X:Y:_:a:c:j:l:n:r:t:xv$yi#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;iQ*W$zS*a$|*dQ*u%[Q/l*b#O;R#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mf;S:X:Y:_:a:c:j:l:n:r:t:xQ;W;dQ;X;eQ;Y;fR;Z;gv$}i#w%W%X%])z)|*U*j*k._/^/|3f4O8X;`;h;i#O(m#u$c$d$x${)q)w)}*[+V+Y+q+t.T/P/_/a0q0t0|2n3p3x4W4Y4{6P6g6p7]7|8l9O9^9f:^:`:b:i:k:m:q:s:w;l;mg3Z:X:Y:_:a:c:j:l:n:r:t:xnoOXst!Z#c%f&i&k&l&n,b,g1g1jQ*Z${Q,p&uQ,q&wR3o/_$^%Oi#u#w$c$d$x${%W%X%])q)w)z)|)}*U*[*j*k+V+Y+q+t.T._/P/^/_/a/|0q0t0|2n3f3p3x4O4W4Y4{6P6g6p7]7|8X8l9O9^9f:X:Y:^:_:`:a:b:c:i:j:k:l:m:n:q:r:s:t:w:x;`;h;i;l;mQ+s&SQ0s+uQ4l0rR7R4mT*c$|*dS*c$|*dT4t0z4uS/j*`4rT3|/r7ZQ+Z%pQ/k*aQ0]+[Q1Q,OQ5P1RQ7b5QQ8o7cR9`8pn)z$v(o*v/]/t/u2t3m4S6a6r9S;Q;^;_!Y:i(k)[*Q*Y.[.x.}/T/b0U0p0r2s3n3r4k4m6T6U6h6l6t6v8]8a9g;j;k]:j3Y6[8R9Q9R9pp)|$v(o*v/R/]/t/u2t3m4S6a6r9S;Q;^;_![:k(k)[*Q*Y.[.x.}/T/b0U0p0r2q2s3n3r4k4m6T6U6h6l6t6v8]8a9g;j;k_:l3Y6[8R8S9Q9R9prnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jQ&]!UR,_&frnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jR&]!UQ+w&TR0o+psnOXst!V!Z#c%f&`&i&k&l&n,b,g1g1jQ0{+|S4z1O1PU7[4x4y4}S8k7^7_S9[8j8mQ9i9]R9n9jQ&d!VR,W&`R5W1XS%x|%}R0h+gQ&i!WR,b&jR,h&oT1h,g1jR,l&pQ,k&pR1q,lQ'p!zR-h'pSsOtQ#cXT%is#cQ!}TR'r!}Q#QUR't#QQ)s$uR.y)sQ#TVR'v#TQ#WWU'|#W'}-oQ'}#XR-o(OQ,{'PR1},{Q.`(oR2u.`Q.c(qS2x.c2yR2y.dQ-S'VR2R-SY!rQ'V-S0z4uR'a!rS#^W%aU(T#^(U-pQ(U#_R-p(PQ-O'SR2P-Ot`OXst!V!Z#c%f&`&b&i&k&l&n,b,g1g1jS#gZ%^U#q`#g-yR-y(`Q(a#iQ-v(]W.O(a-v2d5zQ2d-wR5z2eQ)e$kR.r)eQ$ohR)k$oQ$bcU)Z$b-k:WQ-k9sR:W)hQ/W*RW3i/W3j6e8[U3j/X/Y/ZS6e3k3lR8[6f#o)x$v(k(o)[*Q*Y*q*r*v.Y.Z.[.x.}/R/S/T/]/b/t/u0U0p0r2q2r2s2t3Y3m3n3r4S4k4m6T6U6Y6Z6[6a6h6l6r6t6v8R8S8T8]8a9Q9R9S9g9p;Q;^;_;j;kQ/`*YU3q/`3s6iQ3s/bR6i3rQ*d$|R/n*dQ*m%QR/w*mQ4X0UR6u4XQ+O%dR0S+OQ4o0uS7T4o8iR8i7UQ+y&UR0x+yQ4u0zR7X4uQ1W,TS5U1W7fR7f5WQ0c+cW4b0c4d6{8eQ4d0fQ6{4cR8e6|Q+h%xR0i+hQ1j,gR5f1jYrOXst#cQ&m!ZQ+Q%fQ,a&iQ,c&kQ,d&lQ,f&nQ1e,bS1h,g1jR5e1gQ%hpQ&q!_Q&t!aQ&v!bQ&x!cQ'h!tQ+P%eQ+]%rQ+o&OQ,V&dQ,n&sW-_'b'j'k'nQ-f'fQ/m*cQ0^+^S1Z,W,ZQ1r,mQ1s,pQ1t,qQ2Y-^W2[-a-b-e-gQ4Z0_Q4g0lQ4j0pQ5O1QQ5Y1]Q5d1fU5s2Z2^2aQ5v2_Q6w4[Q7P4iQ7Q4kQ7W4tQ7a5PQ7g5XS7v5t5xQ7x5wQ8f6}Q8n7bQ8s7hQ8z7wQ9Y8gQ9_8oQ9c8{R9k9`Q%ryQ'Z!iQ'f!tU+^%s%t%uQ,u&|U-Y'[']'^S-^'b'lQ/d*^S0_+_+`Q1z,wS2W-Z-[Q2_-cQ3v/hQ4[0`Q5o2QQ5r2XQ5w2`R6m3zS$wi;`R*n%RU%Qi%R;`R/v*lQ$viS(k#u+YQ(o#wS)[$c$dQ*Q$xQ*Y${Q*q%WQ*r%XQ*v%]Q.Y:^Q.Z:`Q.[:bQ.x)qS.})w/PQ/R)zQ/S)|Q/T)}Q/]*UQ/b*[Q/t*jQ/u*kh0U+V.T0|2n4{6P7]7|8l9O9^9fQ0p+qQ0r+tQ2q:iQ2r:kQ2s:mQ2t._S3Y:X:YQ3m/^Q3n/_Q3r/aQ4S/|Q4k0qQ4m0tQ6T:qQ6U:sQ6Y:_Q6Z:aQ6[:cQ6a3fQ6h3pQ6l3xQ6r4OQ6t4WQ6v4YQ8R:nQ8S:jQ8T:lQ8]6gQ8a6pQ9Q:rQ9R:tQ9S8XQ9g:wQ9p:xQ;Q;`Q;^;hQ;_;iQ;j;lR;k;mnpOXst!Z#c%f&i&k&l&n,b,g1g1jQ!fPS#eZ#nQ&s!`U'_!o4r7ZQ'u#RQ(x#{Q)i$mS,Z&b&eQ,`&fQ,m&rQ,r&zQ-U'XQ.f(vQ.v)jQ0Q*|Q0X+WQ1c,_Q2U-WQ2l.UQ3a.qQ4Q/zQ4y0}Q5[1_Q5]1`Q5a1bQ5c1dQ5h1lQ6O2oQ6_3^Q7_4|Q7k5^Q7l5_Q7n5bQ8O6SQ8m7`R8w7o#WcOPXZst!Z!`!o#c#n#{%f&b&e&f&i&k&l&n&r&z'X(v*|+W,_,b,g-W.U/z0}1_1`1b1d1g1j1l2o4r4|5^5_5b6S7Z7`7oQ#XWQ#dYQ%juQ%kvS%mw!gS'x#V'{Q(O#YQ(j#tQ(q#xQ(y$OQ(z$PQ({$QQ(|$RQ(}$SQ)O$TQ)P$UQ)Q$VQ)R$WQ)S$XQ)T$YQ)V$[Q)Y$aQ)^$eW)h$m)j.q3^Q+T%lQ+i%yS,x'O1{Q-g'iS-l'y-nQ-q(RQ-s(YQ.^(nQ.d(rQ.h9qQ.j9tQ.k9uQ.l9xQ.{)uQ/}*xQ1v,sQ1y,vQ2Z-`Q2b-tQ2v.bQ2{9yQ2|9zQ2}9{Q3O9|Q3P9}Q3Q:OQ3R:PQ3S:QQ3T:RQ3U:SQ3V:TQ3W:UQ3X.iQ3[:ZQ3]:dQ3b:VQ4T0PQ4]0aQ5n:eQ5t2]Q5y2cQ6V2wQ6W:fQ6]:hQ6^:oQ7U4pQ7s5lQ7w5uQ8Q:pQ8U:uQ8V:vQ8{7yQ9Z8hQ9b8yQ9s#RR;V;cR#ZWR'Q!eY!tQ'V-S0z4uS&|!e,zQ'b!rS'l!u!xS'n!y4wS,w&}'US-c'c'dQ-e'eQ2Q-QR2`-dR(p#wR(s#xQ!fQT-R'V-S]!qQ!r'V-S0z4uQ#o]R'`9rT#jZ%^S#iZ%^S%dm,^U(]#g#h#kS-w(^(_Q-{(`Q0R*}Q2e-xU2f-y-z-|S5{2g2hR7z5|`#]W#V#Y%a'y(S*z-rr#fZm#g#h#k%^(^(_(`*}-x-y-z-|2g2h5|Q1a,^Q1w,tQ5j1oQ7r5kT:}'O*{T#`W%aS#_W%aS'z#V(SS(P#Y*zS,y'O*{T-m'y-rT'T!e%bQ$kfR)o$pT)d$k)eR3`.pT*T$x*VR*]${Q0V+VQ2j.TQ4x0|Q6Q2nQ7^4{Q7}6PQ8j7]Q8|7|Q9]8lQ9e9OQ9j9^R9m9fnqOXst!Z#c%f&i&k&l&n,b,g1g1jQ&c!VR,V&`tmOXst!U!V!Z#c%f&`&i&k&l&n,b,g1g1jR,^&fT%em,^R0v+vR,U&^Q%||R+n%}R+d%wT&g!W&jT&h!W&jT1i,g1j",nodeNames:"⚠ ArithOp ArithOp LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:367,context:kV,nodeProps:[["group",-26,7,15,17,63,200,204,208,209,211,214,217,227,229,235,237,239,241,244,250,256,258,260,262,264,266,267,"Statement",-32,11,12,26,29,30,36,46,49,50,52,57,65,73,77,79,81,82,104,105,114,115,132,135,137,138,139,140,142,143,163,164,166,"Expression",-23,25,27,31,35,37,39,167,169,171,172,174,175,176,178,179,180,182,183,184,194,196,198,199,"Type",-3,85,97,103,"ClassItem"],["openedBy",32,"InterpolationStart",51,"[",55,"{",70,"(",144,"JSXStartTag",156,"JSXStartTag JSXStartCloseTag"],["closedBy",34,"InterpolationEnd",45,"]",56,"}",71,")",145,"JSXSelfCloseEndTag JSXEndTag",161,"JSXEndTag"]],propSources:[RV],skippedNodes:[0,3,4,270],repeatNodeCount:33,tokenData:"$Fl(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Nu!`!a$#a!a!b$(n!b!c$,m!c!}Er!}#O$-w#O#P$/R#P#Q$4j#Q#R$5t#R#SEr#S#T$7R#T#o$8]#o#p$s#r#s$@P#s$f%Z$f$g+g$g#BYEr#BY#BZ$AZ#BZ$ISEr$IS$I_$AZ$I_$I|Er$I|$I}$Df$I}$JO$Df$JO$JTEr$JT$JU$AZ$JU$KVEr$KV$KW$AZ$KW&FUEr&FU&FV$AZ&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AZ?HUOEr(n%d_$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$e&j'|!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'|!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$e&j'ypOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'ypOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'yp'|!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$e&j'yp'|!b'o(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'z#S$e&j'p(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$e&j'yp'|!b'p(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$e&j!m$Ip'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#r$Id$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#r$Id$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'x$(n$e&j'|!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$e&j'|!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$e&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$`#t$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$`#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$`#t$e&j'|!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'|!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$`#t'|!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hh$e&j'yp'|!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXUS$e&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSUSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWUS'|!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]US$e&j'ypOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWUS'ypOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYUS'yp'|!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$e&j!SSOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$e&j!SSO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!SSOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!SS#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$e&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$e&j'|!b!SSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ'|!b!SSOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb'|!b!SSOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX'|!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$e&j'|!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$e&j'yp'|!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$e&j'yp'|!bm$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#DV[t]||-1},{term:330,get:t=>HV[t]||-1},{term:68,get:t=>LV[t]||-1}],tokenPrec:12868});function UQ(t){let e=Object.keys(t).join(""),A=/\w/.test(e);return A&&(e=e.replace(/\w/g,"")),`[${A?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function NV(t){let e=Object.create(null),A=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let i=1;itypeof n=="string"?{label:n}:n),[A,r]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:NV(e);return n=>{let i=n.matchBefore(r);return i||n.explicit?{from:i?i.from:n.pos,options:e,validFor:A}:null}}function ZV(t,e){return A=>{for(let r=kt(A.state).resolveInner(A.pos,-1);r;r=r.parent){if(t.indexOf(r.name)>-1)return null;if(r.type.isTop)break}return e(A)}}const XV=en.define(),VV=Ae.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class YV{constructor(e,A,r,n){this.field=e,this.line=A,this.from=r,this.to=n}}class D0{constructor(e,A,r){this.field=e,this.from=A,this.to=r}map(e){let A=e.mapPos(this.from,-1,Dt.TrackDel),r=e.mapPos(this.to,1,Dt.TrackDel);return A==null||r==null?null:new D0(this.field,A,r)}}class H0{constructor(e,A){this.lines=e,this.fieldPositions=A}instantiate(e,A){let r=[],n=[A],i=e.doc.lineAt(A),o=/^\s*/.exec(i.text)[0];for(let l of this.lines){if(r.length){let a=o,c=/^\t*/.exec(l)[0].length;for(let u=0;unew D0(l.field,n[l.line]+l.from,n[l.line]+l.to));return{text:r,ranges:s}}static parse(e){let A=[],r=[],n=[],i;for(let o of e.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(o);){let s=i[1]?+i[1]:null,l=i[2]||i[3]||"",a=-1;for(let c=0;c=a&&u.field++}n.push(new YV(a,r.length,i.index,i.index+l.length)),o=o.slice(0,i.index)+l+o.slice(i.index+i[0].length)}for(let s;s=/\\([{}])/.exec(o);){o=o.slice(0,s.index)+s[1]+o.slice(s.index+s[0].length);for(let l of n)l.line==r.length&&l.from>s.index&&(l.from--,l.to--)}r.push(o)}return new H0(r,n)}}let KV=Je.widget({widget:new class extends id{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),WV=Je.mark({class:"cm-snippetField"});class cs{constructor(e,A){this.ranges=e,this.active=A,this.deco=Je.set(e.map(r=>(r.from==r.to?KV:WV).range(r.from,r.to)))}map(e){let A=[];for(let r of this.ranges){let n=r.map(e);if(!n)return null;A.push(n)}return new cs(A,this.active)}selectionInsideField(e){return e.ranges.every(A=>this.ranges.some(r=>r.field==this.active&&r.from<=A.from&&r.to>=A.to))}}const aa=Xe.define({map(t,e){return t&&t.map(e)}}),jV=Xe.define(),Kl=yr.define({create(){return null},update(t,e){for(let A of e.effects){if(A.is(aa))return A.value;if(A.is(jV)&&t)return new cs(t.ranges,A.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>Ae.decorations.from(t,e=>e?e.deco:Je.none)});function L0(t,e){return D.create(t.filter(A=>A.field==e).map(A=>D.range(A.from,A.to)))}function GV(t){let e=H0.parse(t);return(A,r,n,i)=>{let{text:o,ranges:s}=e.instantiate(A.state,n),l={changes:{from:n,to:i,insert:ge.of(o)},scrollIntoView:!0,annotations:r?XV.of(r):void 0};if(s.length&&(l.selection=L0(s,0)),s.length>1){let a=new cs(s,0),c=l.effects=[aa.of(a)];A.state.field(Kl,!1)===void 0&&c.push(Xe.appendConfig.of([Kl,tY,AY,VV]))}A.dispatch(A.state.update(l))}}function g$(t){return({state:e,dispatch:A})=>{let r=e.field(Kl,!1);if(!r||t<0&&r.active==0)return!1;let n=r.active+t,i=t>0&&!r.ranges.some(o=>o.field==n+t);return A(e.update({selection:L0(r.ranges,n),effects:aa.of(i?null:new cs(r.ranges,n)),scrollIntoView:!0})),!0}}const zV=({state:t,dispatch:e})=>t.field(Kl,!1)?(e(t.update({effects:aa.of(null)})),!0):!1,qV=g$(1),JV=g$(-1),eY=[{key:"Tab",run:qV,shift:JV},{key:"Escape",run:zV}],EQ=ee.define({combine(t){return t.length?t[0]:eY}}),tY=td.highest(Q0.compute([EQ],t=>t.facet(EQ)));function Zt(t,e){return Object.assign(Object.assign({},e),{apply:GV(t)})}const AY=Ae.domEventHandlers({mousedown(t,e){let A=e.state.field(Kl,!1),r;if(!A||(r=e.posAtCoords({x:t.clientX,y:t.clientY}))==null)return!1;let n=A.ranges.find(i=>i.from<=r&&i.to>=r);return!n||n.field==A.active?!1:(e.dispatch({selection:L0(A.ranges,n.field),effects:aa.of(A.ranges.some(i=>i.field>n.field)?new cs(A.ranges,n.field):null),scrollIntoView:!0}),!0)}}),m$=new class extends Fi{};m$.startSide=1;m$.endSide=-1;const O$=[Zt("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Zt("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Zt("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Zt("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Zt("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Zt(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),Zt("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Zt(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),Zt(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),Zt('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Zt('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],rY=O$.concat([Zt("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Zt("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Zt("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),FQ=new nF,w$=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function ks(t){return(e,A)=>{let r=e.node.getChild("VariableDefinition");return r&&A(r,t),!0}}const nY=["FunctionDeclaration"],iY={FunctionDeclaration:ks("function"),ClassDeclaration:ks("class"),ClassExpression:()=>!0,EnumDeclaration:ks("constant"),TypeAliasDeclaration:ks("type"),NamespaceDeclaration:ks("namespace"),VariableDefinition(t,e){t.matchContext(nY)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function B$(t,e){let A=FQ.get(e);if(A)return A;let r=[],n=!0;function i(o,s){let l=t.sliceString(o.from,o.to);r.push({label:l,type:s})}return e.cursor(xe.IncludeAnonymous).iterate(o=>{if(n)n=!1;else if(o.name){let s=iY[o.name];if(s&&s(o,i)||w$.has(o.name))return!1}else if(o.to-o.from>8192){for(let s of B$(t,o.node))r.push(s);return!1}}),FQ.set(e,r),r}const $Q=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,v$=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function oY(t){let e=kt(t.state).resolveInner(t.pos,-1);if(v$.indexOf(e.name)>-1)return null;let A=e.name=="VariableName"||e.to-e.from<20&&$Q.test(t.state.sliceDoc(e.from,e.to));if(!A&&!t.explicit)return null;let r=[];for(let n=e;n;n=n.parent)w$.has(n.name)&&(r=r.concat(B$(t.state.doc,n)));return{options:r,from:A?e.from:t.pos,validFor:$Q}}const mr=Vo.define({name:"javascript",parser:_V.configure({props:[cd.add({IfStatement:tu({except:/^\s*({|else\b)/}),TryStatement:tu({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:xZ,SwitchBody:t=>{let e=t.textAfter,A=/^\s*\}/.test(e),r=/^\s*(case|default)\b/.test(e);return t.baseIndent+(A?0:r?1:2)*t.unit},Block:SZ({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":tu({except:/^{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),$0.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":dF,BlockComment(t){return{from:t.from+2,to:t.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),y$={test:t=>/^JSX/.test(t.name),facet:lF({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Q$=mr.configure({dialect:"ts"},"typescript"),C$=mr.configure({dialect:"jsx",props:[U0.add(t=>t.isTop?[y$]:void 0)]}),b$=mr.configure({dialect:"jsx ts",props:[U0.add(t=>t.isTop?[y$]:void 0)]},"typescript");let S$=t=>({label:t,type:"keyword"});const x$="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(S$),sY=x$.concat(["declare","implements","private","protected","public"].map(S$));function lY(t={}){let e=t.jsx?t.typescript?b$:C$:t.typescript?Q$:mr,A=t.typescript?rY.concat(sY):O$.concat(x$);return new E0(e,[mr.data.of({autocomplete:ZV(v$,MV(A))}),mr.data.of({autocomplete:oY}),t.jsx?uY:[]])}function aY(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function kQ(t,e,A=t.length){for(let r=e==null?void 0:e.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return t.sliceString(r.from,Math.min(r.to,A));return""}const cY=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),uY=Ae.inputHandler.of((t,e,A,r,n)=>{if((cY?t.composing:t.compositionStarted)||t.state.readOnly||e!=A||r!=">"&&r!="/"||!mr.isActiveAt(t.state,e,-1))return!1;let i=n(),{state:o}=i,s=o.changeByRange(l=>{var a;let{head:c}=l,u=kt(o).resolveInner(c-1,-1),f;if(u.name=="JSXStartTag"&&(u=u.parent),!(o.doc.sliceString(c-1,c)!=r||u.name=="JSXAttributeValue"&&u.to>c)){if(r==">"&&u.name=="JSXFragmentTag")return{range:l,changes:{from:c,insert:""}};if(r=="/"&&u.name=="JSXStartCloseTag"){let d=u.parent,h=d.parent;if(h&&d.from==c-2&&((f=kQ(o.doc,h.firstChild,c))||((a=h.firstChild)===null||a===void 0?void 0:a.name)=="JSXFragmentTag")){let g=`${f}>`;return{range:D.cursor(c+g.length,-1),changes:{from:c,insert:g}}}}else if(r==">"){let d=aY(u);if(d&&!/^\/?>|^<\//.test(o.doc.sliceString(c,c+2))&&(f=kQ(o.doc,d,c)))return{range:l,changes:{from:c,insert:``}}}}return{range:l}});return s.changes.empty?!1:(t.dispatch([i,o.update(s,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Ps=["_blank","_self","_top","_parent"],jh=["ascii","utf-8","utf-16","latin1","latin1"],Gh=["get","post","put","delete"],zh=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],AA=["true","false"],j={},fY={a:{attrs:{href:null,ping:null,type:null,media:null,target:Ps,hreflang:null}},abbr:j,address:j,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:j,aside:j,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:j,base:{attrs:{href:null,target:Ps}},bdi:j,bdo:j,blockquote:{attrs:{cite:null}},body:j,br:j,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:zh,formmethod:Gh,formnovalidate:["novalidate"],formtarget:Ps,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:j,center:j,cite:j,code:j,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:j,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:j,div:j,dl:j,dt:j,em:j,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:j,figure:j,footer:j,form:{attrs:{action:null,name:null,"accept-charset":jh,autocomplete:["on","off"],enctype:zh,method:Gh,novalidate:["novalidate"],target:Ps}},h1:j,h2:j,h3:j,h4:j,h5:j,h6:j,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:j,hgroup:j,hr:j,html:{attrs:{manifest:null}},i:j,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:zh,formmethod:Gh,formnovalidate:["novalidate"],formtarget:Ps,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:j,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:j,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:j,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:jh,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:j,noscript:j,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:j,param:{attrs:{name:null,value:null}},pre:j,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:j,rt:j,ruby:j,samp:j,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:jh}},section:j,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:j,source:{attrs:{src:null,type:null,media:null}},span:j,strong:j,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:j,summary:j,sup:j,table:j,tbody:j,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:j,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:j,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:j,time:{attrs:{datetime:null}},title:j,tr:j,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:j,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:j},U$={accesskey:null,class:null,contenteditable:AA,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:AA,autocorrect:AA,autocapitalize:AA,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":AA,"aria-autocomplete":["inline","list","both","none"],"aria-busy":AA,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":AA,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":AA,"aria-hidden":AA,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":AA,"aria-multiselectable":AA,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":AA,"aria-relevant":null,"aria-required":AA,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},E$="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of E$)U$[t]=null;class pf{constructor(e,A){this.tags=Object.assign(Object.assign({},fY),e),this.globalAttrs=Object.assign(Object.assign({},U$),A),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}pf.default=new pf;function jo(t,e,A=t.length){if(!e)return"";let r=e.firstChild,n=r&&r.getChild("TagName");return n?t.sliceString(n.from,Math.min(n.to,A)):""}function Go(t,e=!1){for(;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function F$(t,e,A){let r=A.tags[jo(t,Go(e))];return(r==null?void 0:r.children)||A.allTags}function _0(t,e){let A=[];for(let r=Go(e);r&&!r.type.isTop;r=Go(r.parent)){let n=jo(t,r);if(n&&r.lastChild.name=="CloseTag")break;n&&A.indexOf(n)<0&&(e.name=="EndTag"||e.from>=r.firstChild.to)&&A.push(n)}return A}const $$=/^[:\-\.\w\u00b7-\uffff]*$/;function PQ(t,e,A,r,n){let i=/\s*>/.test(t.sliceDoc(n,n+5))?"":">",o=Go(A,!0);return{from:r,to:n,options:F$(t.doc,o,e).map(s=>({label:s,type:"type"})).concat(_0(t.doc,A).map((s,l)=>({label:"/"+s,apply:"/"+s+i,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function TQ(t,e,A,r){let n=/\s*>/.test(t.sliceDoc(r,r+5))?"":">";return{from:A,to:r,options:_0(t.doc,e).map((i,o)=>({label:i,apply:i+n,type:"type",boost:99-o})),validFor:$$}}function dY(t,e,A,r){let n=[],i=0;for(let o of F$(t.doc,A,e))n.push({label:"<"+o,type:"type"});for(let o of _0(t.doc,A))n.push({label:"",type:"type",boost:99-i++});return{from:r,to:r,options:n,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function hY(t,e,A,r,n){let i=Go(A),o=i?e.tags[jo(t.doc,i)]:null,s=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?s:s.length?s.concat(e.globalAttrNames):e.globalAttrNames;return{from:r,to:n,options:l.map(a=>({label:a,type:"property"})),validFor:$$}}function pY(t,e,A,r,n){var i;let o=(i=A.parent)===null||i===void 0?void 0:i.getChild("AttributeName"),s=[],l;if(o){let a=t.sliceDoc(o.from,o.to),c=e.globalAttrs[a];if(!c){let u=Go(A),f=u?e.tags[jo(t.doc,u)]:null;c=(f==null?void 0:f.attrs)&&f.attrs[a]}if(c){let u=t.sliceDoc(r,n).toLowerCase(),f='"',d='"';/^['"]/.test(u)?(l=u[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",d=t.sliceDoc(n,n+1)==u[0]?"":u[0],u=u.slice(1),r++):l=/^[^\s<>='"]*$/;for(let h of c)s.push({label:h,apply:f+h+d,type:"constant"})}}return{from:r,to:n,options:s,validFor:l}}function gY(t,e){let{state:A,pos:r}=e,n=kt(A).resolveInner(r,-1),i=n.resolve(r);for(let o=r,s;i==n&&(s=n.childBefore(o));){let l=s.lastChild;if(!l||!l.type.isError||l.fromgY(r,n)}const OY=mr.parser.configure({top:"SingleExpression"}),k$=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:Q$.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:C$.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:b$.parser},{tag:"script",attrs:t=>t.type=="importmap"||t.type=="speculationrules",parser:OY},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:mr.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:hf.parser}],P$=[{name:"style",parser:hf.parser.configure({top:"Styles"})}].concat(E$.map(t=>({name:t,parser:mr.parser}))),T$=Vo.define({name:"html",parser:XX.configure({props:[cd.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].lengtht.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),nu=T$.configure({wrap:u$(k$,P$)});function wY(t={}){let e="",A;t.matchClosingTags===!1&&(e="noMatch"),t.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(A=u$((t.nestedLanguages||[]).concat(k$),(t.nestedAttributes||[]).concat(P$)));let r=A?T$.configure({wrap:A,dialect:e}):e?nu.configure({dialect:e}):nu;return new E0(r,[nu.data.of({autocomplete:mY(t)}),t.autoCloseTags!==!1?BY:[],lY().support,wV().support])}const IQ=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),BY=Ae.inputHandler.of((t,e,A,r,n)=>{if(t.composing||t.state.readOnly||e!=A||r!=">"&&r!="/"||!nu.isActiveAt(t.state,e,-1))return!1;let i=n(),{state:o}=i,s=o.changeByRange(l=>{var a,c,u;let f=o.doc.sliceString(l.from-1,l.to)==r,{head:d}=l,h=kt(o).resolveInner(d-1,-1),g;if((h.name=="TagName"||h.name=="StartTag")&&(h=h.parent),f&&r==">"&&h.name=="OpenTag"){if(((c=(a=h.parent)===null||a===void 0?void 0:a.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(g=jo(o.doc,h.parent,d))&&!IQ.has(g)){let B=d+(o.doc.sliceString(d,d+1)===">"?1:0),m=``;return{range:l,changes:{from:d,to:B,insert:m}}}}else if(f&&r=="/"&&h.name=="IncompleteCloseTag"){let B=h.parent;if(h.from==d-2&&((u=B.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(g=jo(o.doc,B,d))&&!IQ.has(g)){let m=d+(o.doc.sliceString(d,d+1)===">"?1:0),O=`${g}>`;return{range:D.cursor(d+O.length,-1),changes:{from:d,to:m,insert:O}}}}return{range:l}});return s.changes.empty?!1:(t.dispatch([i,o.update(s,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});function vY({code:t,editorTheme:e,onCodeChange:A}){const r=p.useRef(null),n=p.useRef(null),i=p.useMemo(()=>Be.create({extensions:[t6(),Q0.of([...q6,J6,{key:"Mod-z",run:QF,preventDefault:!0},{key:"Mod-Shift-z",run:CF,preventDefault:!0}]),W7(),DZ(),wY(),e===i0.ESPRESSO?XZ:ZZ,Ae.lineWrapping,Ae.updateListener.of(o=>{if(o.docChanged){const s=o.state.doc.toString();A(s)}})]}),[e]);return p.useEffect(()=>(n.current=new Ae({state:i,parent:r.current}),()=>{n.current&&(n.current.destroy(),n.current=null)}),[]),p.useEffect(()=>{n.current&&n.current.state.doc.toString()!==t&&n.current.dispatch({changes:{from:0,to:n.current.state.doc.length,insert:t}})},[t]),y.jsx("div",{className:"overflow-x-scroll overflow-y-scroll mx-2 border-[4px] border-black rounded-[20px]",ref:r})}var yY=function(){var t=document.getSelection();if(!t.rangeCount)return function(){};for(var e=document.activeElement,A=[],r=0;r"u"){A&&console.warn("unable to use e.clipboardData"),A&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var u=RQ[e.format]||RQ.default;window.clipboardData.setData(u,t)}else c.clipboardData.clearData(),c.clipboardData.setData(e.format,t);e.onCopy&&(c.preventDefault(),e.onCopy(c.clipboardData))}),document.body.appendChild(s),i.selectNodeContents(s),o.addRange(i);var a=document.execCommand("copy");if(!a)throw new Error("copy command was unsuccessful");l=!0}catch(c){A&&console.error("unable to copy using execCommand: ",c),A&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",t),e.onCopy&&e.onCopy(window.clipboardData),l=!0}catch(u){A&&console.error("unable to copy using clipboardData: ",u),A&&console.error("falling back to prompt"),r=bY("message"in e?e.message:CY),window.prompt(r,t)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(i):o.removeAllRanges()),s&&document.body.removeChild(s),n()}return l}var xY=SY;const UY=Wl(xY);function EY({code:t,setCode:e,settings:A}){const r=p.useCallback(()=>{UY(t),vA.success("Copied to clipboard")},[t]),n=p.useCallback(async()=>{const i={html:t,editors:"100",layout:"left",css_external:"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"+(t.includes("e(n),disabled:r,children:[y.jsx(qO,{className:"col-span-2",id:"output-settings-js",children:t?eo(t):"Select a stack"}),y.jsx(JO,{children:y.jsxs(r3,{children:[y.jsx(mn,{value:lt.HTML_TAILWIND,children:eo(lt.HTML_TAILWIND)}),y.jsx(mn,{value:lt.REACT_TAILWIND,children:eo(lt.REACT_TAILWIND)}),y.jsx(mn,{value:lt.BOOTSTRAP,children:eo(lt.BOOTSTRAP)}),y.jsx(mn,{value:lt.IONIC_TAILWIND,children:y.jsxs("div",{className:"flex items-center",children:[eo(lt.IONIC_TAILWIND),y.jsx(bm,{className:"ml-2",variant:"secondary",children:"Beta"})]})}),y.jsx(mn,{value:lt.SVG,children:y.jsxs("div",{className:"flex items-center",children:[eo(lt.SVG),y.jsx(bm,{className:"ml-2",variant:"secondary",children:"Beta"})]})})]})})]})]})})}function $Y(t,e){const A=[];let r=e;for(;r!==null;){const n=t[r];if(n)n.type==="ai_create"?A.unshift(n.code):n.type==="ai_edit"?(A.unshift(n.code),A.unshift(n.inputs.prompt)):n.type==="code_create"&&A.unshift(n.code),r=n.parentIndex;else throw new Error("Malformed history: missing parent index")}return A}function kY(t){switch(t){case"ai_create":return"Create";case"ai_edit":return"Edit";case"code_create":return"Imported from code";default:{const e=t;throw new Error(`Unhandled case: ${e}`)}}}function PY(t){const e=t.type;switch(e){case"ai_create":return"Create";case"ai_edit":return t.inputs.prompt;case"code_create":return"Imported from code";default:{const A=e;throw new Error(`Unhandled case: ${A}`)}}}const TY=(t,e)=>{const A=[];for(let r=0;ry.jsx("li",{children:y.jsxs(IY,{children:[y.jsxs("div",{className:SO("flex items-center justify-between space-x-2 w-full pr-2","border-b cursor-pointer",{" hover:bg-black hover:text-white":!i.isActive,"bg-slate-500 text-white":i.isActive}),children:[y.jsxs("div",{className:"flex justify-between truncate flex-1 p-2",onClick:()=>r?vA.error("Please wait for code generation to complete before viewing an older version."):A(o),children:[y.jsxs("div",{className:"flex gap-x-1 truncate",children:[y.jsx("h2",{className:"text-sm truncate",children:i.summary}),i.parentVersion!==null&&y.jsxs("h2",{className:"text-sm",children:["(parent: ",i.parentVersion,")"]})]}),y.jsxs("h2",{className:"text-sm",children:["v",o+1]})]}),y.jsx(RY,{asChild:!0,children:y.jsxs(yA,{variant:"ghost",size:"sm",className:"h-6",children:[y.jsx(CS,{className:"h-4 w-4"}),y.jsx("span",{className:"sr-only",children:"Toggle"})]})})]}),y.jsxs(DY,{className:"w-full bg-slate-300 p-2",children:[y.jsxs("div",{children:["Full prompt: ",i.summary]}),y.jsx("div",{className:"flex justify-end",children:y.jsx(bm,{children:i.type})})]})]})},o))})]})}function LY({importFromCode:t}){const[e,A]=p.useState(""),[r,n]=p.useState(void 0),i=()=>{if(e===""){vA.error("Please paste in some code");return}if(r===void 0){vA.error("Please select your stack");return}t(e,r)};return y.jsxs(SS,{children:[y.jsx(xS,{asChild:!0,children:y.jsx(yA,{variant:"secondary",children:"Import from Code"})}),y.jsxs(_O,{className:"sm:max-w-[425px]",children:[y.jsxs(NO,{children:[y.jsx(ZO,{children:"Paste in your HTML code"}),y.jsx(ES,{children:"Make sure that the code you're importing is valid HTML."})]}),y.jsx($O,{value:e,onChange:o=>A(o.target.value),className:"w-full h-64"}),y.jsx(I$,{generatedCodeConfig:r,setGeneratedCodeConfig:o=>n(o),label:"Stack:",shouldDisableUpdates:!1}),y.jsx(MO,{children:y.jsx(yA,{type:"submit",onClick:i,children:"Import"})})]})]})}const _Y=!1;function NY(){const[t,e]=p.useState(ot.INITIAL),[A,r]=p.useState(""),[n,i]=p.useState([]),[o,s]=p.useState([]),[l,a]=p.useState(""),[c,u]=p.useState(!1),[f,d]=V3({model:"gpt-4-vision",openAiApiKey:null,googleApiKey:null,openAiBaseURL:null,screenshotOneApiKey:null,isImageGenerationEnabled:!0,editorTheme:i0.COBALT,generatedCodeConfig:lt.HTML_TAILWIND,isTermOfServiceAccepted:!1,accessCode:null},"setting"),[h,g]=p.useState([]),[B,m]=p.useState(null),[O,v]=p.useState(!1),Q=p.useRef(null);p.useEffect(()=>{f.generatedCodeConfig||d($=>({...$,generatedCodeConfig:lt.HTML_TAILWIND}))},[f.generatedCodeConfig,d]);const C=async()=>{var I;const $=document.querySelector("#preview-desktop");return(I=$==null?void 0:$.contentWindow)!=null&&I.document.body?(await D8($.contentWindow.document.body)).toDataURL("image/png"):""},b=()=>{const $=new Blob([A],{type:"text/html"}),_=URL.createObjectURL($),k=document.createElement("a");k.href=_,k.download="index.html",document.body.appendChild(k),k.click(),document.body.removeChild(k),URL.revokeObjectURL(_)},S=()=>{e(ot.INITIAL),r(""),i([]),s([]),a(""),u(!1),g([]),m(null),v(!1)},x=()=>{var $,_;(_=($=Q.current)==null?void 0:$.close)==null||_.call($,bb),U()},U=()=>{B===null?S():(r(h[B].code),e(ot.CODE_READY))};function E($,_){s([]),e(ot.CODING);const k={...$,...f};gT(Q,k,I=>r(Z=>Z+I),I=>{r(I),$.generationType==="create"?(g([{type:"ai_create",parentIndex:null,code:I,inputs:{image_url:n[0]}}]),m(0)):g(Z=>{if(_===null)return vA.error("No parent version set. Contact support or open a Github issue."),Z;const W=[...Z,{type:"ai_edit",parentIndex:_,code:I,inputs:{prompt:l}}];return m(W.length-1),W})},I=>s(Z=>[...Z,I]),()=>{U()},()=>{e(ot.CODE_READY)})}function T($){S(),i($),$.length>0&&E({generationType:"create",image:$[0]},B)}async function F(){if(B===null){vA.error("No current version set. Contact support or open a Github issue.");return}let $;try{$=$Y(h,B)}catch{vA.error("Version history is invalid. This shouldn't happen. Please contact support or open a Github issue.");return}const _=[...$,l];if(O){const k=await C();E({generationType:"update",image:n[0],resultImage:k,history:_,isImportedFromCode:c},B)}else E({generationType:"update",image:n[0],history:_,isImportedFromCode:c},B);r(""),a("")}const H=$=>{d(_=>({..._,isTermOfServiceAccepted:!$}))};function P($){d(_=>({..._,generatedCodeConfig:$}))}function L($,_){u(!0),r($),P(_),g([{type:"code_create",parentIndex:null,code:$,inputs:{code:$}}]),m(0),e(ot.CODE_READY)}return y.jsxs("div",{className:"mt-2 dark:bg-black dark:text-white",children:[il&&y.jsx(Z3,{settings:f}),il&&y.jsx(hH,{open:!f.isTermOfServiceAccepted,onOpenChange:H}),y.jsx("div",{className:"lg:fixed lg:inset-y-0 lg:z-40 lg:flex lg:w-96 lg:flex-col",children:y.jsxs("div",{className:"flex grow flex-col gap-y-2 overflow-y-auto border-r border-gray-200 bg-white px-6 dark:bg-zinc-950 dark:text-white",children:[y.jsxs("div",{className:"flex items-center justify-between mt-10 mb-2",children:[y.jsx("h1",{className:"text-2xl ",children:"Screenshot to Code"}),y.jsx(M3,{settings:f,setSettings:d})]}),y.jsx(I$,{generatedCodeConfig:f.generatedCodeConfig,setGeneratedCodeConfig:$=>P($),shouldDisableUpdates:t===ot.CODING||t===ot.CODE_READY}),il&&!(f.openAiApiKey||f.accessCode)&&y.jsx(X3,{}),_Y,(t===ot.CODING||t===ot.CODE_READY)&&y.jsxs(y.Fragment,{children:[t===ot.CODING&&y.jsxs("div",{className:"flex flex-col",children:[y.jsxs("div",{className:"flex items-center gap-x-1",children:[y.jsx(mT,{}),o.slice(-1)[0]]}),y.jsx("div",{className:"flex mt-4 w-full",children:y.jsx(yA,{onClick:x,className:"w-full dark:text-white dark:bg-gray-700",children:"Cancel"})}),y.jsx(fT,{code:A})]}),t===ot.CODE_READY&&y.jsxs("div",{children:[y.jsxs("div",{className:"grid w-full gap-2",children:[y.jsx($O,{placeholder:"Tell the AI what to change...",onChange:$=>a($.target.value),value:l}),y.jsxs("div",{className:"flex justify-between items-center gap-x-2",children:[y.jsx("div",{className:"font-500 text-xs text-slate-700 dark:text-white",children:"Include screenshot of current version?"}),y.jsx(UO,{checked:O,onCheckedChange:v,className:"dark:bg-gray-700"})]}),y.jsx(yA,{onClick:F,className:"dark:text-white dark:bg-gray-700",children:"Update"})]}),y.jsxs("div",{className:"flex items-center gap-x-2 mt-2",children:[y.jsxs(yA,{onClick:b,className:"flex items-center gap-x-2 dark:text-white dark:bg-gray-700",children:[y.jsx(CT,{})," Download"]}),y.jsxs(yA,{onClick:S,className:"flex items-center gap-x-2 dark:text-white dark:bg-gray-700",children:[y.jsx(ST,{}),"Reset"]})]})]}),y.jsxs("div",{className:"flex gap-x-2 mt-2",children:[n.length>0&&y.jsxs("div",{className:"flex flex-col",children:[y.jsx("div",{className:SO({"scanning relative":t===ot.CODING}),children:y.jsx("img",{className:"w-[340px] border border-gray-200 rounded-md",src:n[0],alt:"Reference"})}),y.jsx("div",{className:"text-gray-400 uppercase text-sm text-center mt-1",children:"Original Screenshot"})]}),y.jsxs("div",{className:"bg-gray-400 px-4 py-2 rounded text-sm hidden",children:[y.jsx("h2",{className:"text-lg mb-4 border-b border-gray-800",children:"Console"}),o.map(($,_)=>y.jsx("div",{className:"border-b border-gray-400 mb-2 text-gray-600 font-mono",children:$},_))]})]})]}),y.jsx(HY,{history:h,currentVersion:B,revertToVersion:$=>{$<0||$>=h.length||!h[$]||(m($),r(h[$].code))},shouldDisableReverts:t===ot.CODING})]})}),y.jsxs("main",{className:"py-2 lg:pl-96",children:[t===ot.INITIAL&&y.jsxs("div",{className:"flex flex-col justify-center items-center gap-y-10",children:[y.jsx(uT,{setReferenceImages:T}),y.jsx(Y3,{doCreate:T,screenshotOneApiKey:f.screenshotOneApiKey}),y.jsx(LY,{importFromCode:L})]}),(t===ot.CODING||t===ot.CODE_READY)&&y.jsx("div",{className:"ml-4",children:y.jsxs(zI,{defaultValue:"desktop",children:[y.jsx("div",{className:"flex justify-end mr-8 mb-4",children:y.jsxs(qb,{children:[y.jsxs(Hc,{value:"desktop",className:"flex gap-x-2",children:[y.jsx(QT,{})," Desktop"]}),y.jsxs(Hc,{value:"mobile",className:"flex gap-x-2",children:[y.jsx(bT,{})," Mobile"]}),y.jsxs(Hc,{value:"code",className:"flex gap-x-2",children:[y.jsx(BT,{}),"Code"]})]})}),y.jsx(Lc,{value:"desktop",children:y.jsx(uB,{code:A,device:"desktop"})}),y.jsx(Lc,{value:"mobile",children:y.jsx(uB,{code:A,device:"mobile"})}),y.jsx(Lc,{value:"code",children:y.jsx(EY,{code:A,setCode:r,settings:f})})]})})]})]})}function MY({onSelect:t}){const[e,A]=q.useState(null),r=n=>{const i=e===n,o=i?"bg-black":"bg-gray-300",s=i?"text-white":"text-black";return y.jsx("div",{className:`flex items-center justify-center w-8 h-8 ${o} rounded-full cursor-pointer`,onClick:()=>{A(n),t(n)},children:y.jsx("span",{className:`text-lg font-semibold ${s}`,children:n})})};return y.jsxs("div",{className:"flex space-x-4",children:[r(1),r(2),r(3),r(4)]})}function ZY(){const[t,e]=q.useState([]),[A,r]=q.useState([]),n=A.reduce((s,l)=>s+l,0),i=A.length*4,o=(n/i*100||0).toFixed(2);return p.useEffect(()=>{t.length>0||fetch(`${Qb}/evals`).then(s=>s.json()).then(s=>{e(s),r(new Array(s.length).fill(0))})},[t]),y.jsxs("div",{className:"mx-auto",children:[y.jsx("div",{className:"flex items-center justify-center w-full h-12 bg-zinc-950",children:y.jsxs("span",{className:"text-2xl font-semibold text-white",children:["Total: ",n," out of ",i," (",o,"%)"]})}),y.jsx("div",{className:"flex flex-col gap-y-4 mt-4 mx-auto justify-center",children:t.map((s,l)=>y.jsxs("div",{className:"flex flex-col justify-center",children:[y.jsxs("div",{className:"flex gap-x-2 justify-center",children:[y.jsx("div",{className:"w-1/2 p-1 border",children:y.jsx("img",{src:s.input})}),y.jsx("div",{className:"w-1/2 p-1 border",children:y.jsx("iframe",{srcDoc:s.output,className:"w-[1200px] h-[800px] transform scale-[0.60]",style:{transformOrigin:"top left"}})})]}),y.jsx("div",{className:"ml-8 mt-4 flex justify-center",children:y.jsx(MY,{onSelect:a=>{const c=[...A];c[l]=a,r(c)}})})]},l))})]})}/** + * @remix-run/router v1.13.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function gf(){return gf=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function N0(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function VY(){return Math.random().toString(36).substr(2,8)}function HQ(t,e){return{usr:t.state,key:t.key,idx:e}}function Sm(t,e,A,r){return A===void 0&&(A=null),gf({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?pd(e):e,{state:A,key:e&&e.key||r||VY()})}function R$(t){let{pathname:e="/",search:A="",hash:r=""}=t;return A&&A!=="?"&&(e+=A.charAt(0)==="?"?A:"?"+A),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function pd(t){let e={};if(t){let A=t.indexOf("#");A>=0&&(e.hash=t.substr(A),t=t.substr(0,A));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function YY(t,e,A,r){r===void 0&&(r={});let{window:n=document.defaultView,v5Compat:i=!1}=r,o=n.history,s=xn.Pop,l=null,a=c();a==null&&(a=0,o.replaceState(gf({},o.state,{idx:a}),""));function c(){return(o.state||{idx:null}).idx}function u(){s=xn.Pop;let B=c(),m=B==null?null:B-a;a=B,l&&l({action:s,location:g.location,delta:m})}function f(B,m){s=xn.Push;let O=Sm(g.location,B,m);A&&A(O,B),a=c()+1;let v=HQ(O,a),Q=g.createHref(O);try{o.pushState(v,"",Q)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;n.location.assign(Q)}i&&l&&l({action:s,location:g.location,delta:1})}function d(B,m){s=xn.Replace;let O=Sm(g.location,B,m);A&&A(O,B),a=c();let v=HQ(O,a),Q=g.createHref(O);o.replaceState(v,"",Q),i&&l&&l({action:s,location:g.location,delta:0})}function h(B){let m=n.location.origin!=="null"?n.location.origin:n.location.href,O=typeof B=="string"?B:R$(B);return Jt(m,"No window.location.(origin|href) available to create URL for href: "+O),new URL(O,m)}let g={get action(){return s},get location(){return t(n,o)},listen(B){if(l)throw new Error("A history only accepts one active listener");return n.addEventListener(DQ,u),l=B,()=>{n.removeEventListener(DQ,u),l=null}},createHref(B){return e(n,B)},createURL:h,encodeLocation(B){let m=h(B);return{pathname:m.pathname,search:m.search,hash:m.hash}},push:f,replace:d,go(B){return o.go(B)}};return g}var LQ;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(LQ||(LQ={}));function KY(t,e,A){A===void 0&&(A="/");let r=typeof e=="string"?pd(e):e,n=L$(r.pathname||"/",A);if(n==null)return null;let i=D$(t);WY(i);let o=null;for(let s=0;o==null&&s{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(Jt(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let a=ko([r,l.relativePath]),c=A.concat(l);i.children&&i.children.length>0&&(Jt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+a+'".')),D$(i.children,e,c,a)),!(i.path==null&&!i.index)&&e.push({path:a,score:tK(a,i.index),routesMeta:c})};return t.forEach((i,o)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))n(i,o);else for(let l of H$(i.path))n(i,o,l)}),e}function H$(t){let e=t.split("/");if(e.length===0)return[];let[A,...r]=e,n=A.endsWith("?"),i=A.replace(/\?$/,"");if(r.length===0)return n?[i,""]:[i];let o=H$(r.join("/")),s=[];return s.push(...o.map(l=>l===""?i:[i,l].join("/"))),n&&s.push(...o),s.map(l=>t.startsWith("/")&&l===""?"/":l)}function WY(t){t.sort((e,A)=>e.score!==A.score?A.score-e.score:AK(e.routesMeta.map(r=>r.childrenIndex),A.routesMeta.map(r=>r.childrenIndex)))}const jY=/^:\w+$/,GY=3,zY=2,qY=1,JY=10,eK=-2,_Q=t=>t==="*";function tK(t,e){let A=t.split("/"),r=A.length;return A.some(_Q)&&(r+=eK),e&&(r+=zY),A.filter(n=>!_Q(n)).reduce((n,i)=>n+(jY.test(i)?GY:i===""?qY:JY),r)}function AK(t,e){return t.length===e.length&&t.slice(0,-1).every((r,n)=>r===e[n])?t[t.length-1]-e[e.length-1]:0}function rK(t,e){let{routesMeta:A}=t,r={},n="/",i=[];for(let o=0;o{let{paramName:f,isOptional:d}=c;if(f==="*"){let g=s[u]||"";o=i.slice(0,i.length-g.length).replace(/(.)\/+$/,"$1")}const h=s[u];return d&&!h?a[f]=void 0:a[f]=sK(h||"",f),a},{}),pathname:i,pathnameBase:o,pattern:t}}function iK(t,e,A){e===void 0&&(e=!1),A===void 0&&(A=!0),N0(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],n="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:(\w+)(\?)?/g,(o,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),n+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):A?n+="\\/*$":t!==""&&t!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,e?void 0:"i"),r]}function oK(t){try{return decodeURI(t)}catch(e){return N0(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function sK(t,e){try{return decodeURIComponent(t)}catch(A){return N0(!1,'The value for the URL param "'+e+'" will not be decoded because'+(' the string "'+t+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+A+").")),t}}function L$(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let A=e.endsWith("/")?e.length-1:e.length,r=t.charAt(A);return r&&r!=="/"?null:t.slice(A)||"/"}const ko=t=>t.join("/").replace(/\/\/+/g,"/"),lK=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/");function aK(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const _$=["post","put","patch","delete"];new Set(_$);const cK=["get",..._$];new Set(cK);/** + * React Router v6.20.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function xm(){return xm=Object.assign?Object.assign.bind():function(t){for(var e=1;eObject.assign({},g,{params:Object.assign({},o,g.params),pathname:ko([s,r.encodeLocation?r.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase==="/"?s:ko([s,r.encodeLocation?r.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),n,A);return e&&h?p.createElement(gd.Provider,{value:{location:xm({pathname:"/",search:"",hash:"",state:null,key:"default"},a),navigationType:xn.Pop}},h):h}function gK(){let t=CK(),e=aK(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),A=t instanceof Error?t.stack:null,n={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"},i=null;return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},e),A?p.createElement("pre",{style:n},A):null,i)}const mK=p.createElement(gK,null);class OK extends p.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,A){return A.location!==e.location||A.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||A.error,location:A.location,revalidation:e.revalidation||A.revalidation}}componentDidCatch(e,A){console.error("React Router caught the following error during render",e,A)}render(){return this.state.error?p.createElement(md.Provider,{value:this.props.routeContext},p.createElement(M$.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function wK(t){let{routeContext:e,match:A,children:r}=t,n=p.useContext(uK);return n&&n.static&&n.staticContext&&(A.route.errorElement||A.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=A.route.id),p.createElement(md.Provider,{value:e},r)}function BK(t,e,A){var r;if(e===void 0&&(e=[]),A===void 0&&(A=null),t==null){var n;if((n=A)!=null&&n.errors)t=A.matches;else return null}let i=t,o=(r=A)==null?void 0:r.errors;if(o!=null){let s=i.findIndex(l=>l.route.id&&(o==null?void 0:o[l.route.id]));s>=0||Jt(!1),i=i.slice(0,Math.min(i.length,s+1))}return i.reduceRight((s,l,a)=>{let c=l.route.id?o==null?void 0:o[l.route.id]:null,u=null;A&&(u=l.route.errorElement||mK);let f=e.concat(i.slice(0,a+1)),d=()=>{let h;return c?h=u:l.route.Component?h=p.createElement(l.route.Component,null):l.route.element?h=l.route.element:h=s,p.createElement(wK,{match:l,routeContext:{outlet:s,matches:f,isDataRoute:A!=null},children:h})};return A&&(l.route.ErrorBoundary||l.route.errorElement||a===0)?p.createElement(OK,{location:A.location,revalidation:A.revalidation,component:u,error:c,children:d(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):d()},null)}var Um=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(Um||{});function vK(t){let e=p.useContext(fK);return e||Jt(!1),e}function yK(t){let e=p.useContext(md);return e||Jt(!1),e}function QK(t){let e=yK(),A=e.matches[e.matches.length-1];return A.route.id||Jt(!1),A.route.id}function CK(){var t;let e=p.useContext(M$),A=vK(Um.UseRouteError),r=QK(Um.UseRouteError);return e||((t=A.errors)==null?void 0:t[r])}function Em(t){Jt(!1)}function bK(t){let{basename:e="/",children:A=null,location:r,navigationType:n=xn.Pop,navigator:i,static:o=!1}=t;M0()&&Jt(!1);let s=e.replace(/^\/*/,"/"),l=p.useMemo(()=>({basename:s,navigator:i,static:o}),[s,i,o]);typeof r=="string"&&(r=pd(r));let{pathname:a="/",search:c="",hash:u="",state:f=null,key:d="default"}=r,h=p.useMemo(()=>{let g=L$(a,s);return g==null?null:{location:{pathname:g,search:c,hash:u,state:f,key:d},navigationType:n}},[s,a,c,u,f,d,n]);return h==null?null:p.createElement(N$.Provider,{value:l},p.createElement(gd.Provider,{children:A,value:h}))}function SK(t){let{children:e,location:A}=t;return hK(Fm(e),A)}new Promise(()=>{});function Fm(t,e){e===void 0&&(e=[]);let A=[];return p.Children.forEach(t,(r,n)=>{if(!p.isValidElement(r))return;let i=[...e,n];if(r.type===p.Fragment){A.push.apply(A,Fm(r.props.children,i));return}r.type!==Em&&Jt(!1),!r.props.index||!r.props.children||Jt(!1);let o={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=Fm(r.props.children,i)),A.push(o)}),A}/** + * React Router DOM v6.20.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */const xK="startTransition",NQ=JQ[xK];function UK(t){let{basename:e,children:A,future:r,window:n}=t,i=p.useRef();i.current==null&&(i.current=XY({window:n,v5Compat:!0}));let o=i.current,[s,l]=p.useState({action:o.action,location:o.location}),{v7_startTransition:a}=r||{},c=p.useCallback(u=>{a&&NQ?NQ(()=>l(u)):l(u)},[l,a]);return p.useLayoutEffect(()=>o.listen(c),[o,c]),p.createElement(bK,{basename:e,children:A,location:s.location,navigationType:s.action,navigator:o})}var MQ;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(MQ||(MQ={}));var ZQ;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(ZQ||(ZQ={}));qh.createRoot(document.getElementById("root")).render(y.jsxs(q.StrictMode,{children:[y.jsx(UK,{children:y.jsxs(SK,{children:[y.jsx(Em,{path:"/",element:y.jsx(NY,{})}),y.jsx(Em,{path:"/evals",element:y.jsx(ZY,{})})]})}),y.jsx(iT,{toastOptions:{className:"dark:bg-zinc-950 dark:text-white"}})]})); diff --git a/screenshottocode/build.sh b/screenshottocode/build.sh new file mode 100644 index 0000000..baab923 --- /dev/null +++ b/screenshottocode/build.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# exit on error +set -o errexit + +echo "Installing the latest version of poetry..." +pip install --upgrade pip +pip install poetry==1.4.1 + +rm poetry.lock +poetry lock +python -m poetry install diff --git a/screenshottocode/cli.py b/screenshottocode/cli.py new file mode 100644 index 0000000..c6050ee --- /dev/null +++ b/screenshottocode/cli.py @@ -0,0 +1,52 @@ +import os +import sys +import logging +import argparse +from argparse import Namespace +import uvicorn + +from .config import Config +from .main import app + +def start(args: Namespace): + host = args.host if not args.production else '0.0.0.0' + + Config.MODEL = args.model + Config.IS_MODEL_GEMINI = args.model == 'gemini' + + if args.production: + Config.MODEL = args.production + + uvicorn.run( + app, + host=host, + port=args.port, + proxy_headers=True) + +def get_arguments(): + global parser + + parser.add_argument('-m', '--model', default='gpt-4-vision', type=str, nargs='?', choices=['gpt-4-vision', 'gemini'], + help='Name of Model to use') + parser.add_argument('--production', action='store_true', help='Run project in production mode') + parser.add_argument('--host', type=str, default='127.0.0.1', help='Host address to run on') + parser.add_argument('--port', type=int, default=7001, help='Host port to run on') + + parser.add_argument('-v','--version', action='version', version=f'%(prog)s {Config.VERSION}') + parser.set_defaults(func=start) + return parser.parse_args() + +def main(): + global parser + try: + parser = argparse.ArgumentParser(description="This simple app converts a screenshot to code (HTML/Tailwind CSS, or React or Bootstrap)") + args = get_arguments() + args.func(args) + + except Exception as e: + logging.error(str(e)) + parser.print_help() + sys.exit(1) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/screenshottocode/config.py b/screenshottocode/config.py new file mode 100644 index 0000000..d45b641 --- /dev/null +++ b/screenshottocode/config.py @@ -0,0 +1,14 @@ +# Useful for debugging purposes when you don't want to waste GPT4-Vision credits +# Setting to True will stream a mock response instead of calling the OpenAI API +# TODO: Should only be set to true when value is 'True', not any abitrary truthy value +import os + +class Config: + SHOULD_MOCK_AI_RESPONSE = bool(os.environ.get("MOCK", False)) + MODEL = os.environ.get("MODEL", 'gpt-4-vision') + IS_MODEL_GEMINI = MODEL == 'gemini' + VERSION = '0.1.0' + + # Set to True when running in production (on the hosted version) + # Used as a feature flag to enable or disable certain features + IS_PROD = os.environ.get("IS_PROD", False) diff --git a/screenshottocode/eval.py b/screenshottocode/eval.py new file mode 100644 index 0000000..000c6fe --- /dev/null +++ b/screenshottocode/eval.py @@ -0,0 +1,67 @@ +# Load environment variables first +from typing import Any, Coroutine +from dotenv import load_dotenv + +from eval_config import EVALS_DIR +from eval_utils import image_to_data_url + +load_dotenv() + +import os +from llm import stream_openai_response +from prompts import assemble_prompt +import asyncio + +from utils import pprint_prompt + + +async def generate_code_core(image_url: str, stack: str) -> str: + prompt_messages = assemble_prompt(image_url, stack) + openai_api_key = os.environ.get("OPENAI_API_KEY") + openai_base_url = None + + pprint_prompt(prompt_messages) + + async def process_chunk(content: str): + pass + + if not openai_api_key: + raise Exception("OpenAI API key not found") + + completion = await stream_openai_response( + prompt_messages, + api_key=openai_api_key, + base_url=openai_base_url, + callback=lambda x: process_chunk(x), + ) + + return completion + + +async def main(): + INPUT_DIR = EVALS_DIR + "/inputs" + OUTPUT_DIR = EVALS_DIR + "/outputs" + + # Get all the files in the directory (only grab pngs) + evals = [f for f in os.listdir(INPUT_DIR) if f.endswith(".png")] + + tasks: list[Coroutine[Any, Any, str]] = [] + for filename in evals: + filepath = os.path.join(INPUT_DIR, filename) + data_url = await image_to_data_url(filepath) + task = generate_code_core(data_url, "svg") + tasks.append(task) + + results = await asyncio.gather(*tasks) + + os.makedirs(OUTPUT_DIR, exist_ok=True) + + for filename, content in zip(evals, results): + # File name is derived from the original filename in evals + output_filename = f"{os.path.splitext(filename)[0]}.html" + output_filepath = os.path.join(OUTPUT_DIR, output_filename) + with open(output_filepath, "w") as file: + file.write(content) + + +asyncio.run(main()) diff --git a/screenshottocode/eval_config.py b/screenshottocode/eval_config.py new file mode 100644 index 0000000..62a3b8f --- /dev/null +++ b/screenshottocode/eval_config.py @@ -0,0 +1 @@ +EVALS_DIR = "./evals" diff --git a/screenshottocode/eval_utils.py b/screenshottocode/eval_utils.py new file mode 100644 index 0000000..6a52f88 --- /dev/null +++ b/screenshottocode/eval_utils.py @@ -0,0 +1,7 @@ +import base64 + + +async def image_to_data_url(filepath: str): + with open(filepath, "rb") as image_file: + encoded_string = base64.b64encode(image_file.read()).decode() + return f"data:image/png;base64,{encoded_string}" diff --git a/screenshottocode/image_generation.py b/screenshottocode/image_generation.py new file mode 100644 index 0000000..d3e71b1 --- /dev/null +++ b/screenshottocode/image_generation.py @@ -0,0 +1,121 @@ +import asyncio +import re +from typing import Dict, List, Union +from openai import AsyncOpenAI +from bs4 import BeautifulSoup + + +async def process_tasks(prompts: List[str], api_key: str, base_url: str): + tasks = [generate_image(prompt, api_key, base_url) for prompt in prompts] + results = await asyncio.gather(*tasks, return_exceptions=True) + + processed_results: List[Union[str, None]] = [] + for result in results: + if isinstance(result, Exception): + print(f"An exception occurred: {result}") + processed_results.append(None) + else: + processed_results.append(result) + + return processed_results + + +async def generate_image(prompt: str, api_key: str, base_url: str): + client = AsyncOpenAI(api_key=api_key, base_url=base_url) + image_params: Dict[str, Union[str, int]] = { + "model": "dall-e-3", + "quality": "standard", + "style": "natural", + "n": 1, + "size": "1024x1024", + "prompt": prompt, + } + res = await client.images.generate(**image_params) + await client.close() + return res.data[0].url + + +def extract_dimensions(url: str): + # Regular expression to match numbers in the format '300x200' + matches = re.findall(r"(\d+)x(\d+)", url) + + if matches: + width, height = matches[0] # Extract the first match + width = int(width) + height = int(height) + return (width, height) + else: + return (100, 100) + + +def create_alt_url_mapping(code: str) -> Dict[str, str]: + soup = BeautifulSoup(code, "html.parser") + images = soup.find_all("img") + + mapping: Dict[str, str] = {} + + for image in images: + if not image["src"].startswith("https://placehold.co"): + mapping[image["alt"]] = image["src"] + + return mapping + + +async def generate_images( + code: str, api_key: str, base_url: Union[str, None], image_cache: Dict[str, str] +): + # Find all images + soup = BeautifulSoup(code, "html.parser") + images = soup.find_all("img") + + # Extract alt texts as image prompts + alts = [] + for img in images: + # Only include URL if the image starts with https://placehold.co + # and it's not already in the image_cache + if ( + img["src"].startswith("https://placehold.co") + and image_cache.get(img.get("alt")) is None + ): + alts.append(img.get("alt", None)) + + # Exclude images with no alt text + alts = [alt for alt in alts if alt is not None] + + # Remove duplicates + prompts = list(set(alts)) + + # Return early if there are no images to replace + if len(prompts) == 0: + return code + + # Generate images + results = await process_tasks(prompts, api_key, base_url) + + # Create a dict mapping alt text to image URL + mapped_image_urls = dict(zip(prompts, results)) + + # Merge with image_cache + mapped_image_urls = {**mapped_image_urls, **image_cache} + + # Replace old image URLs with the generated URLs + for img in images: + # Skip images that don't start with https://placehold.co (leave them alone) + if not img["src"].startswith("https://placehold.co"): + continue + + new_url = mapped_image_urls[img.get("alt")] + + if new_url: + # Set width and height attributes + width, height = extract_dimensions(img["src"]) + img["width"] = width + img["height"] = height + # Replace img['src'] with the mapped image URL + img["src"] = new_url + else: + print("Image generation failed for alt text:" + img.get("alt")) + + # Return the modified HTML + # (need to prettify it because BeautifulSoup messes up the formatting) + return soup.prettify() diff --git a/screenshottocode/imported_code_prompts.py b/screenshottocode/imported_code_prompts.py new file mode 100644 index 0000000..a8bfa6a --- /dev/null +++ b/screenshottocode/imported_code_prompts.py @@ -0,0 +1,92 @@ +IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Tailwind developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_REACT_TAILWIND_SYSTEM_PROMPT = """ +You are an expert React/Tailwind developer + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include React so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_BOOTSTRAP_SYSTEM_PROMPT = """ +You are an expert Bootstrap developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Bootstrap: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_IONIC_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Ionic/Tailwind developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include Ionic so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- ionicons for icons, add the following + + + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_SVG_SYSTEM_PROMPT = """ +You are an expert at building SVGs. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. +- You can use Google Fonts + +Return only the full code in tags. +Do not include markdown "```" or "```svg" at the start or end. +""" diff --git a/screenshottocode/llm.py b/screenshottocode/llm.py new file mode 100644 index 0000000..fafe40a --- /dev/null +++ b/screenshottocode/llm.py @@ -0,0 +1,103 @@ +import io +from typing import Awaitable, Callable, List, Any +from openai import AsyncOpenAI +from openai.types.chat import ChatCompletionMessageParam, ChatCompletionChunk +import google.generativeai as genai +from PIL import Image +import base64 +import os + + +MODEL_GPT_4_VISION = "gpt-4-vision-preview" +MODEL_GEMINI_PRO_VISION = "models/gemini-pro-vision" + +async def format_response(response: str)-> str: + response = response.strip() + if response.startswith('```'): + response = '\n'.join(response.split('\n')[1:-2]) + return response + +async def format_messages_for_gemnini(messages: List[Any]): + system_promt = messages[0]['content'] + image_base64 = messages[1]['content'][0]['image_url']['url'] + additional_prompt = messages[1]['content'][1]['text'] + + base64_data = image_base64.split(",")[1] + decoded_bytes = base64.b64decode(base64_data) + + image_bytes = io.BytesIO(decoded_bytes) + + image = Image.open(image_bytes) + + return [system_promt, image, additional_prompt] + +async def stream_openai_response( + messages: List[ChatCompletionMessageParam], + api_key: str, + base_url: str | None, + callback: Callable[[str], Awaitable[None]], +) -> str: + client = AsyncOpenAI(api_key=api_key, base_url=base_url) + + model = MODEL_GPT_4_VISION + + # Base parameters + params = {"model": model, "messages": messages, "stream": True, "timeout": 600} + + # Add 'max_tokens' only if the model is a GPT4 vision model + if model == MODEL_GPT_4_VISION: + params["max_tokens"] = 4096 + params["temperature"] = 0 + + stream = await client.chat.completions.create(**params) # type: ignore + full_response = "" + async for chunk in stream: # type: ignore + assert isinstance(chunk, ChatCompletionChunk) + content = chunk.choices[0].delta.content or "" + full_response += content + await callback(content) + + await client.close() + + return full_response + +async def stream_gemini_response( + messages: List[Any] = [], + api_key: str = os.getenv('GOOGLE_API_KEY', ''), + callback: Callable[[str], Awaitable[None]] | None = None, +) -> str: + genai.configure(api_key=api_key) + + model = genai.GenerativeModel('gemini-pro-vision') + general_config = { + "max_output_tokens": 2048, + "temperature": 0.4, + "top_p": 1, + "top_k": 32 + } + + formatted_messages = await format_messages_for_gemnini(messages) + + response = model.generate_content( + formatted_messages, + stream=True, + generation_config=general_config # type: ignore + ) + response.resolve() + result = await format_response(response.text) + + while "" not in result: + continue_prompt = "Generate the rest of the code below" + formatted_messages.append(continue_prompt) + formatted_messages.append(result) + + response = model.generate_content( + formatted_messages, + stream=True, + generation_config=general_config # type: ignore + ) + response.resolve() + result += await format_response(response.text) + + result = result.strip() + return result diff --git a/screenshottocode/main.py b/screenshottocode/main.py new file mode 100644 index 0000000..9629b0d --- /dev/null +++ b/screenshottocode/main.py @@ -0,0 +1,34 @@ +# Load environment variables first +from dotenv import load_dotenv +from pathlib import Path + +load_dotenv() + + +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from .routes import screenshot, generate_code, home, evals + +app = FastAPI(openapi_url=None, docs_url=None, redoc_url=None) + +# Configure CORS settings +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Mount assets folder +assets = Path(__file__).resolve().parent / "assets" +if not assets.exists(): + assets.mkdir() +app.mount('/assets', StaticFiles(directory=assets, html=True), name='static') + +# Add routes +app.include_router(generate_code.router) +app.include_router(screenshot.router) +app.include_router(home.router) +app.include_router(evals.router) diff --git a/screenshottocode/mock_llm.py b/screenshottocode/mock_llm.py new file mode 100644 index 0000000..0102bad --- /dev/null +++ b/screenshottocode/mock_llm.py @@ -0,0 +1,208 @@ +import asyncio +from typing import Awaitable, Callable + + +async def mock_completion(process_chunk: Callable[[str], Awaitable[None]]) -> str: + code_to_return = NO_IMAGES_NYTIMES_MOCK_CODE + + for i in range(0, len(code_to_return), 10): + await process_chunk(code_to_return[i : i + 10]) + await asyncio.sleep(0.01) + + return code_to_return + + +APPLE_MOCK_CODE = """ + + + + Product Showcase + + + + + + + +
+
+
+ Brand Logo +

WATCH SERIES 9

+

Smarter. Brighter. Mightier.

+ +
+
+ Product image of a smartwatch with a pink band and a circular interface displaying various health metrics. + Product image of a smartwatch with a blue band and a square interface showing a classic analog clock face. +
+
+
+ +""" + +NYTIMES_MOCK_CODE = """ + + + + + The New York Times - News + + + + + + +
+
+
+
+ + +
Tuesday, November 14, 2023
Today's Paper
+
+
+ The New York Times Logo +
+
+ +
Account
+
+
+ +
+
+
+
+
+
+

Israeli Military Raids Gaza’s Largest Hospital

+

Israeli troops have entered the Al-Shifa Hospital complex, where conditions have grown dire and Israel says Hamas fighters are embedded.

+ See more updates +
+ +
+
+
+ Flares and plumes of smoke over the northern Gaza skyline on Tuesday. +

From Elvis to Elopements, the Evolution of the Las Vegas Wedding

+

The glittering city that attracts thousands of couples seeking unconventional nuptials has grown beyond the drive-through wedding.

+ 8 MIN READ +
+ +
+
+
+
+
+ + +""" + +NO_IMAGES_NYTIMES_MOCK_CODE = """ + + + + + The New York Times - News + + + + + + +
+
+
+
+ + +
Tuesday, November 14, 2023
Today's Paper
+
+
+ +
Account
+
+
+ +
+
+
+
+
+
+

Israeli Military Raids Gaza’s Largest Hospital

+

Israeli troops have entered the Al-Shifa Hospital complex, where conditions have grown dire and Israel says Hamas fighters are embedded.

+ See more updates +
+ +
+
+
+

From Elvis to Elopements, the Evolution of the Las Vegas Wedding

+

The glittering city that attracts thousands of couples seeking unconventional nuptials has grown beyond the drive-through wedding.

+ 8 MIN READ +
+ +
+
+
+
+
+ + +""" diff --git a/screenshottocode/poetry.lock b/screenshottocode/poetry.lock new file mode 100644 index 0000000..6eae240 --- /dev/null +++ b/screenshottocode/poetry.lock @@ -0,0 +1,1001 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "3.7.1" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, + {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, +] + +[package.dependencies] +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] +test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (<0.22)"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.2" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "cachetools" +version = "5.3.2" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"}, + {file = "cachetools-5.3.2.tar.gz", hash = "sha256:086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"}, +] + +[[package]] +name = "certifi" +version = "2023.11.17" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, + {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "distro" +version = "1.8.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "distro-1.8.0-py3-none-any.whl", hash = "sha256:99522ca3e365cac527b44bde033f64c6945d90eb9f769703caaec52b09bbd3ff"}, + {file = "distro-1.8.0.tar.gz", hash = "sha256:02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.95.2" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.7" +files = [ + {file = "fastapi-0.95.2-py3-none-any.whl", hash = "sha256:d374dbc4ef2ad9b803899bd3360d34c534adc574546e25314ab72c0c4411749f"}, + {file = "fastapi-0.95.2.tar.gz", hash = "sha256:4d9d3e8c71c73f11874bcf5e33626258d143252e329a01002f767306c64fb982"}, +] + +[package.dependencies] +pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" +starlette = ">=0.27.0,<0.28.0" + +[package.extras] +all = ["email-validator (>=1.1.1)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (>=0.12.0,<0.21.0)"] +doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer-cli (>=0.0.13,<0.0.14)", "typer[all] (>=0.6.1,<0.8.0)"] +test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.7)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.7.0.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] + +[[package]] +name = "google-ai-generativelanguage" +version = "0.4.0" +description = "Google Ai Generativelanguage API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-ai-generativelanguage-0.4.0.tar.gz", hash = "sha256:c8199066c08f74c4e91290778329bb9f357ba1ea5d6f82de2bc0d10552bf4f8c"}, + {file = "google_ai_generativelanguage-0.4.0-py3-none-any.whl", hash = "sha256:e4c425376c1ee26c78acbc49a24f735f90ebfa81bf1a06495fae509a2433232c"}, +] + +[package.dependencies] +google-api-core = {version = ">=1.34.0,<2.0.dev0 || >=2.11.dev0,<3.0.0dev", extras = ["grpc"]} +proto-plus = ">=1.22.3,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" + +[[package]] +name = "google-api-core" +version = "2.15.0" +description = "Google API client core library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-api-core-2.15.0.tar.gz", hash = "sha256:abc978a72658f14a2df1e5e12532effe40f94f868f6e23d95133bd6abcca35ca"}, + {file = "google_api_core-2.15.0-py3-none-any.whl", hash = "sha256:2aa56d2be495551e66bbff7f729b790546f87d5c90e74781aa77233bcb395a8a"}, +] + +[package.dependencies] +google-auth = ">=2.14.1,<3.0.dev0" +googleapis-common-protos = ">=1.56.2,<2.0.dev0" +grpcio = [ + {version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0dev", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, +] +grpcio-status = [ + {version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, + {version = ">=1.33.2,<2.0.dev0", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, +] +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" +requests = ">=2.18.0,<3.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] +grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] +grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] + +[[package]] +name = "google-auth" +version = "2.25.2" +description = "Google Authentication Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-auth-2.25.2.tar.gz", hash = "sha256:42f707937feb4f5e5a39e6c4f343a17300a459aaf03141457ba505812841cc40"}, + {file = "google_auth-2.25.2-py2.py3-none-any.whl", hash = "sha256:473a8dfd0135f75bb79d878436e568f2695dce456764bf3a02b6f8c540b1d256"}, +] + +[package.dependencies] +cachetools = ">=2.0.0,<6.0" +pyasn1-modules = ">=0.2.1" +rsa = ">=3.1.4,<5" + +[package.extras] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] +enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] +pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +reauth = ["pyu2f (>=0.1.5)"] +requests = ["requests (>=2.20.0,<3.0.0.dev0)"] + +[[package]] +name = "google-generativeai" +version = "0.3.0" +description = "Google Generative AI High level API client library and tools." +optional = false +python-versions = ">=3.9" +files = [ + {file = "google_generativeai-0.3.0-py3-none-any.whl", hash = "sha256:7c28ca71f32d59396580f5a4ccfb0d431f8b1000fbba982e632d06ea6d121770"}, +] + +[package.dependencies] +google-ai-generativelanguage = "0.4.0" +google-api-core = "*" +google-auth = "*" +protobuf = "*" +tqdm = "*" + +[package.extras] +dev = ["Pillow", "absl-py", "black", "ipython", "nose2", "pandas", "pytype", "pyyaml"] + +[[package]] +name = "googleapis-common-protos" +version = "1.62.0" +description = "Common protobufs used in Google APIs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "googleapis-common-protos-1.62.0.tar.gz", hash = "sha256:83f0ece9f94e5672cced82f592d2a5edf527a96ed1794f0bab36d5735c996277"}, + {file = "googleapis_common_protos-1.62.0-py2.py3-none-any.whl", hash = "sha256:4750113612205514f9f6aa4cb00d523a94f3e8c06c5ad2fee466387dc4875f07"}, +] + +[package.dependencies] +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] + +[[package]] +name = "grpcio" +version = "1.60.0" +description = "HTTP/2-based RPC framework" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-1.60.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d020cfa595d1f8f5c6b343530cd3ca16ae5aefdd1e832b777f9f0eb105f5b139"}, + {file = "grpcio-1.60.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b98f43fcdb16172dec5f4b49f2fece4b16a99fd284d81c6bbac1b3b69fcbe0ff"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:20e7a4f7ded59097c84059d28230907cd97130fa74f4a8bfd1d8e5ba18c81491"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452ca5b4afed30e7274445dd9b441a35ece656ec1600b77fff8c216fdf07df43"}, + {file = "grpcio-1.60.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43e636dc2ce9ece583b3e2ca41df5c983f4302eabc6d5f9cd04f0562ee8ec1ae"}, + {file = "grpcio-1.60.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e306b97966369b889985a562ede9d99180def39ad42c8014628dd3cc343f508"}, + {file = "grpcio-1.60.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f897c3b127532e6befdcf961c415c97f320d45614daf84deba0a54e64ea2457b"}, + {file = "grpcio-1.60.0-cp310-cp310-win32.whl", hash = "sha256:b87efe4a380887425bb15f220079aa8336276398dc33fce38c64d278164f963d"}, + {file = "grpcio-1.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:a9c7b71211f066908e518a2ef7a5e211670761651039f0d6a80d8d40054047df"}, + {file = "grpcio-1.60.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:fb464479934778d7cc5baf463d959d361954d6533ad34c3a4f1d267e86ee25fd"}, + {file = "grpcio-1.60.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:4b44d7e39964e808b071714666a812049765b26b3ea48c4434a3b317bac82f14"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:90bdd76b3f04bdb21de5398b8a7c629676c81dfac290f5f19883857e9371d28c"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91229d7203f1ef0ab420c9b53fe2ca5c1fbeb34f69b3bc1b5089466237a4a134"}, + {file = "grpcio-1.60.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b36a2c6d4920ba88fa98075fdd58ff94ebeb8acc1215ae07d01a418af4c0253"}, + {file = "grpcio-1.60.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:297eef542156d6b15174a1231c2493ea9ea54af8d016b8ca7d5d9cc65cfcc444"}, + {file = "grpcio-1.60.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:87c9224acba0ad8bacddf427a1c2772e17ce50b3042a789547af27099c5f751d"}, + {file = "grpcio-1.60.0-cp311-cp311-win32.whl", hash = "sha256:95ae3e8e2c1b9bf671817f86f155c5da7d49a2289c5cf27a319458c3e025c320"}, + {file = "grpcio-1.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:467a7d31554892eed2aa6c2d47ded1079fc40ea0b9601d9f79204afa8902274b"}, + {file = "grpcio-1.60.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:a7152fa6e597c20cb97923407cf0934e14224af42c2b8d915f48bc3ad2d9ac18"}, + {file = "grpcio-1.60.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:7db16dd4ea1b05ada504f08d0dca1cd9b926bed3770f50e715d087c6f00ad748"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:b0571a5aef36ba9177e262dc88a9240c866d903a62799e44fd4aae3f9a2ec17e"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fd9584bf1bccdfff1512719316efa77be235469e1e3295dce64538c4773840b"}, + {file = "grpcio-1.60.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6a478581b1a1a8fdf3318ecb5f4d0cda41cacdffe2b527c23707c9c1b8fdb55"}, + {file = "grpcio-1.60.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:77c8a317f0fd5a0a2be8ed5cbe5341537d5c00bb79b3bb27ba7c5378ba77dbca"}, + {file = "grpcio-1.60.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1c30bb23a41df95109db130a6cc1b974844300ae2e5d68dd4947aacba5985aa5"}, + {file = "grpcio-1.60.0-cp312-cp312-win32.whl", hash = "sha256:2aef56e85901c2397bd557c5ba514f84de1f0ae5dd132f5d5fed042858115951"}, + {file = "grpcio-1.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:e381fe0c2aa6c03b056ad8f52f8efca7be29fb4d9ae2f8873520843b6039612a"}, + {file = "grpcio-1.60.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:92f88ca1b956eb8427a11bb8b4a0c0b2b03377235fc5102cb05e533b8693a415"}, + {file = "grpcio-1.60.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:e278eafb406f7e1b1b637c2cf51d3ad45883bb5bd1ca56bc05e4fc135dfdaa65"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:a48edde788b99214613e440fce495bbe2b1e142a7f214cce9e0832146c41e324"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de2ad69c9a094bf37c1102b5744c9aec6cf74d2b635558b779085d0263166454"}, + {file = "grpcio-1.60.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:073f959c6f570797272f4ee9464a9997eaf1e98c27cb680225b82b53390d61e6"}, + {file = "grpcio-1.60.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c826f93050c73e7769806f92e601e0efdb83ec8d7c76ddf45d514fee54e8e619"}, + {file = "grpcio-1.60.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9e30be89a75ee66aec7f9e60086fadb37ff8c0ba49a022887c28c134341f7179"}, + {file = "grpcio-1.60.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b0fb2d4801546598ac5cd18e3ec79c1a9af8b8f2a86283c55a5337c5aeca4b1b"}, + {file = "grpcio-1.60.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:9073513ec380434eb8d21970e1ab3161041de121f4018bbed3146839451a6d8e"}, + {file = "grpcio-1.60.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:74d7d9fa97809c5b892449b28a65ec2bfa458a4735ddad46074f9f7d9550ad13"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:1434ca77d6fed4ea312901122dc8da6c4389738bf5788f43efb19a838ac03ead"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e61e76020e0c332a98290323ecfec721c9544f5b739fab925b6e8cbe1944cf19"}, + {file = "grpcio-1.60.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675997222f2e2f22928fbba640824aebd43791116034f62006e19730715166c0"}, + {file = "grpcio-1.60.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5208a57eae445ae84a219dfd8b56e04313445d146873117b5fa75f3245bc1390"}, + {file = "grpcio-1.60.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:428d699c8553c27e98f4d29fdc0f0edc50e9a8a7590bfd294d2edb0da7be3629"}, + {file = "grpcio-1.60.0-cp38-cp38-win32.whl", hash = "sha256:83f2292ae292ed5a47cdcb9821039ca8e88902923198f2193f13959360c01860"}, + {file = "grpcio-1.60.0-cp38-cp38-win_amd64.whl", hash = "sha256:705a68a973c4c76db5d369ed573fec3367d7d196673fa86614b33d8c8e9ebb08"}, + {file = "grpcio-1.60.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:c193109ca4070cdcaa6eff00fdb5a56233dc7610216d58fb81638f89f02e4968"}, + {file = "grpcio-1.60.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:676e4a44e740deaba0f4d95ba1d8c5c89a2fcc43d02c39f69450b1fa19d39590"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5ff21e000ff2f658430bde5288cb1ac440ff15c0d7d18b5fb222f941b46cb0d2"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c86343cf9ff7b2514dd229bdd88ebba760bd8973dac192ae687ff75e39ebfab"}, + {file = "grpcio-1.60.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fd3b3968ffe7643144580f260f04d39d869fcc2cddb745deef078b09fd2b328"}, + {file = "grpcio-1.60.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:30943b9530fe3620e3b195c03130396cd0ee3a0d10a66c1bee715d1819001eaf"}, + {file = "grpcio-1.60.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b10241250cb77657ab315270b064a6c7f1add58af94befa20687e7c8d8603ae6"}, + {file = "grpcio-1.60.0-cp39-cp39-win32.whl", hash = "sha256:79a050889eb8d57a93ed21d9585bb63fca881666fc709f5d9f7f9372f5e7fd03"}, + {file = "grpcio-1.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:8a97a681e82bc11a42d4372fe57898d270a2707f36c45c6676e49ce0d5c41353"}, + {file = "grpcio-1.60.0.tar.gz", hash = "sha256:2199165a1affb666aa24adf0c97436686d0a61bc5fc113c037701fb7c7fceb96"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.60.0)"] + +[[package]] +name = "grpcio-status" +version = "1.60.0" +description = "Status proto mapping for gRPC" +optional = false +python-versions = ">=3.6" +files = [ + {file = "grpcio-status-1.60.0.tar.gz", hash = "sha256:f10e0b6db3adc0fdc244b71962814ee982996ef06186446b5695b9fa635aa1ab"}, + {file = "grpcio_status-1.60.0-py3-none-any.whl", hash = "sha256:7d383fa36e59c1e61d380d91350badd4d12ac56e4de2c2b831b050362c3c572e"}, +] + +[package.dependencies] +googleapis-common-protos = ">=1.5.5" +grpcio = ">=1.60.0" +protobuf = ">=4.21.6" + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.2" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.2-py3-none-any.whl", hash = "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7"}, + {file = "httpcore-1.0.2.tar.gz", hash = "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.23.0)"] + +[[package]] +name = "httpx" +version = "0.25.2" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.25.2-py3-none-any.whl", hash = "sha256:a05d3d052d9b2dfce0e3896636467f8a5342fb2b902c819428e1ac65413ca118"}, + {file = "httpx-0.25.2.tar.gz", hash = "sha256:8b8fcaa0c8ea7b05edd69a094e63a2094c4efcb48129fb757361bc423c0ad9e8"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + +[[package]] +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "openai" +version = "1.3.7" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.7.1" +files = [ + {file = "openai-1.3.7-py3-none-any.whl", hash = "sha256:e5c51367a910297e4d1cd33d2298fb87d7edf681edbe012873925ac16f95bee0"}, + {file = "openai-1.3.7.tar.gz", hash = "sha256:18074a0f51f9b49d1ae268c7abc36f7f33212a0c0d08ce11b7053ab2d17798de"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<4" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.5,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pillow" +version = "10.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, + {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, + {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, + {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, + {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, + {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, + {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "pluggy" +version = "1.3.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "proto-plus" +version = "1.23.0" +description = "Beautiful, Pythonic protocol buffers." +optional = false +python-versions = ">=3.6" +files = [ + {file = "proto-plus-1.23.0.tar.gz", hash = "sha256:89075171ef11988b3fa157f5dbd8b9cf09d65fffee97e29ce403cd8defba19d2"}, + {file = "proto_plus-1.23.0-py3-none-any.whl", hash = "sha256:a829c79e619e1cf632de091013a4173deed13a55f326ef84f05af6f50ff4c82c"}, +] + +[package.dependencies] +protobuf = ">=3.19.0,<5.0.0dev" + +[package.extras] +testing = ["google-api-core[grpc] (>=1.31.5)"] + +[[package]] +name = "protobuf" +version = "4.25.1" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "protobuf-4.25.1-cp310-abi3-win32.whl", hash = "sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7"}, + {file = "protobuf-4.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b"}, + {file = "protobuf-4.25.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7"}, + {file = "protobuf-4.25.1-cp38-cp38-win32.whl", hash = "sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd"}, + {file = "protobuf-4.25.1-cp38-cp38-win_amd64.whl", hash = "sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0"}, + {file = "protobuf-4.25.1-cp39-cp39-win32.whl", hash = "sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510"}, + {file = "protobuf-4.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10"}, + {file = "protobuf-4.25.1-py3-none-any.whl", hash = "sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6"}, + {file = "protobuf-4.25.1.tar.gz", hash = "sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2"}, +] + +[[package]] +name = "pyasn1" +version = "0.5.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, + {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, +] + +[[package]] +name = "pyasn1-modules" +version = "0.3.0" +description = "A collection of ASN.1-based protocols modules" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, + {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, +] + +[package.dependencies] +pyasn1 = ">=0.4.6,<0.6.0" + +[[package]] +name = "pydantic" +version = "1.10.13" +description = "Data validation and settings management using python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737"}, + {file = "pydantic-1.10.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01"}, + {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548"}, + {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8"}, + {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69"}, + {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17"}, + {file = "pydantic-1.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f"}, + {file = "pydantic-1.10.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653"}, + {file = "pydantic-1.10.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe"}, + {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9"}, + {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80"}, + {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580"}, + {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0"}, + {file = "pydantic-1.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0"}, + {file = "pydantic-1.10.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132"}, + {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5"}, + {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8"}, + {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87"}, + {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f"}, + {file = "pydantic-1.10.13-cp37-cp37m-win_amd64.whl", hash = "sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33"}, + {file = "pydantic-1.10.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261"}, + {file = "pydantic-1.10.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599"}, + {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127"}, + {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f"}, + {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78"}, + {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953"}, + {file = "pydantic-1.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f"}, + {file = "pydantic-1.10.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6"}, + {file = "pydantic-1.10.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691"}, + {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd"}, + {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1"}, + {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96"}, + {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d"}, + {file = "pydantic-1.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d"}, + {file = "pydantic-1.10.13-py3-none-any.whl", hash = "sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687"}, + {file = "pydantic-1.10.13.tar.gz", hash = "sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pytest" +version = "7.4.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, + {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dotenv" +version = "1.0.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, + {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "starlette" +version = "0.27.0" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.7" +files = [ + {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"}, + {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tqdm" +version = "4.66.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, + {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typing-extensions" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, +] + +[[package]] +name = "urllib3" +version = "2.1.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.24.0.post1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.24.0.post1-py3-none-any.whl", hash = "sha256:7c84fea70c619d4a710153482c0d230929af7bcf76c7bfa6de151f0a3a80121e"}, + {file = "uvicorn-0.24.0.post1.tar.gz", hash = "sha256:09c8e5a79dc466bdf28dead50093957db184de356fcdc48697bad3bde4c2588e"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "websockets" +version = "12.0" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, + {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, + {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, + {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, + {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, + {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, + {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, + {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, + {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, + {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, + {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, + {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, + {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, + {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, + {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, + {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, + {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, + {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, + {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, + {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, + {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, + {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, + {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, + {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "449dd2513b5ba1d4494937262c7ea6e5f7e2f013748365998159af90a67eabd5" diff --git a/screenshottocode/prompts.py b/screenshottocode/prompts.py new file mode 100644 index 0000000..e0d0a39 --- /dev/null +++ b/screenshottocode/prompts.py @@ -0,0 +1,116 @@ +from typing import List, Union + +from openai.types.chat import ChatCompletionMessageParam, ChatCompletionContentPartParam + +from .imported_code_prompts import ( + IMPORTED_CODE_BOOTSTRAP_SYSTEM_PROMPT, + IMPORTED_CODE_IONIC_TAILWIND_SYSTEM_PROMPT, + IMPORTED_CODE_REACT_TAILWIND_SYSTEM_PROMPT, + IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT, + IMPORTED_CODE_SVG_SYSTEM_PROMPT, +) +from .screenshot_system_prompts import ( + BOOTSTRAP_SYSTEM_PROMPT, + IONIC_TAILWIND_SYSTEM_PROMPT, + REACT_TAILWIND_SYSTEM_PROMPT, + TAILWIND_SYSTEM_PROMPT, + SVG_SYSTEM_PROMPT, +) + + +USER_PROMPT = """ +Generate code for a web page that looks exactly like this. +""" + +SVG_USER_PROMPT = """ +Generate code for a SVG that looks exactly like this. +""" + + +def assemble_imported_code_prompt( + code: str, stack: str, result_image_data_url: Union[str, None] = None +) -> List[ChatCompletionMessageParam]: + system_content = IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT + if stack == "html_tailwind": + system_content = IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT + elif stack == "react_tailwind": + system_content = IMPORTED_CODE_REACT_TAILWIND_SYSTEM_PROMPT + elif stack == "bootstrap": + system_content = IMPORTED_CODE_BOOTSTRAP_SYSTEM_PROMPT + elif stack == "ionic_tailwind": + system_content = IMPORTED_CODE_IONIC_TAILWIND_SYSTEM_PROMPT + elif stack == "svg": + system_content = IMPORTED_CODE_SVG_SYSTEM_PROMPT + else: + raise Exception("Code config is not one of available options") + + user_content = ( + "Here is the code of the app: " + code + if stack != "svg" + else "Here is the code of the SVG: " + code + ) + return [ + { + "role": "system", + "content": system_content, + }, + { + "role": "user", + "content": user_content, + }, + ] + # TODO: Use result_image_data_url + + +def assemble_prompt( + image_data_url: str, + generated_code_config: str, + result_image_data_url: Union[str, None] = None, +) -> List[ChatCompletionMessageParam]: + # Set the system prompt based on the output settings + system_content = TAILWIND_SYSTEM_PROMPT + if generated_code_config == "html_tailwind": + system_content = TAILWIND_SYSTEM_PROMPT + elif generated_code_config == "react_tailwind": + system_content = REACT_TAILWIND_SYSTEM_PROMPT + elif generated_code_config == "bootstrap": + system_content = BOOTSTRAP_SYSTEM_PROMPT + elif generated_code_config == "ionic_tailwind": + system_content = IONIC_TAILWIND_SYSTEM_PROMPT + elif generated_code_config == "svg": + system_content = SVG_SYSTEM_PROMPT + else: + raise Exception("Code config is not one of available options") + + user_prompt = USER_PROMPT if generated_code_config != "svg" else SVG_USER_PROMPT + + user_content: List[ChatCompletionContentPartParam] = [ + { + "type": "image_url", + "image_url": {"url": image_data_url, "detail": "high"}, + }, + { + "type": "text", + "text": user_prompt, + }, + ] + + # Include the result image if it exists + if result_image_data_url: + user_content.insert( + 1, + { + "type": "image_url", + "image_url": {"url": result_image_data_url, "detail": "high"}, + }, + ) + return [ + { + "role": "system", + "content": system_content, + }, + { + "role": "user", + "content": user_content, + }, + ] diff --git a/screenshottocode/pyproject.toml b/screenshottocode/pyproject.toml new file mode 100644 index 0000000..c233a86 --- /dev/null +++ b/screenshottocode/pyproject.toml @@ -0,0 +1,43 @@ +[tool.poetry] +name = "screenshottocode" +version = "0.1.0" +description = "" +authors = [ + "Abi Raja ", + "Amos Amissah " +] +license = "MIT" +readme = "README.md" +homepage = "https://screenshottocode.com/" +repository = "https://github.com/theonlyamos/screenshot-to-code" +include = ['templates/*', 'assets/*'] +classifiers = [ + "Topic :: Software Development :: Build Tools", + "Topic :: Software Development :: Libraries :: Python Modules" +] + +[tool.poetry.urls] +"Bug Tracker" = "https://github.com/abi/screenshot-to-code/issues" + +[tool.poetry.dependencies] +python = "^3.10" +fastapi = "^0.95.0" +uvicorn = "^0.24.0.post1" +websockets = "^12.0" +openai = "^1.2.4" +python-dotenv = "^1.0.0" +beautifulsoup4 = "^4.12.2" +httpx = "^0.25.1" +google-generativeai = "0.3.0" +google-ai-generativelanguage = "0.4.0" +pillow = "^10.1.0" + +[tool.poetry.group.dev.dependencies] +pytest = "^7.4.3" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +screenshottocode = "screenshottocode.cli:main" \ No newline at end of file diff --git a/screenshottocode/routes/evals.py b/screenshottocode/routes/evals.py new file mode 100644 index 0000000..ede16e7 --- /dev/null +++ b/screenshottocode/routes/evals.py @@ -0,0 +1,46 @@ +import os +from fastapi import APIRouter +from pydantic import BaseModel +from ..eval_utils import image_to_data_url +from ..eval_config import EVALS_DIR + + +router = APIRouter() + + +class Eval(BaseModel): + input: str + output: str + + +@router.get("/evals") +async def get_evals(): + # Get all evals from EVALS_DIR + input_dir = EVALS_DIR + "/inputs" + output_dir = EVALS_DIR + "/outputs" + + evals: list[Eval] = [] + for file in os.listdir(input_dir): + if file.endswith(".png"): + input_file_path = os.path.join(input_dir, file) + input_file = await image_to_data_url(input_file_path) + + # Construct the corresponding output file name + output_file_name = file.replace(".png", ".html") + output_file_path = os.path.join(output_dir, output_file_name) + + # Check if the output file exists + if os.path.exists(output_file_path): + with open(output_file_path, "r") as f: + output_file_data = f.read() + else: + output_file_data = "Output file not found." + + evals.append( + Eval( + input=input_file, + output=output_file_data, + ) + ) + + return evals diff --git a/screenshottocode/routes/generate_code.py b/screenshottocode/routes/generate_code.py new file mode 100644 index 0000000..96624a4 --- /dev/null +++ b/screenshottocode/routes/generate_code.py @@ -0,0 +1,292 @@ +import os +import traceback +from fastapi import APIRouter, WebSocket +import openai +from ..config import Config +from ..llm import stream_gemini_response, stream_openai_response +from openai.types.chat import ChatCompletionMessageParam +from ..mock_llm import mock_completion +from typing import Dict, List +from ..image_generation import create_alt_url_mapping, generate_images +from ..prompts import assemble_imported_code_prompt, assemble_prompt +from ..access_token import validate_access_token +from datetime import datetime +import json + +from ..utils import pprint_prompt # type: ignore + + +router = APIRouter() + + +def write_logs(prompt_messages: List[ChatCompletionMessageParam], completion: str): + # Get the logs path from environment, default to the current working directory + logs_path = os.environ.get("LOGS_PATH", os.getcwd()) + + # Create run_logs directory if it doesn't exist within the specified logs path + logs_directory = os.path.join(logs_path, "run_logs") + if not os.path.exists(logs_directory): + os.makedirs(logs_directory) + + print("Writing to logs directory:", logs_directory) + + # Generate a unique filename using the current timestamp within the logs directory + filename = datetime.now().strftime(f"{logs_directory}/messages_%Y%m%d_%H%M%S.json") + + # Write the messages dict into a new file for each run + with open(filename, "w") as f: + f.write(json.dumps({"prompt": prompt_messages, "completion": completion})) + + +@router.websocket("/generate-code") +async def stream_code(websocket: WebSocket): + await websocket.accept() + + print("Incoming websocket connection...") + + async def throw_error( + message: str, + ): + await websocket.send_json({"type": "error", "value": message}) + await websocket.close() + + # TODO: Are the values always strings? + params: Dict[str, str] = await websocket.receive_json() + + print("Received params") + + # Read the code config settings from the request. Fall back to default if not provided. + generated_code_config = "" + if "generatedCodeConfig" in params and params["generatedCodeConfig"]: + generated_code_config = params["generatedCodeConfig"] + print(f"Generating {generated_code_config} code") + + # Get the OpenAI API key from the request. Fall back to environment variable if not provided. + # If neither is provided, we throw an error. + openai_api_key = os.getenv('OPENAI_API_KEY') + openai_base_url = None + google_api_key = os.getenv('GOOGLE_API_KEY') + model = 'model/gemini-pro-vision' if Config.IS_MODEL_GEMINI else 'gpt-4-vision' + should_generate_images = False + if "accessCode" in params and params["accessCode"]: + print("Access code - using platform API key") + res = await validate_access_token(params["accessCode"]) + if res["success"]: + openai_api_key = os.environ.get("PLATFORM_OPENAI_API_KEY") + google_api_key = os.environ.get("PLATFORM_GOOGLE_API_KEY") + else: + await websocket.send_json( + { + "type": "error", + "value": res["failure_reason"], + } + ) + return + else: + if params['model'] == 'models/gemini-pro-vision': + print('Using the Gemini Pro Vision Model') + model = params['model'] + Config.MODEL = 'gemini' + Config.IS_MODEL_GEMINI = True + google_api_key = params['googleApiKey'] + else: + print('Using the GPT 4 Vision Model') + if params["openAiApiKey"]: + openai_api_key = params["openAiApiKey"] + print("Using OpenAI API key from client-side settings dialog") + else: + if openai_api_key: + print("Using OpenAI API key from environment variable") + + if (model == 'gpt-4-vision' and not openai_api_key) or (model == 'models/gemini-pro-vision' and not google_api_key): + print("API key not found") + await websocket.send_json( + { + "type": "error", + "value": "No API key found. Please add your API key in the settings dialog or add it to backend/.env file.", + } + ) + return + + if model == 'gpt-4-vision': + # Get the OpenAI Base URL from the request. Fall back to environment variable if not provided. + openai_base_url = None + # Disable user-specified OpenAI Base URL in prod + if not os.environ.get("Config.IS_PROD"): + if "openAiBaseURL" in params and params["openAiBaseURL"]: + openai_base_url = params["openAiBaseURL"] + print("Using OpenAI Base URL from client-side settings dialog") + else: + openai_base_url = os.environ.get("OPENAI_BASE_URL") + if openai_base_url: + print("Using OpenAI Base URL from environment variable") + + if not openai_base_url: + print("Using official OpenAI URL") + + # Get the image generation flag from the request. Fall back to True if not provided. + should_generate_images = ( + params["isImageGenerationEnabled"] + if "isImageGenerationEnabled" in params + else True + ) + + print("generating code...") + await websocket.send_json({"type": "status", "value": "Generating code..."}) + + async def process_chunk(content: str): + await websocket.send_json({"type": "chunk", "value": content}) + + # Image cache for updates so that we don't have to regenerate images + image_cache: Dict[str, str] = {} + + # If this generation started off with imported code, we need to assemble the prompt differently + if params.get("isImportedFromCode") and params["isImportedFromCode"]: + original_imported_code = params["history"][0] + prompt_messages = assemble_imported_code_prompt( + original_imported_code, generated_code_config + ) + for index, text in enumerate(params["history"][1:]): + if index % 2 == 0: + message: ChatCompletionMessageParam = { + "role": "user", + "content": text, + } + else: + message: ChatCompletionMessageParam = { + "role": "assistant", + "content": text, + } + prompt_messages.append(message) + else: + # Assemble the prompt + try: + if params.get("resultImage") and params["resultImage"]: + prompt_messages = assemble_prompt( + params["image"], generated_code_config, params["resultImage"] + ) + else: + prompt_messages = assemble_prompt( + params["image"], generated_code_config + ) + except: + await websocket.send_json( + { + "type": "error", + "value": "Error assembling prompt. Contact support at support@picoapps.xyz", + } + ) + await websocket.close() + return + + if params["generationType"] == "update": + # Transform the history tree into message format + # TODO: Move this to frontend + for index, text in enumerate(params["history"]): + if index % 2 == 0: + message: ChatCompletionMessageParam = { + "role": "assistant", + "content": text, + } + else: + message: ChatCompletionMessageParam = { + "role": "user", + "content": text, + } + prompt_messages.append(message) + + image_cache = create_alt_url_mapping(params["history"][-2]) + + # pprint_prompt(prompt_messages) + + if Config.SHOULD_MOCK_AI_RESPONSE: + completion = await mock_completion(process_chunk) + elif Config.IS_MODEL_GEMINI: + completion = await stream_gemini_response( + prompt_messages, + api_key=google_api_key, + callback=lambda x: process_chunk(x), + ) + else: + try: + completion = await stream_openai_response( + prompt_messages, + api_key=openai_api_key, + base_url=openai_base_url, + callback=lambda x: process_chunk(x), + ) + except openai.AuthenticationError as e: + print("[GENERATE_CODE] Authentication failed", e) + error_message = ( + "Incorrect OpenAI key. Please make sure your OpenAI API key is correct, or create a new OpenAI API key on your OpenAI dashboard." + + ( + " Alternatively, you can purchase code generation credits directly on this website." + if Config.IS_PROD + else "" + ) + ) + return await throw_error(error_message) + except openai.NotFoundError as e: + print("[GENERATE_CODE] Model not found", e) + error_message = ( + e.message + + ". Please make sure you have followed the instructions correctly to obtain an OpenAI key with GPT vision access: https://github.com/abi/screenshot-to-code/blob/main/Troubleshooting.md" + + ( + " Alternatively, you can purchase code generation credits directly on this website." + if Config.IS_PROD + else "" + ) + ) + return await throw_error(error_message) + except openai.RateLimitError as e: + print("[GENERATE_CODE] Rate limit exceeded", e) + error_message = ( + "OpenAI error - 'You exceeded your current quota, please check your plan and billing details.'" + + ( + " Alternatively, you can purchase code generation credits directly on this website." + if Config.IS_PROD + else "" + ) + ) + return await throw_error(error_message) + + # Write the messages dict into a log so that we can debug later + write_logs(prompt_messages, completion) + + try: + if should_generate_images: + await websocket.send_json( + {"type": "status", "value": "Generating images..."} + ) + updated_html = await generate_images( + completion, + api_key=openai_api_key, + base_url=openai_base_url, + image_cache=image_cache, + ) + else: + updated_html = completion + await websocket.send_json({"type": "setCode", "value": updated_html}) + await websocket.send_json( + {"type": "status", "value": "Code generation complete."} + ) + except Exception as e: + traceback.print_exc() + print("Image generation failed", e) + # Send set code even if image generation fails since that triggers + # the frontend to update history + await websocket.send_json({"type": "setCode", "value": completion}) + await websocket.send_json( + {"type": "status", "value": "Image generation failed but code is complete."} + ) + except RuntimeError as e: + traceback.print_exc() + print("Code generation failed", e) + # Send set code even if image generation fails since that triggers + # the frontend to update history + await websocket.send_json({"type": "setCode", "value": completion}) + await websocket.send_json( + {"type": "status", "value": "Code generation failed but code is complete."} + ) + + await websocket.close() diff --git a/screenshottocode/routes/home.py b/screenshottocode/routes/home.py new file mode 100644 index 0000000..1375105 --- /dev/null +++ b/screenshottocode/routes/home.py @@ -0,0 +1,17 @@ +from fastapi import APIRouter +from fastapi.responses import HTMLResponse +from pathlib import Path + + +router = APIRouter() + + +@router.get("/") +async def get_status(): + html_path = Path(__file__, '..', '..', 'templates', 'index.html').resolve() + html_content = '' + with html_path.open('rt') as file: + html_content = file.read() + return HTMLResponse( + content=html_content + ) diff --git a/screenshottocode/routes/screenshot.py b/screenshottocode/routes/screenshot.py new file mode 100644 index 0000000..258cd7e --- /dev/null +++ b/screenshottocode/routes/screenshot.py @@ -0,0 +1,66 @@ +import base64 +from fastapi import APIRouter +from pydantic import BaseModel +import httpx + +router = APIRouter() + + +def bytes_to_data_url(image_bytes: bytes, mime_type: str) -> str: + base64_image = base64.b64encode(image_bytes).decode("utf-8") + return f"data:{mime_type};base64,{base64_image}" + + +async def capture_screenshot( + target_url: str, api_key: str, device: str = "desktop" +) -> bytes: + api_base_url = "https://api.screenshotone.com/take" + + params = { + "access_key": api_key, + "url": target_url, + "full_page": "true", + "device_scale_factor": "1", + "format": "png", + "block_ads": "true", + "block_cookie_banners": "true", + "block_trackers": "true", + "cache": "false", + "viewport_width": "342", + "viewport_height": "684", + } + + if device == "desktop": + params["viewport_width"] = "1280" + params["viewport_height"] = "832" + + async with httpx.AsyncClient(timeout=60) as client: + response = await client.get(api_base_url, params=params) + if response.status_code == 200 and response.content: + return response.content + else: + raise Exception("Error taking screenshot") + + +class ScreenshotRequest(BaseModel): + url: str + apiKey: str + + +class ScreenshotResponse(BaseModel): + url: str + + +@router.post("/api/screenshot") +async def app_screenshot(request: ScreenshotRequest): + # Extract the URL from the request body + url = request.url + api_key = request.apiKey + + # TODO: Add error handling + image_bytes = await capture_screenshot(url, api_key=api_key) + + # Convert the image bytes to a data url + data_url = bytes_to_data_url(image_bytes, "image/png") + + return ScreenshotResponse(url=data_url) diff --git a/screenshottocode/screenshot_system_prompts.py b/screenshottocode/screenshot_system_prompts.py new file mode 100644 index 0000000..3308d03 --- /dev/null +++ b/screenshottocode/screenshot_system_prompts.py @@ -0,0 +1,130 @@ +TAILWIND_SYSTEM_PROMPT = """ +You are an expert Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using Tailwind, HTML and JS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +BOOTSTRAP_SYSTEM_PROMPT = """ +You are an expert Bootstrap developer +You take screenshots of a reference web page from the user, and then build single page apps +using Bootstrap, HTML and JS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Bootstrap: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +REACT_TAILWIND_SYSTEM_PROMPT = """ +You are an expert React/Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using React and Tailwind CSS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include React so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IONIC_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Ionic/Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using Ionic and Tailwind CSS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include Ionic so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- ionicons for icons, add the following + + + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + + +SVG_SYSTEM_PROMPT = """ +You are an expert at building SVGs. +You take screenshots of a reference web page from the user, and then build a SVG that looks exactly like the screenshot. + +- Make sure the SVG looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. +- You can use Google Fonts + +Return only the full code in tags. +Do not include markdown "```" or "```svg" at the start or end. +""" diff --git a/screenshottocode/templates/index.html b/screenshottocode/templates/index.html new file mode 100644 index 0000000..32eb444 --- /dev/null +++ b/screenshottocode/templates/index.html @@ -0,0 +1 @@ +Screenshot to Code
\ No newline at end of file diff --git a/screenshottocode/test_prompts.py b/screenshottocode/test_prompts.py new file mode 100644 index 0000000..303e3a9 --- /dev/null +++ b/screenshottocode/test_prompts.py @@ -0,0 +1,307 @@ +from prompts import assemble_imported_code_prompt, assemble_prompt + +TAILWIND_SYSTEM_PROMPT = """ +You are an expert Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using Tailwind, HTML and JS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +BOOTSTRAP_SYSTEM_PROMPT = """ +You are an expert Bootstrap developer +You take screenshots of a reference web page from the user, and then build single page apps +using Bootstrap, HTML and JS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Bootstrap: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +REACT_TAILWIND_SYSTEM_PROMPT = """ +You are an expert React/Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using React and Tailwind CSS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include React so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IONIC_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Ionic/Tailwind developer +You take screenshots of a reference web page from the user, and then build single page apps +using Ionic and Tailwind CSS. +You might also be given a screenshot(The second image) of a web page that you have already built, and asked to +update it to look more like the reference image(The first image). + +- Make sure the app looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include Ionic so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- ionicons for icons, add the following + + + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +SVG_SYSTEM_PROMPT = """ +You are an expert at building SVGs. +You take screenshots of a reference web page from the user, and then build a SVG that looks exactly like the screenshot. + +- Make sure the SVG looks exactly like the screenshot. +- Pay close attention to background color, text color, font size, font family, +padding, margin, border, etc. Match the colors and sizes exactly. +- Use the exact text from the screenshot. +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. +- You can use Google Fonts + +Return only the full code in tags. +Do not include markdown "```" or "```svg" at the start or end. +""" + +IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Tailwind developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_REACT_TAILWIND_SYSTEM_PROMPT = """ +You are an expert React/Tailwind developer + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include React so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_BOOTSTRAP_SYSTEM_PROMPT = """ +You are an expert Bootstrap developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use this script to include Bootstrap: +- You can use Google Fonts +- Font Awesome for icons: + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_IONIC_TAILWIND_SYSTEM_PROMPT = """ +You are an expert Ionic/Tailwind developer. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. + +In terms of libraries, + +- Use these script to include Ionic so that it can run on a standalone page: + + + +- Use this script to include Tailwind: +- You can use Google Fonts +- ionicons for icons, add the following + + + +Return only the full code in tags. +Do not include markdown "```" or "```html" at the start or end. +""" + +IMPORTED_CODE_SVG_SYSTEM_PROMPT = """ +You are an expert at building SVGs. + +- Do not add comments in the code such as "" and "" in place of writing the full code. WRITE THE FULL CODE. +- Repeat elements as needed to match the screenshot. For example, if there are 15 items, the code should have 15 items. DO NOT LEAVE comments like "" or bad things will happen. +- For images, use placeholder images from https://placehold.co and include a detailed description of the image in the alt text so that an image generation AI can generate the image later. +- You can use Google Fonts + +Return only the full code in tags. +Do not include markdown "```" or "```svg" at the start or end. +""" + +USER_PROMPT = """ +Generate code for a web page that looks exactly like this. +""" + +SVG_USER_PROMPT = """ +Generate code for a SVG that looks exactly like this. +""" + + +def test_prompts(): + tailwind_prompt = assemble_prompt( + "image_data_url", "html_tailwind", "result_image_data_url" + ) + assert tailwind_prompt[0]["content"] == TAILWIND_SYSTEM_PROMPT + assert tailwind_prompt[1]["content"][2]["text"] == USER_PROMPT # type: ignore + + react_tailwind_prompt = assemble_prompt( + "image_data_url", "react_tailwind", "result_image_data_url" + ) + assert react_tailwind_prompt[0]["content"] == REACT_TAILWIND_SYSTEM_PROMPT + assert react_tailwind_prompt[1]["content"][2]["text"] == USER_PROMPT # type: ignore + + bootstrap_prompt = assemble_prompt( + "image_data_url", "bootstrap", "result_image_data_url" + ) + assert bootstrap_prompt[0]["content"] == BOOTSTRAP_SYSTEM_PROMPT + assert bootstrap_prompt[1]["content"][2]["text"] == USER_PROMPT # type: ignore + + ionic_tailwind = assemble_prompt( + "image_data_url", "ionic_tailwind", "result_image_data_url" + ) + assert ionic_tailwind[0]["content"] == IONIC_TAILWIND_SYSTEM_PROMPT + assert ionic_tailwind[1]["content"][2]["text"] == USER_PROMPT # type: ignore + + svg_prompt = assemble_prompt("image_data_url", "svg", "result_image_data_url") + assert svg_prompt[0]["content"] == SVG_SYSTEM_PROMPT + assert svg_prompt[1]["content"][2]["text"] == SVG_USER_PROMPT # type: ignore + + +def test_imported_code_prompts(): + tailwind_prompt = assemble_imported_code_prompt( + "code", "html_tailwind", "result_image_data_url" + ) + expected_tailwind_prompt = [ + {"role": "system", "content": IMPORTED_CODE_TAILWIND_SYSTEM_PROMPT}, + {"role": "user", "content": "Here is the code of the app: code"}, + ] + assert tailwind_prompt == expected_tailwind_prompt + + react_tailwind_prompt = assemble_imported_code_prompt( + "code", "react_tailwind", "result_image_data_url" + ) + expected_react_tailwind_prompt = [ + {"role": "system", "content": IMPORTED_CODE_REACT_TAILWIND_SYSTEM_PROMPT}, + {"role": "user", "content": "Here is the code of the app: code"}, + ] + assert react_tailwind_prompt == expected_react_tailwind_prompt + + bootstrap_prompt = assemble_imported_code_prompt( + "code", "bootstrap", "result_image_data_url" + ) + expected_bootstrap_prompt = [ + {"role": "system", "content": IMPORTED_CODE_BOOTSTRAP_SYSTEM_PROMPT}, + {"role": "user", "content": "Here is the code of the app: code"}, + ] + assert bootstrap_prompt == expected_bootstrap_prompt + + ionic_tailwind = assemble_imported_code_prompt( + "code", "ionic_tailwind", "result_image_data_url" + ) + expected_ionic_tailwind = [ + {"role": "system", "content": IMPORTED_CODE_IONIC_TAILWIND_SYSTEM_PROMPT}, + {"role": "user", "content": "Here is the code of the app: code"}, + ] + assert ionic_tailwind == expected_ionic_tailwind + + svg = assemble_imported_code_prompt("code", "svg", "result_image_data_url") + expected_svg = [ + {"role": "system", "content": IMPORTED_CODE_SVG_SYSTEM_PROMPT}, + {"role": "user", "content": "Here is the code of the SVG: code"}, + ] + assert svg == expected_svg diff --git a/screenshottocode/utils.py b/screenshottocode/utils.py new file mode 100644 index 0000000..6c28e14 --- /dev/null +++ b/screenshottocode/utils.py @@ -0,0 +1,30 @@ +import copy +import json +from typing import List +from openai.types.chat import ChatCompletionMessageParam + + +def pprint_prompt(prompt_messages: List[ChatCompletionMessageParam]): + print(json.dumps(truncate_data_strings(prompt_messages), indent=4)) + + +def truncate_data_strings(data: List[ChatCompletionMessageParam]): # type: ignore + # Deep clone the data to avoid modifying the original object + cloned_data = copy.deepcopy(data) + + if isinstance(cloned_data, dict): + for key, value in cloned_data.items(): # type: ignore + # Recursively call the function if the value is a dictionary or a list + if isinstance(value, (dict, list)): + cloned_data[key] = truncate_data_strings(value) # type: ignore + # Truncate the string if it it's long and add ellipsis and length + elif isinstance(value, str): + cloned_data[key] = value[:40] # type: ignore + if len(value) > 40: + cloned_data[key] += "..." + f" ({len(value)} chars)" # type: ignore + + elif isinstance(cloned_data, list): # type: ignore + # Process each item in the list + cloned_data = [truncate_data_strings(item) for item in cloned_data] # type: ignore + + return cloned_data # type: ignore