From bdd1574467cc11c1d9f06a0bc31accd7ba867c81 Mon Sep 17 00:00:00 2001 From: "Ankush Pala ankush@lastmileai.dev" <> Date: Wed, 14 Feb 2024 01:31:30 -0500 Subject: [PATCH 1/3] Merge GradioNotebook into main aiconfig repo 1. cp -r gradioworkbook ../aiconfig/gradio-notebook similar to https://github.com/lastmile-ai/aiconfig/pull/1237 ## Testplan 1. cd frontend -> yarn 2. gradio cc build --no-build-frontend 3. change pyproject.toml package name to gradio-gradioworkbook-ap for testing purposes. This is a pypi package used for testing. Test space: https://huggingface.co/spaces/Ankush-LM/testwilldelete5 --- gradio-notebook/.gitignore | 27 + gradio-notebook/LICENSE | 19 + gradio-notebook/README-dev.md | 35 + gradio-notebook/README.md | 22 + .../backend/gradio_notebook/__init__.py | 27 + .../gradio_notebook/aiconfig_manager.py | 259 + .../backend/gradio_notebook/events.py | 598 + .../gradio_notebook/gradio_notebook.py | 124 + .../gradio_notebook_component.py | 115 + .../backend/gradio_notebook/session_data.py | 19 + .../__vite-browser-external-jWVCDlBL.js | 4 + .../templates/component/index.js | 60947 ++++++++++++++++ .../templates/component/style.css | 1 + .../component/wrapper-6f348d45-pgNaiy2L.js | 2453 + .../templates/example/index.js | 88 + .../templates/example/style.css | 1 + .../backend/gradio_notebook/utils.py | 107 + gradio-notebook/demo/__init__.py | 0 gradio-notebook/demo/app.py | 8 + gradio-notebook/example.aiconfig.json | 244 + gradio-notebook/frontend/APITokenInput.tsx | 103 + gradio-notebook/frontend/Example.svelte | 19 + gradio-notebook/frontend/GradioWorkbook.tsx | 126 + gradio-notebook/frontend/Index.svelte | 453 + .../frontend/WorkbookInfoAlert.tsx | 50 + gradio-notebook/frontend/config/build.js | 67 + gradio-notebook/frontend/config/dev.js | 138 + gradio-notebook/frontend/config/examine.py | 71 + gradio-notebook/frontend/config/index.js | 185 + .../frontend/config/placeholder.js | 1 + gradio-notebook/frontend/config/plugins.js | 99 + gradio-notebook/frontend/package.json | 48 + gradio-notebook/frontend/styles.css | 82 + gradio-notebook/frontend/tsconfig.json | 34 + gradio-notebook/frontend/yarn.lock | 4346 ++ gradio-notebook/model_parsers.py | 55 + gradio-notebook/pyproject.toml | 46 + gradio-notebook/requirements.txt | 15 + 38 files changed, 71036 insertions(+) create mode 100644 gradio-notebook/.gitignore create mode 100644 gradio-notebook/LICENSE create mode 100644 gradio-notebook/README-dev.md create mode 100644 gradio-notebook/README.md create mode 100644 gradio-notebook/backend/gradio_notebook/__init__.py create mode 100644 gradio-notebook/backend/gradio_notebook/aiconfig_manager.py create mode 100644 gradio-notebook/backend/gradio_notebook/events.py create mode 100644 gradio-notebook/backend/gradio_notebook/gradio_notebook.py create mode 100644 gradio-notebook/backend/gradio_notebook/gradio_notebook_component.py create mode 100644 gradio-notebook/backend/gradio_notebook/session_data.py create mode 100644 gradio-notebook/backend/gradio_notebook/templates/component/__vite-browser-external-jWVCDlBL.js create mode 100644 gradio-notebook/backend/gradio_notebook/templates/component/index.js create mode 100644 gradio-notebook/backend/gradio_notebook/templates/component/style.css create mode 100644 gradio-notebook/backend/gradio_notebook/templates/component/wrapper-6f348d45-pgNaiy2L.js create mode 100644 gradio-notebook/backend/gradio_notebook/templates/example/index.js create mode 100644 gradio-notebook/backend/gradio_notebook/templates/example/style.css create mode 100644 gradio-notebook/backend/gradio_notebook/utils.py create mode 100644 gradio-notebook/demo/__init__.py create mode 100644 gradio-notebook/demo/app.py create mode 100644 gradio-notebook/example.aiconfig.json create mode 100644 gradio-notebook/frontend/APITokenInput.tsx create mode 100644 gradio-notebook/frontend/Example.svelte create mode 100644 gradio-notebook/frontend/GradioWorkbook.tsx create mode 100644 gradio-notebook/frontend/Index.svelte create mode 100644 gradio-notebook/frontend/WorkbookInfoAlert.tsx create mode 100644 gradio-notebook/frontend/config/build.js create mode 100644 gradio-notebook/frontend/config/dev.js create mode 100644 gradio-notebook/frontend/config/examine.py create mode 100644 gradio-notebook/frontend/config/index.js create mode 100644 gradio-notebook/frontend/config/placeholder.js create mode 100644 gradio-notebook/frontend/config/plugins.js create mode 100644 gradio-notebook/frontend/package.json create mode 100644 gradio-notebook/frontend/styles.css create mode 100644 gradio-notebook/frontend/tsconfig.json create mode 100644 gradio-notebook/frontend/yarn.lock create mode 100644 gradio-notebook/model_parsers.py create mode 100644 gradio-notebook/pyproject.toml create mode 100644 gradio-notebook/requirements.txt diff --git a/gradio-notebook/.gitignore b/gradio-notebook/.gitignore new file mode 100644 index 000000000..0ae4eae94 --- /dev/null +++ b/gradio-notebook/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Dependency directories +node_modules/ +jspm_packages/ + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +.eggs/ +*.egg-info +dist/ +__pycache__/ +*.py[cdio] +*$py.class +__tmp/* \ No newline at end of file diff --git a/gradio-notebook/LICENSE b/gradio-notebook/LICENSE new file mode 100644 index 000000000..01197baa8 --- /dev/null +++ b/gradio-notebook/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2024 LastMile AI Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/gradio-notebook/README-dev.md b/gradio-notebook/README-dev.md new file mode 100644 index 000000000..0ed819039 --- /dev/null +++ b/gradio-notebook/README-dev.md @@ -0,0 +1,35 @@ +## If running for the FIRST TIME and building on this + +Otherwise, go directly to [dev instructions](https://github.com/lastmile-ai/gradio-workbook/blob/main/gradioworkbook/README-dev.md#follow-these-steps-if-you-are-developing-locally) + +Just a heads up, the process for getting local development setup for the first time can be a bit tricky! + +### Environment Setup + +1. Install node.js & yarn + - Latest Node version from [website](https://nodejs.org/en/download/current) using the package installer + - After installing Node, open a new terminal to install [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable): `sudo npm install --global yarn` +2. Gradio uses `pip` and `python` for executing commands so you must symlink `python` and `pip` (aliasing is not enough) to `python3` and `pip3`: + - `python3 -m pip install --upgrade --force pip` ([source](https://stackoverflow.com/a/55494352)) + - force `python` to be symlinked to `python3` ([instructions](https://stackoverflow.com/a/71957847)) +3. Install Gradio itself: `pip install gradio` + +### Setting up Gradio repo + +1. Go to the project where this is defined. Ex: `~/Projects/gradio-workbook` +2. Delete this entire repo! `rm -rf gradioworkbook` +3. Gradio uses `pip` and `python` for executing commands so you must symlink `python` and `pip` (aliasing is not enough) to `python3` and `pip3`: + - `python3 -m pip install --upgrade --force pip` ([source](https://stackoverflow.com/a/55494352)) + - force `python` to be symlinked to `python3` ([instructions](https://stackoverflow.com/a/71957847)) +4. Run the command `gradio cc create GradioWorkbook --overwrite`. This will install the necessary setups and dependencies +5. `cd .. && rm -rf gradio-workbook` +6. Clone the repo again: `git clone https://github.com/lastmile-ai/gradio-workbook.git` (with Sapling: `sl clone https://github.com/lastmile-ai/gradio-workbook.git`) +7. `cd gradio-workbook` and follow the steps below! + +## Follow these steps if you are developing locally! + +```bash +cd gradioworkbook +pip install -r requirements.txt +cd frontend && yarn && yarn dev +``` diff --git a/gradio-notebook/README.md b/gradio-notebook/README.md new file mode 100644 index 000000000..b183e3948 --- /dev/null +++ b/gradio-notebook/README.md @@ -0,0 +1,22 @@ +# Gradio Notebooks + +[Gradio Notebook](https://huggingface.co/spaces/lastmileai/gradio-notebook-quickstart) is a Gradio custom component that creates a notebook playground on Hugging Face Spaces with only [8-lines of code](https://huggingface.co/spaces/lastmileai/gradio-notebook-quickstart/blob/main/app.py)! + +You can use this in your Hugging Face space by adding `gradio-notebook` to your Space's [`requirements.txt`](https://huggingface.co/spaces/lastmileai/gradio-notebook-quickstart/blob/main/requirements.txt) file, and then the following lines to your [`app.py`](https://huggingface.co/spaces/lastmileai/gradio-notebook-quickstart/blob/main/app.py) file: + +```python +import gradio as gr +from gradio_notebook import GradioNotebook + +# AICONFIG_FILE_PATH also be empty or None if you don't have an AIConfig file! +AICONFIG_FILE_PATH = "./my_app.aiconfig.json" +with gr.Blocks() as demo: + GradioNotebook(config_path=AICONFIG_FILE_PATH) + +demo.queue().launch() +``` + +Please see our [documentation page](https://aiconfig.lastmileai.dev/docs/gradio-notebook) for full details. + +For the remaining commands for local development, please follow the +instructions from the [`README-dev.md`](https://github.com/lastmile-ai/gradio-workbook/blob/main/gradioworkbook/README-dev.md) file! diff --git a/gradio-notebook/backend/gradio_notebook/__init__.py b/gradio-notebook/backend/gradio_notebook/__init__.py new file mode 100644 index 000000000..bc973614b --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/__init__.py @@ -0,0 +1,27 @@ +from .aiconfig_manager import AIConfigManager +from .events import ( + AddPromptEventData, + DeletePromptEventData, + EventHandler, + RunPromptEventData, + UpdatePromptEventData, +) +from .gradio_notebook import GradioNotebook +from .gradio_notebook_component import GradioNotebookComponent +from .utils import STOP_STREAMING_SIGNAL, QueueIterator, show_debug + +event_data_classes = [ + "AddPromptEventData", + "DeletePromptEventData", + "RunPromptEventData", + "UpdatePromptEventData", +] +__all__ = event_data_classes + [ + "AIConfigManager", + "EventHandler", + "GradioNotebookComponent", + "GradioNotebook", + "QueueIterator", + "STOP_STREAMING_SIGNAL", + "show_debug", +] diff --git a/gradio-notebook/backend/gradio_notebook/aiconfig_manager.py b/gradio-notebook/backend/gradio_notebook/aiconfig_manager.py new file mode 100644 index 000000000..6748ffabe --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/aiconfig_manager.py @@ -0,0 +1,259 @@ +"""Helper class to reference the AIConfigRuntime state +""" +import copy +import heapq +import time +from threading import Event +from typing import Any, Dict, Literal + +from aiconfig import AIConfigRuntime, ModelParserRegistry +from aiconfig.registry import update_model_parser_registry_with_config_runtime +from aiconfig_extension_hugging_face import ( + HuggingFaceAutomaticSpeechRecognitionRemoteInference, + HuggingFaceConversationalRemoteInference, + HuggingFaceImage2TextRemoteInference, + HuggingFaceText2ImageRemoteInference, + HuggingFaceText2SpeechRemoteInference, + HuggingFaceTextGenerationRemoteInference, + HuggingFaceTextSummarizationRemoteInference, + HuggingFaceTextTranslationRemoteInference, +) + +from .session_data import SessionData +from .utils import ( + EXCLUDE_OPTIONS, + get_validated_path, + load_user_parser_module, + show_debug, +) + +# TODO (rossdanlm): Use os.path to get better relative path to file +DEFAULT_CONFIG_PATH: Literal = "my_app.aiconfig.json" +DEFAULT_PARSERS_PATH: Literal = "model_parsers.py" +DEFAULT_AICONFIG_SETTINGS: Dict[str, Any] = { + "name": "Gradio Notebook AIConfig", + # TODO (rossdanlm): Link this description to our README docs to help people get + # started + "description": "This is the AIConfig that is used for the current Gradio notebook", +} +NUM_MINUTES_BEFORE_DELETING_OLD_SESSIONS = 120 # 2 hours + + +class AIConfigManager: + """ + Manages the mapping of client session --> SessionData state so that + we can reference AIConfig from other classes without worrying about it + being stale. This also ensures that there are no circular dependencies for + classes that need to reference the AIConfigRuntime + + Also will contain utility methods if needed + """ + + session_data_map: Dict[str, SessionData] + session_id_lru_min_heap: list[(float, str)] # (update_time, session_id) + thread_events: dict[str, Event] + + def __init__(self, config_path: str, parsers_path: str): + self._clear_default_model_parsers() + self._register_model_parsers(parsers_path) + self.session_data_map = { + "original": SessionData( + config=self._create_or_load_aiconfig(config_path), + update_time=time.time(), + ) + } + self.session_id_lru_min_heap = [] # Do not store original in min_heap + self.thread_events = {} + + def _clear_default_model_parsers(self): + """ + By default, there are a ton of non-hf models/parsers registered in the + ModelParserRegistry. We want to clear these out so that we can register + only the hf ones to start + """ + ModelParserRegistry.clear_registry() + + def _register_model_parsers(self, parsers_path: str): + """ + Register the model parsers to use for the AIConfig. + By default, we register the main HuggingFace parsers. + + TODO: Support user-provider parser registration + """ + automatic_speech_recognition = ( + HuggingFaceAutomaticSpeechRecognitionRemoteInference() + ) + AIConfigRuntime.register_model_parser( + automatic_speech_recognition, "Automatic Speech Recognition" + ) + + conversational = HuggingFaceConversationalRemoteInference() + AIConfigRuntime.register_model_parser(conversational, "Conversational") + + image_to_text = HuggingFaceImage2TextRemoteInference() + AIConfigRuntime.register_model_parser(image_to_text, "Image-to-Text") + + text_to_image = HuggingFaceText2ImageRemoteInference() + AIConfigRuntime.register_model_parser(text_to_image, "Text-to-Image") + + text_to_speech = HuggingFaceText2SpeechRemoteInference() + AIConfigRuntime.register_model_parser(text_to_speech, "Text-to-Speech") + + text_generation = HuggingFaceTextGenerationRemoteInference() + AIConfigRuntime.register_model_parser(text_generation, "Text Generation") + + text_summarization = HuggingFaceTextSummarizationRemoteInference() + AIConfigRuntime.register_model_parser(text_summarization, "Summarization") + + text_translation = HuggingFaceTextTranslationRemoteInference() + AIConfigRuntime.register_model_parser(text_translation, "Translation") + + # By default, model parsers will also have their own ids registered. Remove those + # since we just want the task-based names registered + parsers = [ + automatic_speech_recognition, + conversational, + image_to_text, + text_to_image, + text_to_speech, + text_generation, + text_summarization, + text_translation, + ] + + for parser in parsers: + ModelParserRegistry.remove_model_parser(parser.id()) + + # Lastly, register any user-provided model parsers, if applicable + if not parsers_path: + print( + f"Warning, no parsers_path was provided so using default path '{DEFAULT_PARSERS_PATH}' instead" + ) + parsers_path = DEFAULT_PARSERS_PATH + + self._load_user_parser_module_if_exists(parsers_path) + + def _load_user_parser_module_if_exists(self, parsers_module_path: str) -> None: + try: + parsers_path = get_validated_path(parsers_module_path) + load_user_parser_module(parsers_path) + print(f"Loaded parsers module from {parsers_module_path}") + except Exception as e: + print(f"Failed to load parsers module: {e}") + + def delete_session_id(self, session_id: str) -> None: + """Delete the session_id from the session_data_map map""" + self.session_data_map.pop(session_id, None) + + def get_config(self, session_id: str) -> AIConfigRuntime: + """Get a config that is mapped to a session id""" + update_time = time.time() + if session_id not in self.session_data_map: + copied_config = copy.deepcopy(self.session_data_map["original"].config) + session_data = SessionData(config=copied_config, update_time=update_time) + self.session_data_map[session_id] = session_data + heapq.heappush(self.session_id_lru_min_heap, (update_time, session_id)) + + if show_debug(): + print(f"{self.session_data_map.keys()=}") + update_times = [ + (k, v.update_time) for k, v in self.session_data_map.items() + ] + print(f"{update_times=}") + + self.session_data_map[session_id].update_time = update_time + self.clear_old_session_ids() + return self.session_data_map[session_id].config + + def get_config_json(self, session_id: str) -> dict[str, Any]: + """Helper function to return the config in json dict format""" + return self.get_config(session_id).model_dump(exclude=EXCLUDE_OPTIONS) + + def set_config(self, session_id: str, config: AIConfigRuntime): + """Set the AIConfigRuntime for a session_id and also reset the update_time""" + session_data = SessionData(config=config, update_time=time.time()) + self.session_data_map[session_id] = session_data + + def _create_or_load_aiconfig(self, config_path: str) -> AIConfigRuntime: + """ + Create or load an AIConfigRuntime from a provide config_path. + This should only ever be called during init of this AIConfigManager class + """ + already_tried_default_filepath = False + if not config_path: + print( + f"Warning, no config_path was provided so using default path '{DEFAULT_CONFIG_PATH}' instead" + ) + config_path = DEFAULT_CONFIG_PATH + already_tried_default_filepath = True + + try: + config = AIConfigRuntime.load(config_path) + # TODO (rossdanlm): Test this also with malformed json format to see which error it produces and catch for that + except FileNotFoundError: + try: + if not already_tried_default_filepath: + print( + f"Warning, config_path '{config_path}' not found, trying default config_path '{DEFAULT_CONFIG_PATH}' instead..." + ) + config_path = DEFAULT_CONFIG_PATH + config = AIConfigRuntime.load(config_path) + else: + raise FileNotFoundError() + except FileNotFoundError: + print( + f"Warning, config_path '{config_path}' not found, creating new AIConfig." + ) + config_path = DEFAULT_CONFIG_PATH + config = AIConfigRuntime.create(**DEFAULT_AICONFIG_SETTINGS) + config.file_path = config_path + update_model_parser_registry_with_config_runtime(config) + return config + + def get_models(self) -> list[str]: + """Helper function to get the models from the ModelParserRegistry""" + return ModelParserRegistry.parser_ids() + + def clear_old_session_ids(self): + """ + Clear out old session_ids from the session_id_lru_min_heap and session_data_map + """ + threshold_cutoff_time: float = ( + time.time() - NUM_MINUTES_BEFORE_DELETING_OLD_SESSIONS * 60 + ) + if show_debug(): + print(f"{threshold_cutoff_time=}\n") + while ( + len(self.session_id_lru_min_heap) > 0 + and self.session_id_lru_min_heap[0][0] # update_time + < threshold_cutoff_time + ): + session_id = self.session_id_lru_min_heap[0][1] + should_delete = self.remove_lru_session_if_not_updated( + threshold_cutoff_time, + ) + if should_delete: + self.session_data_map.pop(session_id, None) + + def remove_lru_session_if_not_updated(self, threshold_cutoff_time: float) -> bool: + """ + Remove the least recently used session from the session_id_lru_min_heap + If the session has been updated since it was added to the min_heap, and the + update time is after the threshold cutoff, then we need to add it back to the + min_heap and check again + + @return bool: Whether the session was removed or not + """ + old_update_time, session_id = heapq.heappop(self.session_id_lru_min_heap) + actual_update_time = self.session_data_map[session_id].update_time + if ( + old_update_time < actual_update_time + and actual_update_time > threshold_cutoff_time + ): + # This means that the update_time was updated since we added it to the + # min_heap, so we need to add it back to the min_heap and check again + heapq.heappush( + self.session_id_lru_min_heap, (actual_update_time, session_id) + ) + return False + return True diff --git a/gradio-notebook/backend/gradio_notebook/events.py b/gradio-notebook/backend/gradio_notebook/events.py new file mode 100644 index 000000000..065dda3f4 --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/events.py @@ -0,0 +1,598 @@ +"""" +File for defining the event data classes: https://www.gradio.app/docs/eventdata. +In general, the value will be the payload passed from the frontend AIConfig as +a json string +""" +import asyncio +import copy +import ctypes +import json +import random +import threading +import uuid +from datetime import datetime +from typing import TYPE_CHECKING, Any, Dict, Optional, Union + +import boto3 +import requests +from aiconfig import AIConfigRuntime, InferenceOptions +from aiconfig.schema import ExecuteResult, Output, Prompt +from botocore import UNSIGNED +from botocore.config import Config +from gradio.events import EventData + +from .aiconfig_manager import AIConfigManager +from .utils import ( + EXCLUDE_OPTIONS, + LASTMILE_BASE_URI, + STOP_STREAMING_SIGNAL, + QueueIterator, + show_debug, +) + +if TYPE_CHECKING: + from gradio.blocks import Block + + +class EventWithSessionIdData(EventData): + """ + In order to prevent multiple clients from overwriting the same AIConfig + in a given HuggingFace workspace, we need to manually pass in the + `session_id` from the Gradio client for all events. + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Session ID for the current session + self.session_id: str = data["session_id"] + + +class AddPromptEventData(EventWithSessionIdData): + """ + Add a prompt to the component's AIConfig. + + Default position is at the end for now + TODO (rossdanlm): Add index to specify what position we should add + prompt to AIConfig + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + self.prompt_name: str = data["prompt_name"] + + # Data of the Prompt to be added + self.prompt: Prompt = data["prompt"] + + # Index to add the prompt to + self.index: int = data["index"] + + +class CancelRunEventData(EventData): + """ + Cancel the prompt run operation identified by the cancellation_token field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Token generated and stored by prompt client whenever the run prompt + # button is clicked to start running the prompt + self.cancellation_token_id: str = data["cancellation_token_id"] + + +class DeletePromptEventData(EventWithSessionIdData): + """ + Delete the identified by the prompt_name field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Name of the prompt to be deleted + self.prompt_name: str = data["prompt_name"] + + +class RunPromptEventData(EventWithSessionIdData): + """ + Run the prompt identified by the prompt_name field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Name of the prompt to be run + self.prompt_name: str = data["prompt_name"] + + # Token to use for cancelling this particular run + self.cancellation_token: Optional[str] = data.get("cancellation_token", None) + + # Whether we should run the other prompts that this depends on + # TODO(rossdanlm): Make this generic kwargs + self.run_with_dependencies: bool = data.get("run_with_dependencies", True) + + self.api_token: Optional[str] = data.get("api_token", None) + + # TODO(rossdanlm): Add inference options (streaming) here? + + +class SetConfigDescriptionEventData(EventWithSessionIdData): + """ + Set the description for the AIConfig + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Description to set for the AIConfig + self.description: str = data["description"] + + +class SetConfigNameEventData(EventWithSessionIdData): + """ + Set the name for the AIConfig + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Name to set for the AIConfig + self.name: str = data["name"] + + +class SetParametersEventData(EventWithSessionIdData): + """ + Set parameter values either for the overall config or a specific prompt + identified by the prompt_name field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Parameter name key to be set + self.parameters: Dict[str, Any] = data["parameters"] + + # Name of the prompt to be updated. If None, update the overall config + self.prompt_name: str = data.get("prompt_name", None) + + +class ShareConfigEventData(EventWithSessionIdData): + """ + Create a shareable link for the AIConfig that will display a read-only mode of the + AIConfigEditor after loading the AIConfig json to S3 and then passing the S3 url and + HuggingFace workspace url to LastMileAI api/aiconfig/upload endpoint + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # The HuggingFace (or localhost) URL where this Gradio Workbook is hosted + self.workspace_url: str = data.get("workspace_url", None) + + +class UpdateModelEventData(EventWithSessionIdData): + """ + Update the model either for the overall config or a specific prompt + identified by the prompt_name field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Model name to update the prompt (if not None) or AIConfig with + self.model_name: Optional[str] = data.get("model_name", None) + + # Model settings to update the prompt (if not None) or AIConfig with + self.model_settings: Optional[Dict[str, Any]] = data.get("model_settings", None) + + # Name of the prompt to be updated. If None, update the overall config + self.prompt_name: Optional[str] = data.get("prompt_name", None) + + +class UpdatePromptEventData(EventWithSessionIdData): + """ + Update the prompt identified by the prompt_name field + """ + + def __init__(self, target: Union["Block", None], data: Any): + super().__init__(target, data) + + # Name of the prompt to be updated + self.prompt_name: str = data["prompt_name"] + + # Data to update the prompt with + self.prompt: Prompt = data["prompt"] + + +class EventHandler: + """ + A class to store the event implementation for a specific event type + """ + + config_manager: AIConfigManager + + def __init__(self, config_manager: AIConfigManager): + self.config_manager = config_manager + + def add_prompt_impl(self, event: AddPromptEventData) -> str: + """ + Run this for the add_prompt event + """ + session_id = event.session_id + prompt_name = event.prompt_name + prompt_json_str = json.dumps(event.prompt) + index = event.index + + prompt = Prompt.model_validate_json(prompt_json_str) + + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.add_prompt(prompt_name=prompt_name, prompt_data=prompt, index=index) + return json.dumps({"aiconfig": self.config_manager.get_config_json(session_id)}) + + def cancel_run_impl(self, event: CancelRunEventData) -> str: + """ + Run this for the cancel_run event + """ + cancellation_token_id: str = event.cancellation_token_id + if cancellation_token_id is not None: + thread_event = self.config_manager.thread_events.get(cancellation_token_id) + if thread_event is not None: + thread_event.set() + self.config_manager.thread_events.pop(cancellation_token_id) + return json.dumps({"cancellation_token_id": cancellation_token_id}) + + # Return a 422 Unprocessable Entity + error_info = { + "error": { + "cancellation_token_id": cancellation_token_id, + "message": "Unable to process cancellation request. Task not found for associated cancellation_token_id", + "code": 422, + } + } + return json.dumps(error_info) + + # Return a 400 Bad Request error + error_info = { + "error": { + "message": "No cancellation_token_id was specified in the request. Unable to process cancellation.", + "code": 400, + } + } + return json.dumps(error_info) + + def clear_outputs_impl(self, event: EventWithSessionIdData) -> str: + """ + Run this for the clear_outputs event + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + for prompt in config.prompts: + prompt_name = prompt.name + config.delete_output(prompt_name) + return json.dumps({"aiconfig": self.config_manager.get_config_json(session_id)}) + + def delete_prompt_impl(self, event: DeletePromptEventData) -> str: + """ + Run this for the delete_prompt event. We don't need to return AIConfig + for the Gradio frontend + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.delete_prompt(event.prompt_name) + return json.dumps({}) + + def get_aiconfig_impl(self, event: EventWithSessionIdData) -> str: + """ + Run this for the get_aiconfig event + """ + session_id = event.session_id + return json.dumps({"aiconfig": self.config_manager.get_config_json(session_id)}) + + def remove_session_id_impl(self, event: EventWithSessionIdData) -> str: + """ + Run this for the remove_session_id event + """ + session_id = event.session_id + self.config_manager.delete_session_id(session_id) + return json.dumps({}) + + def run_prompt_impl(self, event: RunPromptEventData) -> str: + """ + Run this for the run_prompt event + """ + try: + session_id = event.session_id + executing_config: AIConfigRuntime = self.config_manager.get_config( + session_id + ) + + prompt_name = event.prompt_name + params = executing_config.get_parameters(prompt_name) + + # Define stream callback and queue object for streaming results + output_text_queue = QueueIterator() + + def update_output_queue(data, _accumulated_data, _index) -> None: + should_end_stream = data == STOP_STREAMING_SIGNAL + output_text_queue.put(data, should_end_stream) + + inference_options = InferenceOptions( + stream=True, # Stream is always true for Gradio server implementation + stream_callback=update_output_queue, + api_token=event.api_token, + ) + + # Deepcopy the aiconfig prior to run so we can restore it in the case + # the run operation is cancelled or encounters some error + pre_run_config = copy.deepcopy(executing_config) + + cancellation_token_id = event.cancellation_token + if not cancellation_token_id: + cancellation_token_id = str(uuid.uuid4()) + self.config_manager.thread_events[cancellation_token_id] = threading.Event() + + def generate(cancellation_token_id: str): # type: ignore + # Use multi-threading so that we don't block run command from + # displaying the streamed output (if streaming is supported) + def run_async_config_in_thread(): + try: + asyncio.run( + executing_config.run( + prompt_name=prompt_name, + params=params, + run_with_dependencies=False, + options=inference_options, + ) + ) + except Exception as e: + output_text_queue.put(e) + output_text_queue.put(STOP_STREAMING_SIGNAL) # type: ignore + + def create_error_payload(message: str, code: int): + aiconfig_json = ( + pre_run_config.model_dump(exclude=EXCLUDE_OPTIONS) + if pre_run_config is not None + else None + ) + error_info = { + "error": { + "message": message, + "code": code, + "data": aiconfig_json, + } + } + return json.dumps(error_info) + + def create_cancellation_payload(): + return create_error_payload( + message="The task was cancelled.", code=499 + ) + + def handle_cancellation(): + yield create_cancellation_payload() + # Reset the aiconfig state to the state prior to the run, + # and kill the running thread + kill_thread(t.ident) + self.config_manager.set_config(session_id, pre_run_config) + + def kill_thread(thread_id: int | None): + """ + Kill the thread with the given thread_id. + + PyThreadState_SetAsyncExc: This is a C API function in Python + which is used to raise an exception in the context of the + specified thread. + + SystemExit: This is the exception we'd like to raise in the + target thread. + """ + if thread_id is None: + # Nothing to do + return + response = ctypes.pythonapi.PyThreadState_SetAsyncExc( + ctypes.c_long(thread_id), ctypes.py_object(SystemExit) + ) + + if response == 0: + print(f"Invalid thread id {thread_id}") + elif response != 1: + # If the response is not 1, the function didn't work + # correctly, and you should call it again with + # exc=NULL to reset it. + ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id, None) + + cancellation_event = self.config_manager.thread_events[ + cancellation_token_id + ] + t = threading.Thread(target=run_async_config_in_thread) + t.start() + + # If model supports streaming, need to wait until streamer has at + # least 1 item to display. If model does not support streaming, + # need to wait until the aiconfig.run() thread is complete + while output_text_queue.isEmpty() and t.is_alive(): + if cancellation_event.is_set(): + yield from handle_cancellation() + return + + if not output_text_queue.isEmpty(): + accumulated_output_text = "" + for text in output_text_queue: + if cancellation_event.is_set(): + yield from handle_cancellation() + return + + if isinstance(text, Exception): + yield create_error_payload( + message=f"Exception: {text}", code=500 + ) + return + elif isinstance(text, str): + accumulated_output_text += text + elif isinstance(text, dict) and "content" in text: + # TODO: Fix streaming output format so that it returns text + accumulated_output_text += text["content"] + elif isinstance(text, dict) and "generated_text" in text: + # TODO: Fix streaming output format so that it returns text + accumulated_output_text += text["generated_text"] + + accumulated_output: Output = ExecuteResult( + **{ + "output_type": "execute_result", + "data": accumulated_output_text, + # Assume streaming only supports single output + # I think this actually may be wrong for PaLM or OpenAI + # TODO: Need to sync with Ankush but can fix forward + "execution_count": 0, + "metadata": {}, + } # type: ignore + ) + if show_debug(): + print(f"{accumulated_output_text=}") + yield json.dumps({"output_chunk": accumulated_output.to_json()}) + + # Ensure that the run process is complete to yield final output + t.join() + + if cancellation_event.is_set(): + yield from handle_cancellation() + return + + self.config_manager.thread_events.pop(cancellation_token_id, None) + aiconfig_json = self.config_manager.get_config_json(session_id) + yield json.dumps({"aiconfig_chunk": aiconfig_json}) + yield json.dumps({"stop_streaming": True}) + + if show_debug(): + print(f"Running `aiconfig.run()` command with request: {event}") + yield from generate(cancellation_token_id) + except Exception as e: + # Return a 400 Bad Request error + error_info = { + "error": { + "message": f"Failed to run prompt: {type(e)}, {e}", + "code": 400, + "data": self.config_manager.get_config_json(session_id), + } + } + yield json.dumps(error_info) + + def set_config_description_impl(self, event: SetConfigDescriptionEventData) -> str: + """ + Run this for the set_config_description event. We don't need to return AIConfig + for the Gradio frontend + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.set_description(event.description) + return json.dumps({}) + + def set_config_name_impl(self, event: SetConfigNameEventData) -> str: + """ + Run this for the set_config_name event. We don't need to return AIConfig + for the Gradio frontend + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.set_name(event.name) + return json.dumps({}) + + def set_parameters_impl(self, event: SetParametersEventData) -> str: + """ + Run this for the set_parameters event. We don't need to return AIConfig + for the Gradio frontend + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.set_parameters(event.parameters, event.prompt_name) + return json.dumps({}) + + def share_config_impl(self, event: ShareConfigEventData) -> str: + """ + Run this for the share_config event. See documentation on how to upload to S3: + https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html + """ + session_id = event.session_id + workspace_url = event.workspace_url + config: AIConfigRuntime = self.config_manager.get_config(session_id) + # s3 file uris cannot have '+' character, so replace with '_' + filename: str = f"{_sanitize_filename(config.name)}.aiconfig.json" + + # TODO: Add back once CORS is resolved + # const policyResponse = await fetch( + # "https://lastmileai.dev/api/upload/publicpolicy" + # ); + # const policy = await policyResponse.json(); + random_int: int = random.randint(0, 10001) + bucket: str = "lastmileai.aiconfig.public" + upload_key: str = f"aiconfigs/{_get_date_time_string()}/{random_int}/{filename}" + + config_str: str = json.dumps( + self.config_manager.get_config_json(session_id), indent=2 + ) + config_bytes: bytes = config_str.encode("utf-8") + + s3_client = boto3.client("s3", config=Config(signature_version=UNSIGNED)) + s3_client.put_object( + Body=config_bytes, + Bucket=bucket, + Key=upload_key, + ACL="public-read", + ContentType="application/json", + ) + + # For some reason, the URL returned by boto3 doesn't work if you + # replace " " with "%20" directly within the "put_object" API for + # the Key field, so instead we are replacing it over here + s3_url: str = ( + f"https://s3.amazonaws.com/{bucket}/{upload_key.replace(' ', '%20')}" + ) + + lastmile_upload_url: str = LASTMILE_BASE_URI + "api/aiconfig/upload" + payload = {"url": s3_url, "source": "gradio"} + if workspace_url is not None: + payload["sourceUrl"] = workspace_url + response: requests.Response = requests.post( + lastmile_upload_url, data=payload, timeout=20 + ) + if response.status_code >= 400: + response.raise_for_status() + + uploaded_config_id: str = response.json()["id"] + rendering_uri: str = LASTMILE_BASE_URI + f"aiconfig/{uploaded_config_id}" + return json.dumps({"share_url": rendering_uri}) + + def update_model_impl(self, event: UpdateModelEventData) -> str: + """ + Run this for the update_model event + """ + session_id = event.session_id + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.update_model(event.model_name, event.model_settings, event.prompt_name) + return json.dumps({"aiconfig": self.config_manager.get_config_json(session_id)}) + + def update_prompt_impl(self, event: UpdatePromptEventData) -> str: + """ + Run this for the update_prompt event + """ + session_id = event.session_id + prompt_json_str = json.dumps(event.prompt) + prompt = Prompt.model_validate_json(prompt_json_str) + + config: AIConfigRuntime = self.config_manager.get_config(session_id) + config.update_prompt(event.prompt_name, prompt) + return json.dumps({"aiconfig": self.config_manager.get_config_json(session_id)}) + + +def _sanitize_filename(filename: str) -> str: + """ + Sanitize the filename to remove any characters that are not allowed in + S3 filenames + """ + return filename.replace("+", "_") + + +def _get_date_time_string() -> str: + now = datetime.now() + return now.strftime("%Y_%m_%d_%H_%M_%S") diff --git a/gradio-notebook/backend/gradio_notebook/gradio_notebook.py b/gradio-notebook/backend/gradio_notebook/gradio_notebook.py new file mode 100644 index 000000000..c109a11c8 --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/gradio_notebook.py @@ -0,0 +1,124 @@ +import json + +from .aiconfig_manager import AIConfigManager +from .events import EventHandler +from .gradio_notebook_component import GradioNotebookComponent +from .utils import show_debug + + +class GradioNotebook: + """ + A wrapper that constructs a GradioNotebookComponent. We need to do this instead of + using the GradioNotebookComponent directly because if we try to override the __init__ + method of GradioNotebookComponent, it doesn't properly pass the value into the Component + """ + + config_manager: AIConfigManager + + def __init__(self, config_path: str = "", parsers_path: str = "", **kwargs): + """ + Args: + config_path: (str, optional): The filepath to load the AIConfig from. + If the filepath doesn't exist, a new AIConfig will be created + parsers_path: (str, optional): The filepath to a module which registers + additional ModelParsers to the ModelParserRegistry. If the module + doesn't exist, the default ModelParsers (HF remote inference) will be + used + """ + # Create AIConfigManager + self.config_manager = AIConfigManager(config_path, parsers_path) + if show_debug(): + print(f"{self.config_manager=}") + print(f"{self.config_manager.config=}") + + # Display components + self.component = GradioNotebookComponent( + value=json.dumps( + { + "aiconfig": self.config_manager.get_config_json("original"), + "model_ids": self.config_manager.get_models(), + } + ), + **kwargs, + ) + + # Hook up events + self._register_events(self.component) + + def _register_events(self, component: GradioNotebookComponent) -> None: + """ + Register all the events that we need to handle + Please see the diagram here for visual representation on the steps below: + https://drive.google.com/file/d/1MgQlh9rL319QBABHuooRnSRymTWoKiEF/view?usp=sharing + 1. Every Component has an EVENTS field which holds the names of events that can + be triggered on that component (ex: GradioNotebookComponent has + `add_prompt` event in the EVENTS field) + 2. When we run the app (`gradio cc dev`), this will automagically create an + .pyi file for each custom component. `.pyi` means Python-interface, and this + is what is actually being read/run/whatever when using the app. If you open + this file, you will see that a new function is created for each event + added in the events field. Ex: `gradio_notebook_component.pyi` contains the + function `add_prompt()` + 3. This function `add_prompt()` takes in 3 main arguments (many others kwargs, + but ignore those for now): (, , ) + Ex: in this function below we setup this piece of code: + `component.add_prompt(event_handler.add_prompt_impl, [], [component])` + This means that when the event `add_prompt` is triggered, we will call the + `event_handler.add_prompt_impl` function by passing the inputs (empty + in our case) to this function, and return the result of + `event_handler.add_prompt_impl` to the outputs (components) + 4. The frontend (Index.svelte) dispatches an event corresponding to the name + of an event in the EVENTS field, and also sends in a json payload which + contains data that matches the EventData class for that event + 5. The backend defines the EventData class for each event, which specifies + the schema of the json payload that the frontend sends + (ex: AddPromptEventData has fields for `prompt` and `existing_ai_config`) + 6. The takes in this payload through an EventData object and + does whatever it wants with it, returning the output which gets sent to + the output component in part 3 + 7. The backend uses the auto-generated event function from part 3 to register + event listeners using the implementation from part 6 + """ + event_handler = EventHandler(config_manager=self.config_manager) + component.add_prompt( + event_handler.add_prompt_impl, [], [component], show_progress=False + ) + component.cancel_run( + event_handler.cancel_run_impl, [], [component], show_progress=False + ) + component.clear_outputs( + event_handler.clear_outputs_impl, [], [component], show_progress=False + ) + component.delete_prompt( + event_handler.delete_prompt_impl, [], [component], show_progress=False + ) + component.get_aiconfig( + event_handler.get_aiconfig_impl, [], [component], show_progress=False + ) + component.remove_session_id( + event_handler.remove_session_id_impl, [], [component], show_progress=False + ) + component.run_prompt( + event_handler.run_prompt_impl, [], [component], show_progress=False + ) + component.set_config_description( + event_handler.set_config_description_impl, + [], + [component], + show_progress=False, + ) + component.set_config_name( + event_handler.set_config_name_impl, [], [component], show_progress=False + ) + component.set_parameters( + event_handler.set_parameters_impl, [], [component], show_progress=False + ) + component.share_config( + event_handler.share_config_impl, [], [component], show_progress=False + ) + component.update_model( + event_handler.update_model_impl, [], [component], show_progress=False + ) + component.update_prompt( + event_handler.update_prompt_impl, [], [component], show_progress=False + ) diff --git a/gradio-notebook/backend/gradio_notebook/gradio_notebook_component.py b/gradio-notebook/backend/gradio_notebook/gradio_notebook_component.py new file mode 100644 index 000000000..4971ea77e --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/gradio_notebook_component.py @@ -0,0 +1,115 @@ +from gradio.components.base import Component +from gradio.data_classes import GradioModel +from gradio.events import EventListener + +from .utils import show_debug + + +class GradioAIConfig(GradioModel): + # TODO(rossdanlm): Explicitly define AIConfigRuntime + # https://github.com/lastmile-ai/gradio-workbook/issues/62 + pass + + +class GradioNotebookComponent(Component): + data_model = GradioAIConfig + + add_prompt_event_listener = EventListener( + "add_prompt", + doc="Triggered when user clicks the Add Prompt button", + ) + cancel_run_event_listener = EventListener( + "cancel_run", + doc="Triggered when user clicks the cancel button while a prompt is running", + ) + clear_outputs_event_listener = EventListener( + "clear_outputs", + doc="Triggered when user clicks the Clear Outputs button", + ) + delete_prompt_event_listener = EventListener( + "delete_prompt", + doc="Triggered when user clicks the Delete Prompt button", + ) + get_aiconfig_event_listener = EventListener( + "get_aiconfig", + doc="Triggered when user needs a non-stale version of config from server to perform an action directly on client (ex: download)", + ) + remove_session_id_event_listener = EventListener( + "remove_session_id", + doc="Triggered when window is closing and session is about to be deleted", + ) + share_config_event_listener = EventListener( + "share_config", + doc="Triggered when user clicks the Share button", + ) + run_prompt_event_listener = EventListener( + "run_prompt", + doc="Triggered when user clicks the Run Prompt button", + ) + set_config_description_event_listener = EventListener( + "set_config_description", + doc="Triggered when user sets the description for the AIConfig", + ) + set_config_name_event_listener = EventListener( + "set_config_name", + doc="Triggered when user sets the name for the AIConfig", + ) + set_parameters_event_listener = EventListener( + "set_parameters", + doc="Triggered when user sets global or prompt parameters. If done with a prompt, \ + it will update the param for that prompt. Otherwise, it will update \ + the overall parameters for the AIConfig", + ) + update_model_event_listener = EventListener( + "update_model", + doc="Triggered when user clicks the Update Model button. If done with a prompt, \ + it will update the model settings for that prompt. Otherwise, it will update \ + the overall model settings for the AIConfig", + ) + update_prompt_event_listener = EventListener( + "update_prompt", + doc="Triggered when user updates the prompt name or settings", + ) + EVENTS = [ + add_prompt_event_listener, + cancel_run_event_listener, + clear_outputs_event_listener, + delete_prompt_event_listener, + get_aiconfig_event_listener, + remove_session_id_event_listener, + run_prompt_event_listener, + share_config_event_listener, + set_config_description_event_listener, + set_config_name_event_listener, + set_parameters_event_listener, + update_model_event_listener, + update_prompt_event_listener, + ] + + def preprocess(self, payload: GradioAIConfig | None): + if show_debug(): + print("\nin preprocess") + print(f"{payload=}") + if payload is None: + return payload + return payload + + def postprocess(self, value: str) -> str: + """ + Return an output in the form of a json-formatted string for + client to process + """ + if show_debug(): + print("\nin postprocess") + print(f"{value=}") + return value + + # TODO (rossdanlm): Update this with a valud AIConfigRuntime object + # https://github.com/lastmile-ai/gradio-workbook/issues/62 + def example_inputs(self): + if show_debug(): + print("\nin example_inputs") + return {"foo": "bar"} + + def api_info(self): + return {"type": {}, "description": "AIConfigRuntime"} diff --git a/gradio-notebook/backend/gradio_notebook/session_data.py b/gradio-notebook/backend/gradio_notebook/session_data.py new file mode 100644 index 000000000..9d15d1a6c --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/session_data.py @@ -0,0 +1,19 @@ +import time + +from aiconfig import AIConfigRuntime +from pydantic import BaseModel + + +class SessionData(BaseModel): + """ + Represents the data stored per session_id, including: + - AIConfigRuntime: a copied version of the original AIConfigRuntime + - update_time: the last time this config was updated + - if it's been after certain amount of time, we will delete it + """ + + config: AIConfigRuntime + update_time: float = time.time() + + def __lt__(self, other): + return self.update_time < other.update_time diff --git a/gradio-notebook/backend/gradio_notebook/templates/component/__vite-browser-external-jWVCDlBL.js b/gradio-notebook/backend/gradio_notebook/templates/component/__vite-browser-external-jWVCDlBL.js new file mode 100644 index 000000000..a935c1d40 --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/templates/component/__vite-browser-external-jWVCDlBL.js @@ -0,0 +1,4 @@ +const e = {}; +export { + e as default +}; diff --git a/gradio-notebook/backend/gradio_notebook/templates/component/index.js b/gradio-notebook/backend/gradio_notebook/templates/component/index.js new file mode 100644 index 000000000..aab18002b --- /dev/null +++ b/gradio-notebook/backend/gradio_notebook/templates/component/index.js @@ -0,0 +1,60947 @@ +function ore(e, t) { + for (var n = 0; n < t.length; n++) { + const r = t[n]; + if (typeof r != "string" && !Array.isArray(r)) { + for (const o in r) + if (o !== "default" && !(o in e)) { + const i = Object.getOwnPropertyDescriptor(r, o); + i && Object.defineProperty(e, o, i.get ? i : { + enumerable: !0, + get: () => r[o] + }); + } + } + } + return Object.freeze(Object.defineProperty(e, Symbol.toStringTag, { value: "Module" })); +} +function BE(e) { + return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; +} +var iF = { exports: {} }, yt = {}; +/** + * @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 Cp = Symbol.for("react.element"), ire = Symbol.for("react.portal"), are = Symbol.for("react.fragment"), lre = Symbol.for("react.strict_mode"), sre = Symbol.for("react.profiler"), ure = Symbol.for("react.provider"), cre = Symbol.for("react.context"), fre = Symbol.for("react.forward_ref"), dre = Symbol.for("react.suspense"), pre = Symbol.for("react.memo"), mre = Symbol.for("react.lazy"), bj = Symbol.iterator; +function hre(e) { + return e === null || typeof e != "object" ? null : (e = bj && e[bj] || e["@@iterator"], typeof e == "function" ? e : null); +} +var aF = { isMounted: function() { + return !1; +}, enqueueForceUpdate: function() { +}, enqueueReplaceState: function() { +}, enqueueSetState: function() { +} }, lF = Object.assign, sF = {}; +function Vc(e, t, n) { + this.props = e, this.context = t, this.refs = sF, this.updater = n || aF; +} +Vc.prototype.isReactComponent = {}; +Vc.prototype.setState = function(e, t) { + if (typeof e != "object" && typeof e != "function" && e != 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, e, t, "setState"); +}; +Vc.prototype.forceUpdate = function(e) { + this.updater.enqueueForceUpdate(this, e, "forceUpdate"); +}; +function uF() { +} +uF.prototype = Vc.prototype; +function UE(e, t, n) { + this.props = e, this.context = t, this.refs = sF, this.updater = n || aF; +} +var HE = UE.prototype = new uF(); +HE.constructor = UE; +lF(HE, Vc.prototype); +HE.isPureReactComponent = !0; +var wj = Array.isArray, cF = Object.prototype.hasOwnProperty, WE = { current: null }, fF = { key: !0, ref: !0, __self: !0, __source: !0 }; +function dF(e, t, n) { + var r, o = {}, i = null, a = null; + if (t != null) + for (r in t.ref !== void 0 && (a = t.ref), t.key !== void 0 && (i = "" + t.key), t) + cF.call(t, r) && !fF.hasOwnProperty(r) && (o[r] = t[r]); + var l = arguments.length - 2; + if (l === 1) + o.children = n; + else if (1 < l) { + for (var s = Array(l), c = 0; c < l; c++) + s[c] = arguments[c + 2]; + o.children = s; + } + if (e && e.defaultProps) + for (r in l = e.defaultProps, l) + o[r] === void 0 && (o[r] = l[r]); + return { $$typeof: Cp, type: e, key: i, ref: a, props: o, _owner: WE.current }; +} +function gre(e, t) { + return { $$typeof: Cp, type: e.type, key: t, ref: e.ref, props: e.props, _owner: e._owner }; +} +function VE(e) { + return typeof e == "object" && e !== null && e.$$typeof === Cp; +} +function yre(e) { + var t = { "=": "=0", ":": "=2" }; + return "$" + e.replace(/[=:]/g, function(n) { + return t[n]; + }); +} +var xj = /\/+/g; +function yk(e, t) { + return typeof e == "object" && e !== null && e.key != null ? yre("" + e.key) : t.toString(36); +} +function mg(e, t, n, r, o) { + var i = typeof e; + (i === "undefined" || i === "boolean") && (e = null); + var a = !1; + if (e === null) + a = !0; + else + switch (i) { + case "string": + case "number": + a = !0; + break; + case "object": + switch (e.$$typeof) { + case Cp: + case ire: + a = !0; + } + } + if (a) + return a = e, o = o(a), e = r === "" ? "." + yk(a, 0) : r, wj(o) ? (n = "", e != null && (n = e.replace(xj, "$&/") + "/"), mg(o, t, n, "", function(c) { + return c; + })) : o != null && (VE(o) && (o = gre(o, n + (!o.key || a && a.key === o.key ? "" : ("" + o.key).replace(xj, "$&/") + "/") + e)), t.push(o)), 1; + if (a = 0, r = r === "" ? "." : r + ":", wj(e)) + for (var l = 0; l < e.length; l++) { + i = e[l]; + var s = r + yk(i, l); + a += mg(i, t, n, s, o); + } + else if (s = hre(e), typeof s == "function") + for (e = s.call(e), l = 0; !(i = e.next()).done; ) + i = i.value, s = r + yk(i, l++), a += mg(i, t, n, s, o); + else if (i === "object") + throw t = String(e), Error("Objects are not valid as a React child (found: " + (t === "[object Object]" ? "object with keys {" + Object.keys(e).join(", ") + "}" : t) + "). If you meant to render a collection of children, use an array instead."); + return a; +} +function Gm(e, t, n) { + if (e == null) + return e; + var r = [], o = 0; + return mg(e, r, "", "", function(i) { + return t.call(n, i, o++); + }), r; +} +function vre(e) { + if (e._status === -1) { + var t = e._result; + t = t(), t.then(function(n) { + (e._status === 0 || e._status === -1) && (e._status = 1, e._result = n); + }, function(n) { + (e._status === 0 || e._status === -1) && (e._status = 2, e._result = n); + }), e._status === -1 && (e._status = 0, e._result = t); + } + if (e._status === 1) + return e._result.default; + throw e._result; +} +var kr = { current: null }, hg = { transition: null }, bre = { ReactCurrentDispatcher: kr, ReactCurrentBatchConfig: hg, ReactCurrentOwner: WE }; +yt.Children = { map: Gm, forEach: function(e, t, n) { + Gm(e, function() { + t.apply(this, arguments); + }, n); +}, count: function(e) { + var t = 0; + return Gm(e, function() { + t++; + }), t; +}, toArray: function(e) { + return Gm(e, function(t) { + return t; + }) || []; +}, only: function(e) { + if (!VE(e)) + throw Error("React.Children.only expected to receive a single React element child."); + return e; +} }; +yt.Component = Vc; +yt.Fragment = are; +yt.Profiler = sre; +yt.PureComponent = UE; +yt.StrictMode = lre; +yt.Suspense = dre; +yt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = bre; +yt.cloneElement = function(e, t, n) { + if (e == null) + throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + e + "."); + var r = lF({}, e.props), o = e.key, i = e.ref, a = e._owner; + if (t != null) { + if (t.ref !== void 0 && (i = t.ref, a = WE.current), t.key !== void 0 && (o = "" + t.key), e.type && e.type.defaultProps) + var l = e.type.defaultProps; + for (s in t) + cF.call(t, s) && !fF.hasOwnProperty(s) && (r[s] = t[s] === void 0 && l !== void 0 ? l[s] : t[s]); + } + var s = arguments.length - 2; + if (s === 1) + r.children = n; + else if (1 < s) { + l = Array(s); + for (var c = 0; c < s; c++) + l[c] = arguments[c + 2]; + r.children = l; + } + return { $$typeof: Cp, type: e.type, key: o, ref: i, props: r, _owner: a }; +}; +yt.createContext = function(e) { + return e = { $$typeof: cre, _currentValue: e, _currentValue2: e, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null }, e.Provider = { $$typeof: ure, _context: e }, e.Consumer = e; +}; +yt.createElement = dF; +yt.createFactory = function(e) { + var t = dF.bind(null, e); + return t.type = e, t; +}; +yt.createRef = function() { + return { current: null }; +}; +yt.forwardRef = function(e) { + return { $$typeof: fre, render: e }; +}; +yt.isValidElement = VE; +yt.lazy = function(e) { + return { $$typeof: mre, _payload: { _status: -1, _result: e }, _init: vre }; +}; +yt.memo = function(e, t) { + return { $$typeof: pre, type: e, compare: t === void 0 ? null : t }; +}; +yt.startTransition = function(e) { + var t = hg.transition; + hg.transition = {}; + try { + e(); + } finally { + hg.transition = t; + } +}; +yt.unstable_act = function() { + throw Error("act(...) is not supported in production builds of React."); +}; +yt.useCallback = function(e, t) { + return kr.current.useCallback(e, t); +}; +yt.useContext = function(e) { + return kr.current.useContext(e); +}; +yt.useDebugValue = function() { +}; +yt.useDeferredValue = function(e) { + return kr.current.useDeferredValue(e); +}; +yt.useEffect = function(e, t) { + return kr.current.useEffect(e, t); +}; +yt.useId = function() { + return kr.current.useId(); +}; +yt.useImperativeHandle = function(e, t, n) { + return kr.current.useImperativeHandle(e, t, n); +}; +yt.useInsertionEffect = function(e, t) { + return kr.current.useInsertionEffect(e, t); +}; +yt.useLayoutEffect = function(e, t) { + return kr.current.useLayoutEffect(e, t); +}; +yt.useMemo = function(e, t) { + return kr.current.useMemo(e, t); +}; +yt.useReducer = function(e, t, n) { + return kr.current.useReducer(e, t, n); +}; +yt.useRef = function(e) { + return kr.current.useRef(e); +}; +yt.useState = function(e) { + return kr.current.useState(e); +}; +yt.useSyncExternalStore = function(e, t, n) { + return kr.current.useSyncExternalStore(e, t, n); +}; +yt.useTransition = function() { + return kr.current.useTransition(); +}; +yt.version = "18.2.0"; +iF.exports = yt; +var b = iF.exports; +const P = /* @__PURE__ */ BE(b), _0 = /* @__PURE__ */ ore({ + __proto__: null, + default: P +}, [b]); +function Ed() { +} +function wre(e, t) { + return e != e ? t == t : e !== t || e && typeof e == "object" || typeof e == "function"; +} +function xre(e, ...t) { + if (e == null) { + for (const r of t) + r(void 0); + return Ed; + } + const n = e.subscribe(...t); + return n.unsubscribe ? () => n.unsubscribe() : n; +} +function Sre(e) { + let t; + return xre(e, (n) => t = n)(), t; +} +const pF = typeof window < "u"; +let Sj = pF ? () => window.performance.now() : () => Date.now(), mF = pF ? (e) => requestAnimationFrame(e) : Ed; +const lc = /* @__PURE__ */ new Set(); +function hF(e) { + lc.forEach((t) => { + t.c(e) || (lc.delete(t), t.f()); + }), lc.size !== 0 && mF(hF); +} +function kre(e) { + let t; + return lc.size === 0 && mF(hF), { + promise: new Promise((n) => { + lc.add(t = { c: e, f: n }); + }), + abort() { + lc.delete(t); + } + }; +} +const _u = []; +function Bi(e, t = Ed) { + let n; + const r = /* @__PURE__ */ new Set(); + function o(l) { + if (wre(e, l) && (e = l, n)) { + const s = !_u.length; + for (const c of r) + c[1](), _u.push(c, e); + if (s) { + for (let c = 0; c < _u.length; c += 2) + _u[c][0](_u[c + 1]); + _u.length = 0; + } + } + } + function i(l) { + o(l(e)); + } + function a(l, s = Ed) { + const c = [l, s]; + return r.add(c), r.size === 1 && (n = t(o, i) || Ed), l(e), () => { + r.delete(c), r.size === 0 && n && (n(), n = null); + }; + } + return { set: o, update: i, subscribe: a }; +} +function kj(e) { + return Object.prototype.toString.call(e) === "[object Date]"; +} +function O0(e, t, n, r) { + if (typeof n == "number" || kj(n)) { + const o = r - n, i = (n - t) / (e.dt || 1 / 60), a = e.opts.stiffness * o, l = e.opts.damping * i, s = (a - l) * e.inv_mass, c = (i + s) * e.dt; + return Math.abs(c) < e.opts.precision && Math.abs(o) < e.opts.precision ? r : (e.settled = !1, kj(n) ? new Date(n.getTime() + c) : n + c); + } else { + if (Array.isArray(n)) + return n.map( + (o, i) => O0(e, t[i], n[i], r[i]) + ); + if (typeof n == "object") { + const o = {}; + for (const i in n) + o[i] = O0(e, t[i], n[i], r[i]); + return o; + } else + throw new Error(`Cannot spring ${typeof n} values`); + } +} +function _j(e, t = {}) { + const n = Bi(e), { stiffness: r = 0.15, damping: o = 0.8, precision: i = 0.01 } = t; + let a, l, s, c = e, p = e, f = 1, m = 0, h = !1; + function g(S, w = {}) { + p = S; + const x = s = {}; + return e == null || w.hard || v.stiffness >= 1 && v.damping >= 1 ? (h = !0, a = Sj(), c = S, n.set(e = p), Promise.resolve()) : (w.soft && (m = 1 / ((w.soft === !0 ? 0.5 : +w.soft) * 60), f = 0), l || (a = Sj(), h = !1, l = kre((k) => { + if (h) + return h = !1, l = null, !1; + f = Math.min(f + m, 1); + const E = { + inv_mass: f, + opts: v, + settled: !0, + dt: (k - a) * 60 / 1e3 + }, O = O0(E, c, e, p); + return a = k, c = e, n.set(e = O), E.settled && (l = null), !E.settled; + })), new Promise((k) => { + l.promise.then(() => { + x === s && k(); + }); + })); + } + const v = { + set: g, + update: (S, w) => g(S(p, e), w), + subscribe: n.subscribe, + stiffness: r, + damping: o, + precision: i + }; + return v; +} +function Km(e) { + const [t, n] = b.useState(() => Sre(e)); + return b.useEffect(() => { + let r = !0; + return e.subscribe((i) => { + r && (r = !1, i === t) || n(i); + }); + }, [e]), t; +} +const qE = b.createContext(void 0); +qE.displayName = "SvelteToReactContext"; +const { + SvelteComponent: _re, + assign: Oj, + binding_callbacks: Ej, + check_outros: Ore, + component_subscribe: Cj, + compute_slots: Ere, + create_slot: Cre, + detach: gg, + element: gF, + empty: Pre, + exclude_internal_props: Pj, + get_all_dirty_from_scope: Rre, + get_slot_changes: Tre, + group_outros: jre, + init: Nre, + insert: yg, + safe_not_equal: $re, + set_custom_element_data: yF, + space: Ire, + transition_in: vg, + transition_out: E0, + update_slot_base: Are +} = window.__gradio__svelte__internal, { + beforeUpdate: zre, + getAllContexts: Lre, + getContext: Dre, + onDestroy: Fre, + setContext: Mre +} = window.__gradio__svelte__internal; +function Rj(e) { + let t, n; + const r = ( + /*#slots*/ + e[7].default + ), o = Cre( + r, + e, + /*$$scope*/ + e[6], + null + ); + return { + c() { + t = gF("svelte-slot"), o && o.c(), yF(t, "class", "svelte-1rt0kpf"); + }, + m(i, a) { + yg(i, t, a), o && o.m(t, null), e[9](t), n = !0; + }, + p(i, a) { + o && o.p && (!n || a & /*$$scope*/ + 64) && Are( + o, + r, + i, + /*$$scope*/ + i[6], + n ? Tre( + r, + /*$$scope*/ + i[6], + a, + null + ) : Rre( + /*$$scope*/ + i[6] + ), + null + ); + }, + i(i) { + n || (vg(o, i), n = !0); + }, + o(i) { + E0(o, i), n = !1; + }, + d(i) { + i && gg(t), o && o.d(i), e[9](null); + } + }; +} +function Bre(e) { + let t, n, r, o, i = ( + /*$$slots*/ + e[4].default && Rj(e) + ); + return { + c() { + t = gF("react-portal-target"), n = Ire(), i && i.c(), r = Pre(), yF(t, "class", "svelte-1rt0kpf"); + }, + m(a, l) { + yg(a, t, l), e[8](t), yg(a, n, l), i && i.m(a, l), yg(a, r, l), o = !0; + }, + p(a, [l]) { + /*$$slots*/ + a[4].default ? i ? (i.p(a, l), l & /*$$slots*/ + 16 && vg(i, 1)) : (i = Rj(a), i.c(), vg(i, 1), i.m(r.parentNode, r)) : i && (jre(), E0(i, 1, 1, () => { + i = null; + }), Ore()); + }, + i(a) { + o || (vg(i), o = !0); + }, + o(a) { + E0(i), o = !1; + }, + d(a) { + a && (gg(t), gg(n), gg(r)), e[8](null), i && i.d(a); + } + }; +} +function Tj(e) { + const { svelteInit: t, ...n } = e; + return n; +} +function Ure(e, t, n) { + let r, o, { $$slots: i = {}, $$scope: a } = t; + const l = Ere(i); + let { svelteInit: s } = t; + const c = Bi(Tj(t)), p = Bi(); + Cj(e, p, (x) => n(0, r = x)); + const f = Bi(); + Cj(e, f, (x) => n(1, o = x)); + const m = Bi([]), h = [], g = Dre("ReactWrapper"), v = s({ + parent: g, + props: c, + target: p, + slot: f, + hooks: m, + contexts: Lre(), + onDestroy(x) { + h.push(x); + } + }); + Mre("ReactWrapper", v), zre(() => { + c.set(Tj(t)); + }), Fre(() => { + h.forEach((x) => x()); + }); + function S(x) { + Ej[x ? "unshift" : "push"](() => { + r = x, p.set(r); + }); + } + function w(x) { + Ej[x ? "unshift" : "push"](() => { + o = x, f.set(o); + }); + } + return e.$$set = (x) => { + n(15, t = Oj(Oj({}, t), Pj(x))), "svelteInit" in x && n(5, s = x.svelteInit), "$$scope" in x && n(6, a = x.$$scope); + }, t = Pj(t), [ + r, + o, + p, + f, + l, + s, + a, + i, + S, + w + ]; +} +class jj extends _re { + constructor(t) { + super(), Nre(this, t, Ure, Bre, $re, { svelteInit: 5 }); + } +} +const { + SvelteComponent: Hre, + create_slot: Wre, + get_all_dirty_from_scope: Vre, + get_slot_changes: qre, + init: Gre, + safe_not_equal: Kre, + transition_in: Yre, + transition_out: Xre, + update_slot_base: Zre +} = window.__gradio__svelte__internal; +function Qre(e) { + let t; + const n = ( + /*#slots*/ + e[1].default + ), r = Wre( + n, + e, + /*$$scope*/ + e[0], + null + ); + return { + c() { + r && r.c(); + }, + m(o, i) { + r && r.m(o, i), t = !0; + }, + p(o, [i]) { + r && r.p && (!t || i & /*$$scope*/ + 1) && Zre( + r, + n, + o, + /*$$scope*/ + o[0], + t ? qre( + n, + /*$$scope*/ + o[0], + i, + null + ) : Vre( + /*$$scope*/ + o[0] + ), + null + ); + }, + i(o) { + t || (Yre(r, o), t = !0); + }, + o(o) { + Xre(r, o), t = !1; + }, + d(o) { + r && r.d(o); + } + }; +} +function Jre(e, t, n) { + let { $$slots: r = {}, $$scope: o } = t; + return e.$$set = (i) => { + "$$scope" in i && n(0, o = i.$$scope); + }, [o, r]; +} +class vk extends Hre { + constructor(t) { + super(), Gre(this, t, Jre, Qre, Kre, {}); + } +} +const eoe = ({ el: e }) => { + const t = b.useRef(); + return b.useEffect(() => { + t.current && e && (e.style.display = "contents", t.current.appendChild(e)); + }, [t, e]), b.createElement("react-child", { + ref: t, + style: { display: "contents" } + }); +}, C0 = ({ createPortal: e, node: t }) => { + const n = Km(t.target); + let r = Km(t.props); + const o = Km(t.slot), i = Km(t.hooks); + if (!n) + return null; + let a; + return t.nodes.length === 0 && o === void 0 && i.length === 0 ? r.children && (a = r.children, r = { ...r }, delete r.children) : (a = t.nodes.map((l) => b.createElement(C0, { + key: `bridge${l.key}`, + createPortal: e, + node: l + })), r.children && (a.push(r.children), r = { ...r }, delete r.children), o && a.push(b.createElement(eoe, { key: "svelte-slot", el: o })), i.length >= 0 && a.push(...i.map(({ Hook: l, key: s }) => b.createElement(l, { key: `hook${s}` })))), e(b.createElement(qE.Provider, { value: t.contexts }, a === void 0 ? b.createElement(t.reactComponent, r) : b.createElement(t.reactComponent, r, a)), n); +}, { getAllContexts: toe } = window.__gradio__svelte__internal; +let Af, P0 = 0; +const Nj = Bi(), vF = Bi(), bk = { + key: P0, + svelteInstance: Nj, + reactComponent: ({ children: e }) => e, + target: vF, + props: Bi({}), + slot: Nj, + nodes: [], + contexts: /* @__PURE__ */ new Map(), + hooks: Bi([]) +}; +let rl; +function noe(e, t, n, r) { + var l; + if (typeof jj.$$render == "function") { + const { $$render: s } = vk; + return { + ...vk, + $$render(c, p, f, m, h) { + if (!r) + return ""; + if (rl !== void 0) + return rl.push({ reactComponent: e, props: p }), ``; + rl = []; + try { + const g = toe(), v = s.call(vk, c, {}, f, m, h), w = !m.default && rl.length === 0 ? b.createElement(e, p) : b.createElement(e, p, [ + b.createElement("svelte-slot", { + key: "svelte-slot", + style: { display: "contents" }, + dangerouslySetInnerHTML: { __html: v } + }), + ...rl.map((k, E) => b.createElement(`ssr-portal${E}`, { key: `ssr-portal${E}` }, b.createElement(k.reactComponent, k.props))) + ]); + let x = r(b.createElement(qE.Provider, { + value: h || g + }, w)); + return rl.forEach((k, E) => { + const O = ``, C = ``, R = x.indexOf(O), L = x.indexOf(C); + let D = ""; + R !== -1 && (D = x.substring(R + O.length, L), x = x.substring(0, R) + x.substring(L + C.length)), x = x.replace(``, D); + }), x; + } finally { + rl = void 0; + } + } + }; + } + if (!Af) { + const s = document.createElement("react-root"), c = (l = n.createRoot) == null ? void 0 : l.call(n, s), p = document.createElement("bridge-root"); + vF.set(p), document.head.appendChild(s), document.head.appendChild(p), c ? Af = (f) => { + c.render(b.createElement(C0, f)); + } : Af = (f) => { + n.render(b.createElement(C0, f), s); + }; + } + function a(s) { + const c = Bi(), p = new jj({ + ...s, + props: { + svelteInit(f) { + P0 += 1; + const m = { + key: P0, + svelteInstance: c, + reactComponent: e, + props: f.props, + slot: f.slot, + target: f.target, + hooks: f.hooks, + contexts: f.contexts, + nodes: [] + }, h = f.parent ?? bk; + return h.nodes.push(m), Af({ createPortal: t, node: bk }), f.onDestroy(() => { + h.nodes = h.nodes.filter((g) => g.svelteInstance !== c), Af({ createPortal: t, node: bk }); + }), m; + }, + ...s.props + } + }); + return c.set(p), p; + } + return a; +} +var R0 = {}, bF = { exports: {} }, xo = {}, wF = { exports: {} }, xF = {}; +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function(e) { + function t(q, ee) { + var A = q.length; + q.push(ee); + e: + for (; 0 < A; ) { + var X = A - 1 >>> 1, ie = q[X]; + if (0 < o(ie, ee)) + q[X] = ee, q[A] = ie, A = X; + else + break e; + } + } + function n(q) { + return q.length === 0 ? null : q[0]; + } + function r(q) { + if (q.length === 0) + return null; + var ee = q[0], A = q.pop(); + if (A !== ee) { + q[0] = A; + e: + for (var X = 0, ie = q.length, j = ie >>> 1; X < j; ) { + var le = 2 * (X + 1) - 1, re = q[le], he = le + 1, xe = q[he]; + if (0 > o(re, A)) + he < ie && 0 > o(xe, re) ? (q[X] = xe, q[he] = A, X = he) : (q[X] = re, q[le] = A, X = le); + else if (he < ie && 0 > o(xe, A)) + q[X] = xe, q[he] = A, X = he; + else + break e; + } + } + return ee; + } + function o(q, ee) { + var A = q.sortIndex - ee.sortIndex; + return A !== 0 ? A : q.id - ee.id; + } + if (typeof performance == "object" && typeof performance.now == "function") { + var i = performance; + e.unstable_now = function() { + return i.now(); + }; + } else { + var a = Date, l = a.now(); + e.unstable_now = function() { + return a.now() - l; + }; + } + var s = [], c = [], p = 1, f = null, m = 3, h = !1, g = !1, v = !1, S = typeof setTimeout == "function" ? setTimeout : null, w = typeof clearTimeout == "function" ? clearTimeout : null, x = typeof setImmediate < "u" ? setImmediate : null; + typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling); + function k(q) { + for (var ee = n(c); ee !== null; ) { + if (ee.callback === null) + r(c); + else if (ee.startTime <= q) + r(c), ee.sortIndex = ee.expirationTime, t(s, ee); + else + break; + ee = n(c); + } + } + function E(q) { + if (v = !1, k(q), !g) + if (n(s) !== null) + g = !0, Q(O); + else { + var ee = n(c); + ee !== null && J(E, ee.startTime - q); + } + } + function O(q, ee) { + g = !1, v && (v = !1, w(L), L = -1), h = !0; + var A = m; + try { + for (k(ee), f = n(s); f !== null && (!(f.expirationTime > ee) || q && !H()); ) { + var X = f.callback; + if (typeof X == "function") { + f.callback = null, m = f.priorityLevel; + var ie = X(f.expirationTime <= ee); + ee = e.unstable_now(), typeof ie == "function" ? f.callback = ie : f === n(s) && r(s), k(ee); + } else + r(s); + f = n(s); + } + if (f !== null) + var j = !0; + else { + var le = n(c); + le !== null && J(E, le.startTime - ee), j = !1; + } + return j; + } finally { + f = null, m = A, h = !1; + } + } + var C = !1, R = null, L = -1, D = 5, N = -1; + function H() { + return !(e.unstable_now() - N < D); + } + function B() { + if (R !== null) { + var q = e.unstable_now(); + N = q; + var ee = !0; + try { + ee = R(!0, q); + } finally { + ee ? K() : (C = !1, R = null); + } + } else + C = !1; + } + var K; + if (typeof x == "function") + K = function() { + x(B); + }; + else if (typeof MessageChannel < "u") { + var W = new MessageChannel(), U = W.port2; + W.port1.onmessage = B, K = function() { + U.postMessage(null); + }; + } else + K = function() { + S(B, 0); + }; + function Q(q) { + R = q, C || (C = !0, K()); + } + function J(q, ee) { + L = S(function() { + q(e.unstable_now()); + }, ee); + } + e.unstable_IdlePriority = 5, e.unstable_ImmediatePriority = 1, e.unstable_LowPriority = 4, e.unstable_NormalPriority = 3, e.unstable_Profiling = null, e.unstable_UserBlockingPriority = 2, e.unstable_cancelCallback = function(q) { + q.callback = null; + }, e.unstable_continueExecution = function() { + g || h || (g = !0, Q(O)); + }, e.unstable_forceFrameRate = function(q) { + 0 > q || 125 < q ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : D = 0 < q ? Math.floor(1e3 / q) : 5; + }, e.unstable_getCurrentPriorityLevel = function() { + return m; + }, e.unstable_getFirstCallbackNode = function() { + return n(s); + }, e.unstable_next = function(q) { + switch (m) { + case 1: + case 2: + case 3: + var ee = 3; + break; + default: + ee = m; + } + var A = m; + m = ee; + try { + return q(); + } finally { + m = A; + } + }, e.unstable_pauseExecution = function() { + }, e.unstable_requestPaint = function() { + }, e.unstable_runWithPriority = function(q, ee) { + switch (q) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + q = 3; + } + var A = m; + m = q; + try { + return ee(); + } finally { + m = A; + } + }, e.unstable_scheduleCallback = function(q, ee, A) { + var X = e.unstable_now(); + switch (typeof A == "object" && A !== null ? (A = A.delay, A = typeof A == "number" && 0 < A ? X + A : X) : A = X, q) { + case 1: + var ie = -1; + break; + case 2: + ie = 250; + break; + case 5: + ie = 1073741823; + break; + case 4: + ie = 1e4; + break; + default: + ie = 5e3; + } + return ie = A + ie, q = { id: p++, callback: ee, priorityLevel: q, startTime: A, expirationTime: ie, sortIndex: -1 }, A > X ? (q.sortIndex = A, t(c, q), n(s) === null && q === n(c) && (v ? (w(L), L = -1) : v = !0, J(E, A - X))) : (q.sortIndex = ie, t(s, q), g || h || (g = !0, Q(O))), q; + }, e.unstable_shouldYield = H, e.unstable_wrapCallback = function(q) { + var ee = m; + return function() { + var A = m; + m = ee; + try { + return q.apply(this, arguments); + } finally { + m = A; + } + }; + }; +})(xF); +wF.exports = xF; +var roe = wF.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 SF = b, bo = roe; +function ge(e) { + for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, n = 1; n < arguments.length; n++) + t += "&args[]=" + encodeURIComponent(arguments[n]); + return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; +} +var kF = /* @__PURE__ */ new Set(), Kd = {}; +function Gs(e, t) { + wc(e, t), wc(e + "Capture", t); +} +function wc(e, t) { + for (Kd[e] = t, e = 0; e < t.length; e++) + kF.add(t[e]); +} +var _a = !(typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u"), T0 = Object.prototype.hasOwnProperty, ooe = /^[: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]*$/, $j = {}, Ij = {}; +function ioe(e) { + return T0.call(Ij, e) ? !0 : T0.call($j, e) ? !1 : ooe.test(e) ? Ij[e] = !0 : ($j[e] = !0, !1); +} +function aoe(e, t, n, r) { + if (n !== null && n.type === 0) + return !1; + switch (typeof t) { + case "function": + case "symbol": + return !0; + case "boolean": + return r ? !1 : n !== null ? !n.acceptsBooleans : (e = e.toLowerCase().slice(0, 5), e !== "data-" && e !== "aria-"); + default: + return !1; + } +} +function loe(e, t, n, r) { + if (t === null || typeof t > "u" || aoe(e, t, n, r)) + return !0; + if (r) + return !1; + if (n !== null) + switch (n.type) { + case 3: + return !t; + case 4: + return t === !1; + case 5: + return isNaN(t); + case 6: + return isNaN(t) || 1 > t; + } + return !1; +} +function _r(e, t, n, r, o, i, a) { + this.acceptsBooleans = t === 2 || t === 3 || t === 4, this.attributeName = r, this.attributeNamespace = o, this.mustUseProperty = n, this.propertyName = e, this.type = t, this.sanitizeURL = i, this.removeEmptyString = a; +} +var qn = {}; +"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e) { + qn[e] = new _r(e, 0, !1, e, null, !1, !1); +}); +[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(e) { + var t = e[0]; + qn[t] = new _r(t, 1, !1, e[1], null, !1, !1); +}); +["contentEditable", "draggable", "spellCheck", "value"].forEach(function(e) { + qn[e] = new _r(e, 2, !1, e.toLowerCase(), null, !1, !1); +}); +["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(e) { + qn[e] = new _r(e, 2, !1, e, null, !1, !1); +}); +"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e) { + qn[e] = new _r(e, 3, !1, e.toLowerCase(), null, !1, !1); +}); +["checked", "multiple", "muted", "selected"].forEach(function(e) { + qn[e] = new _r(e, 3, !0, e, null, !1, !1); +}); +["capture", "download"].forEach(function(e) { + qn[e] = new _r(e, 4, !1, e, null, !1, !1); +}); +["cols", "rows", "size", "span"].forEach(function(e) { + qn[e] = new _r(e, 6, !1, e, null, !1, !1); +}); +["rowSpan", "start"].forEach(function(e) { + qn[e] = new _r(e, 5, !1, e.toLowerCase(), null, !1, !1); +}); +var GE = /[\-:]([a-z])/g; +function KE(e) { + return e[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(e) { + var t = e.replace( + GE, + KE + ); + qn[t] = new _r(t, 1, !1, e, null, !1, !1); +}); +"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e) { + var t = e.replace(GE, KE); + qn[t] = new _r(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1, !1); +}); +["xml:base", "xml:lang", "xml:space"].forEach(function(e) { + var t = e.replace(GE, KE); + qn[t] = new _r(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1, !1); +}); +["tabIndex", "crossOrigin"].forEach(function(e) { + qn[e] = new _r(e, 1, !1, e.toLowerCase(), null, !1, !1); +}); +qn.xlinkHref = new _r("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1); +["src", "href", "action", "formAction"].forEach(function(e) { + qn[e] = new _r(e, 1, !1, e.toLowerCase(), null, !0, !0); +}); +function YE(e, t, n, r) { + var o = qn.hasOwnProperty(t) ? qn[t] : null; + (o !== null ? o.type !== 0 : r || !(2 < t.length) || t[0] !== "o" && t[0] !== "O" || t[1] !== "n" && t[1] !== "N") && (loe(t, n, o, r) && (n = null), r || o === null ? ioe(t) && (n === null ? e.removeAttribute(t) : e.setAttribute(t, "" + n)) : o.mustUseProperty ? e[o.propertyName] = n === null ? o.type === 3 ? !1 : "" : n : (t = o.attributeName, r = o.attributeNamespace, n === null ? e.removeAttribute(t) : (o = o.type, n = o === 3 || o === 4 && n === !0 ? "" : "" + n, r ? e.setAttributeNS(r, t, n) : e.setAttribute(t, n)))); +} +var za = SF.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, Ym = Symbol.for("react.element"), Wu = Symbol.for("react.portal"), Vu = Symbol.for("react.fragment"), XE = Symbol.for("react.strict_mode"), j0 = Symbol.for("react.profiler"), _F = Symbol.for("react.provider"), OF = Symbol.for("react.context"), ZE = Symbol.for("react.forward_ref"), N0 = Symbol.for("react.suspense"), $0 = Symbol.for("react.suspense_list"), QE = Symbol.for("react.memo"), pl = Symbol.for("react.lazy"), EF = Symbol.for("react.offscreen"), Aj = Symbol.iterator; +function zf(e) { + return e === null || typeof e != "object" ? null : (e = Aj && e[Aj] || e["@@iterator"], typeof e == "function" ? e : null); +} +var sn = Object.assign, wk; +function dd(e) { + if (wk === void 0) + try { + throw Error(); + } catch (n) { + var t = n.stack.trim().match(/\n( *(at )?)/); + wk = t && t[1] || ""; + } + return ` +` + wk + e; +} +var xk = !1; +function Sk(e, t) { + if (!e || xk) + return ""; + xk = !0; + var n = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + if (t) + if (t = function() { + throw Error(); + }, Object.defineProperty(t.prototype, "props", { set: function() { + throw Error(); + } }), typeof Reflect == "object" && Reflect.construct) { + try { + Reflect.construct(t, []); + } catch (c) { + var r = c; + } + Reflect.construct(e, [], t); + } else { + try { + t.call(); + } catch (c) { + r = c; + } + e.call(t.prototype); + } + else { + try { + throw Error(); + } catch (c) { + r = c; + } + e(); + } + } catch (c) { + if (c && r && typeof c.stack == "string") { + for (var o = c.stack.split(` +`), i = r.stack.split(` +`), a = o.length - 1, l = i.length - 1; 1 <= a && 0 <= l && o[a] !== i[l]; ) + l--; + for (; 1 <= a && 0 <= l; a--, l--) + if (o[a] !== i[l]) { + if (a !== 1 || l !== 1) + do + if (a--, l--, 0 > l || o[a] !== i[l]) { + var s = ` +` + o[a].replace(" at new ", " at "); + return e.displayName && s.includes("") && (s = s.replace("", e.displayName)), s; + } + while (1 <= a && 0 <= l); + break; + } + } + } finally { + xk = !1, Error.prepareStackTrace = n; + } + return (e = e ? e.displayName || e.name : "") ? dd(e) : ""; +} +function soe(e) { + switch (e.tag) { + case 5: + return dd(e.type); + case 16: + return dd("Lazy"); + case 13: + return dd("Suspense"); + case 19: + return dd("SuspenseList"); + case 0: + case 2: + case 15: + return e = Sk(e.type, !1), e; + case 11: + return e = Sk(e.type.render, !1), e; + case 1: + return e = Sk(e.type, !0), e; + default: + return ""; + } +} +function I0(e) { + if (e == null) + return null; + if (typeof e == "function") + return e.displayName || e.name || null; + if (typeof e == "string") + return e; + switch (e) { + case Vu: + return "Fragment"; + case Wu: + return "Portal"; + case j0: + return "Profiler"; + case XE: + return "StrictMode"; + case N0: + return "Suspense"; + case $0: + return "SuspenseList"; + } + if (typeof e == "object") + switch (e.$$typeof) { + case OF: + return (e.displayName || "Context") + ".Consumer"; + case _F: + return (e._context.displayName || "Context") + ".Provider"; + case ZE: + var t = e.render; + return e = e.displayName, e || (e = t.displayName || t.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e; + case QE: + return t = e.displayName || null, t !== null ? t : I0(e.type) || "Memo"; + case pl: + t = e._payload, e = e._init; + try { + return I0(e(t)); + } catch { + } + } + return null; +} +function uoe(e) { + var t = e.type; + switch (e.tag) { + case 24: + return "Cache"; + case 9: + return (t.displayName || "Context") + ".Consumer"; + case 10: + return (t._context.displayName || "Context") + ".Provider"; + case 18: + return "DehydratedFragment"; + case 11: + return e = t.render, e = e.displayName || e.name || "", t.displayName || (e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"); + case 7: + return "Fragment"; + case 5: + return t; + case 4: + return "Portal"; + case 3: + return "Root"; + case 6: + return "Text"; + case 16: + return I0(t); + case 8: + return t === XE ? "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 t == "function") + return t.displayName || t.name || null; + if (typeof t == "string") + return t; + } + return null; +} +function Ll(e) { + switch (typeof e) { + case "boolean": + case "number": + case "string": + case "undefined": + return e; + case "object": + return e; + default: + return ""; + } +} +function CF(e) { + var t = e.type; + return (e = e.nodeName) && e.toLowerCase() === "input" && (t === "checkbox" || t === "radio"); +} +function coe(e) { + var t = CF(e) ? "checked" : "value", n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), r = "" + e[t]; + if (!e.hasOwnProperty(t) && typeof n < "u" && typeof n.get == "function" && typeof n.set == "function") { + var o = n.get, i = n.set; + return Object.defineProperty(e, t, { configurable: !0, get: function() { + return o.call(this); + }, set: function(a) { + r = "" + a, i.call(this, a); + } }), Object.defineProperty(e, t, { enumerable: n.enumerable }), { getValue: function() { + return r; + }, setValue: function(a) { + r = "" + a; + }, stopTracking: function() { + e._valueTracker = null, delete e[t]; + } }; + } +} +function Xm(e) { + e._valueTracker || (e._valueTracker = coe(e)); +} +function PF(e) { + if (!e) + return !1; + var t = e._valueTracker; + if (!t) + return !0; + var n = t.getValue(), r = ""; + return e && (r = CF(e) ? e.checked ? "true" : "false" : e.value), e = r, e !== n ? (t.setValue(e), !0) : !1; +} +function ay(e) { + if (e = e || (typeof document < "u" ? document : void 0), typeof e > "u") + return null; + try { + return e.activeElement || e.body; + } catch { + return e.body; + } +} +function A0(e, t) { + var n = t.checked; + return sn({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: n ?? e._wrapperState.initialChecked }); +} +function zj(e, t) { + var n = t.defaultValue == null ? "" : t.defaultValue, r = t.checked != null ? t.checked : t.defaultChecked; + n = Ll(t.value != null ? t.value : n), e._wrapperState = { initialChecked: r, initialValue: n, controlled: t.type === "checkbox" || t.type === "radio" ? t.checked != null : t.value != null }; +} +function RF(e, t) { + t = t.checked, t != null && YE(e, "checked", t, !1); +} +function z0(e, t) { + RF(e, t); + var n = Ll(t.value), r = t.type; + if (n != null) + r === "number" ? (n === 0 && e.value === "" || e.value != n) && (e.value = "" + n) : e.value !== "" + n && (e.value = "" + n); + else if (r === "submit" || r === "reset") { + e.removeAttribute("value"); + return; + } + t.hasOwnProperty("value") ? L0(e, t.type, n) : t.hasOwnProperty("defaultValue") && L0(e, t.type, Ll(t.defaultValue)), t.checked == null && t.defaultChecked != null && (e.defaultChecked = !!t.defaultChecked); +} +function Lj(e, t, n) { + if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { + var r = t.type; + if (!(r !== "submit" && r !== "reset" || t.value !== void 0 && t.value !== null)) + return; + t = "" + e._wrapperState.initialValue, n || t === e.value || (e.value = t), e.defaultValue = t; + } + n = e.name, n !== "" && (e.name = ""), e.defaultChecked = !!e._wrapperState.initialChecked, n !== "" && (e.name = n); +} +function L0(e, t, n) { + (t !== "number" || ay(e.ownerDocument) !== e) && (n == null ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + n && (e.defaultValue = "" + n)); +} +var pd = Array.isArray; +function sc(e, t, n, r) { + if (e = e.options, t) { + t = {}; + for (var o = 0; o < n.length; o++) + t["$" + n[o]] = !0; + for (n = 0; n < e.length; n++) + o = t.hasOwnProperty("$" + e[n].value), e[n].selected !== o && (e[n].selected = o), o && r && (e[n].defaultSelected = !0); + } else { + for (n = "" + Ll(n), t = null, o = 0; o < e.length; o++) { + if (e[o].value === n) { + e[o].selected = !0, r && (e[o].defaultSelected = !0); + return; + } + t !== null || e[o].disabled || (t = e[o]); + } + t !== null && (t.selected = !0); + } +} +function D0(e, t) { + if (t.dangerouslySetInnerHTML != null) + throw Error(ge(91)); + return sn({}, t, { value: void 0, defaultValue: void 0, children: "" + e._wrapperState.initialValue }); +} +function Dj(e, t) { + var n = t.value; + if (n == null) { + if (n = t.children, t = t.defaultValue, n != null) { + if (t != null) + throw Error(ge(92)); + if (pd(n)) { + if (1 < n.length) + throw Error(ge(93)); + n = n[0]; + } + t = n; + } + t == null && (t = ""), n = t; + } + e._wrapperState = { initialValue: Ll(n) }; +} +function TF(e, t) { + var n = Ll(t.value), r = Ll(t.defaultValue); + n != null && (n = "" + n, n !== e.value && (e.value = n), t.defaultValue == null && e.defaultValue !== n && (e.defaultValue = n)), r != null && (e.defaultValue = "" + r); +} +function Fj(e) { + var t = e.textContent; + t === e._wrapperState.initialValue && t !== "" && t !== null && (e.value = t); +} +function jF(e) { + switch (e) { + case "svg": + return "http://www.w3.org/2000/svg"; + case "math": + return "http://www.w3.org/1998/Math/MathML"; + default: + return "http://www.w3.org/1999/xhtml"; + } +} +function F0(e, t) { + return e == null || e === "http://www.w3.org/1999/xhtml" ? jF(t) : e === "http://www.w3.org/2000/svg" && t === "foreignObject" ? "http://www.w3.org/1999/xhtml" : e; +} +var Zm, NF = function(e) { + return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function(t, n, r, o) { + MSApp.execUnsafeLocalFunction(function() { + return e(t, n, r, o); + }); + } : e; +}(function(e, t) { + if (e.namespaceURI !== "http://www.w3.org/2000/svg" || "innerHTML" in e) + e.innerHTML = t; + else { + for (Zm = Zm || document.createElement("div"), Zm.innerHTML = "" + t.valueOf().toString() + "", t = Zm.firstChild; e.firstChild; ) + e.removeChild(e.firstChild); + for (; t.firstChild; ) + e.appendChild(t.firstChild); + } +}); +function Yd(e, t) { + if (t) { + var n = e.firstChild; + if (n && n === e.lastChild && n.nodeType === 3) { + n.nodeValue = t; + return; + } + } + e.textContent = t; +} +var Cd = { + 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 +}, foe = ["Webkit", "ms", "Moz", "O"]; +Object.keys(Cd).forEach(function(e) { + foe.forEach(function(t) { + t = t + e.charAt(0).toUpperCase() + e.substring(1), Cd[t] = Cd[e]; + }); +}); +function $F(e, t, n) { + return t == null || typeof t == "boolean" || t === "" ? "" : n || typeof t != "number" || t === 0 || Cd.hasOwnProperty(e) && Cd[e] ? ("" + t).trim() : t + "px"; +} +function IF(e, t) { + e = e.style; + for (var n in t) + if (t.hasOwnProperty(n)) { + var r = n.indexOf("--") === 0, o = $F(n, t[n], r); + n === "float" && (n = "cssFloat"), r ? e.setProperty(n, o) : e[n] = o; + } +} +var doe = sn({ 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 M0(e, t) { + if (t) { + if (doe[e] && (t.children != null || t.dangerouslySetInnerHTML != null)) + throw Error(ge(137, e)); + if (t.dangerouslySetInnerHTML != null) { + if (t.children != null) + throw Error(ge(60)); + if (typeof t.dangerouslySetInnerHTML != "object" || !("__html" in t.dangerouslySetInnerHTML)) + throw Error(ge(61)); + } + if (t.style != null && typeof t.style != "object") + throw Error(ge(62)); + } +} +function B0(e, t) { + if (e.indexOf("-") === -1) + return typeof t.is == "string"; + switch (e) { + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + return !1; + default: + return !0; + } +} +var U0 = null; +function JE(e) { + return e = e.target || e.srcElement || window, e.correspondingUseElement && (e = e.correspondingUseElement), e.nodeType === 3 ? e.parentNode : e; +} +var H0 = null, uc = null, cc = null; +function Mj(e) { + if (e = Tp(e)) { + if (typeof H0 != "function") + throw Error(ge(280)); + var t = e.stateNode; + t && (t = qw(t), H0(e.stateNode, e.type, t)); + } +} +function AF(e) { + uc ? cc ? cc.push(e) : cc = [e] : uc = e; +} +function zF() { + if (uc) { + var e = uc, t = cc; + if (cc = uc = null, Mj(e), t) + for (e = 0; e < t.length; e++) + Mj(t[e]); + } +} +function LF(e, t) { + return e(t); +} +function DF() { +} +var kk = !1; +function FF(e, t, n) { + if (kk) + return e(t, n); + kk = !0; + try { + return LF(e, t, n); + } finally { + kk = !1, (uc !== null || cc !== null) && (DF(), zF()); + } +} +function Xd(e, t) { + var n = e.stateNode; + if (n === null) + return null; + var r = qw(n); + if (r === null) + return null; + n = r[t]; + e: + switch (t) { + case "onClick": + case "onClickCapture": + case "onDoubleClick": + case "onDoubleClickCapture": + case "onMouseDown": + case "onMouseDownCapture": + case "onMouseMove": + case "onMouseMoveCapture": + case "onMouseUp": + case "onMouseUpCapture": + case "onMouseEnter": + (r = !r.disabled) || (e = e.type, r = !(e === "button" || e === "input" || e === "select" || e === "textarea")), e = !r; + break e; + default: + e = !1; + } + if (e) + return null; + if (n && typeof n != "function") + throw Error(ge(231, t, typeof n)); + return n; +} +var W0 = !1; +if (_a) + try { + var Lf = {}; + Object.defineProperty(Lf, "passive", { get: function() { + W0 = !0; + } }), window.addEventListener("test", Lf, Lf), window.removeEventListener("test", Lf, Lf); + } catch { + W0 = !1; + } +function poe(e, t, n, r, o, i, a, l, s) { + var c = Array.prototype.slice.call(arguments, 3); + try { + t.apply(n, c); + } catch (p) { + this.onError(p); + } +} +var Pd = !1, ly = null, sy = !1, V0 = null, moe = { onError: function(e) { + Pd = !0, ly = e; +} }; +function hoe(e, t, n, r, o, i, a, l, s) { + Pd = !1, ly = null, poe.apply(moe, arguments); +} +function goe(e, t, n, r, o, i, a, l, s) { + if (hoe.apply(this, arguments), Pd) { + if (Pd) { + var c = ly; + Pd = !1, ly = null; + } else + throw Error(ge(198)); + sy || (sy = !0, V0 = c); + } +} +function Ks(e) { + var t = e, n = e; + if (e.alternate) + for (; t.return; ) + t = t.return; + else { + e = t; + do + t = e, t.flags & 4098 && (n = t.return), e = t.return; + while (e); + } + return t.tag === 3 ? n : null; +} +function MF(e) { + if (e.tag === 13) { + var t = e.memoizedState; + if (t === null && (e = e.alternate, e !== null && (t = e.memoizedState)), t !== null) + return t.dehydrated; + } + return null; +} +function Bj(e) { + if (Ks(e) !== e) + throw Error(ge(188)); +} +function yoe(e) { + var t = e.alternate; + if (!t) { + if (t = Ks(e), t === null) + throw Error(ge(188)); + return t !== e ? null : e; + } + for (var n = e, r = t; ; ) { + var o = n.return; + if (o === null) + break; + var i = o.alternate; + if (i === null) { + if (r = o.return, r !== null) { + n = r; + continue; + } + break; + } + if (o.child === i.child) { + for (i = o.child; i; ) { + if (i === n) + return Bj(o), e; + if (i === r) + return Bj(o), t; + i = i.sibling; + } + throw Error(ge(188)); + } + if (n.return !== r.return) + n = o, r = i; + else { + for (var a = !1, l = o.child; l; ) { + if (l === n) { + a = !0, n = o, r = i; + break; + } + if (l === r) { + a = !0, r = o, n = i; + break; + } + l = l.sibling; + } + if (!a) { + for (l = i.child; l; ) { + if (l === n) { + a = !0, n = i, r = o; + break; + } + if (l === r) { + a = !0, r = i, n = o; + break; + } + l = l.sibling; + } + if (!a) + throw Error(ge(189)); + } + } + if (n.alternate !== r) + throw Error(ge(190)); + } + if (n.tag !== 3) + throw Error(ge(188)); + return n.stateNode.current === n ? e : t; +} +function BF(e) { + return e = yoe(e), e !== null ? UF(e) : null; +} +function UF(e) { + if (e.tag === 5 || e.tag === 6) + return e; + for (e = e.child; e !== null; ) { + var t = UF(e); + if (t !== null) + return t; + e = e.sibling; + } + return null; +} +var HF = bo.unstable_scheduleCallback, Uj = bo.unstable_cancelCallback, voe = bo.unstable_shouldYield, boe = bo.unstable_requestPaint, yn = bo.unstable_now, woe = bo.unstable_getCurrentPriorityLevel, eC = bo.unstable_ImmediatePriority, WF = bo.unstable_UserBlockingPriority, uy = bo.unstable_NormalPriority, xoe = bo.unstable_LowPriority, VF = bo.unstable_IdlePriority, Uw = null, Vi = null; +function Soe(e) { + if (Vi && typeof Vi.onCommitFiberRoot == "function") + try { + Vi.onCommitFiberRoot(Uw, e, void 0, (e.current.flags & 128) === 128); + } catch { + } +} +var ci = Math.clz32 ? Math.clz32 : Ooe, koe = Math.log, _oe = Math.LN2; +function Ooe(e) { + return e >>>= 0, e === 0 ? 32 : 31 - (koe(e) / _oe | 0) | 0; +} +var Qm = 64, Jm = 4194304; +function md(e) { + switch (e & -e) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return e & 4194240; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + case 67108864: + return e & 130023424; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 1073741824; + default: + return e; + } +} +function cy(e, t) { + var n = e.pendingLanes; + if (n === 0) + return 0; + var r = 0, o = e.suspendedLanes, i = e.pingedLanes, a = n & 268435455; + if (a !== 0) { + var l = a & ~o; + l !== 0 ? r = md(l) : (i &= a, i !== 0 && (r = md(i))); + } else + a = n & ~o, a !== 0 ? r = md(a) : i !== 0 && (r = md(i)); + if (r === 0) + return 0; + if (t !== 0 && t !== r && !(t & o) && (o = r & -r, i = t & -t, o >= i || o === 16 && (i & 4194240) !== 0)) + return t; + if (r & 4 && (r |= n & 16), t = e.entangledLanes, t !== 0) + for (e = e.entanglements, t &= r; 0 < t; ) + n = 31 - ci(t), o = 1 << n, r |= e[n], t &= ~o; + return r; +} +function Eoe(e, t) { + switch (e) { + case 1: + case 2: + case 4: + return t + 250; + case 8: + case 16: + case 32: + case 64: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return t + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + case 67108864: + return -1; + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return -1; + } +} +function Coe(e, t) { + for (var n = e.suspendedLanes, r = e.pingedLanes, o = e.expirationTimes, i = e.pendingLanes; 0 < i; ) { + var a = 31 - ci(i), l = 1 << a, s = o[a]; + s === -1 ? (!(l & n) || l & r) && (o[a] = Eoe(l, t)) : s <= t && (e.expiredLanes |= l), i &= ~l; + } +} +function q0(e) { + return e = e.pendingLanes & -1073741825, e !== 0 ? e : e & 1073741824 ? 1073741824 : 0; +} +function qF() { + var e = Qm; + return Qm <<= 1, !(Qm & 4194240) && (Qm = 64), e; +} +function _k(e) { + for (var t = [], n = 0; 31 > n; n++) + t.push(e); + return t; +} +function Pp(e, t, n) { + e.pendingLanes |= t, t !== 536870912 && (e.suspendedLanes = 0, e.pingedLanes = 0), e = e.eventTimes, t = 31 - ci(t), e[t] = n; +} +function Poe(e, t) { + var n = e.pendingLanes & ~t; + e.pendingLanes = t, e.suspendedLanes = 0, e.pingedLanes = 0, e.expiredLanes &= t, e.mutableReadLanes &= t, e.entangledLanes &= t, t = e.entanglements; + var r = e.eventTimes; + for (e = e.expirationTimes; 0 < n; ) { + var o = 31 - ci(n), i = 1 << o; + t[o] = 0, r[o] = -1, e[o] = -1, n &= ~i; + } +} +function tC(e, t) { + var n = e.entangledLanes |= t; + for (e = e.entanglements; n; ) { + var r = 31 - ci(n), o = 1 << r; + o & t | e[r] & t && (e[r] |= t), n &= ~o; + } +} +var It = 0; +function GF(e) { + return e &= -e, 1 < e ? 4 < e ? e & 268435455 ? 16 : 536870912 : 4 : 1; +} +var KF, nC, YF, XF, ZF, G0 = !1, eh = [], Ol = null, El = null, Cl = null, Zd = /* @__PURE__ */ new Map(), Qd = /* @__PURE__ */ new Map(), hl = [], Roe = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "); +function Hj(e, t) { + switch (e) { + case "focusin": + case "focusout": + Ol = null; + break; + case "dragenter": + case "dragleave": + El = null; + break; + case "mouseover": + case "mouseout": + Cl = null; + break; + case "pointerover": + case "pointerout": + Zd.delete(t.pointerId); + break; + case "gotpointercapture": + case "lostpointercapture": + Qd.delete(t.pointerId); + } +} +function Df(e, t, n, r, o, i) { + return e === null || e.nativeEvent !== i ? (e = { blockedOn: t, domEventName: n, eventSystemFlags: r, nativeEvent: i, targetContainers: [o] }, t !== null && (t = Tp(t), t !== null && nC(t)), e) : (e.eventSystemFlags |= r, t = e.targetContainers, o !== null && t.indexOf(o) === -1 && t.push(o), e); +} +function Toe(e, t, n, r, o) { + switch (t) { + case "focusin": + return Ol = Df(Ol, e, t, n, r, o), !0; + case "dragenter": + return El = Df(El, e, t, n, r, o), !0; + case "mouseover": + return Cl = Df(Cl, e, t, n, r, o), !0; + case "pointerover": + var i = o.pointerId; + return Zd.set(i, Df(Zd.get(i) || null, e, t, n, r, o)), !0; + case "gotpointercapture": + return i = o.pointerId, Qd.set(i, Df(Qd.get(i) || null, e, t, n, r, o)), !0; + } + return !1; +} +function QF(e) { + var t = _s(e.target); + if (t !== null) { + var n = Ks(t); + if (n !== null) { + if (t = n.tag, t === 13) { + if (t = MF(n), t !== null) { + e.blockedOn = t, ZF(e.priority, function() { + YF(n); + }); + return; + } + } else if (t === 3 && n.stateNode.current.memoizedState.isDehydrated) { + e.blockedOn = n.tag === 3 ? n.stateNode.containerInfo : null; + return; + } + } + } + e.blockedOn = null; +} +function bg(e) { + if (e.blockedOn !== null) + return !1; + for (var t = e.targetContainers; 0 < t.length; ) { + var n = K0(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent); + if (n === null) { + n = e.nativeEvent; + var r = new n.constructor(n.type, n); + U0 = r, n.target.dispatchEvent(r), U0 = null; + } else + return t = Tp(n), t !== null && nC(t), e.blockedOn = n, !1; + t.shift(); + } + return !0; +} +function Wj(e, t, n) { + bg(e) && n.delete(t); +} +function joe() { + G0 = !1, Ol !== null && bg(Ol) && (Ol = null), El !== null && bg(El) && (El = null), Cl !== null && bg(Cl) && (Cl = null), Zd.forEach(Wj), Qd.forEach(Wj); +} +function Ff(e, t) { + e.blockedOn === t && (e.blockedOn = null, G0 || (G0 = !0, bo.unstable_scheduleCallback(bo.unstable_NormalPriority, joe))); +} +function Jd(e) { + function t(o) { + return Ff(o, e); + } + if (0 < eh.length) { + Ff(eh[0], e); + for (var n = 1; n < eh.length; n++) { + var r = eh[n]; + r.blockedOn === e && (r.blockedOn = null); + } + } + for (Ol !== null && Ff(Ol, e), El !== null && Ff(El, e), Cl !== null && Ff(Cl, e), Zd.forEach(t), Qd.forEach(t), n = 0; n < hl.length; n++) + r = hl[n], r.blockedOn === e && (r.blockedOn = null); + for (; 0 < hl.length && (n = hl[0], n.blockedOn === null); ) + QF(n), n.blockedOn === null && hl.shift(); +} +var fc = za.ReactCurrentBatchConfig, fy = !0; +function Noe(e, t, n, r) { + var o = It, i = fc.transition; + fc.transition = null; + try { + It = 1, rC(e, t, n, r); + } finally { + It = o, fc.transition = i; + } +} +function $oe(e, t, n, r) { + var o = It, i = fc.transition; + fc.transition = null; + try { + It = 4, rC(e, t, n, r); + } finally { + It = o, fc.transition = i; + } +} +function rC(e, t, n, r) { + if (fy) { + var o = K0(e, t, n, r); + if (o === null) + Ik(e, t, r, dy, n), Hj(e, r); + else if (Toe(o, e, t, n, r)) + r.stopPropagation(); + else if (Hj(e, r), t & 4 && -1 < Roe.indexOf(e)) { + for (; o !== null; ) { + var i = Tp(o); + if (i !== null && KF(i), i = K0(e, t, n, r), i === null && Ik(e, t, r, dy, n), i === o) + break; + o = i; + } + o !== null && r.stopPropagation(); + } else + Ik(e, t, r, null, n); + } +} +var dy = null; +function K0(e, t, n, r) { + if (dy = null, e = JE(r), e = _s(e), e !== null) + if (t = Ks(e), t === null) + e = null; + else if (n = t.tag, n === 13) { + if (e = MF(t), e !== null) + return e; + e = null; + } else if (n === 3) { + if (t.stateNode.current.memoizedState.isDehydrated) + return t.tag === 3 ? t.stateNode.containerInfo : null; + e = null; + } else + t !== e && (e = null); + return dy = e, null; +} +function JF(e) { + switch (e) { + case "cancel": + case "click": + case "close": + case "contextmenu": + case "copy": + case "cut": + case "auxclick": + case "dblclick": + case "dragend": + case "dragstart": + case "drop": + case "focusin": + case "focusout": + case "input": + case "invalid": + case "keydown": + case "keypress": + case "keyup": + case "mousedown": + case "mouseup": + case "paste": + case "pause": + case "play": + case "pointercancel": + case "pointerdown": + case "pointerup": + case "ratechange": + case "reset": + case "resize": + case "seeked": + case "submit": + case "touchcancel": + case "touchend": + case "touchstart": + case "volumechange": + case "change": + case "selectionchange": + case "textInput": + case "compositionstart": + case "compositionend": + case "compositionupdate": + case "beforeblur": + case "afterblur": + case "beforeinput": + case "blur": + case "fullscreenchange": + case "focus": + case "hashchange": + case "popstate": + case "select": + case "selectstart": + return 1; + case "drag": + case "dragenter": + case "dragexit": + case "dragleave": + case "dragover": + case "mousemove": + case "mouseout": + case "mouseover": + case "pointermove": + case "pointerout": + case "pointerover": + case "scroll": + case "toggle": + case "touchmove": + case "wheel": + case "mouseenter": + case "mouseleave": + case "pointerenter": + case "pointerleave": + return 4; + case "message": + switch (woe()) { + case eC: + return 1; + case WF: + return 4; + case uy: + case xoe: + return 16; + case VF: + return 536870912; + default: + return 16; + } + default: + return 16; + } +} +var yl = null, oC = null, wg = null; +function e6() { + if (wg) + return wg; + var e, t = oC, n = t.length, r, o = "value" in yl ? yl.value : yl.textContent, i = o.length; + for (e = 0; e < n && t[e] === o[e]; e++) + ; + var a = n - e; + for (r = 1; r <= a && t[n - r] === o[i - r]; r++) + ; + return wg = o.slice(e, 1 < r ? 1 - r : void 0); +} +function xg(e) { + var t = e.keyCode; + return "charCode" in e ? (e = e.charCode, e === 0 && t === 13 && (e = 13)) : e = t, e === 10 && (e = 13), 32 <= e || e === 13 ? e : 0; +} +function th() { + return !0; +} +function Vj() { + return !1; +} +function So(e) { + function t(n, r, o, i, a) { + this._reactName = n, this._targetInst = o, this.type = r, this.nativeEvent = i, this.target = a, this.currentTarget = null; + for (var l in e) + e.hasOwnProperty(l) && (n = e[l], this[l] = n ? n(i) : i[l]); + return this.isDefaultPrevented = (i.defaultPrevented != null ? i.defaultPrevented : i.returnValue === !1) ? th : Vj, this.isPropagationStopped = Vj, this; + } + return sn(t.prototype, { preventDefault: function() { + this.defaultPrevented = !0; + var n = this.nativeEvent; + n && (n.preventDefault ? n.preventDefault() : typeof n.returnValue != "unknown" && (n.returnValue = !1), this.isDefaultPrevented = th); + }, stopPropagation: function() { + var n = this.nativeEvent; + n && (n.stopPropagation ? n.stopPropagation() : typeof n.cancelBubble != "unknown" && (n.cancelBubble = !0), this.isPropagationStopped = th); + }, persist: function() { + }, isPersistent: th }), t; +} +var qc = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(e) { + return e.timeStamp || Date.now(); +}, defaultPrevented: 0, isTrusted: 0 }, iC = So(qc), Rp = sn({}, qc, { view: 0, detail: 0 }), Ioe = So(Rp), Ok, Ek, Mf, Hw = sn({}, Rp, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: aC, button: 0, buttons: 0, relatedTarget: function(e) { + return e.relatedTarget === void 0 ? e.fromElement === e.srcElement ? e.toElement : e.fromElement : e.relatedTarget; +}, movementX: function(e) { + return "movementX" in e ? e.movementX : (e !== Mf && (Mf && e.type === "mousemove" ? (Ok = e.screenX - Mf.screenX, Ek = e.screenY - Mf.screenY) : Ek = Ok = 0, Mf = e), Ok); +}, movementY: function(e) { + return "movementY" in e ? e.movementY : Ek; +} }), qj = So(Hw), Aoe = sn({}, Hw, { dataTransfer: 0 }), zoe = So(Aoe), Loe = sn({}, Rp, { relatedTarget: 0 }), Ck = So(Loe), Doe = sn({}, qc, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Foe = So(Doe), Moe = sn({}, qc, { clipboardData: function(e) { + return "clipboardData" in e ? e.clipboardData : window.clipboardData; +} }), Boe = So(Moe), Uoe = sn({}, qc, { data: 0 }), Gj = So(Uoe), Hoe = { + Esc: "Escape", + Spacebar: " ", + Left: "ArrowLeft", + Up: "ArrowUp", + Right: "ArrowRight", + Down: "ArrowDown", + Del: "Delete", + Win: "OS", + Menu: "ContextMenu", + Apps: "ContextMenu", + Scroll: "ScrollLock", + MozPrintableKey: "Unidentified" +}, Woe = { + 8: "Backspace", + 9: "Tab", + 12: "Clear", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Escape", + 32: " ", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + 45: "Insert", + 46: "Delete", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "NumLock", + 145: "ScrollLock", + 224: "Meta" +}, Voe = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" }; +function qoe(e) { + var t = this.nativeEvent; + return t.getModifierState ? t.getModifierState(e) : (e = Voe[e]) ? !!t[e] : !1; +} +function aC() { + return qoe; +} +var Goe = sn({}, Rp, { key: function(e) { + if (e.key) { + var t = Hoe[e.key] || e.key; + if (t !== "Unidentified") + return t; + } + return e.type === "keypress" ? (e = xg(e), e === 13 ? "Enter" : String.fromCharCode(e)) : e.type === "keydown" || e.type === "keyup" ? Woe[e.keyCode] || "Unidentified" : ""; +}, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: aC, charCode: function(e) { + return e.type === "keypress" ? xg(e) : 0; +}, keyCode: function(e) { + return e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0; +}, which: function(e) { + return e.type === "keypress" ? xg(e) : e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0; +} }), Koe = So(Goe), Yoe = sn({}, Hw, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Kj = So(Yoe), Xoe = sn({}, Rp, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: aC }), Zoe = So(Xoe), Qoe = sn({}, qc, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Joe = So(Qoe), eie = sn({}, Hw, { + deltaX: function(e) { + return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0; + }, + deltaY: function(e) { + return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0; + }, + deltaZ: 0, + deltaMode: 0 +}), tie = So(eie), nie = [9, 13, 27, 32], lC = _a && "CompositionEvent" in window, Rd = null; +_a && "documentMode" in document && (Rd = document.documentMode); +var rie = _a && "TextEvent" in window && !Rd, t6 = _a && (!lC || Rd && 8 < Rd && 11 >= Rd), Yj = " ", Xj = !1; +function n6(e, t) { + switch (e) { + case "keyup": + return nie.indexOf(t.keyCode) !== -1; + case "keydown": + return t.keyCode !== 229; + case "keypress": + case "mousedown": + case "focusout": + return !0; + default: + return !1; + } +} +function r6(e) { + return e = e.detail, typeof e == "object" && "data" in e ? e.data : null; +} +var qu = !1; +function oie(e, t) { + switch (e) { + case "compositionend": + return r6(t); + case "keypress": + return t.which !== 32 ? null : (Xj = !0, Yj); + case "textInput": + return e = t.data, e === Yj && Xj ? null : e; + default: + return null; + } +} +function iie(e, t) { + if (qu) + return e === "compositionend" || !lC && n6(e, t) ? (e = e6(), wg = oC = yl = null, qu = !1, e) : null; + switch (e) { + case "paste": + return null; + case "keypress": + if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) { + if (t.char && 1 < t.char.length) + return t.char; + if (t.which) + return String.fromCharCode(t.which); + } + return null; + case "compositionend": + return t6 && t.locale !== "ko" ? null : t.data; + default: + return null; + } +} +var aie = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 }; +function Zj(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return t === "input" ? !!aie[e.type] : t === "textarea"; +} +function o6(e, t, n, r) { + AF(r), t = py(t, "onChange"), 0 < t.length && (n = new iC("onChange", "change", null, n, r), e.push({ event: n, listeners: t })); +} +var Td = null, ep = null; +function lie(e) { + h6(e, 0); +} +function Ww(e) { + var t = Yu(e); + if (PF(t)) + return e; +} +function sie(e, t) { + if (e === "change") + return t; +} +var i6 = !1; +if (_a) { + var Pk; + if (_a) { + var Rk = "oninput" in document; + if (!Rk) { + var Qj = document.createElement("div"); + Qj.setAttribute("oninput", "return;"), Rk = typeof Qj.oninput == "function"; + } + Pk = Rk; + } else + Pk = !1; + i6 = Pk && (!document.documentMode || 9 < document.documentMode); +} +function Jj() { + Td && (Td.detachEvent("onpropertychange", a6), ep = Td = null); +} +function a6(e) { + if (e.propertyName === "value" && Ww(ep)) { + var t = []; + o6(t, ep, e, JE(e)), FF(lie, t); + } +} +function uie(e, t, n) { + e === "focusin" ? (Jj(), Td = t, ep = n, Td.attachEvent("onpropertychange", a6)) : e === "focusout" && Jj(); +} +function cie(e) { + if (e === "selectionchange" || e === "keyup" || e === "keydown") + return Ww(ep); +} +function fie(e, t) { + if (e === "click") + return Ww(t); +} +function die(e, t) { + if (e === "input" || e === "change") + return Ww(t); +} +function pie(e, t) { + return e === t && (e !== 0 || 1 / e === 1 / t) || e !== e && t !== t; +} +var pi = typeof Object.is == "function" ? Object.is : pie; +function tp(e, t) { + if (pi(e, t)) + return !0; + if (typeof e != "object" || e === null || typeof t != "object" || t === null) + return !1; + var n = Object.keys(e), r = Object.keys(t); + if (n.length !== r.length) + return !1; + for (r = 0; r < n.length; r++) { + var o = n[r]; + if (!T0.call(t, o) || !pi(e[o], t[o])) + return !1; + } + return !0; +} +function e1(e) { + for (; e && e.firstChild; ) + e = e.firstChild; + return e; +} +function t1(e, t) { + var n = e1(e); + e = 0; + for (var r; n; ) { + if (n.nodeType === 3) { + if (r = e + n.textContent.length, e <= t && r >= t) + return { node: n, offset: t - e }; + e = r; + } + e: { + for (; n; ) { + if (n.nextSibling) { + n = n.nextSibling; + break e; + } + n = n.parentNode; + } + n = void 0; + } + n = e1(n); + } +} +function l6(e, t) { + return e && t ? e === t ? !0 : e && e.nodeType === 3 ? !1 : t && t.nodeType === 3 ? l6(e, t.parentNode) : "contains" in e ? e.contains(t) : e.compareDocumentPosition ? !!(e.compareDocumentPosition(t) & 16) : !1 : !1; +} +function s6() { + for (var e = window, t = ay(); t instanceof e.HTMLIFrameElement; ) { + try { + var n = typeof t.contentWindow.location.href == "string"; + } catch { + n = !1; + } + if (n) + e = t.contentWindow; + else + break; + t = ay(e.document); + } + return t; +} +function sC(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return t && (t === "input" && (e.type === "text" || e.type === "search" || e.type === "tel" || e.type === "url" || e.type === "password") || t === "textarea" || e.contentEditable === "true"); +} +function mie(e) { + var t = s6(), n = e.focusedElem, r = e.selectionRange; + if (t !== n && n && n.ownerDocument && l6(n.ownerDocument.documentElement, n)) { + if (r !== null && sC(n)) { + if (t = r.start, e = r.end, e === void 0 && (e = t), "selectionStart" in n) + n.selectionStart = t, n.selectionEnd = Math.min(e, n.value.length); + else if (e = (t = n.ownerDocument || document) && t.defaultView || window, e.getSelection) { + e = e.getSelection(); + var o = n.textContent.length, i = Math.min(r.start, o); + r = r.end === void 0 ? i : Math.min(r.end, o), !e.extend && i > r && (o = r, r = i, i = o), o = t1(n, i); + var a = t1( + n, + r + ); + o && a && (e.rangeCount !== 1 || e.anchorNode !== o.node || e.anchorOffset !== o.offset || e.focusNode !== a.node || e.focusOffset !== a.offset) && (t = t.createRange(), t.setStart(o.node, o.offset), e.removeAllRanges(), i > r ? (e.addRange(t), e.extend(a.node, a.offset)) : (t.setEnd(a.node, a.offset), e.addRange(t))); + } + } + for (t = [], e = n; e = e.parentNode; ) + e.nodeType === 1 && t.push({ element: e, left: e.scrollLeft, top: e.scrollTop }); + for (typeof n.focus == "function" && n.focus(), n = 0; n < t.length; n++) + e = t[n], e.element.scrollLeft = e.left, e.element.scrollTop = e.top; + } +} +var hie = _a && "documentMode" in document && 11 >= document.documentMode, Gu = null, Y0 = null, jd = null, X0 = !1; +function n1(e, t, n) { + var r = n.window === n ? n.document : n.nodeType === 9 ? n : n.ownerDocument; + X0 || Gu == null || Gu !== ay(r) || (r = Gu, "selectionStart" in r && sC(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 }), jd && tp(jd, r) || (jd = r, r = py(Y0, "onSelect"), 0 < r.length && (t = new iC("onSelect", "select", null, t, n), e.push({ event: t, listeners: r }), t.target = Gu))); +} +function nh(e, t) { + var n = {}; + return n[e.toLowerCase()] = t.toLowerCase(), n["Webkit" + e] = "webkit" + t, n["Moz" + e] = "moz" + t, n; +} +var Ku = { animationend: nh("Animation", "AnimationEnd"), animationiteration: nh("Animation", "AnimationIteration"), animationstart: nh("Animation", "AnimationStart"), transitionend: nh("Transition", "TransitionEnd") }, Tk = {}, u6 = {}; +_a && (u6 = document.createElement("div").style, "AnimationEvent" in window || (delete Ku.animationend.animation, delete Ku.animationiteration.animation, delete Ku.animationstart.animation), "TransitionEvent" in window || delete Ku.transitionend.transition); +function Vw(e) { + if (Tk[e]) + return Tk[e]; + if (!Ku[e]) + return e; + var t = Ku[e], n; + for (n in t) + if (t.hasOwnProperty(n) && n in u6) + return Tk[e] = t[n]; + return e; +} +var c6 = Vw("animationend"), f6 = Vw("animationiteration"), d6 = Vw("animationstart"), p6 = Vw("transitionend"), m6 = /* @__PURE__ */ new Map(), r1 = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" "); +function Wl(e, t) { + m6.set(e, t), Gs(t, [e]); +} +for (var jk = 0; jk < r1.length; jk++) { + var Nk = r1[jk], gie = Nk.toLowerCase(), yie = Nk[0].toUpperCase() + Nk.slice(1); + Wl(gie, "on" + yie); +} +Wl(c6, "onAnimationEnd"); +Wl(f6, "onAnimationIteration"); +Wl(d6, "onAnimationStart"); +Wl("dblclick", "onDoubleClick"); +Wl("focusin", "onFocus"); +Wl("focusout", "onBlur"); +Wl(p6, "onTransitionEnd"); +wc("onMouseEnter", ["mouseout", "mouseover"]); +wc("onMouseLeave", ["mouseout", "mouseover"]); +wc("onPointerEnter", ["pointerout", "pointerover"]); +wc("onPointerLeave", ["pointerout", "pointerover"]); +Gs("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" ")); +Gs("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")); +Gs("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]); +Gs("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" ")); +Gs("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" ")); +Gs("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" ")); +var hd = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), vie = new Set("cancel close invalid load scroll toggle".split(" ").concat(hd)); +function o1(e, t, n) { + var r = e.type || "unknown-event"; + e.currentTarget = n, goe(r, t, void 0, e), e.currentTarget = null; +} +function h6(e, t) { + t = (t & 4) !== 0; + for (var n = 0; n < e.length; n++) { + var r = e[n], o = r.event; + r = r.listeners; + e: { + var i = void 0; + if (t) + for (var a = r.length - 1; 0 <= a; a--) { + var l = r[a], s = l.instance, c = l.currentTarget; + if (l = l.listener, s !== i && o.isPropagationStopped()) + break e; + o1(o, l, c), i = s; + } + else + for (a = 0; a < r.length; a++) { + if (l = r[a], s = l.instance, c = l.currentTarget, l = l.listener, s !== i && o.isPropagationStopped()) + break e; + o1(o, l, c), i = s; + } + } + } + if (sy) + throw e = V0, sy = !1, V0 = null, e; +} +function Yt(e, t) { + var n = t[tO]; + n === void 0 && (n = t[tO] = /* @__PURE__ */ new Set()); + var r = e + "__bubble"; + n.has(r) || (g6(t, e, 2, !1), n.add(r)); +} +function $k(e, t, n) { + var r = 0; + t && (r |= 4), g6(n, e, r, t); +} +var rh = "_reactListening" + Math.random().toString(36).slice(2); +function np(e) { + if (!e[rh]) { + e[rh] = !0, kF.forEach(function(n) { + n !== "selectionchange" && (vie.has(n) || $k(n, !1, e), $k(n, !0, e)); + }); + var t = e.nodeType === 9 ? e : e.ownerDocument; + t === null || t[rh] || (t[rh] = !0, $k("selectionchange", !1, t)); + } +} +function g6(e, t, n, r) { + switch (JF(t)) { + case 1: + var o = Noe; + break; + case 4: + o = $oe; + break; + default: + o = rC; + } + n = o.bind(null, t, n, e), o = void 0, !W0 || t !== "touchstart" && t !== "touchmove" && t !== "wheel" || (o = !0), r ? o !== void 0 ? e.addEventListener(t, n, { capture: !0, passive: o }) : e.addEventListener(t, n, !0) : o !== void 0 ? e.addEventListener(t, n, { passive: o }) : e.addEventListener(t, n, !1); +} +function Ik(e, t, n, r, o) { + var i = r; + if (!(t & 1) && !(t & 2) && r !== null) + e: + for (; ; ) { + if (r === null) + return; + var a = r.tag; + if (a === 3 || a === 4) { + var l = r.stateNode.containerInfo; + if (l === o || l.nodeType === 8 && l.parentNode === o) + break; + if (a === 4) + for (a = r.return; a !== null; ) { + var s = a.tag; + if ((s === 3 || s === 4) && (s = a.stateNode.containerInfo, s === o || s.nodeType === 8 && s.parentNode === o)) + return; + a = a.return; + } + for (; l !== null; ) { + if (a = _s(l), a === null) + return; + if (s = a.tag, s === 5 || s === 6) { + r = i = a; + continue e; + } + l = l.parentNode; + } + } + r = r.return; + } + FF(function() { + var c = i, p = JE(n), f = []; + e: { + var m = m6.get(e); + if (m !== void 0) { + var h = iC, g = e; + switch (e) { + case "keypress": + if (xg(n) === 0) + break e; + case "keydown": + case "keyup": + h = Koe; + break; + case "focusin": + g = "focus", h = Ck; + break; + case "focusout": + g = "blur", h = Ck; + break; + case "beforeblur": + case "afterblur": + h = Ck; + break; + case "click": + if (n.button === 2) + break e; + case "auxclick": + case "dblclick": + case "mousedown": + case "mousemove": + case "mouseup": + case "mouseout": + case "mouseover": + case "contextmenu": + h = qj; + break; + case "drag": + case "dragend": + case "dragenter": + case "dragexit": + case "dragleave": + case "dragover": + case "dragstart": + case "drop": + h = zoe; + break; + case "touchcancel": + case "touchend": + case "touchmove": + case "touchstart": + h = Zoe; + break; + case c6: + case f6: + case d6: + h = Foe; + break; + case p6: + h = Joe; + break; + case "scroll": + h = Ioe; + break; + case "wheel": + h = tie; + break; + case "copy": + case "cut": + case "paste": + h = Boe; + break; + case "gotpointercapture": + case "lostpointercapture": + case "pointercancel": + case "pointerdown": + case "pointermove": + case "pointerout": + case "pointerover": + case "pointerup": + h = Kj; + } + var v = (t & 4) !== 0, S = !v && e === "scroll", w = v ? m !== null ? m + "Capture" : null : m; + v = []; + for (var x = c, k; x !== null; ) { + k = x; + var E = k.stateNode; + if (k.tag === 5 && E !== null && (k = E, w !== null && (E = Xd(x, w), E != null && v.push(rp(x, E, k)))), S) + break; + x = x.return; + } + 0 < v.length && (m = new h(m, g, null, n, p), f.push({ event: m, listeners: v })); + } + } + if (!(t & 7)) { + e: { + if (m = e === "mouseover" || e === "pointerover", h = e === "mouseout" || e === "pointerout", m && n !== U0 && (g = n.relatedTarget || n.fromElement) && (_s(g) || g[Oa])) + break e; + if ((h || m) && (m = p.window === p ? p : (m = p.ownerDocument) ? m.defaultView || m.parentWindow : window, h ? (g = n.relatedTarget || n.toElement, h = c, g = g ? _s(g) : null, g !== null && (S = Ks(g), g !== S || g.tag !== 5 && g.tag !== 6) && (g = null)) : (h = null, g = c), h !== g)) { + if (v = qj, E = "onMouseLeave", w = "onMouseEnter", x = "mouse", (e === "pointerout" || e === "pointerover") && (v = Kj, E = "onPointerLeave", w = "onPointerEnter", x = "pointer"), S = h == null ? m : Yu(h), k = g == null ? m : Yu(g), m = new v(E, x + "leave", h, n, p), m.target = S, m.relatedTarget = k, E = null, _s(p) === c && (v = new v(w, x + "enter", g, n, p), v.target = k, v.relatedTarget = S, E = v), S = E, h && g) + t: { + for (v = h, w = g, x = 0, k = v; k; k = Ou(k)) + x++; + for (k = 0, E = w; E; E = Ou(E)) + k++; + for (; 0 < x - k; ) + v = Ou(v), x--; + for (; 0 < k - x; ) + w = Ou(w), k--; + for (; x--; ) { + if (v === w || w !== null && v === w.alternate) + break t; + v = Ou(v), w = Ou(w); + } + v = null; + } + else + v = null; + h !== null && i1(f, m, h, v, !1), g !== null && S !== null && i1(f, S, g, v, !0); + } + } + e: { + if (m = c ? Yu(c) : window, h = m.nodeName && m.nodeName.toLowerCase(), h === "select" || h === "input" && m.type === "file") + var O = sie; + else if (Zj(m)) + if (i6) + O = die; + else { + O = cie; + var C = uie; + } + else + (h = m.nodeName) && h.toLowerCase() === "input" && (m.type === "checkbox" || m.type === "radio") && (O = fie); + if (O && (O = O(e, c))) { + o6(f, O, n, p); + break e; + } + C && C(e, m, c), e === "focusout" && (C = m._wrapperState) && C.controlled && m.type === "number" && L0(m, "number", m.value); + } + switch (C = c ? Yu(c) : window, e) { + case "focusin": + (Zj(C) || C.contentEditable === "true") && (Gu = C, Y0 = c, jd = null); + break; + case "focusout": + jd = Y0 = Gu = null; + break; + case "mousedown": + X0 = !0; + break; + case "contextmenu": + case "mouseup": + case "dragend": + X0 = !1, n1(f, n, p); + break; + case "selectionchange": + if (hie) + break; + case "keydown": + case "keyup": + n1(f, n, p); + } + var R; + if (lC) + e: { + switch (e) { + case "compositionstart": + var L = "onCompositionStart"; + break e; + case "compositionend": + L = "onCompositionEnd"; + break e; + case "compositionupdate": + L = "onCompositionUpdate"; + break e; + } + L = void 0; + } + else + qu ? n6(e, n) && (L = "onCompositionEnd") : e === "keydown" && n.keyCode === 229 && (L = "onCompositionStart"); + L && (t6 && n.locale !== "ko" && (qu || L !== "onCompositionStart" ? L === "onCompositionEnd" && qu && (R = e6()) : (yl = p, oC = "value" in yl ? yl.value : yl.textContent, qu = !0)), C = py(c, L), 0 < C.length && (L = new Gj(L, e, null, n, p), f.push({ event: L, listeners: C }), R ? L.data = R : (R = r6(n), R !== null && (L.data = R)))), (R = rie ? oie(e, n) : iie(e, n)) && (c = py(c, "onBeforeInput"), 0 < c.length && (p = new Gj("onBeforeInput", "beforeinput", null, n, p), f.push({ event: p, listeners: c }), p.data = R)); + } + h6(f, t); + }); +} +function rp(e, t, n) { + return { instance: e, listener: t, currentTarget: n }; +} +function py(e, t) { + for (var n = t + "Capture", r = []; e !== null; ) { + var o = e, i = o.stateNode; + o.tag === 5 && i !== null && (o = i, i = Xd(e, n), i != null && r.unshift(rp(e, i, o)), i = Xd(e, t), i != null && r.push(rp(e, i, o))), e = e.return; + } + return r; +} +function Ou(e) { + if (e === null) + return null; + do + e = e.return; + while (e && e.tag !== 5); + return e || null; +} +function i1(e, t, n, r, o) { + for (var i = t._reactName, a = []; n !== null && n !== r; ) { + var l = n, s = l.alternate, c = l.stateNode; + if (s !== null && s === r) + break; + l.tag === 5 && c !== null && (l = c, o ? (s = Xd(n, i), s != null && a.unshift(rp(n, s, l))) : o || (s = Xd(n, i), s != null && a.push(rp(n, s, l)))), n = n.return; + } + a.length !== 0 && e.push({ event: t, listeners: a }); +} +var bie = /\r\n?/g, wie = /\u0000|\uFFFD/g; +function a1(e) { + return (typeof e == "string" ? e : "" + e).replace(bie, ` +`).replace(wie, ""); +} +function oh(e, t, n) { + if (t = a1(t), a1(e) !== t && n) + throw Error(ge(425)); +} +function my() { +} +var Z0 = null, Q0 = null; +function J0(e, t) { + return e === "textarea" || e === "noscript" || typeof t.children == "string" || typeof t.children == "number" || typeof t.dangerouslySetInnerHTML == "object" && t.dangerouslySetInnerHTML !== null && t.dangerouslySetInnerHTML.__html != null; +} +var eO = typeof setTimeout == "function" ? setTimeout : void 0, xie = typeof clearTimeout == "function" ? clearTimeout : void 0, l1 = typeof Promise == "function" ? Promise : void 0, Sie = typeof queueMicrotask == "function" ? queueMicrotask : typeof l1 < "u" ? function(e) { + return l1.resolve(null).then(e).catch(kie); +} : eO; +function kie(e) { + setTimeout(function() { + throw e; + }); +} +function Ak(e, t) { + var n = t, r = 0; + do { + var o = n.nextSibling; + if (e.removeChild(n), o && o.nodeType === 8) + if (n = o.data, n === "/$") { + if (r === 0) { + e.removeChild(o), Jd(t); + return; + } + r--; + } else + n !== "$" && n !== "$?" && n !== "$!" || r++; + n = o; + } while (n); + Jd(t); +} +function Pl(e) { + for (; e != null; e = e.nextSibling) { + var t = e.nodeType; + if (t === 1 || t === 3) + break; + if (t === 8) { + if (t = e.data, t === "$" || t === "$!" || t === "$?") + break; + if (t === "/$") + return null; + } + } + return e; +} +function s1(e) { + e = e.previousSibling; + for (var t = 0; e; ) { + if (e.nodeType === 8) { + var n = e.data; + if (n === "$" || n === "$!" || n === "$?") { + if (t === 0) + return e; + t--; + } else + n === "/$" && t++; + } + e = e.previousSibling; + } + return null; +} +var Gc = Math.random().toString(36).slice(2), Li = "__reactFiber$" + Gc, op = "__reactProps$" + Gc, Oa = "__reactContainer$" + Gc, tO = "__reactEvents$" + Gc, _ie = "__reactListeners$" + Gc, Oie = "__reactHandles$" + Gc; +function _s(e) { + var t = e[Li]; + if (t) + return t; + for (var n = e.parentNode; n; ) { + if (t = n[Oa] || n[Li]) { + if (n = t.alternate, t.child !== null || n !== null && n.child !== null) + for (e = s1(e); e !== null; ) { + if (n = e[Li]) + return n; + e = s1(e); + } + return t; + } + e = n, n = e.parentNode; + } + return null; +} +function Tp(e) { + return e = e[Li] || e[Oa], !e || e.tag !== 5 && e.tag !== 6 && e.tag !== 13 && e.tag !== 3 ? null : e; +} +function Yu(e) { + if (e.tag === 5 || e.tag === 6) + return e.stateNode; + throw Error(ge(33)); +} +function qw(e) { + return e[op] || null; +} +var nO = [], Xu = -1; +function Vl(e) { + return { current: e }; +} +function Zt(e) { + 0 > Xu || (e.current = nO[Xu], nO[Xu] = null, Xu--); +} +function Vt(e, t) { + Xu++, nO[Xu] = e.current, e.current = t; +} +var Dl = {}, cr = Vl(Dl), Fr = Vl(!1), Ls = Dl; +function xc(e, t) { + var n = e.type.contextTypes; + if (!n) + return Dl; + var r = e.stateNode; + if (r && r.__reactInternalMemoizedUnmaskedChildContext === t) + return r.__reactInternalMemoizedMaskedChildContext; + var o = {}, i; + for (i in n) + o[i] = t[i]; + return r && (e = e.stateNode, e.__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = o), o; +} +function Mr(e) { + return e = e.childContextTypes, e != null; +} +function hy() { + Zt(Fr), Zt(cr); +} +function u1(e, t, n) { + if (cr.current !== Dl) + throw Error(ge(168)); + Vt(cr, t), Vt(Fr, n); +} +function y6(e, t, n) { + var r = e.stateNode; + if (t = t.childContextTypes, typeof r.getChildContext != "function") + return n; + r = r.getChildContext(); + for (var o in r) + if (!(o in t)) + throw Error(ge(108, uoe(e) || "Unknown", o)); + return sn({}, n, r); +} +function gy(e) { + return e = (e = e.stateNode) && e.__reactInternalMemoizedMergedChildContext || Dl, Ls = cr.current, Vt(cr, e), Vt(Fr, Fr.current), !0; +} +function c1(e, t, n) { + var r = e.stateNode; + if (!r) + throw Error(ge(169)); + n ? (e = y6(e, t, Ls), r.__reactInternalMemoizedMergedChildContext = e, Zt(Fr), Zt(cr), Vt(cr, e)) : Zt(Fr), Vt(Fr, n); +} +var ha = null, Gw = !1, zk = !1; +function v6(e) { + ha === null ? ha = [e] : ha.push(e); +} +function Eie(e) { + Gw = !0, v6(e); +} +function ql() { + if (!zk && ha !== null) { + zk = !0; + var e = 0, t = It; + try { + var n = ha; + for (It = 1; e < n.length; e++) { + var r = n[e]; + do + r = r(!0); + while (r !== null); + } + ha = null, Gw = !1; + } catch (o) { + throw ha !== null && (ha = ha.slice(e + 1)), HF(eC, ql), o; + } finally { + It = t, zk = !1; + } + } + return null; +} +var Zu = [], Qu = 0, yy = null, vy = 0, zo = [], Lo = 0, Ds = null, va = 1, ba = ""; +function ps(e, t) { + Zu[Qu++] = vy, Zu[Qu++] = yy, yy = e, vy = t; +} +function b6(e, t, n) { + zo[Lo++] = va, zo[Lo++] = ba, zo[Lo++] = Ds, Ds = e; + var r = va; + e = ba; + var o = 32 - ci(r) - 1; + r &= ~(1 << o), n += 1; + var i = 32 - ci(t) + o; + if (30 < i) { + var a = o - o % 5; + i = (r & (1 << a) - 1).toString(32), r >>= a, o -= a, va = 1 << 32 - ci(t) + o | n << o | r, ba = i + e; + } else + va = 1 << i | n << o | r, ba = e; +} +function uC(e) { + e.return !== null && (ps(e, 1), b6(e, 1, 0)); +} +function cC(e) { + for (; e === yy; ) + yy = Zu[--Qu], Zu[Qu] = null, vy = Zu[--Qu], Zu[Qu] = null; + for (; e === Ds; ) + Ds = zo[--Lo], zo[Lo] = null, ba = zo[--Lo], zo[Lo] = null, va = zo[--Lo], zo[Lo] = null; +} +var po = null, fo = null, Jt = !1, si = null; +function w6(e, t) { + var n = Mo(5, null, null, 0); + n.elementType = "DELETED", n.stateNode = t, n.return = e, t = e.deletions, t === null ? (e.deletions = [n], e.flags |= 16) : t.push(n); +} +function f1(e, t) { + switch (e.tag) { + case 5: + var n = e.type; + return t = t.nodeType !== 1 || n.toLowerCase() !== t.nodeName.toLowerCase() ? null : t, t !== null ? (e.stateNode = t, po = e, fo = Pl(t.firstChild), !0) : !1; + case 6: + return t = e.pendingProps === "" || t.nodeType !== 3 ? null : t, t !== null ? (e.stateNode = t, po = e, fo = null, !0) : !1; + case 13: + return t = t.nodeType !== 8 ? null : t, t !== null ? (n = Ds !== null ? { id: va, overflow: ba } : null, e.memoizedState = { dehydrated: t, treeContext: n, retryLane: 1073741824 }, n = Mo(18, null, null, 0), n.stateNode = t, n.return = e, e.child = n, po = e, fo = null, !0) : !1; + default: + return !1; + } +} +function rO(e) { + return (e.mode & 1) !== 0 && (e.flags & 128) === 0; +} +function oO(e) { + if (Jt) { + var t = fo; + if (t) { + var n = t; + if (!f1(e, t)) { + if (rO(e)) + throw Error(ge(418)); + t = Pl(n.nextSibling); + var r = po; + t && f1(e, t) ? w6(r, n) : (e.flags = e.flags & -4097 | 2, Jt = !1, po = e); + } + } else { + if (rO(e)) + throw Error(ge(418)); + e.flags = e.flags & -4097 | 2, Jt = !1, po = e; + } + } +} +function d1(e) { + for (e = e.return; e !== null && e.tag !== 5 && e.tag !== 3 && e.tag !== 13; ) + e = e.return; + po = e; +} +function ih(e) { + if (e !== po) + return !1; + if (!Jt) + return d1(e), Jt = !0, !1; + var t; + if ((t = e.tag !== 3) && !(t = e.tag !== 5) && (t = e.type, t = t !== "head" && t !== "body" && !J0(e.type, e.memoizedProps)), t && (t = fo)) { + if (rO(e)) + throw x6(), Error(ge(418)); + for (; t; ) + w6(e, t), t = Pl(t.nextSibling); + } + if (d1(e), e.tag === 13) { + if (e = e.memoizedState, e = e !== null ? e.dehydrated : null, !e) + throw Error(ge(317)); + e: { + for (e = e.nextSibling, t = 0; e; ) { + if (e.nodeType === 8) { + var n = e.data; + if (n === "/$") { + if (t === 0) { + fo = Pl(e.nextSibling); + break e; + } + t--; + } else + n !== "$" && n !== "$!" && n !== "$?" || t++; + } + e = e.nextSibling; + } + fo = null; + } + } else + fo = po ? Pl(e.stateNode.nextSibling) : null; + return !0; +} +function x6() { + for (var e = fo; e; ) + e = Pl(e.nextSibling); +} +function Sc() { + fo = po = null, Jt = !1; +} +function fC(e) { + si === null ? si = [e] : si.push(e); +} +var Cie = za.ReactCurrentBatchConfig; +function ai(e, t) { + if (e && e.defaultProps) { + t = sn({}, t), e = e.defaultProps; + for (var n in e) + t[n] === void 0 && (t[n] = e[n]); + return t; + } + return t; +} +var by = Vl(null), wy = null, Ju = null, dC = null; +function pC() { + dC = Ju = wy = null; +} +function mC(e) { + var t = by.current; + Zt(by), e._currentValue = t; +} +function iO(e, t, n) { + for (; e !== null; ) { + var r = e.alternate; + if ((e.childLanes & t) !== t ? (e.childLanes |= t, r !== null && (r.childLanes |= t)) : r !== null && (r.childLanes & t) !== t && (r.childLanes |= t), e === n) + break; + e = e.return; + } +} +function dc(e, t) { + wy = e, dC = Ju = null, e = e.dependencies, e !== null && e.firstContext !== null && (e.lanes & t && (Dr = !0), e.firstContext = null); +} +function Ho(e) { + var t = e._currentValue; + if (dC !== e) + if (e = { context: e, memoizedValue: t, next: null }, Ju === null) { + if (wy === null) + throw Error(ge(308)); + Ju = e, wy.dependencies = { lanes: 0, firstContext: e }; + } else + Ju = Ju.next = e; + return t; +} +var Os = null; +function hC(e) { + Os === null ? Os = [e] : Os.push(e); +} +function S6(e, t, n, r) { + var o = t.interleaved; + return o === null ? (n.next = n, hC(t)) : (n.next = o.next, o.next = n), t.interleaved = n, Ea(e, r); +} +function Ea(e, t) { + e.lanes |= t; + var n = e.alternate; + for (n !== null && (n.lanes |= t), n = e, e = e.return; e !== null; ) + e.childLanes |= t, n = e.alternate, n !== null && (n.childLanes |= t), n = e, e = e.return; + return n.tag === 3 ? n.stateNode : null; +} +var ml = !1; +function gC(e) { + e.updateQueue = { baseState: e.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null }; +} +function k6(e, t) { + e = e.updateQueue, t.updateQueue === e && (t.updateQueue = { baseState: e.baseState, firstBaseUpdate: e.firstBaseUpdate, lastBaseUpdate: e.lastBaseUpdate, shared: e.shared, effects: e.effects }); +} +function Sa(e, t) { + return { eventTime: e, lane: t, tag: 0, payload: null, callback: null, next: null }; +} +function Rl(e, t, n) { + var r = e.updateQueue; + if (r === null) + return null; + if (r = r.shared, xt & 2) { + var o = r.pending; + return o === null ? t.next = t : (t.next = o.next, o.next = t), r.pending = t, Ea(e, n); + } + return o = r.interleaved, o === null ? (t.next = t, hC(r)) : (t.next = o.next, o.next = t), r.interleaved = t, Ea(e, n); +} +function Sg(e, t, n) { + if (t = t.updateQueue, t !== null && (t = t.shared, (n & 4194240) !== 0)) { + var r = t.lanes; + r &= e.pendingLanes, n |= r, t.lanes = n, tC(e, n); + } +} +function p1(e, t) { + var n = e.updateQueue, r = e.alternate; + if (r !== null && (r = r.updateQueue, n === r)) { + var o = null, i = null; + if (n = n.firstBaseUpdate, n !== null) { + do { + var a = { eventTime: n.eventTime, lane: n.lane, tag: n.tag, payload: n.payload, callback: n.callback, next: null }; + i === null ? o = i = a : i = i.next = a, n = n.next; + } while (n !== null); + i === null ? o = i = t : i = i.next = t; + } else + o = i = t; + n = { baseState: r.baseState, firstBaseUpdate: o, lastBaseUpdate: i, shared: r.shared, effects: r.effects }, e.updateQueue = n; + return; + } + e = n.lastBaseUpdate, e === null ? n.firstBaseUpdate = t : e.next = t, n.lastBaseUpdate = t; +} +function xy(e, t, n, r) { + var o = e.updateQueue; + ml = !1; + var i = o.firstBaseUpdate, a = o.lastBaseUpdate, l = o.shared.pending; + if (l !== null) { + o.shared.pending = null; + var s = l, c = s.next; + s.next = null, a === null ? i = c : a.next = c, a = s; + var p = e.alternate; + p !== null && (p = p.updateQueue, l = p.lastBaseUpdate, l !== a && (l === null ? p.firstBaseUpdate = c : l.next = c, p.lastBaseUpdate = s)); + } + if (i !== null) { + var f = o.baseState; + a = 0, p = c = s = null, l = i; + do { + var m = l.lane, h = l.eventTime; + if ((r & m) === m) { + p !== null && (p = p.next = { + eventTime: h, + lane: 0, + tag: l.tag, + payload: l.payload, + callback: l.callback, + next: null + }); + e: { + var g = e, v = l; + switch (m = t, h = n, v.tag) { + case 1: + if (g = v.payload, typeof g == "function") { + f = g.call(h, f, m); + break e; + } + f = g; + break e; + case 3: + g.flags = g.flags & -65537 | 128; + case 0: + if (g = v.payload, m = typeof g == "function" ? g.call(h, f, m) : g, m == null) + break e; + f = sn({}, f, m); + break e; + case 2: + ml = !0; + } + } + l.callback !== null && l.lane !== 0 && (e.flags |= 64, m = o.effects, m === null ? o.effects = [l] : m.push(l)); + } else + h = { eventTime: h, lane: m, tag: l.tag, payload: l.payload, callback: l.callback, next: null }, p === null ? (c = p = h, s = f) : p = p.next = h, a |= m; + if (l = l.next, l === null) { + if (l = o.shared.pending, l === null) + break; + m = l, l = m.next, m.next = null, o.lastBaseUpdate = m, o.shared.pending = null; + } + } while (!0); + if (p === null && (s = f), o.baseState = s, o.firstBaseUpdate = c, o.lastBaseUpdate = p, t = o.shared.interleaved, t !== null) { + o = t; + do + a |= o.lane, o = o.next; + while (o !== t); + } else + i === null && (o.shared.lanes = 0); + Ms |= a, e.lanes = a, e.memoizedState = f; + } +} +function m1(e, t, n) { + if (e = t.effects, t.effects = null, e !== null) + for (t = 0; t < e.length; t++) { + var r = e[t], o = r.callback; + if (o !== null) { + if (r.callback = null, r = n, typeof o != "function") + throw Error(ge(191, o)); + o.call(r); + } + } +} +var _6 = new SF.Component().refs; +function aO(e, t, n, r) { + t = e.memoizedState, n = n(r, t), n = n == null ? t : sn({}, t, n), e.memoizedState = n, e.lanes === 0 && (e.updateQueue.baseState = n); +} +var Kw = { isMounted: function(e) { + return (e = e._reactInternals) ? Ks(e) === e : !1; +}, enqueueSetState: function(e, t, n) { + e = e._reactInternals; + var r = Sr(), o = jl(e), i = Sa(r, o); + i.payload = t, n != null && (i.callback = n), t = Rl(e, i, o), t !== null && (fi(t, e, o, r), Sg(t, e, o)); +}, enqueueReplaceState: function(e, t, n) { + e = e._reactInternals; + var r = Sr(), o = jl(e), i = Sa(r, o); + i.tag = 1, i.payload = t, n != null && (i.callback = n), t = Rl(e, i, o), t !== null && (fi(t, e, o, r), Sg(t, e, o)); +}, enqueueForceUpdate: function(e, t) { + e = e._reactInternals; + var n = Sr(), r = jl(e), o = Sa(n, r); + o.tag = 2, t != null && (o.callback = t), t = Rl(e, o, r), t !== null && (fi(t, e, r, n), Sg(t, e, r)); +} }; +function h1(e, t, n, r, o, i, a) { + return e = e.stateNode, typeof e.shouldComponentUpdate == "function" ? e.shouldComponentUpdate(r, i, a) : t.prototype && t.prototype.isPureReactComponent ? !tp(n, r) || !tp(o, i) : !0; +} +function O6(e, t, n) { + var r = !1, o = Dl, i = t.contextType; + return typeof i == "object" && i !== null ? i = Ho(i) : (o = Mr(t) ? Ls : cr.current, r = t.contextTypes, i = (r = r != null) ? xc(e, o) : Dl), t = new t(n, i), e.memoizedState = t.state !== null && t.state !== void 0 ? t.state : null, t.updater = Kw, e.stateNode = t, t._reactInternals = e, r && (e = e.stateNode, e.__reactInternalMemoizedUnmaskedChildContext = o, e.__reactInternalMemoizedMaskedChildContext = i), t; +} +function g1(e, t, n, r) { + e = t.state, typeof t.componentWillReceiveProps == "function" && t.componentWillReceiveProps(n, r), typeof t.UNSAFE_componentWillReceiveProps == "function" && t.UNSAFE_componentWillReceiveProps(n, r), t.state !== e && Kw.enqueueReplaceState(t, t.state, null); +} +function lO(e, t, n, r) { + var o = e.stateNode; + o.props = n, o.state = e.memoizedState, o.refs = _6, gC(e); + var i = t.contextType; + typeof i == "object" && i !== null ? o.context = Ho(i) : (i = Mr(t) ? Ls : cr.current, o.context = xc(e, i)), o.state = e.memoizedState, i = t.getDerivedStateFromProps, typeof i == "function" && (aO(e, t, i, n), o.state = e.memoizedState), typeof t.getDerivedStateFromProps == "function" || typeof o.getSnapshotBeforeUpdate == "function" || typeof o.UNSAFE_componentWillMount != "function" && typeof o.componentWillMount != "function" || (t = o.state, typeof o.componentWillMount == "function" && o.componentWillMount(), typeof o.UNSAFE_componentWillMount == "function" && o.UNSAFE_componentWillMount(), t !== o.state && Kw.enqueueReplaceState(o, o.state, null), xy(e, n, o, r), o.state = e.memoizedState), typeof o.componentDidMount == "function" && (e.flags |= 4194308); +} +function Bf(e, t, n) { + if (e = n.ref, e !== null && typeof e != "function" && typeof e != "object") { + if (n._owner) { + if (n = n._owner, n) { + if (n.tag !== 1) + throw Error(ge(309)); + var r = n.stateNode; + } + if (!r) + throw Error(ge(147, e)); + var o = r, i = "" + e; + return t !== null && t.ref !== null && typeof t.ref == "function" && t.ref._stringRef === i ? t.ref : (t = function(a) { + var l = o.refs; + l === _6 && (l = o.refs = {}), a === null ? delete l[i] : l[i] = a; + }, t._stringRef = i, t); + } + if (typeof e != "string") + throw Error(ge(284)); + if (!n._owner) + throw Error(ge(290, e)); + } + return e; +} +function ah(e, t) { + throw e = Object.prototype.toString.call(t), Error(ge(31, e === "[object Object]" ? "object with keys {" + Object.keys(t).join(", ") + "}" : e)); +} +function y1(e) { + var t = e._init; + return t(e._payload); +} +function E6(e) { + function t(w, x) { + if (e) { + var k = w.deletions; + k === null ? (w.deletions = [x], w.flags |= 16) : k.push(x); + } + } + function n(w, x) { + if (!e) + return null; + for (; x !== null; ) + t(w, x), x = x.sibling; + return null; + } + function r(w, x) { + for (w = /* @__PURE__ */ new Map(); x !== null; ) + x.key !== null ? w.set(x.key, x) : w.set(x.index, x), x = x.sibling; + return w; + } + function o(w, x) { + return w = Nl(w, x), w.index = 0, w.sibling = null, w; + } + function i(w, x, k) { + return w.index = k, e ? (k = w.alternate, k !== null ? (k = k.index, k < x ? (w.flags |= 2, x) : k) : (w.flags |= 2, x)) : (w.flags |= 1048576, x); + } + function a(w) { + return e && w.alternate === null && (w.flags |= 2), w; + } + function l(w, x, k, E) { + return x === null || x.tag !== 6 ? (x = Hk(k, w.mode, E), x.return = w, x) : (x = o(x, k), x.return = w, x); + } + function s(w, x, k, E) { + var O = k.type; + return O === Vu ? p(w, x, k.props.children, E, k.key) : x !== null && (x.elementType === O || typeof O == "object" && O !== null && O.$$typeof === pl && y1(O) === x.type) ? (E = o(x, k.props), E.ref = Bf(w, x, k), E.return = w, E) : (E = Pg(k.type, k.key, k.props, null, w.mode, E), E.ref = Bf(w, x, k), E.return = w, E); + } + function c(w, x, k, E) { + return x === null || x.tag !== 4 || x.stateNode.containerInfo !== k.containerInfo || x.stateNode.implementation !== k.implementation ? (x = Wk(k, w.mode, E), x.return = w, x) : (x = o(x, k.children || []), x.return = w, x); + } + function p(w, x, k, E, O) { + return x === null || x.tag !== 7 ? (x = $s(k, w.mode, E, O), x.return = w, x) : (x = o(x, k), x.return = w, x); + } + function f(w, x, k) { + if (typeof x == "string" && x !== "" || typeof x == "number") + return x = Hk("" + x, w.mode, k), x.return = w, x; + if (typeof x == "object" && x !== null) { + switch (x.$$typeof) { + case Ym: + return k = Pg(x.type, x.key, x.props, null, w.mode, k), k.ref = Bf(w, null, x), k.return = w, k; + case Wu: + return x = Wk(x, w.mode, k), x.return = w, x; + case pl: + var E = x._init; + return f(w, E(x._payload), k); + } + if (pd(x) || zf(x)) + return x = $s(x, w.mode, k, null), x.return = w, x; + ah(w, x); + } + return null; + } + function m(w, x, k, E) { + var O = x !== null ? x.key : null; + if (typeof k == "string" && k !== "" || typeof k == "number") + return O !== null ? null : l(w, x, "" + k, E); + if (typeof k == "object" && k !== null) { + switch (k.$$typeof) { + case Ym: + return k.key === O ? s(w, x, k, E) : null; + case Wu: + return k.key === O ? c(w, x, k, E) : null; + case pl: + return O = k._init, m( + w, + x, + O(k._payload), + E + ); + } + if (pd(k) || zf(k)) + return O !== null ? null : p(w, x, k, E, null); + ah(w, k); + } + return null; + } + function h(w, x, k, E, O) { + if (typeof E == "string" && E !== "" || typeof E == "number") + return w = w.get(k) || null, l(x, w, "" + E, O); + if (typeof E == "object" && E !== null) { + switch (E.$$typeof) { + case Ym: + return w = w.get(E.key === null ? k : E.key) || null, s(x, w, E, O); + case Wu: + return w = w.get(E.key === null ? k : E.key) || null, c(x, w, E, O); + case pl: + var C = E._init; + return h(w, x, k, C(E._payload), O); + } + if (pd(E) || zf(E)) + return w = w.get(k) || null, p(x, w, E, O, null); + ah(x, E); + } + return null; + } + function g(w, x, k, E) { + for (var O = null, C = null, R = x, L = x = 0, D = null; R !== null && L < k.length; L++) { + R.index > L ? (D = R, R = null) : D = R.sibling; + var N = m(w, R, k[L], E); + if (N === null) { + R === null && (R = D); + break; + } + e && R && N.alternate === null && t(w, R), x = i(N, x, L), C === null ? O = N : C.sibling = N, C = N, R = D; + } + if (L === k.length) + return n(w, R), Jt && ps(w, L), O; + if (R === null) { + for (; L < k.length; L++) + R = f(w, k[L], E), R !== null && (x = i(R, x, L), C === null ? O = R : C.sibling = R, C = R); + return Jt && ps(w, L), O; + } + for (R = r(w, R); L < k.length; L++) + D = h(R, w, L, k[L], E), D !== null && (e && D.alternate !== null && R.delete(D.key === null ? L : D.key), x = i(D, x, L), C === null ? O = D : C.sibling = D, C = D); + return e && R.forEach(function(H) { + return t(w, H); + }), Jt && ps(w, L), O; + } + function v(w, x, k, E) { + var O = zf(k); + if (typeof O != "function") + throw Error(ge(150)); + if (k = O.call(k), k == null) + throw Error(ge(151)); + for (var C = O = null, R = x, L = x = 0, D = null, N = k.next(); R !== null && !N.done; L++, N = k.next()) { + R.index > L ? (D = R, R = null) : D = R.sibling; + var H = m(w, R, N.value, E); + if (H === null) { + R === null && (R = D); + break; + } + e && R && H.alternate === null && t(w, R), x = i(H, x, L), C === null ? O = H : C.sibling = H, C = H, R = D; + } + if (N.done) + return n( + w, + R + ), Jt && ps(w, L), O; + if (R === null) { + for (; !N.done; L++, N = k.next()) + N = f(w, N.value, E), N !== null && (x = i(N, x, L), C === null ? O = N : C.sibling = N, C = N); + return Jt && ps(w, L), O; + } + for (R = r(w, R); !N.done; L++, N = k.next()) + N = h(R, w, L, N.value, E), N !== null && (e && N.alternate !== null && R.delete(N.key === null ? L : N.key), x = i(N, x, L), C === null ? O = N : C.sibling = N, C = N); + return e && R.forEach(function(B) { + return t(w, B); + }), Jt && ps(w, L), O; + } + function S(w, x, k, E) { + if (typeof k == "object" && k !== null && k.type === Vu && k.key === null && (k = k.props.children), typeof k == "object" && k !== null) { + switch (k.$$typeof) { + case Ym: + e: { + for (var O = k.key, C = x; C !== null; ) { + if (C.key === O) { + if (O = k.type, O === Vu) { + if (C.tag === 7) { + n(w, C.sibling), x = o(C, k.props.children), x.return = w, w = x; + break e; + } + } else if (C.elementType === O || typeof O == "object" && O !== null && O.$$typeof === pl && y1(O) === C.type) { + n(w, C.sibling), x = o(C, k.props), x.ref = Bf(w, C, k), x.return = w, w = x; + break e; + } + n(w, C); + break; + } else + t(w, C); + C = C.sibling; + } + k.type === Vu ? (x = $s(k.props.children, w.mode, E, k.key), x.return = w, w = x) : (E = Pg(k.type, k.key, k.props, null, w.mode, E), E.ref = Bf(w, x, k), E.return = w, w = E); + } + return a(w); + case Wu: + e: { + for (C = k.key; x !== null; ) { + if (x.key === C) + if (x.tag === 4 && x.stateNode.containerInfo === k.containerInfo && x.stateNode.implementation === k.implementation) { + n(w, x.sibling), x = o(x, k.children || []), x.return = w, w = x; + break e; + } else { + n(w, x); + break; + } + else + t(w, x); + x = x.sibling; + } + x = Wk(k, w.mode, E), x.return = w, w = x; + } + return a(w); + case pl: + return C = k._init, S(w, x, C(k._payload), E); + } + if (pd(k)) + return g(w, x, k, E); + if (zf(k)) + return v(w, x, k, E); + ah(w, k); + } + return typeof k == "string" && k !== "" || typeof k == "number" ? (k = "" + k, x !== null && x.tag === 6 ? (n(w, x.sibling), x = o(x, k), x.return = w, w = x) : (n(w, x), x = Hk(k, w.mode, E), x.return = w, w = x), a(w)) : n(w, x); + } + return S; +} +var kc = E6(!0), C6 = E6(!1), jp = {}, qi = Vl(jp), ip = Vl(jp), ap = Vl(jp); +function Es(e) { + if (e === jp) + throw Error(ge(174)); + return e; +} +function yC(e, t) { + switch (Vt(ap, t), Vt(ip, e), Vt(qi, jp), e = t.nodeType, e) { + case 9: + case 11: + t = (t = t.documentElement) ? t.namespaceURI : F0(null, ""); + break; + default: + e = e === 8 ? t.parentNode : t, t = e.namespaceURI || null, e = e.tagName, t = F0(t, e); + } + Zt(qi), Vt(qi, t); +} +function _c() { + Zt(qi), Zt(ip), Zt(ap); +} +function P6(e) { + Es(ap.current); + var t = Es(qi.current), n = F0(t, e.type); + t !== n && (Vt(ip, e), Vt(qi, n)); +} +function vC(e) { + ip.current === e && (Zt(qi), Zt(ip)); +} +var rn = Vl(0); +function Sy(e) { + for (var t = e; t !== null; ) { + if (t.tag === 13) { + var n = t.memoizedState; + if (n !== null && (n = n.dehydrated, n === null || n.data === "$?" || n.data === "$!")) + return t; + } else if (t.tag === 19 && t.memoizedProps.revealOrder !== void 0) { + if (t.flags & 128) + return t; + } else if (t.child !== null) { + t.child.return = t, t = t.child; + continue; + } + if (t === e) + break; + for (; t.sibling === null; ) { + if (t.return === null || t.return === e) + return null; + t = t.return; + } + t.sibling.return = t.return, t = t.sibling; + } + return null; +} +var Lk = []; +function bC() { + for (var e = 0; e < Lk.length; e++) + Lk[e]._workInProgressVersionPrimary = null; + Lk.length = 0; +} +var kg = za.ReactCurrentDispatcher, Dk = za.ReactCurrentBatchConfig, Fs = 0, ln = null, Rn = null, $n = null, ky = !1, Nd = !1, lp = 0, Pie = 0; +function Jn() { + throw Error(ge(321)); +} +function wC(e, t) { + if (t === null) + return !1; + for (var n = 0; n < t.length && n < e.length; n++) + if (!pi(e[n], t[n])) + return !1; + return !0; +} +function xC(e, t, n, r, o, i) { + if (Fs = i, ln = t, t.memoizedState = null, t.updateQueue = null, t.lanes = 0, kg.current = e === null || e.memoizedState === null ? Nie : $ie, e = n(r, o), Nd) { + i = 0; + do { + if (Nd = !1, lp = 0, 25 <= i) + throw Error(ge(301)); + i += 1, $n = Rn = null, t.updateQueue = null, kg.current = Iie, e = n(r, o); + } while (Nd); + } + if (kg.current = _y, t = Rn !== null && Rn.next !== null, Fs = 0, $n = Rn = ln = null, ky = !1, t) + throw Error(ge(300)); + return e; +} +function SC() { + var e = lp !== 0; + return lp = 0, e; +} +function Ti() { + var e = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null }; + return $n === null ? ln.memoizedState = $n = e : $n = $n.next = e, $n; +} +function Wo() { + if (Rn === null) { + var e = ln.alternate; + e = e !== null ? e.memoizedState : null; + } else + e = Rn.next; + var t = $n === null ? ln.memoizedState : $n.next; + if (t !== null) + $n = t, Rn = e; + else { + if (e === null) + throw Error(ge(310)); + Rn = e, e = { memoizedState: Rn.memoizedState, baseState: Rn.baseState, baseQueue: Rn.baseQueue, queue: Rn.queue, next: null }, $n === null ? ln.memoizedState = $n = e : $n = $n.next = e; + } + return $n; +} +function sp(e, t) { + return typeof t == "function" ? t(e) : t; +} +function Fk(e) { + var t = Wo(), n = t.queue; + if (n === null) + throw Error(ge(311)); + n.lastRenderedReducer = e; + var r = Rn, o = r.baseQueue, i = n.pending; + if (i !== null) { + if (o !== null) { + var a = o.next; + o.next = i.next, i.next = a; + } + r.baseQueue = o = i, n.pending = null; + } + if (o !== null) { + i = o.next, r = r.baseState; + var l = a = null, s = null, c = i; + do { + var p = c.lane; + if ((Fs & p) === p) + s !== null && (s = s.next = { lane: 0, action: c.action, hasEagerState: c.hasEagerState, eagerState: c.eagerState, next: null }), r = c.hasEagerState ? c.eagerState : e(r, c.action); + else { + var f = { + lane: p, + action: c.action, + hasEagerState: c.hasEagerState, + eagerState: c.eagerState, + next: null + }; + s === null ? (l = s = f, a = r) : s = s.next = f, ln.lanes |= p, Ms |= p; + } + c = c.next; + } while (c !== null && c !== i); + s === null ? a = r : s.next = l, pi(r, t.memoizedState) || (Dr = !0), t.memoizedState = r, t.baseState = a, t.baseQueue = s, n.lastRenderedState = r; + } + if (e = n.interleaved, e !== null) { + o = e; + do + i = o.lane, ln.lanes |= i, Ms |= i, o = o.next; + while (o !== e); + } else + o === null && (n.lanes = 0); + return [t.memoizedState, n.dispatch]; +} +function Mk(e) { + var t = Wo(), n = t.queue; + if (n === null) + throw Error(ge(311)); + n.lastRenderedReducer = e; + var r = n.dispatch, o = n.pending, i = t.memoizedState; + if (o !== null) { + n.pending = null; + var a = o = o.next; + do + i = e(i, a.action), a = a.next; + while (a !== o); + pi(i, t.memoizedState) || (Dr = !0), t.memoizedState = i, t.baseQueue === null && (t.baseState = i), n.lastRenderedState = i; + } + return [i, r]; +} +function R6() { +} +function T6(e, t) { + var n = ln, r = Wo(), o = t(), i = !pi(r.memoizedState, o); + if (i && (r.memoizedState = o, Dr = !0), r = r.queue, kC($6.bind(null, n, r, e), [e]), r.getSnapshot !== t || i || $n !== null && $n.memoizedState.tag & 1) { + if (n.flags |= 2048, up(9, N6.bind(null, n, r, o, t), void 0, null), In === null) + throw Error(ge(349)); + Fs & 30 || j6(n, t, o); + } + return o; +} +function j6(e, t, n) { + e.flags |= 16384, e = { getSnapshot: t, value: n }, t = ln.updateQueue, t === null ? (t = { lastEffect: null, stores: null }, ln.updateQueue = t, t.stores = [e]) : (n = t.stores, n === null ? t.stores = [e] : n.push(e)); +} +function N6(e, t, n, r) { + t.value = n, t.getSnapshot = r, I6(t) && A6(e); +} +function $6(e, t, n) { + return n(function() { + I6(t) && A6(e); + }); +} +function I6(e) { + var t = e.getSnapshot; + e = e.value; + try { + var n = t(); + return !pi(e, n); + } catch { + return !0; + } +} +function A6(e) { + var t = Ea(e, 1); + t !== null && fi(t, e, 1, -1); +} +function v1(e) { + var t = Ti(); + return typeof e == "function" && (e = e()), t.memoizedState = t.baseState = e, e = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: sp, lastRenderedState: e }, t.queue = e, e = e.dispatch = jie.bind(null, ln, e), [t.memoizedState, e]; +} +function up(e, t, n, r) { + return e = { tag: e, create: t, destroy: n, deps: r, next: null }, t = ln.updateQueue, t === null ? (t = { lastEffect: null, stores: null }, ln.updateQueue = t, t.lastEffect = e.next = e) : (n = t.lastEffect, n === null ? t.lastEffect = e.next = e : (r = n.next, n.next = e, e.next = r, t.lastEffect = e)), e; +} +function z6() { + return Wo().memoizedState; +} +function _g(e, t, n, r) { + var o = Ti(); + ln.flags |= e, o.memoizedState = up(1 | t, n, void 0, r === void 0 ? null : r); +} +function Yw(e, t, n, r) { + var o = Wo(); + r = r === void 0 ? null : r; + var i = void 0; + if (Rn !== null) { + var a = Rn.memoizedState; + if (i = a.destroy, r !== null && wC(r, a.deps)) { + o.memoizedState = up(t, n, i, r); + return; + } + } + ln.flags |= e, o.memoizedState = up(1 | t, n, i, r); +} +function b1(e, t) { + return _g(8390656, 8, e, t); +} +function kC(e, t) { + return Yw(2048, 8, e, t); +} +function L6(e, t) { + return Yw(4, 2, e, t); +} +function D6(e, t) { + return Yw(4, 4, e, t); +} +function F6(e, t) { + if (typeof t == "function") + return e = e(), t(e), function() { + t(null); + }; + if (t != null) + return e = e(), t.current = e, function() { + t.current = null; + }; +} +function M6(e, t, n) { + return n = n != null ? n.concat([e]) : null, Yw(4, 4, F6.bind(null, t, e), n); +} +function _C() { +} +function B6(e, t) { + var n = Wo(); + t = t === void 0 ? null : t; + var r = n.memoizedState; + return r !== null && t !== null && wC(t, r[1]) ? r[0] : (n.memoizedState = [e, t], e); +} +function U6(e, t) { + var n = Wo(); + t = t === void 0 ? null : t; + var r = n.memoizedState; + return r !== null && t !== null && wC(t, r[1]) ? r[0] : (e = e(), n.memoizedState = [e, t], e); +} +function H6(e, t, n) { + return Fs & 21 ? (pi(n, t) || (n = qF(), ln.lanes |= n, Ms |= n, e.baseState = !0), t) : (e.baseState && (e.baseState = !1, Dr = !0), e.memoizedState = n); +} +function Rie(e, t) { + var n = It; + It = n !== 0 && 4 > n ? n : 4, e(!0); + var r = Dk.transition; + Dk.transition = {}; + try { + e(!1), t(); + } finally { + It = n, Dk.transition = r; + } +} +function W6() { + return Wo().memoizedState; +} +function Tie(e, t, n) { + var r = jl(e); + if (n = { lane: r, action: n, hasEagerState: !1, eagerState: null, next: null }, V6(e)) + q6(t, n); + else if (n = S6(e, t, n, r), n !== null) { + var o = Sr(); + fi(n, e, r, o), G6(n, t, r); + } +} +function jie(e, t, n) { + var r = jl(e), o = { lane: r, action: n, hasEagerState: !1, eagerState: null, next: null }; + if (V6(e)) + q6(t, o); + else { + var i = e.alternate; + if (e.lanes === 0 && (i === null || i.lanes === 0) && (i = t.lastRenderedReducer, i !== null)) + try { + var a = t.lastRenderedState, l = i(a, n); + if (o.hasEagerState = !0, o.eagerState = l, pi(l, a)) { + var s = t.interleaved; + s === null ? (o.next = o, hC(t)) : (o.next = s.next, s.next = o), t.interleaved = o; + return; + } + } catch { + } finally { + } + n = S6(e, t, o, r), n !== null && (o = Sr(), fi(n, e, r, o), G6(n, t, r)); + } +} +function V6(e) { + var t = e.alternate; + return e === ln || t !== null && t === ln; +} +function q6(e, t) { + Nd = ky = !0; + var n = e.pending; + n === null ? t.next = t : (t.next = n.next, n.next = t), e.pending = t; +} +function G6(e, t, n) { + if (n & 4194240) { + var r = t.lanes; + r &= e.pendingLanes, n |= r, t.lanes = n, tC(e, n); + } +} +var _y = { readContext: Ho, useCallback: Jn, useContext: Jn, useEffect: Jn, useImperativeHandle: Jn, useInsertionEffect: Jn, useLayoutEffect: Jn, useMemo: Jn, useReducer: Jn, useRef: Jn, useState: Jn, useDebugValue: Jn, useDeferredValue: Jn, useTransition: Jn, useMutableSource: Jn, useSyncExternalStore: Jn, useId: Jn, unstable_isNewReconciler: !1 }, Nie = { readContext: Ho, useCallback: function(e, t) { + return Ti().memoizedState = [e, t === void 0 ? null : t], e; +}, useContext: Ho, useEffect: b1, useImperativeHandle: function(e, t, n) { + return n = n != null ? n.concat([e]) : null, _g( + 4194308, + 4, + F6.bind(null, t, e), + n + ); +}, useLayoutEffect: function(e, t) { + return _g(4194308, 4, e, t); +}, useInsertionEffect: function(e, t) { + return _g(4, 2, e, t); +}, useMemo: function(e, t) { + var n = Ti(); + return t = t === void 0 ? null : t, e = e(), n.memoizedState = [e, t], e; +}, useReducer: function(e, t, n) { + var r = Ti(); + return t = n !== void 0 ? n(t) : t, r.memoizedState = r.baseState = t, e = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: e, lastRenderedState: t }, r.queue = e, e = e.dispatch = Tie.bind(null, ln, e), [r.memoizedState, e]; +}, useRef: function(e) { + var t = Ti(); + return e = { current: e }, t.memoizedState = e; +}, useState: v1, useDebugValue: _C, useDeferredValue: function(e) { + return Ti().memoizedState = e; +}, useTransition: function() { + var e = v1(!1), t = e[0]; + return e = Rie.bind(null, e[1]), Ti().memoizedState = e, [t, e]; +}, useMutableSource: function() { +}, useSyncExternalStore: function(e, t, n) { + var r = ln, o = Ti(); + if (Jt) { + if (n === void 0) + throw Error(ge(407)); + n = n(); + } else { + if (n = t(), In === null) + throw Error(ge(349)); + Fs & 30 || j6(r, t, n); + } + o.memoizedState = n; + var i = { value: n, getSnapshot: t }; + return o.queue = i, b1($6.bind( + null, + r, + i, + e + ), [e]), r.flags |= 2048, up(9, N6.bind(null, r, i, n, t), void 0, null), n; +}, useId: function() { + var e = Ti(), t = In.identifierPrefix; + if (Jt) { + var n = ba, r = va; + n = (r & ~(1 << 32 - ci(r) - 1)).toString(32) + n, t = ":" + t + "R" + n, n = lp++, 0 < n && (t += "H" + n.toString(32)), t += ":"; + } else + n = Pie++, t = ":" + t + "r" + n.toString(32) + ":"; + return e.memoizedState = t; +}, unstable_isNewReconciler: !1 }, $ie = { + readContext: Ho, + useCallback: B6, + useContext: Ho, + useEffect: kC, + useImperativeHandle: M6, + useInsertionEffect: L6, + useLayoutEffect: D6, + useMemo: U6, + useReducer: Fk, + useRef: z6, + useState: function() { + return Fk(sp); + }, + useDebugValue: _C, + useDeferredValue: function(e) { + var t = Wo(); + return H6(t, Rn.memoizedState, e); + }, + useTransition: function() { + var e = Fk(sp)[0], t = Wo().memoizedState; + return [e, t]; + }, + useMutableSource: R6, + useSyncExternalStore: T6, + useId: W6, + unstable_isNewReconciler: !1 +}, Iie = { readContext: Ho, useCallback: B6, useContext: Ho, useEffect: kC, useImperativeHandle: M6, useInsertionEffect: L6, useLayoutEffect: D6, useMemo: U6, useReducer: Mk, useRef: z6, useState: function() { + return Mk(sp); +}, useDebugValue: _C, useDeferredValue: function(e) { + var t = Wo(); + return Rn === null ? t.memoizedState = e : H6(t, Rn.memoizedState, e); +}, useTransition: function() { + var e = Mk(sp)[0], t = Wo().memoizedState; + return [e, t]; +}, useMutableSource: R6, useSyncExternalStore: T6, useId: W6, unstable_isNewReconciler: !1 }; +function Oc(e, t) { + try { + var n = "", r = t; + do + n += soe(r), r = r.return; + while (r); + var o = n; + } catch (i) { + o = ` +Error generating stack: ` + i.message + ` +` + i.stack; + } + return { value: e, source: t, stack: o, digest: null }; +} +function Bk(e, t, n) { + return { value: e, source: null, stack: n ?? null, digest: t ?? null }; +} +function sO(e, t) { + try { + console.error(t.value); + } catch (n) { + setTimeout(function() { + throw n; + }); + } +} +var Aie = typeof WeakMap == "function" ? WeakMap : Map; +function K6(e, t, n) { + n = Sa(-1, n), n.tag = 3, n.payload = { element: null }; + var r = t.value; + return n.callback = function() { + Ey || (Ey = !0, vO = r), sO(e, t); + }, n; +} +function Y6(e, t, n) { + n = Sa(-1, n), n.tag = 3; + var r = e.type.getDerivedStateFromError; + if (typeof r == "function") { + var o = t.value; + n.payload = function() { + return r(o); + }, n.callback = function() { + sO(e, t); + }; + } + var i = e.stateNode; + return i !== null && typeof i.componentDidCatch == "function" && (n.callback = function() { + sO(e, t), typeof r != "function" && (Tl === null ? Tl = /* @__PURE__ */ new Set([this]) : Tl.add(this)); + var a = t.stack; + this.componentDidCatch(t.value, { componentStack: a !== null ? a : "" }); + }), n; +} +function w1(e, t, n) { + var r = e.pingCache; + if (r === null) { + r = e.pingCache = new Aie(); + var o = /* @__PURE__ */ new Set(); + r.set(t, o); + } else + o = r.get(t), o === void 0 && (o = /* @__PURE__ */ new Set(), r.set(t, o)); + o.has(n) || (o.add(n), e = Yie.bind(null, e, t, n), t.then(e, e)); +} +function x1(e) { + do { + var t; + if ((t = e.tag === 13) && (t = e.memoizedState, t = t !== null ? t.dehydrated !== null : !0), t) + return e; + e = e.return; + } while (e !== null); + return null; +} +function S1(e, t, n, r, o) { + return e.mode & 1 ? (e.flags |= 65536, e.lanes = o, e) : (e === t ? e.flags |= 65536 : (e.flags |= 128, n.flags |= 131072, n.flags &= -52805, n.tag === 1 && (n.alternate === null ? n.tag = 17 : (t = Sa(-1, 1), t.tag = 2, Rl(n, t, 1))), n.lanes |= 1), e); +} +var zie = za.ReactCurrentOwner, Dr = !1; +function vr(e, t, n, r) { + t.child = e === null ? C6(t, null, n, r) : kc(t, e.child, n, r); +} +function k1(e, t, n, r, o) { + n = n.render; + var i = t.ref; + return dc(t, o), r = xC(e, t, n, r, i, o), n = SC(), e !== null && !Dr ? (t.updateQueue = e.updateQueue, t.flags &= -2053, e.lanes &= ~o, Ca(e, t, o)) : (Jt && n && uC(t), t.flags |= 1, vr(e, t, r, o), t.child); +} +function _1(e, t, n, r, o) { + if (e === null) { + var i = n.type; + return typeof i == "function" && !NC(i) && i.defaultProps === void 0 && n.compare === null && n.defaultProps === void 0 ? (t.tag = 15, t.type = i, X6(e, t, i, r, o)) : (e = Pg(n.type, null, r, t, t.mode, o), e.ref = t.ref, e.return = t, t.child = e); + } + if (i = e.child, !(e.lanes & o)) { + var a = i.memoizedProps; + if (n = n.compare, n = n !== null ? n : tp, n(a, r) && e.ref === t.ref) + return Ca(e, t, o); + } + return t.flags |= 1, e = Nl(i, r), e.ref = t.ref, e.return = t, t.child = e; +} +function X6(e, t, n, r, o) { + if (e !== null) { + var i = e.memoizedProps; + if (tp(i, r) && e.ref === t.ref) + if (Dr = !1, t.pendingProps = r = i, (e.lanes & o) !== 0) + e.flags & 131072 && (Dr = !0); + else + return t.lanes = e.lanes, Ca(e, t, o); + } + return uO(e, t, n, r, o); +} +function Z6(e, t, n) { + var r = t.pendingProps, o = r.children, i = e !== null ? e.memoizedState : null; + if (r.mode === "hidden") + if (!(t.mode & 1)) + t.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, Vt(tc, io), io |= n; + else { + if (!(n & 1073741824)) + return e = i !== null ? i.baseLanes | n : n, t.lanes = t.childLanes = 1073741824, t.memoizedState = { baseLanes: e, cachePool: null, transitions: null }, t.updateQueue = null, Vt(tc, io), io |= e, null; + t.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, r = i !== null ? i.baseLanes : n, Vt(tc, io), io |= r; + } + else + i !== null ? (r = i.baseLanes | n, t.memoizedState = null) : r = n, Vt(tc, io), io |= r; + return vr(e, t, o, n), t.child; +} +function Q6(e, t) { + var n = t.ref; + (e === null && n !== null || e !== null && e.ref !== n) && (t.flags |= 512, t.flags |= 2097152); +} +function uO(e, t, n, r, o) { + var i = Mr(n) ? Ls : cr.current; + return i = xc(t, i), dc(t, o), n = xC(e, t, n, r, i, o), r = SC(), e !== null && !Dr ? (t.updateQueue = e.updateQueue, t.flags &= -2053, e.lanes &= ~o, Ca(e, t, o)) : (Jt && r && uC(t), t.flags |= 1, vr(e, t, n, o), t.child); +} +function O1(e, t, n, r, o) { + if (Mr(n)) { + var i = !0; + gy(t); + } else + i = !1; + if (dc(t, o), t.stateNode === null) + Og(e, t), O6(t, n, r), lO(t, n, r, o), r = !0; + else if (e === null) { + var a = t.stateNode, l = t.memoizedProps; + a.props = l; + var s = a.context, c = n.contextType; + typeof c == "object" && c !== null ? c = Ho(c) : (c = Mr(n) ? Ls : cr.current, c = xc(t, c)); + var p = n.getDerivedStateFromProps, f = typeof p == "function" || typeof a.getSnapshotBeforeUpdate == "function"; + f || typeof a.UNSAFE_componentWillReceiveProps != "function" && typeof a.componentWillReceiveProps != "function" || (l !== r || s !== c) && g1(t, a, r, c), ml = !1; + var m = t.memoizedState; + a.state = m, xy(t, r, a, o), s = t.memoizedState, l !== r || m !== s || Fr.current || ml ? (typeof p == "function" && (aO(t, n, p, r), s = t.memoizedState), (l = ml || h1(t, n, l, r, m, s, c)) ? (f || typeof a.UNSAFE_componentWillMount != "function" && typeof a.componentWillMount != "function" || (typeof a.componentWillMount == "function" && a.componentWillMount(), typeof a.UNSAFE_componentWillMount == "function" && a.UNSAFE_componentWillMount()), typeof a.componentDidMount == "function" && (t.flags |= 4194308)) : (typeof a.componentDidMount == "function" && (t.flags |= 4194308), t.memoizedProps = r, t.memoizedState = s), a.props = r, a.state = s, a.context = c, r = l) : (typeof a.componentDidMount == "function" && (t.flags |= 4194308), r = !1); + } else { + a = t.stateNode, k6(e, t), l = t.memoizedProps, c = t.type === t.elementType ? l : ai(t.type, l), a.props = c, f = t.pendingProps, m = a.context, s = n.contextType, typeof s == "object" && s !== null ? s = Ho(s) : (s = Mr(n) ? Ls : cr.current, s = xc(t, s)); + var h = n.getDerivedStateFromProps; + (p = typeof h == "function" || typeof a.getSnapshotBeforeUpdate == "function") || typeof a.UNSAFE_componentWillReceiveProps != "function" && typeof a.componentWillReceiveProps != "function" || (l !== f || m !== s) && g1(t, a, r, s), ml = !1, m = t.memoizedState, a.state = m, xy(t, r, a, o); + var g = t.memoizedState; + l !== f || m !== g || Fr.current || ml ? (typeof h == "function" && (aO(t, n, h, r), g = t.memoizedState), (c = ml || h1(t, n, c, r, m, g, s) || !1) ? (p || typeof a.UNSAFE_componentWillUpdate != "function" && typeof a.componentWillUpdate != "function" || (typeof a.componentWillUpdate == "function" && a.componentWillUpdate(r, g, s), typeof a.UNSAFE_componentWillUpdate == "function" && a.UNSAFE_componentWillUpdate(r, g, s)), typeof a.componentDidUpdate == "function" && (t.flags |= 4), typeof a.getSnapshotBeforeUpdate == "function" && (t.flags |= 1024)) : (typeof a.componentDidUpdate != "function" || l === e.memoizedProps && m === e.memoizedState || (t.flags |= 4), typeof a.getSnapshotBeforeUpdate != "function" || l === e.memoizedProps && m === e.memoizedState || (t.flags |= 1024), t.memoizedProps = r, t.memoizedState = g), a.props = r, a.state = g, a.context = s, r = c) : (typeof a.componentDidUpdate != "function" || l === e.memoizedProps && m === e.memoizedState || (t.flags |= 4), typeof a.getSnapshotBeforeUpdate != "function" || l === e.memoizedProps && m === e.memoizedState || (t.flags |= 1024), r = !1); + } + return cO(e, t, n, r, i, o); +} +function cO(e, t, n, r, o, i) { + Q6(e, t); + var a = (t.flags & 128) !== 0; + if (!r && !a) + return o && c1(t, n, !1), Ca(e, t, i); + r = t.stateNode, zie.current = t; + var l = a && typeof n.getDerivedStateFromError != "function" ? null : r.render(); + return t.flags |= 1, e !== null && a ? (t.child = kc(t, e.child, null, i), t.child = kc(t, null, l, i)) : vr(e, t, l, i), t.memoizedState = r.state, o && c1(t, n, !0), t.child; +} +function J6(e) { + var t = e.stateNode; + t.pendingContext ? u1(e, t.pendingContext, t.pendingContext !== t.context) : t.context && u1(e, t.context, !1), yC(e, t.containerInfo); +} +function E1(e, t, n, r, o) { + return Sc(), fC(o), t.flags |= 256, vr(e, t, n, r), t.child; +} +var fO = { dehydrated: null, treeContext: null, retryLane: 0 }; +function dO(e) { + return { baseLanes: e, cachePool: null, transitions: null }; +} +function eM(e, t, n) { + var r = t.pendingProps, o = rn.current, i = !1, a = (t.flags & 128) !== 0, l; + if ((l = a) || (l = e !== null && e.memoizedState === null ? !1 : (o & 2) !== 0), l ? (i = !0, t.flags &= -129) : (e === null || e.memoizedState !== null) && (o |= 1), Vt(rn, o & 1), e === null) + return oO(t), e = t.memoizedState, e !== null && (e = e.dehydrated, e !== null) ? (t.mode & 1 ? e.data === "$!" ? t.lanes = 8 : t.lanes = 1073741824 : t.lanes = 1, null) : (a = r.children, e = r.fallback, i ? (r = t.mode, i = t.child, a = { mode: "hidden", children: a }, !(r & 1) && i !== null ? (i.childLanes = 0, i.pendingProps = a) : i = Qw(a, r, 0, null), e = $s(e, r, n, null), i.return = t, e.return = t, i.sibling = e, t.child = i, t.child.memoizedState = dO(n), t.memoizedState = fO, e) : OC(t, a)); + if (o = e.memoizedState, o !== null && (l = o.dehydrated, l !== null)) + return Lie(e, t, a, r, l, o, n); + if (i) { + i = r.fallback, a = t.mode, o = e.child, l = o.sibling; + var s = { mode: "hidden", children: r.children }; + return !(a & 1) && t.child !== o ? (r = t.child, r.childLanes = 0, r.pendingProps = s, t.deletions = null) : (r = Nl(o, s), r.subtreeFlags = o.subtreeFlags & 14680064), l !== null ? i = Nl(l, i) : (i = $s(i, a, n, null), i.flags |= 2), i.return = t, r.return = t, r.sibling = i, t.child = r, r = i, i = t.child, a = e.child.memoizedState, a = a === null ? dO(n) : { baseLanes: a.baseLanes | n, cachePool: null, transitions: a.transitions }, i.memoizedState = a, i.childLanes = e.childLanes & ~n, t.memoizedState = fO, r; + } + return i = e.child, e = i.sibling, r = Nl(i, { mode: "visible", children: r.children }), !(t.mode & 1) && (r.lanes = n), r.return = t, r.sibling = null, e !== null && (n = t.deletions, n === null ? (t.deletions = [e], t.flags |= 16) : n.push(e)), t.child = r, t.memoizedState = null, r; +} +function OC(e, t) { + return t = Qw({ mode: "visible", children: t }, e.mode, 0, null), t.return = e, e.child = t; +} +function lh(e, t, n, r) { + return r !== null && fC(r), kc(t, e.child, null, n), e = OC(t, t.pendingProps.children), e.flags |= 2, t.memoizedState = null, e; +} +function Lie(e, t, n, r, o, i, a) { + if (n) + return t.flags & 256 ? (t.flags &= -257, r = Bk(Error(ge(422))), lh(e, t, a, r)) : t.memoizedState !== null ? (t.child = e.child, t.flags |= 128, null) : (i = r.fallback, o = t.mode, r = Qw({ mode: "visible", children: r.children }, o, 0, null), i = $s(i, o, a, null), i.flags |= 2, r.return = t, i.return = t, r.sibling = i, t.child = r, t.mode & 1 && kc(t, e.child, null, a), t.child.memoizedState = dO(a), t.memoizedState = fO, i); + if (!(t.mode & 1)) + return lh(e, t, a, null); + if (o.data === "$!") { + if (r = o.nextSibling && o.nextSibling.dataset, r) + var l = r.dgst; + return r = l, i = Error(ge(419)), r = Bk(i, r, void 0), lh(e, t, a, r); + } + if (l = (a & e.childLanes) !== 0, Dr || l) { + if (r = In, r !== null) { + switch (a & -a) { + case 4: + o = 2; + break; + case 16: + o = 8; + break; + case 64: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + case 67108864: + o = 32; + break; + case 536870912: + o = 268435456; + break; + default: + o = 0; + } + o = o & (r.suspendedLanes | a) ? 0 : o, o !== 0 && o !== i.retryLane && (i.retryLane = o, Ea(e, o), fi(r, e, o, -1)); + } + return jC(), r = Bk(Error(ge(421))), lh(e, t, a, r); + } + return o.data === "$?" ? (t.flags |= 128, t.child = e.child, t = Xie.bind(null, e), o._reactRetry = t, null) : (e = i.treeContext, fo = Pl(o.nextSibling), po = t, Jt = !0, si = null, e !== null && (zo[Lo++] = va, zo[Lo++] = ba, zo[Lo++] = Ds, va = e.id, ba = e.overflow, Ds = t), t = OC(t, r.children), t.flags |= 4096, t); +} +function C1(e, t, n) { + e.lanes |= t; + var r = e.alternate; + r !== null && (r.lanes |= t), iO(e.return, t, n); +} +function Uk(e, t, n, r, o) { + var i = e.memoizedState; + i === null ? e.memoizedState = { isBackwards: t, rendering: null, renderingStartTime: 0, last: r, tail: n, tailMode: o } : (i.isBackwards = t, i.rendering = null, i.renderingStartTime = 0, i.last = r, i.tail = n, i.tailMode = o); +} +function tM(e, t, n) { + var r = t.pendingProps, o = r.revealOrder, i = r.tail; + if (vr(e, t, r.children, n), r = rn.current, r & 2) + r = r & 1 | 2, t.flags |= 128; + else { + if (e !== null && e.flags & 128) + e: + for (e = t.child; e !== null; ) { + if (e.tag === 13) + e.memoizedState !== null && C1(e, n, t); + else if (e.tag === 19) + C1(e, n, t); + else if (e.child !== null) { + e.child.return = e, e = e.child; + continue; + } + if (e === t) + break e; + for (; e.sibling === null; ) { + if (e.return === null || e.return === t) + break e; + e = e.return; + } + e.sibling.return = e.return, e = e.sibling; + } + r &= 1; + } + if (Vt(rn, r), !(t.mode & 1)) + t.memoizedState = null; + else + switch (o) { + case "forwards": + for (n = t.child, o = null; n !== null; ) + e = n.alternate, e !== null && Sy(e) === null && (o = n), n = n.sibling; + n = o, n === null ? (o = t.child, t.child = null) : (o = n.sibling, n.sibling = null), Uk(t, !1, o, n, i); + break; + case "backwards": + for (n = null, o = t.child, t.child = null; o !== null; ) { + if (e = o.alternate, e !== null && Sy(e) === null) { + t.child = o; + break; + } + e = o.sibling, o.sibling = n, n = o, o = e; + } + Uk(t, !0, n, null, i); + break; + case "together": + Uk(t, !1, null, null, void 0); + break; + default: + t.memoizedState = null; + } + return t.child; +} +function Og(e, t) { + !(t.mode & 1) && e !== null && (e.alternate = null, t.alternate = null, t.flags |= 2); +} +function Ca(e, t, n) { + if (e !== null && (t.dependencies = e.dependencies), Ms |= t.lanes, !(n & t.childLanes)) + return null; + if (e !== null && t.child !== e.child) + throw Error(ge(153)); + if (t.child !== null) { + for (e = t.child, n = Nl(e, e.pendingProps), t.child = n, n.return = t; e.sibling !== null; ) + e = e.sibling, n = n.sibling = Nl(e, e.pendingProps), n.return = t; + n.sibling = null; + } + return t.child; +} +function Die(e, t, n) { + switch (t.tag) { + case 3: + J6(t), Sc(); + break; + case 5: + P6(t); + break; + case 1: + Mr(t.type) && gy(t); + break; + case 4: + yC(t, t.stateNode.containerInfo); + break; + case 10: + var r = t.type._context, o = t.memoizedProps.value; + Vt(by, r._currentValue), r._currentValue = o; + break; + case 13: + if (r = t.memoizedState, r !== null) + return r.dehydrated !== null ? (Vt(rn, rn.current & 1), t.flags |= 128, null) : n & t.child.childLanes ? eM(e, t, n) : (Vt(rn, rn.current & 1), e = Ca(e, t, n), e !== null ? e.sibling : null); + Vt(rn, rn.current & 1); + break; + case 19: + if (r = (n & t.childLanes) !== 0, e.flags & 128) { + if (r) + return tM(e, t, n); + t.flags |= 128; + } + if (o = t.memoizedState, o !== null && (o.rendering = null, o.tail = null, o.lastEffect = null), Vt(rn, rn.current), r) + break; + return null; + case 22: + case 23: + return t.lanes = 0, Z6(e, t, n); + } + return Ca(e, t, n); +} +var nM, pO, rM, oM; +nM = function(e, t) { + for (var n = t.child; n !== null; ) { + if (n.tag === 5 || n.tag === 6) + e.appendChild(n.stateNode); + else if (n.tag !== 4 && n.child !== null) { + n.child.return = n, n = n.child; + continue; + } + if (n === t) + break; + for (; n.sibling === null; ) { + if (n.return === null || n.return === t) + return; + n = n.return; + } + n.sibling.return = n.return, n = n.sibling; + } +}; +pO = function() { +}; +rM = function(e, t, n, r) { + var o = e.memoizedProps; + if (o !== r) { + e = t.stateNode, Es(qi.current); + var i = null; + switch (n) { + case "input": + o = A0(e, o), r = A0(e, r), i = []; + break; + case "select": + o = sn({}, o, { value: void 0 }), r = sn({}, r, { value: void 0 }), i = []; + break; + case "textarea": + o = D0(e, o), r = D0(e, r), i = []; + break; + default: + typeof o.onClick != "function" && typeof r.onClick == "function" && (e.onclick = my); + } + M0(n, r); + var a; + n = null; + for (c in o) + if (!r.hasOwnProperty(c) && o.hasOwnProperty(c) && o[c] != null) + if (c === "style") { + var l = o[c]; + for (a in l) + l.hasOwnProperty(a) && (n || (n = {}), n[a] = ""); + } else + c !== "dangerouslySetInnerHTML" && c !== "children" && c !== "suppressContentEditableWarning" && c !== "suppressHydrationWarning" && c !== "autoFocus" && (Kd.hasOwnProperty(c) ? i || (i = []) : (i = i || []).push(c, null)); + for (c in r) { + var s = r[c]; + if (l = o != null ? o[c] : void 0, r.hasOwnProperty(c) && s !== l && (s != null || l != null)) + if (c === "style") + if (l) { + for (a in l) + !l.hasOwnProperty(a) || s && s.hasOwnProperty(a) || (n || (n = {}), n[a] = ""); + for (a in s) + s.hasOwnProperty(a) && l[a] !== s[a] && (n || (n = {}), n[a] = s[a]); + } else + n || (i || (i = []), i.push( + c, + n + )), n = s; + else + c === "dangerouslySetInnerHTML" ? (s = s ? s.__html : void 0, l = l ? l.__html : void 0, s != null && l !== s && (i = i || []).push(c, s)) : c === "children" ? typeof s != "string" && typeof s != "number" || (i = i || []).push(c, "" + s) : c !== "suppressContentEditableWarning" && c !== "suppressHydrationWarning" && (Kd.hasOwnProperty(c) ? (s != null && c === "onScroll" && Yt("scroll", e), i || l === s || (i = [])) : (i = i || []).push(c, s)); + } + n && (i = i || []).push("style", n); + var c = i; + (t.updateQueue = c) && (t.flags |= 4); + } +}; +oM = function(e, t, n, r) { + n !== r && (t.flags |= 4); +}; +function Uf(e, t) { + if (!Jt) + switch (e.tailMode) { + case "hidden": + t = e.tail; + for (var n = null; t !== null; ) + t.alternate !== null && (n = t), t = t.sibling; + n === null ? e.tail = null : n.sibling = null; + break; + case "collapsed": + n = e.tail; + for (var r = null; n !== null; ) + n.alternate !== null && (r = n), n = n.sibling; + r === null ? t || e.tail === null ? e.tail = null : e.tail.sibling = null : r.sibling = null; + } +} +function er(e) { + var t = e.alternate !== null && e.alternate.child === e.child, n = 0, r = 0; + if (t) + for (var o = e.child; o !== null; ) + n |= o.lanes | o.childLanes, r |= o.subtreeFlags & 14680064, r |= o.flags & 14680064, o.return = e, o = o.sibling; + else + for (o = e.child; o !== null; ) + n |= o.lanes | o.childLanes, r |= o.subtreeFlags, r |= o.flags, o.return = e, o = o.sibling; + return e.subtreeFlags |= r, e.childLanes = n, t; +} +function Fie(e, t, n) { + var r = t.pendingProps; + switch (cC(t), t.tag) { + case 2: + case 16: + case 15: + case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + return er(t), null; + case 1: + return Mr(t.type) && hy(), er(t), null; + case 3: + return r = t.stateNode, _c(), Zt(Fr), Zt(cr), bC(), r.pendingContext && (r.context = r.pendingContext, r.pendingContext = null), (e === null || e.child === null) && (ih(t) ? t.flags |= 4 : e === null || e.memoizedState.isDehydrated && !(t.flags & 256) || (t.flags |= 1024, si !== null && (xO(si), si = null))), pO(e, t), er(t), null; + case 5: + vC(t); + var o = Es(ap.current); + if (n = t.type, e !== null && t.stateNode != null) + rM(e, t, n, r, o), e.ref !== t.ref && (t.flags |= 512, t.flags |= 2097152); + else { + if (!r) { + if (t.stateNode === null) + throw Error(ge(166)); + return er(t), null; + } + if (e = Es(qi.current), ih(t)) { + r = t.stateNode, n = t.type; + var i = t.memoizedProps; + switch (r[Li] = t, r[op] = i, e = (t.mode & 1) !== 0, n) { + case "dialog": + Yt("cancel", r), Yt("close", r); + break; + case "iframe": + case "object": + case "embed": + Yt("load", r); + break; + case "video": + case "audio": + for (o = 0; o < hd.length; o++) + Yt(hd[o], r); + break; + case "source": + Yt("error", r); + break; + case "img": + case "image": + case "link": + Yt( + "error", + r + ), Yt("load", r); + break; + case "details": + Yt("toggle", r); + break; + case "input": + zj(r, i), Yt("invalid", r); + break; + case "select": + r._wrapperState = { wasMultiple: !!i.multiple }, Yt("invalid", r); + break; + case "textarea": + Dj(r, i), Yt("invalid", r); + } + M0(n, i), o = null; + for (var a in i) + if (i.hasOwnProperty(a)) { + var l = i[a]; + a === "children" ? typeof l == "string" ? r.textContent !== l && (i.suppressHydrationWarning !== !0 && oh(r.textContent, l, e), o = ["children", l]) : typeof l == "number" && r.textContent !== "" + l && (i.suppressHydrationWarning !== !0 && oh( + r.textContent, + l, + e + ), o = ["children", "" + l]) : Kd.hasOwnProperty(a) && l != null && a === "onScroll" && Yt("scroll", r); + } + switch (n) { + case "input": + Xm(r), Lj(r, i, !0); + break; + case "textarea": + Xm(r), Fj(r); + break; + case "select": + case "option": + break; + default: + typeof i.onClick == "function" && (r.onclick = my); + } + r = o, t.updateQueue = r, r !== null && (t.flags |= 4); + } else { + a = o.nodeType === 9 ? o : o.ownerDocument, e === "http://www.w3.org/1999/xhtml" && (e = jF(n)), e === "http://www.w3.org/1999/xhtml" ? n === "script" ? (e = a.createElement("div"), e.innerHTML = " + +
+ {value} +
+ + diff --git a/gradio-notebook/frontend/GradioWorkbook.tsx b/gradio-notebook/frontend/GradioWorkbook.tsx new file mode 100644 index 000000000..651ac6691 --- /dev/null +++ b/gradio-notebook/frontend/GradioWorkbook.tsx @@ -0,0 +1,126 @@ +import { + AIConfigEditor, + type AIConfigCallbacks, + type LogEvent, + type LogEventData, +} from "@lastmileai/aiconfig-editor"; +import type { AIConfig } from "aiconfig"; +import APITokenInput from "./APITokenInput"; +import { Flex, MantineProvider, type MantineTheme } from "@mantine/core"; +import WorkbookInfoAlert from "./WorkbookInfoAlert"; +import { useMemo } from "react"; +import { useCallback, useEffect } from "react"; +import { datadogLogs } from "@datadog/browser-logs"; +import * as uuid from "uuid"; + +type Props = { + aiconfig: AIConfig; + editorCallbacks: AIConfigCallbacks; + onSetApiToken: (apiToken: string) => Promise; + themeMode: "light" | "dark" | "system"; +}; + +const MODE = "gradio"; + +export default function GradioWorkbook(props: Props) { + // AIConfigEditor handles dynamic system theme switching by default, so only + // pass dark or light override + const themeMode = props.themeMode === "system" ? undefined : props.themeMode; + + const theme = useMemo( + () => ({ + colorScheme: themeMode, + defaultGradient: { + from: "#E88949", + to: "#E85921", + deg: 90, + }, + globalStyles: (theme: MantineTheme) => { + const inputBorderColor = + theme.colorScheme === "light" ? "#E5E7EB" : "#384152"; + const inputBackgroundColor = + theme.colorScheme === "light" ? "white" : "#374151"; + + return { + "div.editorBackground": { + background: theme.colorScheme === "light" ? "white" : "#0b0f19", + + ".mantine-Input-input": { + border: `1px solid ${inputBorderColor} !important`, + boxShadow: "0px 1px 4px 0px rgba(0, 0, 0, 0.05) inset", + backgroundColor: inputBackgroundColor, + ":focus": { + outline: "solid 1px #E85921 !important", + outlineOffset: "-1px", + }, + }, + }, + }; + }, + }), + [themeMode] + ); + + const setupTelemetry = useCallback(async () => { + // skip aiconfigrc check in gradio; enable telemetry by default. + // yarn dev will set this environment variable. + const isDev = (process.env.NODE_ENV ?? "production") === "development"; + if (isDev) { + return; + } + + // session_id is not reset whenever we refresh the page, + // so we are explicitly setting one here on initialization + // See test plan in https://github.com/lastmile-ai/gradio-workbook/pull/184 + // for more details + const sessionId: string = uuid.v4(); + datadogLogs.init({ + clientToken: "pub356987caf022337989e492681d1944a8", + env: process.env.NODE_ENV ?? "development", + service: "gradio-notebook", + site: "us5.datadoghq.com", + forwardErrorsToLogs: true, + sessionSampleRate: 100, + }); + + datadogLogs.setGlobalContextProperty("mode", MODE); + datadogLogs.setGlobalContextProperty("session_id_internal", sessionId); + }, []); + + useEffect(() => { + setupTelemetry(); + }, [setupTelemetry]); + + const logEventHandler = useCallback( + (event: LogEvent, data?: LogEventData) => { + try { + datadogLogs.logger.info(event, data); + } catch (e) { + // Ignore logger errors for now + } + }, + [] + ); + + const callbacks = { + ...props.editorCallbacks, + logEventHandler: logEventHandler, + }; + + return ( + +
+ + + + + +
+
+ ); +} diff --git a/gradio-notebook/frontend/Index.svelte b/gradio-notebook/frontend/Index.svelte new file mode 100644 index 000000000..4da0383fc --- /dev/null +++ b/gradio-notebook/frontend/Index.svelte @@ -0,0 +1,453 @@ + + + + + + {#if loading_status} + + {/if} + + diff --git a/gradio-notebook/frontend/WorkbookInfoAlert.tsx b/gradio-notebook/frontend/WorkbookInfoAlert.tsx new file mode 100644 index 000000000..e93d696c0 --- /dev/null +++ b/gradio-notebook/frontend/WorkbookInfoAlert.tsx @@ -0,0 +1,50 @@ +import { Alert, Anchor, Text, createStyles } from "@mantine/core"; +import { memo, useState } from "react"; + +// Hacky, but we need to explicitly set mantine style here since gradio overrides +// with `.gradio-container-id a` specificity for anchor elements. +// See mantine-color-anchor definition in +// https://github.com/mantinedev/mantine/blob/d1f047bd523f8f36ab9edf3aff5f6c2948736c5a/packages/%40mantine/core/src/core/MantineProvider/global.css#L353 +// TODO: Remove once overall style problem is fixed +const useStyles = createStyles((theme) => ({ + link: { + color: `${ + theme.colorScheme === "dark" ? theme.colors.blue[4] : theme.primaryColor + } !important`, + }, +})); + +export default memo(function WorkbookInfoAlert() { + const { classes } = useStyles(); + const [isAlertVisible, setIsAlertVisible] = useState(true); + + return ( + + ); +}); diff --git a/gradio-notebook/frontend/config/build.js b/gradio-notebook/frontend/config/build.js new file mode 100644 index 000000000..adabcaccd --- /dev/null +++ b/gradio-notebook/frontend/config/build.js @@ -0,0 +1,67 @@ +import * as fs from "fs"; +import { join } from "path"; +import { build } from "vite"; +import { plugins, make_gradio_plugin } from "./plugins.js"; +import { examine_module } from "./index.js"; + +export async function make_build({ component_dir, root_dir, gradio_path }) { + process.env.gradio_mode = "dev"; + const svelte_dir = join(root_dir, "assets", "svelte"); + + const module_meta = examine_module(component_dir, gradio_path, "build"); + try { + for (const comp of module_meta) { + const template_dir = comp.template_dir; + const source_dir = comp.frontend_dir; + + const pkg = JSON.parse( + fs.readFileSync(join(source_dir, "package.json"), "utf-8"), + ); + + const exports = [ + ["component", pkg.exports["."]], + ["example", pkg.exports["./example"]], + ].filter(([_, path]) => !!path); + + for (const [entry, path] of exports) { + try { + const x = await build({ + root: source_dir, + configFile: false, + define: { + "process.env.NODE_ENV": JSON.stringify("production"), + }, + plugins: [ + ...plugins, + make_gradio_plugin({ mode: "build", svelte_dir, component_dir}), + ], + build: { + emptyOutDir: true, + outDir: join(template_dir, entry), + lib: { + entry: join(source_dir, path), + fileName: "index.js", + formats: ["es"], + }, + minify: true, + rollupOptions: { + output: { + entryFileNames: (chunkInfo) => { + if (chunkInfo.isEntry) { + return "index.js"; + } + return `${chunkInfo.name.toLocaleLowerCase()}.js`; + }, + }, + }, + }, + }); + } catch (e) { + throw e; + } + } + } + } catch (e) { + throw e; + } +} \ No newline at end of file diff --git a/gradio-notebook/frontend/config/dev.js b/gradio-notebook/frontend/config/dev.js new file mode 100644 index 000000000..a73d4cf55 --- /dev/null +++ b/gradio-notebook/frontend/config/dev.js @@ -0,0 +1,138 @@ +import { join } from "path"; +import * as fs from "fs"; +import { createServer, createLogger } from "vite"; +import { plugins, make_gradio_plugin } from "./plugins.js"; +import { examine_module } from "./index.js"; + +const vite_messages_to_ignore = [ + "Default and named imports from CSS files are deprecated.", + "The above dynamic import cannot be analyzed by Vite.", +]; + +const logger = createLogger(); +const originalWarning = logger.warn; +logger.warn = (msg, options) => { + if (vite_messages_to_ignore.some((m) => msg.includes(m))) return; + + originalWarning(msg, options); +}; + +export async function create_server({ + component_dir, + root_dir, + frontend_port, + backend_port, + host, + gradio_path +}) { + process.env.gradio_mode = "dev"; + const imports = generate_imports(component_dir, gradio_path); + + const NODE_DIR = join(root_dir, "..", "..", "node", "dev"); + const svelte_dir = join(root_dir, "assets", "svelte"); + + try { + const server = await createServer({ + // customLogger: logger, + mode: "development", + configFile: false, + root: root_dir, + define: { + "process.env.NODE_ENV": JSON.stringify("development"), + }, + build: { + rollupOptions: { + external: ["bufferutil"] + } + }, + server: { + port: frontend_port, + host: host, + fs: { + allow: [root_dir, NODE_DIR, component_dir], + }, + }, + plugins: [ + ...plugins, + make_gradio_plugin({ + mode: "dev", + backend_port, + svelte_dir, + imports, + component_dir, + }), + ], + }); + + await server.listen(); + + console.info( + `[orange3]Frontend Server[/] (Go here): ${server.resolvedUrls?.local}`, + ); + } catch (e) { + console.error(e); + } +} + +function find_frontend_folders(start_path) { + if (!fs.existsSync(start_path)) { + console.warn("No directory found at:", start_path); + return []; + } + + if (fs.existsSync(join(start_path, "pyproject.toml"))) return [start_path]; + + const results = []; + const dir = fs.readdirSync(start_path); + dir.forEach((dir) => { + const filepath = join(start_path, dir); + if (fs.existsSync(filepath)) { + if (fs.existsSync(join(filepath, "pyproject.toml"))) + results.push(filepath); + } + }); + + return results; +} + +function to_posix(_path) { + const isExtendedLengthPath = /^\\\\\?\\/.test(_path); + const hasNonAscii = /[^\u0000-\u0080]+/.test(_path); // eslint-disable-line no-control-regex + + if (isExtendedLengthPath || hasNonAscii) { + return _path; + } + + return _path.replace(/\\/g, "/"); +} + +function generate_imports(component_dir, gradio_path) { + const components = find_frontend_folders(component_dir); + + const component_entries = components.flatMap((component) => { + return examine_module(component, gradio_path, "dev"); + }); + + const imports = component_entries.reduce((acc, component) => { + const pkg = JSON.parse( + fs.readFileSync(join(component.frontend_dir, "package.json"), "utf-8"), + ); + + const exports = { + component: pkg.exports["."], + example: pkg.exports["./example"], + }; + + const example = exports.example + ? `example: () => import("${to_posix( + join(component.frontend_dir, exports.example), + )}"),\n` + : ""; + return `${acc}"${component.component_class_id}": { + ${example} + component: () => import("${to_posix(component.frontend_dir)}") + },\n`; + }, ""); + + return `{${imports}}`; +} \ No newline at end of file diff --git a/gradio-notebook/frontend/config/examine.py b/gradio-notebook/frontend/config/examine.py new file mode 100644 index 000000000..9d3473fe8 --- /dev/null +++ b/gradio-notebook/frontend/config/examine.py @@ -0,0 +1,71 @@ +import argparse +import importlib +import inspect +import os +from pathlib import Path + +from gradio.blocks import BlockContext +from gradio.components import Component +from tomlkit import dumps, parse + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Description of your program") + parser.add_argument("-m", "--mode", help="Build mode or dev mode") + args = parser.parse_args() + + with open("../pyproject.toml") as f: + pyproject_source = f.read() + + pyproject_toml = parse(pyproject_source) + keywords = pyproject_toml["project"]["keywords"] + custom_component = ( + "gradio-custom-component" in keywords or "gradio custom component" in keywords + ) + if not custom_component: + exit(0) + + module_name = pyproject_toml["project"]["name"] + module = importlib.import_module(module_name) + + artifacts: list[str] = pyproject_toml["tool"]["hatch"]["build"]["artifacts"] + + def get_relative_path(path): + return ( + os.path.abspath(Path(__file__).parent / path) + .replace(os.path.abspath(os.getcwd()), "") + .lstrip("/") + ) + + for name in dir(module): + value = getattr(module, name) + if name.startswith("__"): + continue + + if inspect.isclass(value) and ( + issubclass(value, BlockContext) or issubclass(value, Component) + ): + file_location = Path(inspect.getfile(value)).parent + + found = [ + x + for x in artifacts + if get_relative_path(Path("..") / x) + == get_relative_path(file_location / value.TEMPLATE_DIR) + ] + if len(found) == 0: + artifacts.append( + os.path.abspath(file_location / value.TEMPLATE_DIR) + .replace(os.path.abspath(Path("..")), "") + .lstrip("/") + ) + + print( + f"{name}~|~|~|~{os.path.abspath(file_location / value.TEMPLATE_DIR)}~|~|~|~{os.path.abspath(file_location / value.FRONTEND_DIR)}~|~|~|~{value.get_component_class_id()}" + ) + continue + + if args.mode == "build": + pyproject_toml["tool"]["hatch"]["build"]["artifacts"] = artifacts + + with open("../pyproject.toml", "w") as f: + f.write(dumps(pyproject_toml)) diff --git a/gradio-notebook/frontend/config/index.js b/gradio-notebook/frontend/config/index.js new file mode 100644 index 000000000..350596f9a --- /dev/null +++ b/gradio-notebook/frontend/config/index.js @@ -0,0 +1,185 @@ +import { spawn, spawnSync } from "node:child_process"; +import * as net from "net"; +import fs from "fs"; +import { create_server } from "./dev.js"; +import { make_build } from "./build.js"; +import { join } from "path"; +import which from "which"; + +const args = process.argv.slice(2); +// get individual args as `--arg value` or `value` + +function parse_args(args) { + const arg_map = {}; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (arg.startsWith("--")) { + const name = arg.slice(2); + const value = args[i + 1]; + arg_map[name] = value; + i++; + } + } + return arg_map; +} + +const parsed_args = parse_args(args); + +async function run() { + const gradio_path = spawnSync( + "python", + ["-c", `"import gradio; print(gradio.__file__)"`], + { + shell: true, + stdio: "pipe", + encoding: "utf8", + }, + ).stdout.trim(); + + const component_dir = join(process.cwd(), ".."); + const root = join(gradio_path, "..", "templates", "frontend"); + + fs.cpSync(join(root), join(component_dir,"frontend", "node_modules", "__gradio__"), { recursive: true }) + if (parsed_args.mode === "build") { + await make_build({ + component_dir, + root_dir: join(component_dir,"frontend", "node_modules", "__gradio__"), + gradio_path + }); + } else { + const [backend_port, frontend_port] = await find_free_ports(7860, 8860); + const options = { + component_dir, + root_dir: join(component_dir,"frontend", "node_modules", "__gradio__"), + frontend_port, + backend_port, + host: parsed_args.host, + gradio_path, + ...parsed_args, + }; + process.env.GRADIO_BACKEND_PORT = backend_port.toString(); + + const app_path = join(options.component_dir, "demo", "app.py"); + + const _process = spawn( + which.sync("gradio"), + [app_path, "--watch-dirs", options.component_dir], + { + shell: true, + stdio: "pipe", + cwd: options.component_dir, + env: { + ...process.env, + GRADIO_SERVER_PORT: backend_port.toString(), + PYTHONUNBUFFERED: "true", + }, + }, + ); + + _process.stdout.setEncoding("utf8"); + _process.stderr.setEncoding("utf8"); + + function std_out(mode) { + return function (data) { + const _data = data.toString(); + + if (_data.includes("Running on")) { + create_server({ + component_dir: options.component_dir, + root_dir: options.root_dir, + frontend_port, + backend_port, + host: options.host, + gradio_path: options.gradio_path, + }); + } + + process[mode].write(_data); + }; + } + + _process.stdout.on("data", std_out("stdout")); + _process.stderr.on("data", std_out("stderr")); + _process.on("exit", () => kill_process(_process)); + _process.on("close", () => kill_process(_process)); + _process.on("disconnect", () => kill_process(_process)); + } +} + +function kill_process(process) { + process.kill("SIGKILL"); +} + +export { create_server }; + +run(); + +export async function find_free_ports(start_port, end_port) { + let found_ports = []; + + for (let port = start_port; port < end_port; port++) { + if (await is_free_port(port)) { + found_ports.push(port); + if (found_ports.length === 2) { + return [found_ports[0], found_ports[1]]; + } + } + } + + throw new Error( + `Could not find free ports: there were not enough ports available.`, + ); +} + +export function is_free_port(port) { + return new Promise((accept, reject) => { + const sock = net.createConnection(port, "127.0.0.1"); + sock.once("connect", () => { + sock.end(); + accept(false); + }); + sock.once("error", (e) => { + sock.destroy(); + //@ts-ignore + if (e.code === "ECONNREFUSED") { + accept(true); + } else { + reject(e); + } + }); + }); +} + +function is_truthy(value) { + return value !== null && value !== undefined && value !== false; +} + +export function examine_module(component_dir, gradio_path, mode) { + const _process = spawnSync( + which.sync("python"), + [join(gradio_path, "..", "node", "examine.py"), "-m", mode], + { + cwd: join(component_dir, "backend"), + stdio: "pipe", + }, + ); + + return _process.stdout + .toString() + .trim() + .split("\n") + .map((line) => { + const [name, template_dir, frontend_dir, component_class_id] = + line.split("~|~|~|~"); + if (name && template_dir && frontend_dir && component_class_id) { + return { + name: name.trim(), + template_dir: template_dir.trim(), + frontend_dir: frontend_dir.trim(), + component_class_id: component_class_id.trim(), + }; + } + return false; + }) + .filter(is_truthy); +} \ No newline at end of file diff --git a/gradio-notebook/frontend/config/placeholder.js b/gradio-notebook/frontend/config/placeholder.js new file mode 100644 index 000000000..56004c9f9 --- /dev/null +++ b/gradio-notebook/frontend/config/placeholder.js @@ -0,0 +1 @@ +export default {} \ No newline at end of file diff --git a/gradio-notebook/frontend/config/plugins.js b/gradio-notebook/frontend/config/plugins.js new file mode 100644 index 000000000..2d5590977 --- /dev/null +++ b/gradio-notebook/frontend/config/plugins.js @@ -0,0 +1,99 @@ +import { svelte } from "@sveltejs/vite-plugin-svelte"; +import { transform } from "sucrase"; +import sucrase from "@rollup/plugin-sucrase"; +import { join } from "path"; +import react from "@vitejs/plugin-react"; +import preprocessReact from "svelte-preprocess-react/preprocessReact"; + +const RE_SVELTE_IMPORT = + /import\s+([\w*{},\s]+)\s+from\s+['"](svelte|svelte\/internal)['"]/g; +const RE_BARE_SVELTE_IMPORT = /import ("|')svelte(\/\w+)*("|')(;)*/g; +export const plugins = [ + + react(), + + + svelte({ + onwarn(warning, handler) { + handler(warning); + }, + prebundleSvelteLibraries: false, + hot: true, + compilerOptions: { + discloseVersion: false, + }, + preprocess: [ + { + script: ({ attributes, filename, content }) => { + if (attributes.lang === "ts") { + const compiledCode = transform(content, { + transforms: ["typescript"], + keepUnusedImports: true, + }); + return { + code: compiledCode.code, + map: compiledCode.sourceMap, + }; + } + }, + }, + preprocessReact() + ], + }), + sucrase({ + transforms: ["typescript"], + include: ["**/*.ts", "**/*.tsx"], + }), + +]; + +export function make_gradio_plugin({ + mode, + svelte_dir, + backend_port, + imports, + component_dir, +}) { + return { + name: "gradio", + enforce: "pre", + transform(code) { + const new_code = code + .replace(RE_SVELTE_IMPORT, (str, $1, $2) => { + const identifier = $1.trim().startsWith("* as") + ? $1.replace("* as", "").trim() + : $1.trim(); + return `const ${identifier.replace( + " as ", + ": ", + )} = window.__gradio__svelte__internal;`; + }) + .replace(RE_BARE_SVELTE_IMPORT, ""); + return { + code: new_code, + map: null, + }; + }, + resolveId(id, importer) { + if ( + id !== "svelte" && + id !== "svelte/internal" && + id.startsWith("svelte/") + ) { + return join(svelte_dir, "svelte-submodules.js"); + } + }, + transformIndexHtml(html) { + return mode === "dev" + ? [ + { + tag: "script", + children: `window.__GRADIO_DEV__ = "dev"; + window.__GRADIO__SERVER_PORT__ = ${backend_port}; + window.__GRADIO__CC__ = ${imports};`, + }, + ] + : undefined; + }, + }; +} \ No newline at end of file diff --git a/gradio-notebook/frontend/package.json b/gradio-notebook/frontend/package.json new file mode 100644 index 000000000..8cc7419c1 --- /dev/null +++ b/gradio-notebook/frontend/package.json @@ -0,0 +1,48 @@ +{ + "name": "gradio_notebook", + "version": "0.2.9", + "description": "Gradio UI packages", + "type": "module", + "author": "", + "license": "ISC", + "private": false, + "main_changeset": true, + "exports": { + ".": "./Index.svelte", + "./example": "./Example.svelte", + "./package.json": "./package.json" + }, + "scripts": { + "build": "node config/index.js --mode build", + "dev": "node config/index.js --mode dev" + }, + "dependencies": { + "@datadog/browser-logs": "^5.8.0", + "@gradio/atoms": "0.3.0", + "@gradio/client": "^0.10.1", + "@gradio/statustracker": "0.4.0", + "@gradio/utils": "0.2.0", + "@lastmileai/aiconfig-editor": "^0.1.26", + "@mantine/core": "^6.0.7", + "@tabler/icons-react": "^2.44.0", + "@types/uuid": "^9.0.7", + "@vitejs/plugin-react": "^4.2.1", + "aiconfig": "^1.1.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "svelte": "^4.2.8", + "svelte-preprocess-react": "^0.16.0", + "vite-plugin-commonjs": "^0.10.1" + }, + "devDependencies": { + "@originjs/vite-plugin-commonjs": "^1.0.3", + "@rollup/plugin-sucrase": "^5.0.1", + "@sveltejs/vite-plugin-svelte": "^3.0.1", + "@types/react": "^18.2.48", + "@types/which": "^3.0.0", + "rollup-plugin-ignore": "^1.0.10", + "sucrase": "^3.34.0", + "vite": "^5.0.11", + "which": "4.0.0" + } +} \ No newline at end of file diff --git a/gradio-notebook/frontend/styles.css b/gradio-notebook/frontend/styles.css new file mode 100644 index 000000000..9097c9345 --- /dev/null +++ b/gradio-notebook/frontend/styles.css @@ -0,0 +1,82 @@ +/* +* Gradio applies higher-specificity styles which override our mantine styles in many cases. We +* can override the important ones here with more specific styles +*/ + + +/* + * Add the right padding that mantine adds when right content (e.g. info icon) is shown, overriding + * the gradio padding styles so the info icon doesn't overlap token text + */ +.hfTokenInput.mantine-InputWrapper-root.mantine-TextInput-root input { + padding-right: 1.875rem; +} + +/* +* For all buttons, excluding menu dropdown and .ghost class buttons, apply the gradio color +* styles +*/ +.mantine-Button-root.mantine-UnstyledButton-root:not(.ghost):not([aria-haspopup="menu"]){ + background: linear-gradient(to bottom right, #ffedd5, #fdba74 100%); + border: 1px solid #fed7aa; + box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.05); + color: #ea580c !important; + font-size: 16px;/* var(--button-large-text-size) */ + font-weight: 600; /* var(--button-large-text-weight) */ + padding: 0 1.25rem; +} + +/* + * Same as above, only on hover + */ +.mantine-Button-root.mantine-UnstyledButton-root:not(.ghost):not([aria-haspopup="menu"]):hover{ + background: linear-gradient(to bottom right, #ffedd5, #fed7aa); +} + +/* + * Same as above, only on disabled. See gradio styles for these colors, specifically + * .secondary[disabled] since .primary doesn't make enough of a contrast + */ + .mantine-Button-root.mantine-UnstyledButton-root:not(.ghost):not([aria-haspopup="menu"]):disabled{ + background: linear-gradient(to bottom right, #e5e7eb, #e5e7eb);/* var(--button-secondary-background-fill-hover) */ + border-color: #e5e7eb; /* var(--button-secondary-border-color-hover) */ + color: #374151 !important; /* var(--button-secondary-text-color-hover) */ + cursor: not-allowed; + pointer-events: auto; /* mantine sets to disabled, we want the cursor to show per gradio styles */ +} + +/* + * For all buttons, excluding menu dropdown, .ghost class buttons, and .runPromptButton, apply + * this dark text color (from gradio text) so the text can be seen over orange button background + * regardless of theme + */ +.mantine-Button-root.mantine-UnstyledButton-root:not(.ghost):not([aria-haspopup="menu"]):not(.runPromptButton) { + color: #374151; +} + +/* + * Specifically set the .runPromptButton to have the desired styles specified in our custom gradio theme + */ +.mantine-Button-root.mantine-UnstyledButton-root.runPromptButton { + border-radius: 8px; + height: auto; + margin: 4px; + margin-top: 30px; + padding: 0.625rem !important; +} + +.mantine-Menu-dropdown { + border: 0.0625rem solid #373A40; +} + +.mantine-Tabs-tabsList { + gap: 12px; +} + +.mantine-TextInput-input[data-with-icon] { + padding-left: 2.25rem; +} + +.mantine-Title-root.mantine-Text-root { + font-size: 2rem; +} diff --git a/gradio-notebook/frontend/tsconfig.json b/gradio-notebook/frontend/tsconfig.json new file mode 100644 index 000000000..f83ef0baf --- /dev/null +++ b/gradio-notebook/frontend/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler", + "target": "es2017", + /** + Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using `import type` instead of `import` for Types. + */ + "verbatimModuleSyntax": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + + "noEmit": true, + "allowImportingTsExtensions": true, + "allowJs": false, + "isolatedModules": true, + "jsx": "react-jsx", + "noImplicitReturns": true, + "noImplicitThis": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "noUnusedParameters": true + }, + "include": ["**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.svelte"] +} diff --git a/gradio-notebook/frontend/yarn.lock b/gradio-notebook/frontend/yarn.lock new file mode 100644 index 000000000..0f63b8f3b --- /dev/null +++ b/gradio-notebook/frontend/yarn.lock @@ -0,0 +1,4346 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.23.5": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" + integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== + dependencies: + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" + integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" + integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.18.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" + integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" + integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + +"@babel/traverse@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" + integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" + integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@datadog/browser-core@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@datadog/browser-core/-/browser-core-5.8.0.tgz#912cad282651160398f2c088a796724f40e404a8" + integrity sha512-aNMSB+tLu5aKm/uzswy5d6KDgGtMs2uMxsGWdZ3lmqorEHLXk5kPNTEVRJfeE49EJaWaxiTYQuuuLo0c5S0rUA== + +"@datadog/browser-logs@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@datadog/browser-logs/-/browser-logs-5.8.0.tgz#288a5cad014db82801eb1dc7174dac8f8865b264" + integrity sha512-7UnLrYEICdY4KLGct9q88f5Xxaad+47He1H7PPnfj1p6HDHtadjRYxb/+NQxoezWFLDpqIIgQgqr4GDQYgtOFQ== + dependencies: + "@datadog/browser-core" "5.8.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.11.1": + version "11.11.3" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" + integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@floating-ui/core@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" + integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== + dependencies: + "@floating-ui/utils" "^0.2.1" + +"@floating-ui/dom@^1.2.1": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.0.tgz#282f31c5c7d2aaef3999e09f2c06280a020364d1" + integrity sha512-SZ0BEXzsaaS6THZfZJUcAobbZTD+MvfGM42bxgeg0Tnkp4/an/avqwAXiVLsFtIBZtfsx3Ymvwx0+KnnhdA/9g== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.1" + +"@floating-ui/react-dom@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-1.3.0.tgz#4d35d416eb19811c2b0e9271100a6aa18c1579b3" + integrity sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g== + dependencies: + "@floating-ui/dom" "^1.2.1" + +"@floating-ui/react@^0.19.1": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.19.2.tgz#c6e4d2097ed0dca665a7c042ddf9cdecc95e9412" + integrity sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w== + dependencies: + "@floating-ui/react-dom" "^1.3.0" + aria-hidden "^1.1.3" + tabbable "^6.0.1" + +"@floating-ui/utils@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== + +"@formatjs/ecma402-abstract@1.11.4": + version "1.11.4" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" + integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw== + dependencies: + "@formatjs/intl-localematcher" "0.2.25" + tslib "^2.1.0" + +"@formatjs/fast-memoize@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz#e6f5aee2e4fd0ca5edba6eba7668e2d855e0fc21" + integrity sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg== + dependencies: + tslib "^2.1.0" + +"@formatjs/icu-messageformat-parser@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz#a54293dd7f098d6a6f6a084ab08b6d54a3e8c12d" + integrity sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/icu-skeleton-parser" "1.3.6" + tslib "^2.1.0" + +"@formatjs/icu-skeleton-parser@1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz#4ce8c0737d6f07b735288177049e97acbf2e8964" + integrity sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + tslib "^2.1.0" + +"@formatjs/intl-localematcher@0.2.25": + version "0.2.25" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz#60892fe1b271ec35ba07a2eb018a2dd7bca6ea3a" + integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA== + dependencies: + tslib "^2.1.0" + +"@google-ai/generativelanguage@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@google-ai/generativelanguage/-/generativelanguage-1.1.0.tgz#e9a03b363b64c6ab18e1d30f5df36c028e92054d" + integrity sha512-GQG67TUM9CD//R/HrOSrPSFygiBBqGo38IdaGZ4XejxLdw3wryetPkUMvuioCvgx7ZlV2ONNrQUh8m6m1Lp5ng== + dependencies: + google-gax "^4.0.3" + +"@gradio/atoms@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@gradio/atoms/-/atoms-0.3.0.tgz#96a9a22ee848da7729ec7841ef57ef4427aadf77" + integrity sha512-7WQktAb+d8wEjTIYGzyQ8OdWsFSr0NA8adp8G/jAKoMZILJEoAAZSTnahCTSSQcbYIomVdfYA0ZmM342RCd8gg== + dependencies: + "@gradio/icons" "^0.3.0" + "@gradio/utils" "^0.2.0" + +"@gradio/atoms@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@gradio/atoms/-/atoms-0.3.1.tgz#f3ed78cac8bfd496030e83221d2ddab12a36acfe" + integrity sha512-P2u1Qud/EmwfGMD9HZdSkw4L3RznGUE3owBx4lRY7JP/1J3sDqy/wN8pZFex+kPKripX29+IiH6+4TRqSs2zFw== + dependencies: + "@gradio/icons" "^0.3.1" + "@gradio/utils" "^0.2.0" + +"@gradio/client@^0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@gradio/client/-/client-0.10.1.tgz#cdd90efbc0156d8e338af61031d2c88f21134f11" + integrity sha512-C3uWIWEqlpTuG3sfPw3K3+26Fkr+jXPL8U2lC1u7DlBm25rHdGMVX17o8ApW7XcFtznfaLceVtpnDPkDpQTJlw== + dependencies: + bufferutil "^4.0.7" + semiver "^1.1.0" + ws "^8.13.0" + +"@gradio/column@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@gradio/column/-/column-0.1.0.tgz#56a583b79920a7a2b706b566b90c8ffe501cadd3" + integrity sha512-P24nqqVnMXBaDA1f/zSN5HZRho4PxP8Dq+7VltPHlmxIEiZYik2AJ4J0LeuIha34FDO0guu/16evdrpvGIUAfw== + +"@gradio/icons@^0.3.0", "@gradio/icons@^0.3.1": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@gradio/icons/-/icons-0.3.2.tgz#fde4107a9b752d3ec9dbf13c489b7d562b1be2c9" + integrity sha512-l0jGfSRFiZ/doAXz6L+JEp6MN/a1BTZm88kqVoSnYrKSytP6bnBLRWeF4UvOi2T2fbVrNKenAEt/lwxJE5vK4w== + +"@gradio/statustracker@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@gradio/statustracker/-/statustracker-0.4.0.tgz#072e4a6a4ef6903de4a646c932609b26e24bf486" + integrity sha512-Kgk4R2edFX4IK2UBit4UwmRfSrmvkYjKbiMfupj3qxHFwiDHT4YH4rAOqBlvdEWbCYMmLN6EyqqFaYb2+0GwXA== + dependencies: + "@gradio/atoms" "^0.3.0" + "@gradio/column" "^0.1.0" + "@gradio/icons" "^0.3.0" + "@gradio/utils" "^0.2.0" + +"@gradio/theme@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@gradio/theme/-/theme-0.2.0.tgz#49b6b3f31a5c860f4ec18777bd241de8549562e5" + integrity sha512-33c68Nk7oRXLn08OxPfjcPm7S4tXGOUV1I1bVgzdM2YV5o1QBOS1GEnXPZPu/CEYPePLMB6bsDwffrLEyLGWVQ== + +"@gradio/utils@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@gradio/utils/-/utils-0.2.0.tgz#9080cb03291760eca0112959398cc6212d0c636d" + integrity sha512-YkwzXufi6IxQrlMW+1sFo8Yn6F9NLL69ZoBsbo7QEhms0v5L7pmOTw+dfd7M3dwbRP2lgjrb52i1kAIN3n6aqQ== + dependencies: + "@gradio/theme" "^0.2.0" + svelte-i18n "^3.6.0" + +"@gradio/utils@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@gradio/utils/-/utils-0.2.1.tgz#ad16645027e900ff64003b7d4739c988b8619365" + integrity sha512-7XnnY9R/FiJ55M2Sw+gHjSvTql5VWG3j2sh+Wt1jLnSURQARoAqizgo2Sg1WZU0igXzrrc9WVZdGE45m5qCHeg== + dependencies: + "@gradio/theme" "^0.2.0" + svelte-i18n "^3.6.0" + +"@grpc/grpc-js@~1.9.6": + version "1.9.14" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.14.tgz#236378822876cbf7903f9d61a0330410e8dcc5a1" + integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.8": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + +"@huggingface/inference@^2.6.4": + version "2.6.4" + resolved "https://registry.yarnpkg.com/@huggingface/inference/-/inference-2.6.4.tgz#a17d73e6e6558670a607752c44ac5868286ceb09" + integrity sha512-Xna7arltBSBoKaH3diGi3sYvkExgJMd/pF4T6vl2YbmDccbr1G/X5EPZ2048p+YgrJYG1jTYFCtY6Dr3HvJaow== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.22" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lastmileai/aiconfig-editor@^0.1.26": + version "0.1.26" + resolved "https://registry.yarnpkg.com/@lastmileai/aiconfig-editor/-/aiconfig-editor-0.1.26.tgz#0c9b3151dcc955fb4bb32bd0b1ca360c54b0d28c" + integrity sha512-z8ZTiYjj7to7MbMj5Mf7xwYkx0EY7iOCrzDkirjRJ+Yp3//Lvzez/0NEFFw4JCVTk9akajZcy795h4WRpawbdA== + dependencies: + "@emotion/react" "^11.11.1" + "@mantine/carousel" "^6.0.7" + "@mantine/core" "^6.0.7" + "@mantine/dates" "^6.0.16" + "@mantine/dropzone" "^6.0.7" + "@mantine/form" "^6.0.7" + "@mantine/hooks" "^6.0.7" + "@mantine/modals" "^6.0.7" + "@mantine/notifications" "^6.0.7" + "@mantine/prism" "^6.0.7" + "@monaco-editor/react" "^4.6.0" + "@tabler/icons-react" "^2.44.0" + aiconfig "^1.1.6" + lodash "^4.17.21" + node-fetch "^3.3.2" + react-error-boundary "^4.0.12" + react-markdown "^8.0.6" + remark-gfm "^3.0.1" + uuid "^9.0.1" + +"@mantine/carousel@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/carousel/-/carousel-6.0.21.tgz#3e2a77e365014b314f90e8b474b350432c926640" + integrity sha512-cQAQ5RlVhSrYA8aez/euzs5nQKcGcwxVTS/gf46GEZ0gcDJXlymZPbc2OopH/WDczEaMWOF7wz8R9+uG1hYNCg== + dependencies: + "@mantine/utils" "6.0.21" + +"@mantine/core@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/core/-/core-6.0.21.tgz#6e3a1b8d0f6869518a644d5f5e3d55a5db7e1e51" + integrity sha512-Kx4RrRfv0I+cOCIcsq/UA2aWcYLyXgW3aluAuW870OdXnbII6qg7RW28D+r9D76SHPxWFKwIKwmcucAG08Divg== + dependencies: + "@floating-ui/react" "^0.19.1" + "@mantine/styles" "6.0.21" + "@mantine/utils" "6.0.21" + "@radix-ui/react-scroll-area" "1.0.2" + react-remove-scroll "^2.5.5" + react-textarea-autosize "8.3.4" + +"@mantine/dates@^6.0.16": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/dates/-/dates-6.0.21.tgz#a140da22bd4188aff446ddb5d3bcf37b658b0608" + integrity sha512-nSX7MxNkHyyDJqEJOT7Wg930jBfgWz+3pnoWo601cYDvFjh5GgcRz66v36rnMJFK1/56k5G9rWzUOzuM94j6hg== + dependencies: + "@mantine/utils" "6.0.21" + +"@mantine/dropzone@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/dropzone/-/dropzone-6.0.21.tgz#65867e5bbfe59094afc6751206cfc1466744f72b" + integrity sha512-v63tL4x7R1CvBNnxJVaVPhBVnQcfROQvyOV0xK/v0ZGNAzFxjJoiCRMGdlBjxnEawM0dRhNs/46ItpBgjQIr6g== + dependencies: + "@mantine/utils" "6.0.21" + react-dropzone "14.2.3" + +"@mantine/form@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/form/-/form-6.0.21.tgz#0d717631aa90b9cce834a479f4c8d7e9c0e1969b" + integrity sha512-d4tlxyZic7MSDnaPx/WliCX1sRFDkUd2nxx4MxxO2T4OSek0YDqTlSBCxeoveu60P+vrQQN5rbbsVsaOJBe4SQ== + dependencies: + fast-deep-equal "^3.1.3" + klona "^2.0.5" + +"@mantine/hooks@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-6.0.21.tgz#bc009d8380ad18455b90f3ddaf484de16a13da95" + integrity sha512-sYwt5wai25W6VnqHbS5eamey30/HD5dNXaZuaVEAJ2i2bBv8C0cCiczygMDpAFiSYdXoSMRr/SZ2CrrPTzeNew== + +"@mantine/modals@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/modals/-/modals-6.0.21.tgz#6d7f89b55d1817c0a20b10989bf69ecb03f7a642" + integrity sha512-Gx2D/ZHMUuYF197JKMWey4K9FeGP9rxYp4lmAEXUrjXiST2fEhLZOdiD75KuOHXd1/sYAU9NcNRo9wXrlF/gUA== + dependencies: + "@mantine/utils" "6.0.21" + +"@mantine/notifications@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/notifications/-/notifications-6.0.21.tgz#bec53664abce13a2cc61a1be1840d82a746f62da" + integrity sha512-qsrqxuJHK8b67sf9Pfk+xyhvpf9jMsivW8vchfnJfjv7yz1lLvezjytMFp4fMDoYhjHnDPOEc/YFockK4muhOw== + dependencies: + "@mantine/utils" "6.0.21" + react-transition-group "4.4.2" + +"@mantine/prism@^6.0.7": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/prism/-/prism-6.0.21.tgz#ad209ecee3d5a92443cf4373a6405ba9bb32bf43" + integrity sha512-M9hDUAuuxiINI7f07V0qlX532UXlOTpBqNcG1WWm80t6C0fHjzkTvFj77QpnGS73+MI88mV8ru458y10bQjTBA== + dependencies: + "@mantine/utils" "6.0.21" + prism-react-renderer "^1.2.1" + +"@mantine/styles@6.0.21": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/styles/-/styles-6.0.21.tgz#8ea097fc76cbb3ed55f5cfd719d2f910aff5031b" + integrity sha512-PVtL7XHUiD/B5/kZ/QvZOZZQQOj12QcRs3Q6nPoqaoPcOX5+S7bMZLMH0iLtcGq5OODYk0uxlvuJkOZGoPj8Mg== + dependencies: + clsx "1.1.1" + csstype "3.0.9" + +"@mantine/utils@6.0.21": + version "6.0.21" + resolved "https://registry.yarnpkg.com/@mantine/utils/-/utils-6.0.21.tgz#6185506e91cba3e308aaa8ea9ababc8e767995d6" + integrity sha512-33RVDRop5jiWFao3HKd3Yp7A9mEq4HAJxJPTuYm1NkdqX6aTKOQK7wT8v8itVodBp+sb4cJK6ZVdD1UurK/txQ== + +"@monaco-editor/loader@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.4.0.tgz#f08227057331ec890fa1e903912a5b711a2ad558" + integrity sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg== + dependencies: + state-local "^1.0.6" + +"@monaco-editor/react@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.6.0.tgz#bcc68671e358a21c3814566b865a54b191e24119" + integrity sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw== + dependencies: + "@monaco-editor/loader" "^1.4.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@originjs/vite-plugin-commonjs@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@originjs/vite-plugin-commonjs/-/vite-plugin-commonjs-1.0.3.tgz#2e3fb11ec78847da9422b79c103953f94d667f09" + integrity sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ== + dependencies: + esbuild "^0.14.14" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@radix-ui/number@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.0.0.tgz#4c536161d0de750b3f5d55860fc3de46264f897b" + integrity sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/primitive@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.0.tgz#e1d8ef30b10ea10e69c76e896f608d9276352253" + integrity sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-compose-refs@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz#37595b1f16ec7f228d698590e78eeed18ff218ae" + integrity sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-context@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.0.tgz#f38e30c5859a9fb5e9aa9a9da452ee3ed9e0aee0" + integrity sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-direction@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.0.0.tgz#a2e0b552352459ecf96342c79949dd833c1e6e45" + integrity sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-presence@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.0.tgz#814fe46df11f9a468808a6010e3f3ca7e0b2e84a" + integrity sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-primitive@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz#c1ebcce283dd2f02e4fbefdaa49d1cb13dbc990a" + integrity sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.1" + +"@radix-ui/react-scroll-area@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.2.tgz#26c906d351b56835c0301126b24574c9e9c7b93b" + integrity sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/number" "1.0.0" + "@radix-ui/primitive" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-context" "1.0.0" + "@radix-ui/react-direction" "1.0.0" + "@radix-ui/react-presence" "1.0.0" + "@radix-ui/react-primitive" "1.0.1" + "@radix-ui/react-use-callback-ref" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-slot@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.1.tgz#e7868c669c974d649070e9ecbec0b367ee0b4d81" + integrity sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + +"@radix-ui/react-use-callback-ref@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz#9e7b8b6b4946fe3cbe8f748c82a2cce54e7b6a90" + integrity sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-layout-effect@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz#2fc19e97223a81de64cd3ba1dc42ceffd82374dc" + integrity sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@rollup/plugin-sucrase@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-sucrase/-/plugin-sucrase-5.0.2.tgz#f8b8b54ad789a47fa882b968a76cede0194eea6e" + integrity sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA== + dependencies: + "@rollup/pluginutils" "^5.0.1" + sucrase "^3.27.0" + +"@rollup/pluginutils@^5.0.1": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" + integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== + +"@rollup/rollup-android-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" + integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== + +"@rollup/rollup-darwin-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" + integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== + +"@rollup/rollup-darwin-x64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" + integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" + integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== + +"@rollup/rollup-linux-arm64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" + integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== + +"@rollup/rollup-linux-arm64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" + integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== + +"@rollup/rollup-linux-riscv64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" + integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== + +"@rollup/rollup-linux-x64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" + integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== + +"@rollup/rollup-linux-x64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" + integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== + +"@rollup/rollup-win32-arm64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" + integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== + +"@rollup/rollup-win32-ia32-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" + integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== + +"@rollup/rollup-win32-x64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" + integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== + +"@sveltejs/vite-plugin-svelte-inspector@^2.0.0-next.0 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz#365afaa0dd63517838ce4686a3dc3982be348a9b" + integrity sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg== + dependencies: + debug "^4.3.4" + +"@sveltejs/vite-plugin-svelte@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.1.tgz#475d3496a2a1c7fb4ec6ee3a4d3f0af01fb052e1" + integrity sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA== + dependencies: + "@sveltejs/vite-plugin-svelte-inspector" "^2.0.0-next.0 || ^2.0.0" + debug "^4.3.4" + deepmerge "^4.3.1" + kleur "^4.1.5" + magic-string "^0.30.5" + svelte-hmr "^0.15.3" + vitefu "^0.2.5" + +"@tabler/icons-react@^2.44.0": + version "2.46.0" + resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.46.0.tgz#a24cf737687a18cdf1b0e1189ef69462e82dbd89" + integrity sha512-X8MRxuslIOFqMjAo+GvUZDpjlOwNYNJTuOsHXf/NBvVI6ygqUf0FUNsDLLA5fQ6k6KtRwxMlgGB+eR8ZG1UP0g== + dependencies: + "@tabler/icons" "2.46.0" + prop-types "^15.7.2" + +"@tabler/icons@2.46.0": + version "2.46.0" + resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-2.46.0.tgz#e629df8901b799372914c694000cc2ea3d45bb6b" + integrity sha512-Q5G8Pj5IO+Uhc6pszpu5/hGYY018JwEzzvmuqr+gKJtfIvAHA3umpwUilMRLEy89p+WCP+YsDhicMhfBCCv1qA== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/caseless@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" + integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/hast@^2.0.0": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.9.tgz#a9a1b5bbce46e8a1312e977364bacabc8e93d2cf" + integrity sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw== + dependencies: + "@types/unist" "^2" + +"@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-fetch@^2.6.4": + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.6.tgz#6adf4241460e28be53836529c033a41985f85b6e" + integrity sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q== + dependencies: + undici-types "~5.26.4" + +"@types/node@^16.9.2": + version "16.18.75" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.75.tgz#88460b2706e5be1788f5ed6ef51152283b7703a2" + integrity sha512-+FSfZd5mpMDTcIK7bp2GueIcAespzR4FROOXnEst248c85vwthIEwtXYOLgVc/sI4ihE1K/7yO1lEiSgvwAOxA== + +"@types/node@^18.11.18": + version "18.19.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.9.tgz#6c2624c3a05bfa3a2735c533f95597ffacbb5608" + integrity sha512-oZFKlC8l5YtzGQNT4zC2PiSSKzQVZ8bAwwd+EYdPLtyk0nSEq6O16SkK+rkkT2eflDAbormJgEF3QnH3oDrTSw== + dependencies: + undici-types "~5.26.4" + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prop-types@*", "@types/prop-types@^15.0.0": + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + +"@types/react@^18.2.48": + version "18.2.48" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" + integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/request@^2.48.8": + version "2.48.12" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" + integrity sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw== + dependencies: + "@types/caseless" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" + +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + +"@types/triple-beam@^1.3.2": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" + integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== + +"@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/uuid@^9.0.7": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + +"@types/which@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/which/-/which-3.0.3.tgz#41142ed5a4743128f1bc0b69c46890f0453ddb89" + integrity sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g== + +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.10.0, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +agentkeepalive@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + +aiconfig@^1.1.5, aiconfig@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/aiconfig/-/aiconfig-1.1.7.tgz#d5c4929a166dd2b15ba3c963666948cc218df8e7" + integrity sha512-ZxBr1YWLJpDggg62BqZ87Z+xDOpxWiIoV4kcUhhtn8jhC7T3k4q5pZ67MZVf/Bn5+1Lzk6V4Nj4zzd0bp4XDig== + dependencies: + "@google-ai/generativelanguage" "^1.1.0" + "@huggingface/inference" "^2.6.4" + axios "^1.5.1" + google-auth-library "^9.1.0" + gpt-3-encoder "^1.1.4" + handlebars "^4.7.8" + js-yaml "^4.1.0" + lodash "^4.17.21" + node-fetch "^3.3.2" + openai "4.11.1" + typescript-json-schema "^0.60.0" + uuid "^9.0.1" + winston "^3.11.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.1.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954" + integrity sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ== + dependencies: + tslib "^2.0.0" + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +async@^3.2.3: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +attr-accept@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" + integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== + +axios@^1.5.1: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.0.0.tgz#04a4c90dce33cc5d606c76d6216e3b250ff70dab" + integrity sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw== + dependencies: + dequal "^2.0.3" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-64@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" + integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== + +base64-js@^1.3.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bignumber.js@^9.0.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +bufferutil@^4.0.7: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001565: + version "1.0.30001580" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz#e3c76bc6fe020d9007647044278954ff8cd17d1e" + integrity sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +cli-color@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clsx@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" + estree-walker "^3.0.3" + periscopic "^3.1.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +combined-stream@^1.0.6, combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +csstype@3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b" + integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw== + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dequal@^2.0.0, dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +digest-fetch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/digest-fetch/-/digest-fetch-1.3.0.tgz#898e69264d00012a23cf26e8a3e40320143fc661" + integrity sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA== + dependencies: + base-64 "^0.1.0" + md5 "^2.3.0" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +duplexify@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +electron-to-chromium@^1.4.601: + version "1.4.646" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.646.tgz#2ed74709d854d5501b32936c9feaaee02c7a9ba5" + integrity sha512-vThkQ0JuF45qT/20KbRgM56lV7IuGt7SjhawQ719PDHzhP84KAO1WJoaxgCoAffKHK47FmVKP1Fqizx7CwK1SA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-module-lexer@^1.2.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +esbuild@^0.14.14: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== + optionalDependencies: + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + +esbuild@^0.19.2, esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +estree-walker@^2, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.0, estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend@^3.0.0, extend@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.12: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + dependencies: + reusify "^1.0.4" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +file-selector@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" + integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== + dependencies: + tslib "^2.4.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data-encoder@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" + integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== + +form-data@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formdata-node@^4.3.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gaxios@^6.0.0, gaxios@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.1.1.tgz#549629f86a13e756b900f9ff7c94624670102938" + integrity sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w== + dependencies: + extend "^3.0.2" + https-proxy-agent "^7.0.1" + is-stream "^2.0.0" + node-fetch "^2.6.9" + +gcp-metadata@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" + integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg== + dependencies: + gaxios "^6.0.0" + json-bigint "^1.0.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.7: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== + +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + +google-auth-library@^9.0.0, google-auth-library@^9.1.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.5.0.tgz#fd97b78bc1512025b9c9ad3998c60e2d75b6137e" + integrity sha512-OUbP509lWVlZxuMY+Cgomw49VzZFP9myIcVeYEpeBlbXJbPC4R+K4BmO9hd3ciYM5QIwm5W1PODcKjqxtkye9Q== + dependencies: + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + gaxios "^6.1.1" + gcp-metadata "^6.1.0" + gtoken "^7.0.0" + jws "^4.0.0" + +google-gax@^4.0.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.2.1.tgz#4b3a269b543655ef25f04537b5494a4bb5656934" + integrity sha512-Yal4oh2GMHBsFX8zunxwaRuD2bP7rrA7Oz/ooXK8uOMGnP71jNVRl6fUv8chYLkPTqEzBSij9TZw49B86SDVTg== + dependencies: + "@grpc/grpc-js" "~1.9.6" + "@grpc/proto-loader" "^0.7.0" + "@types/long" "^4.0.0" + abort-controller "^3.0.0" + duplexify "^4.0.0" + google-auth-library "^9.0.0" + node-fetch "^2.6.1" + object-hash "^3.0.0" + proto3-json-serializer "^2.0.0" + protobufjs "7.2.6" + retry-request "^7.0.0" + uuid "^9.0.1" + +gpt-3-encoder@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/gpt-3-encoder/-/gpt-3-encoder-1.1.4.tgz#d6cdaacf5824857e133b6065247c757fc7e4fa72" + integrity sha512-fSQRePV+HUAhCn7+7HL7lNIXNm6eaFWFbNLOOGtmSJ0qJycyQvj60OvRlH7mee8xAMjBDNRdMXlMwjAbMTDjkg== + +gtoken@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.0.1.tgz#b64bd01d88268ea3a3572c9076a85d1c48f1a455" + integrity sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ== + dependencies: + gaxios "^6.0.0" + jws "^4.0.0" + +handlebars@^4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + +hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +intl-messageformat@^9.13.0: + version "9.13.0" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.13.0.tgz#97360b73bd82212e4f6005c712a4a16053165468" + integrity sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/fast-memoize" "1.2.1" + "@formatjs/icu-messageformat-parser" "2.1.0" + tslib "^2.1.0" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-reference@^3.0.0, is-reference@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + +kleur@^4.0.3, kleur@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" + integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== + dependencies: + "@colors/colors" "1.6.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +magic-string@^0.30.1, magic-string@^0.30.2, magic-string@^0.30.4, magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-find-and-replace@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" + integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== + dependencies: + "@types/mdast" "^3.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" + integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" + integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" + integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" + integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" + integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" + integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" + integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" + integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +node-domexception@1.0.0, node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.6.9: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-gyp-build@^4.3.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +openai@4.11.1: + version "4.11.1" + resolved "https://registry.yarnpkg.com/openai/-/openai-4.11.1.tgz#c2ed9b5e58c3c626b8d43e4eae0cfdbcd44cc844" + integrity sha512-GU0HQWbejXuVAQlDjxIE8pohqnjptFDIm32aPlNT1H9ucMz1VJJD0DaTJRQsagNaJ97awWjjVLEG7zCM6sm4SA== + dependencies: + "@types/node" "^18.11.18" + "@types/node-fetch" "^2.6.4" + abort-controller "^3.0.0" + agentkeepalive "^4.2.1" + digest-fetch "^1.3.0" + form-data-encoder "1.7.2" + formdata-node "^4.3.2" + node-fetch "^2.6.7" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-equal@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" + integrity sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +periscopic@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +postcss@^8.4.32: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prism-react-renderer@^1.2.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz#786bb69aa6f73c32ba1ee813fbe17a0115435085" + integrity sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg== + +prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.4.1.tgz#de8b79a7415fd2107dfbe65758bb2cc9dfcf60ac" + integrity sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w== + +proto3-json-serializer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz#da0b510f6d6e584b1b5c271f045c26728abe71e0" + integrity sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA== + dependencies: + protobufjs "^7.2.5" + +protobufjs@7.2.6, protobufjs@^7.2.4, protobufjs@^7.2.5: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-dropzone@14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b" + integrity sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug== + dependencies: + attr-accept "^2.2.2" + file-selector "^0.6.0" + prop-types "^15.8.1" + +react-error-boundary@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.12.tgz#59f8f1dbc53bbbb34fc384c8db7cf4082cb63e2c" + integrity sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA== + dependencies: + "@babel/runtime" "^7.12.5" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-markdown@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" + integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ== + dependencies: + "@types/hast" "^2.0.0" + "@types/prop-types" "^15.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^18.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-remove-scroll-bar@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" + integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@^2.5.5: + version "2.5.7" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" + integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== + dependencies: + react-remove-scroll-bar "^2.3.4" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react-textarea-autosize@8.3.4: + version "8.3.4" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524" + integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ== + dependencies: + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react-transition-group@4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.19.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry-request@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3" + integrity sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w== + dependencies: + "@types/request" "^2.48.8" + extend "^3.0.2" + teeny-request "^9.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rollup-plugin-ignore@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/rollup-plugin-ignore/-/rollup-plugin-ignore-1.0.10.tgz#0b8453ebf977fca1b4b0634062dded45288bf764" + integrity sha512-VsbnfwwaTv2Dxl2onubetX/3RnSnplNnjdix0hvF8y2YpqdzlZrjIq6zkcuVJ08XysS8zqW3gt3ORBndFDgsrg== + +rollup@^4.2.0: + version "4.9.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" + integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.6" + "@rollup/rollup-android-arm64" "4.9.6" + "@rollup/rollup-darwin-arm64" "4.9.6" + "@rollup/rollup-darwin-x64" "4.9.6" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" + "@rollup/rollup-linux-arm64-gnu" "4.9.6" + "@rollup/rollup-linux-arm64-musl" "4.9.6" + "@rollup/rollup-linux-riscv64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-musl" "4.9.6" + "@rollup/rollup-win32-arm64-msvc" "4.9.6" + "@rollup/rollup-win32-ia32-msvc" "4.9.6" + "@rollup/rollup-win32-x64-msvc" "4.9.6" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +sade@^1.7.3, sade@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semiver@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f" + integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + +stream-events@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== + dependencies: + stubs "^3.0.0" + +stream-shift@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== + +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +sucrase@^3.27.0, sucrase@^3.34.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte-hmr@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.15.3.tgz#df54ccde9be3f091bf5f18fc4ef7b8eb6405fbe6" + integrity sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ== + +svelte-i18n@^3.6.0: + version "3.7.4" + resolved "https://registry.yarnpkg.com/svelte-i18n/-/svelte-i18n-3.7.4.tgz#6cf2c86075fd748bd8ca2de5762e43a596c7d189" + integrity sha512-yGRCNo+eBT4cPuU7IVsYTYjxB7I2V8qgUZPlHnNctJj5IgbJgV78flsRzpjZ/8iUYZrS49oCt7uxlU3AZv/N5Q== + dependencies: + cli-color "^2.0.3" + deepmerge "^4.2.2" + esbuild "^0.19.2" + estree-walker "^2" + intl-messageformat "^9.13.0" + sade "^1.8.1" + tiny-glob "^0.2.9" + +svelte-preprocess-react@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/svelte-preprocess-react/-/svelte-preprocess-react-0.16.0.tgz#964ee6ebbe5004f2a110b480506233514c687bfc" + integrity sha512-/NsiknGkeRvvQN/G5yjuW+NovYZyEwde+N8kODzxOy1P9QrOOgNU1AZulfi/uFLas6GsERnOB1BTmYtror+Mhw== + dependencies: + magic-string "^0.30.2" + +svelte@^4.2.8: + version "4.2.9" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.9.tgz#ece982ccc5b700c27e85cdf130c0e343c195fab5" + integrity sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/estree" "^1.0.1" + acorn "^8.9.0" + aria-query "^5.3.0" + axobject-query "^4.0.0" + code-red "^1.0.3" + css-tree "^2.3.1" + estree-walker "^3.0.3" + is-reference "^3.0.1" + locate-character "^3.0.0" + magic-string "^0.30.4" + periscopic "^3.1.0" + +tabbable@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +teeny-request@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" + integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g== + dependencies: + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.9" + stream-events "^1.0.5" + uuid "^9.0.0" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-glob@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" + integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== + dependencies: + globalyzer "0.1.0" + globrex "^0.1.2" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-node@^10.9.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typescript-json-schema@^0.60.0: + version "0.60.0" + resolved "https://registry.yarnpkg.com/typescript-json-schema/-/typescript-json-schema-0.60.0.tgz#8c9cd34be601441d988d93d8f83ee20fda009a67" + integrity sha512-pgSsm0K4jN2BMVPRVe8aCsct0hGAdmFIU3P8LtuUuwqzZnJh9oEabz82RuVhIWcKAA/yVyHYBKXWkkDid8/R9Q== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/node" "^16.9.2" + glob "^7.1.7" + path-equal "^1.2.5" + safe-stable-stringify "^2.2.0" + ts-node "^10.9.1" + typescript "~5.1.0" + yargs "^17.1.1" + +typescript@~5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +use-callback-ref@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.1.tgz#9be64c3902cbd72b07fe55e56408ae3a26036fd0" + integrity sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ== + dependencies: + tslib "^2.0.0" + +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +vite-plugin-commonjs@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/vite-plugin-commonjs/-/vite-plugin-commonjs-0.10.1.tgz#18585abc6020adaee733150847972f55a1f88c55" + integrity sha512-taP8R9kYGlCW5OzkVR0UIWRCnG6rSxeWWuA7tnU5b9t5MniibOnDY219NhisTeDhJAeGT8cEnrhVWZ9A5yD+vg== + dependencies: + acorn "^8.8.2" + fast-glob "^3.2.12" + magic-string "^0.30.1" + vite-plugin-dynamic-import "^1.5.0" + +vite-plugin-dynamic-import@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.5.0.tgz#a28f4768da977f0e448009489617aec259180b63" + integrity sha512-Qp85c+AVJmLa8MLni74U4BDiWpUeFNx7NJqbGZyR2XJOU7mgW0cb7nwlAMucFyM4arEd92Nfxp4j44xPi6Fu7g== + dependencies: + acorn "^8.8.2" + es-module-lexer "^1.2.1" + fast-glob "^3.2.12" + magic-string "^0.30.1" + +vite@^5.0.11: + version "5.0.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" + integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +vitefu@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.5.tgz#c1b93c377fbdd3e5ddd69840ea3aa70b40d90969" + integrity sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q== + +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-streams-polyfill@^3.0.3: + version "3.3.2" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" + integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +winston-transport@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" + integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91" + integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.13.0: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.1.1, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git a/gradio-notebook/model_parsers.py b/gradio-notebook/model_parsers.py new file mode 100644 index 000000000..795161573 --- /dev/null +++ b/gradio-notebook/model_parsers.py @@ -0,0 +1,55 @@ +from aiconfig import AIConfigRuntime, ModelParserRegistry +from aiconfig_extension_hugging_face import ( + HuggingFaceAutomaticSpeechRecognitionTransformer, + HuggingFaceImage2TextTransformer, + HuggingFaceText2ImageDiffusor, + HuggingFaceText2SpeechTransformer, + HuggingFaceTextGenerationTransformer, + HuggingFaceTextSummarizationTransformer, + HuggingFaceTextTranslationTransformer, +) + + +# Example of how users can register model parsers for use in the GradioWorkbook +# The implementation looks for a parsers_path (model_parsers.py by default) which +# should include a module with a register_model_parsers function. +# Here we are registering all the local HuggingFace model parsers as an example +def register_model_parsers() -> None: + """Register model parsers for local HuggingFace models.""" + automatic_speech_recognition = HuggingFaceAutomaticSpeechRecognitionTransformer() + AIConfigRuntime.register_model_parser( + automatic_speech_recognition, "Automatic Speech Recognition (Local)" + ) + + image_to_text = HuggingFaceImage2TextTransformer() + AIConfigRuntime.register_model_parser(image_to_text, "Image-to-Text (Local)") + + text_to_image = HuggingFaceText2ImageDiffusor() + AIConfigRuntime.register_model_parser(text_to_image, "Text-to-Image (Local)") + + text_to_speech = HuggingFaceText2SpeechTransformer() + AIConfigRuntime.register_model_parser(text_to_speech, "Text-to-Speech (Local)") + + text_generation = HuggingFaceTextGenerationTransformer() + AIConfigRuntime.register_model_parser(text_generation, "Text Generation (Local)") + + text_summarization = HuggingFaceTextSummarizationTransformer() + AIConfigRuntime.register_model_parser(text_summarization, "Summarization (Local)") + + text_translation = HuggingFaceTextTranslationTransformer() + AIConfigRuntime.register_model_parser(text_translation, "Translation (Local)") + + # By default, model parsers will also have their own ids registered. Remove those + # since we just want the task-based names registered + parsers = [ + automatic_speech_recognition, + image_to_text, + text_to_image, + text_to_speech, + text_generation, + text_summarization, + text_translation, + ] + + for parser in parsers: + ModelParserRegistry.remove_model_parser(parser.id()) diff --git a/gradio-notebook/pyproject.toml b/gradio-notebook/pyproject.toml new file mode 100644 index 000000000..56c03f034 --- /dev/null +++ b/gradio-notebook/pyproject.toml @@ -0,0 +1,46 @@ +[build-system] +requires = [ + "hatchling", + "hatch-requirements-txt", + "hatch-fancy-pypi-readme>=22.5.0", +] +build-backend = "hatchling.build" + +[project] +name = "gradio_notebook" +version = "0.0.11" +description = "Notebook for interacting with models in AIConfig" +readme = "README.md" +license = "MIT" +requires-python = ">=3.10" +authors = [ + {name= "LastMile AI" }, +] +keywords = ["gradio-custom-component", "gradio-template-Fallback", "aiconfig", "workbook", "notebook"] +# Add dependencies here. Used for dynamic requirements below +dynamic = ["dependencies"] + +[tool.hatch.metadata.hooks.requirements_txt] +files = ["requirements.txt"] + +classifiers = [ + 'Development Status :: 3 - Alpha', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Topic :: Scientific/Engineering', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'Topic :: Scientific/Engineering :: Visualization', +] + +[project.optional-dependencies] +dev = ["build", "twine"] + +[tool.hatch.build] +artifacts = ["/backend/gradio_notebook/templates", "*.pyi"] + +[tool.hatch.build.targets.wheel] +packages = ["/backend/gradio_notebook"] diff --git a/gradio-notebook/requirements.txt b/gradio-notebook/requirements.txt new file mode 100644 index 000000000..27f0f65e1 --- /dev/null +++ b/gradio-notebook/requirements.txt @@ -0,0 +1,15 @@ +# Core libraries + +# TODO (remove hard pin to gradio once this is fixed and buttons no longer hang) +# gradio>=4.0,<5.0 +gradio==4.16.0 +python-aiconfig>=1.1.24 +aiconfig-extension-hugging-face>=0.0.12 + +#Uploading AIConfig to S3 and lastmile endpoints for sharing +boto3 +botocore +requests + +# Extra utils +asyncio \ No newline at end of file From eddde3b0204707a243f26c15b835996e6f94a49e Mon Sep 17 00:00:00 2001 From: "Ankush Pala ankush@lastmileai.dev" <> Date: Wed, 14 Feb 2024 01:43:52 -0500 Subject: [PATCH 2/3] bump pyproject inside aiconfig/gradio for testing --- gradio-notebook/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradio-notebook/pyproject.toml b/gradio-notebook/pyproject.toml index 56c03f034..0d1d948cb 100644 --- a/gradio-notebook/pyproject.toml +++ b/gradio-notebook/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "hatchling.build" [project] name = "gradio_notebook" -version = "0.0.11" +version = "0.0.12" description = "Notebook for interacting with models in AIConfig" readme = "README.md" license = "MIT" From e8c85ef6c6ff6f0a6892d72b8a2a04244a837a18 Mon Sep 17 00:00:00 2001 From: "Ankush Pala ankush@lastmileai.dev" <> Date: Wed, 14 Feb 2024 01:43:54 -0500 Subject: [PATCH 3/3] Fix nits in readmes --- gradio-notebook/README-dev.md | 1 - 1 file changed, 1 deletion(-) diff --git a/gradio-notebook/README-dev.md b/gradio-notebook/README-dev.md index 0ed819039..76396ea2c 100644 --- a/gradio-notebook/README-dev.md +++ b/gradio-notebook/README-dev.md @@ -17,7 +17,6 @@ Just a heads up, the process for getting local development setup for the first t ### Setting up Gradio repo 1. Go to the project where this is defined. Ex: `~/Projects/gradio-workbook` -2. Delete this entire repo! `rm -rf gradioworkbook` 3. Gradio uses `pip` and `python` for executing commands so you must symlink `python` and `pip` (aliasing is not enough) to `python3` and `pip3`: - `python3 -m pip install --upgrade --force pip` ([source](https://stackoverflow.com/a/55494352)) - force `python` to be symlinked to `python3` ([instructions](https://stackoverflow.com/a/71957847))