diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..cbeb287760b9e5af028dbefac09eaac4a4ef2c75 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +.idea +.venv +__pycache__ +frontend/node_modules +frontend/.next +frontend/out +out +*.zip +*.rar +*.tar.gz diff --git a/.gitattributes b/.gitattributes index a877ba2005b92fbce84d45959dc3608cda2b48df..2098e72cf1c8931165a4616f34ba99e06b7aee03 100644 --- a/.gitattributes +++ b/.gitattributes @@ -34,3 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text arch.png filter=lfs diff=lfs merge=lfs -text +movies/bbb_sunflower_1080p_30fps_normal.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/Debugger.py b/Debugger.py new file mode 100644 index 0000000000000000000000000000000000000000..3fbf143c2f584e47c89178c477956d5f409afa11 --- /dev/null +++ b/Debugger.py @@ -0,0 +1,542 @@ +import inspect +import os +import time +import re +import traceback + +class Debugger: + COLORS = { + "CYAN": "\033[96m", + "BRIGHT_CYAN": "\033[1;96m", + "DIM_CYAN": "\033[2;96m", + "YELLOW": "\033[93m", + "BRIGHT_YELLOW": "\033[1;93m", + "DIM_YELLOW": "\033[2;93m", + "MAGENTA": "\033[95m", + "BRIGHT_MAGENTA": "\033[1;95m", + "DIM_MAGENTA": "\033[2;95m", + "RED": "\033[91m", + "BRIGHT_RED": "\033[1;91m", + "DIM_RED": "\033[2;91m", + "GREEN": "\033[92m", + "BRIGHT_GREEN": "\033[1;92m", + "DIM_GREEN": "\033[2;92m", + "BLUE": "\033[94m", + "BRIGHT_BLUE": "\033[1;94m", + "DIM_BLUE": "\033[2;94m", + "RESET": "\033[0m", + } + + LEVELS = { + "INFO": 0, + "SUCCESS": 0, + "DEBUG": 1, + "WARNING": 2, + "ERROR": 3, + "CRITICAL": 4, + } + + COLOR_MAP = { + "INFO": "BRIGHT_CYAN", + "SUCCESS": "BRIGHT_GREEN", + "DEBUG": "BRIGHT_YELLOW", + "WARNING": "BRIGHT_MAGENTA", + "ERROR": "BRIGHT_RED", + "CRITICAL": "BRIGHT_RED", + "VAR": "BRIGHT_BLUE", + } + + DIM_COLOR_MAP = { + "INFO": "DIM_CYAN", + "SUCCESS": "DIM_GREEN", + "DEBUG": "DIM_YELLOW", + "WARNING": "DIM_MAGENTA", + "ERROR": "DIM_RED", + "CRITICAL": "DIM_RED", + "VAR": "DIM_BLUE", + } + + def __init__(self, enabled=True, level="INFO", show_time=True, show_location=True, column_widths=None): + self.enabled = enabled + self.level = self.LEVELS.get(level.upper(), 0) + self.show_time = show_time + self.show_location = show_location + self.column_widths = column_widths or {"level": 10, "time": 20, "location": 20, "message": 50} + + # To ensure consistent spacing, we need to track actual visible text lengths + # when ANSI color codes are used + self.ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') + self._indent_level = 0 # Added for recursive indentation + + def _get_location(self): + """ + Get the location of the calling code outside of the Debugger class. + """ + # Get the frame at the specified depth + current_frame = inspect.currentframe() + + # Find the caller frame (outside of the Debugger class) + caller_frame = current_frame + for _ in range(10): # Limit to 10 frames to avoid infinite loop + if caller_frame.f_back is None: + break + + caller_frame = caller_frame.f_back + # Get the code object for the frame + code = caller_frame.f_code + + # If this frame is not from Debugger.py, we've found our caller + if os.path.basename(code.co_filename) != "Debugger.py": + break + + filename = os.path.basename(caller_frame.f_code.co_filename) + lineno = caller_frame.f_lineno + return f"{filename}:{lineno}" + + def _get_variable_name(self, var, frame_depth=2): + """ + Dynamically get the variable name by inspecting the source code. + + Args: + var: The variable to find the name for + frame_depth: How many frames to go back to find the caller + + Returns: + str: The variable name or "unknown" if not found + """ + try: + # Get the frame that called this function + frame = inspect.currentframe() + for _ in range(frame_depth): + if frame.f_back is None: + break + frame = frame.f_back + + # Get the line of code that called this function + context = inspect.getframeinfo(frame).code_context + if not context: + return "unknown" + + # Extract the line + caller_line = context[0].strip() + + # Regular expression to match common variable inspection patterns + # This captures variable names inside function calls like: + # debug.var(my_variable), debug.var_dict(my_dict), etc. + matches = re.findall(r'(?:var\w*)\s*\(\s*([^,)]+)', caller_line) + + if matches: + return matches[0].strip() + + # Fall back to inspecting local variables + for var_name, var_val in frame.f_locals.items(): + if var_val is var: + return var_name + + return "unknown" + + except Exception: + return "unknown" + finally: + # Ensure we clean up the frame reference to avoid memory leaks + del frame + + def _strip_ansi(self, text): + """Remove ANSI escape sequences from text to get true visible length""" + return self.ansi_escape.sub('', text) + + def _ljust_with_ansi(self, text, width): + """Left justify text accounting for ANSI color codes""" + visible_text = self._strip_ansi(text) + padding = max(0, width - len(visible_text)) + return text + ' ' * padding + + def _format(self, level, message): + parts = [] + + # Get the dim color for the level + dim_color = self.COLORS.get(self.DIM_COLOR_MAP.get(level, ""), "") + # Get the bright color for the message + bright_color = self.COLORS.get(self.COLOR_MAP.get(level, ""), "") + reset = self.COLORS["RESET"] + + # Format level with consistent padding regardless of ANSI codes + level_text = f"{dim_color}[{level}]{reset}" + level_str = self._ljust_with_ansi(level_text, self.column_widths["level"]) + + # Format other components + time_text = time.strftime("[%Y-%m-%d %H:%M:%S]") if self.show_time else "" + time_str = self._ljust_with_ansi(time_text, self.column_widths["time"]) + + location_text = f"[{self._get_location()}]" if self.show_location else "" + location_str = self._ljust_with_ansi(location_text, self.column_widths["location"]) + + # Add indentation for recursive calls + indent_prefix = " " * self._indent_level + message_str = f"{indent_prefix}{bright_color}{message}{reset}" + + # Combine into a table-like structure + parts.append(f"{level_str} {time_str} {location_str} {message_str}") + + return "".join(parts) + + def log(self, message, level="INFO"): + if not self.enabled or self.LEVELS.get(level, 0) < self.level: + return + + print(self._format(level, message)) + + def info(self, message): + self.log(message, "INFO") + + def debug(self, message): + self.log(message, "DEBUG") + + def warning(self, message): + self.log(message, "WARNING") + + def error(self, message): + self.log(message, "ERROR") + + def critical(self, message): + self.log(message, "CRITICAL") + + def success(self, message): + self.log(message, "SUCCESS") + + # --- Variable inspection methods --- + + def var(self, *args, **kwargs): + """ + General-purpose variable inspector that accepts multiple variables. + + Args: + *args: Variables to inspect + **kwargs: Variables with custom names as keyword arguments + + Usage: + debug.var(x) # Single variable, auto-detected name + debug.var(x, y, z) # Multiple variables with auto-detected names + debug.var(result=x) # Custom name 'result' for variable x + debug.var(x, y, result=z) # Mix of auto-detected and custom names + """ + # Handle positional arguments (auto-detect names) + # We need to adjust frame_depth here because _get_variable_name is called + # from var, which is called from the user code. + # This will need careful adjustment if the call stack changes significantly. + current_frame = inspect.currentframe() + outer_frames = [] + f = current_frame + while f: + if os.path.basename(f.f_code.co_filename) != "Debugger.py": + break + outer_frames.append(f) + f = f.f_back + + # If the call is directly from user code, we need to go back 2 frames + # (var -> _inspect_var -> _get_variable_name) + # If it's a wrapper like var_dict -> var, then it's different. + # For a general `var` call, we want the frame that called `var`. + # So we look for the first frame outside of Debugger.py in the stack. + # This logic is already handled by _get_location, but for variable naming + # we need to be more precise about the frame where the variable is defined. + + # The frame for var() is at depth 0, its caller is at depth 1 (user code) + # The _get_variable_name itself looks back from its own call, so `frame_depth=2` is typically correct for `var` + # if called directly like `debug.var(my_var)`. + # For nested calls (e.g., from `_inspect_dict`), `_inspect_var` is already adjusting depth. + + # This is a tricky part for _get_variable_name. Let's assume it works well for the top-level call. + # For internal recursive calls, the name is provided explicitly. + + for arg in args: + # When calling from var, we need to look one more frame back + # compared to when _get_variable_name is called directly from _inspect_var. + # This is because _inspect_var is a helper function to var. + # However, the current _get_variable_name implementation already tries to find the + # non-Debugger.py frame, which is often what we want. + # Let's keep `frame_depth=2` for the top-level `var` call as it's designed to skip `var` and `_get_variable_name` itself. + var_name = self._get_variable_name(arg, frame_depth=2) + self._inspect_var(arg, var_name) + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + self._inspect_var(value, name) + + def _inspect_var(self, variable, var_name, is_nested=False): + """ + Helper method to inspect a single variable + + Args: + variable: The variable to inspect + var_name: Name to display for the variable + is_nested: True if this call is from a recursive inspection (for indentation) + """ + var_type = type(variable).__name__ + + # Increment indent level for nested calls + if is_nested: + self._indent_level += 1 + + try: + # For simple types, just show the value + if isinstance(variable, (int, float, bool, str, type(None))): # Added NoneType + value_str = repr(variable) + self.log(f"{var_name} ({var_type}) = {value_str}", "VAR") + + # For more complex types, use type-specific methods + elif isinstance(variable, dict): + self._inspect_dict(variable, var_name, is_nested=True) + elif isinstance(variable, (list, tuple)): + self._inspect_list(variable, var_name, is_nested=True) + elif isinstance(variable, set): + self._inspect_set(variable, var_name, is_nested=True) + else: + # For other objects, show the representation + value_str = repr(variable) + self.log(f"{var_name} ({var_type}) = {value_str}", "VAR") + finally: + # Decrement indent level after nested calls + if is_nested: + self._indent_level -= 1 + + + def var_dict(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, dict): + # When calling from var_dict directly, adjust frame_depth + var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_dict call + self._inspect_dict(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a dictionary (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, dict): + self._inspect_dict(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a dictionary (got {var_type})", "WARNING") + + def _inspect_dict(self, dictionary, var_name, is_nested=False): + """ + Helper method to inspect a single dictionary + + Args: + dictionary: The dictionary to inspect + var_name: Name to display for the dictionary + is_nested: True if this call is from a recursive inspection + """ + if not is_nested: # Only increment on the initial call to this method + self._indent_level += 1 + + self.log(f"{var_name} (dict) with {len(dictionary)} items:", "VAR") + + if not dictionary: + self.log("{}", "VAR") + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + return + + self.log("{", "VAR") + for key, value in dictionary.items(): + key_repr = repr(key) + # Recursively inspect the value + # The name for the nested item will be its key + self._inspect_var(value, key_repr, is_nested=True) + self.log("}", "VAR") + + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + + + def var_list(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, (list, tuple)): + var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_list call + self._inspect_list(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a list or tuple (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, (list, tuple)): + self._inspect_list(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a list or tuple (got {var_type})", "WARNING") + + def _inspect_list(self, lst, var_name, is_nested=False): + """ + Helper method to inspect a single list or tuple + + Args: + lst: The list or tuple to inspect + var_name: Name to display for the list or tuple + is_nested: True if this call is from a recursive inspection + """ + container_type = "list" if isinstance(lst, list) else "tuple" + if not is_nested: # Only increment on the initial call to this method + self._indent_level += 1 + + self.log(f"{var_name} ({container_type}) with {len(lst)} items:", "VAR") + + if not lst: + self.log(f"{'[]' if container_type == 'list' else '()'} ", "VAR") # Added space for consistency + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + return + + opening = "[" if container_type == "list" else "(" + closing = "]" if container_type == "list" else ")" + + self.log(opening, "VAR") + for i, item in enumerate(lst): + # Recursively inspect the item + self._inspect_var(item, f"{var_name}[{i}]", is_nested=True) # Pass index as part of name + self.log(closing, "VAR") + + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + + + def var_set(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, set): + var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_set call + self._inspect_set(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a set (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, set): + self._inspect_set(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a set (got {var_type})", "WARNING") + + def _inspect_set(self, s, var_name, is_nested=False): + """ + Helper method to inspect a single set + + Args: + s: The set to inspect + var_name: Name to display for the set + is_nested: True if this call is from a recursive inspection + """ + if not is_nested: # Only increment on the initial call to this method + self._indent_level += 1 + + self.log(f"{var_name} (set) with {len(s)} items:", "VAR") + + if not s: + self.log("{}", "VAR") + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + return + + self.log("{", "VAR") + for i, item in enumerate(s): + # Recursively inspect the item, using a generic name like "item_X" + self._inspect_var(item, f"item_{i}", is_nested=True) + self.log("}", "VAR") + + if not is_nested: # Only decrement on the initial call exit + self._indent_level -= 1 + + def var_bool(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, bool): + var_name = self._get_variable_name(arg, frame_depth=2) + self._inspect_bool(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a boolean (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, bool): + self._inspect_bool(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a boolean (got {var_type})", "WARNING") + + def _inspect_bool(self, boolean, var_name): + value_str = str(boolean) + self.log(f"{var_name} (bool) = {value_str}", "VAR") + + def var_num(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, (int, float)): + var_name = self._get_variable_name(arg, frame_depth=2) + self._inspect_num(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a number (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, (int, float)): + self._inspect_num(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a number (got {var_type})", "WARNING") + + def _inspect_num(self, number, var_name): + num_type = "int" if isinstance(number, int) else "float" + self.log(f"{var_name} ({num_type}) = {number}", "VAR") + + def var_str(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + if isinstance(arg, str): + var_name = self._get_variable_name(arg, frame_depth=2) + self._inspect_str(arg, var_name) + else: + var_type = type(arg).__name__ + var_name = self._get_variable_name(arg, frame_depth=2) + self.log(f"{var_name} is not a string (got {var_type})", "WARNING") + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + if isinstance(value, str): + self._inspect_str(value, name) + else: + var_type = type(value).__name__ + self.log(f"{name} is not a string (got {var_type})", "WARNING") + + def _inspect_str(self, string, var_name): + self.log(f"{var_name} (str) length={len(string)}", "VAR") + self.log(f'"{string}"', "VAR") + + def var_type(self, *args, **kwargs): + # Handle positional arguments (auto-detect names) + for arg in args: + var_name = self._get_variable_name(arg, frame_depth=2) + self._inspect_type(arg, var_name) + + # Handle keyword arguments (custom names) + for name, value in kwargs.items(): + self._inspect_type(value, name) + + def _inspect_type(self, obj, var_name): + mro = type(obj).__mro__ + type_names = [t.__name__ for t in mro] + self.log(f"{var_name} type hierarchy:", "VAR") + for i, name in enumerate(type_names): + indent = " " * i + self.log(f"{indent}└─ {name}", "VAR") \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..fdb9ce372a30aa0bf722d81d2da02403998ea5d0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +FROM python:3.11-slim + +# Install system dependencies (VLC and FFmpeg) +RUN apt-get update && apt-get install -y \ + vlc \ + ffmpeg \ + && rm -rf /var/lib/apt/lists/* + +# Create non-root user (VLC refuses to run as root by default) +RUN useradd -m watchparty + +WORKDIR /app + +# Copy and install Python dependencies +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +# Copy backend files and static frontend build (out directory) +COPY . . + +# Set permissions so the watchparty user can write and execute, and make /app and /movies writable by any user (Hugging Face Spaces random UID requirement) +RUN mkdir -p /movies && chmod -R 777 /app /movies && chown -R watchparty:watchparty /app /movies + +# Switch to non-root user +USER watchparty + +# Default environment variables +ENV BASE_MOVIES_DIR=/movies +ENV VLC_PASSWORD=pass +ENV VLC_EXECUTABLE=vlc + +EXPOSE 7860 + +# Mount your media folder to /movies when running the container +VOLUME ["/movies"] + +CMD ["sh", "-c", "uvicorn main:app --host 0.0.0.0 --port ${PORT:-7860}"] diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5cad84272dbb3aad9e0bcfad9fac1e9562b94dea --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +--- +title: WatchParty Bridge +emoji: 🎬 +colorFrom: blue +colorTo: indigo +sdk: docker +app_port: 7860 +pinned: false +--- + +# tw-watchparty-server (WatchParty Bridge) + +WatchParty Bridge is a high-performance VLC transcode controller, Twitch streamer, and Media/Download Manager. It provides a unified web dashboard to stream local/downloaded video files to Twitch with fully custom transcode profiles, hot track switching, and an integrated downloader/scraper. + +--- + +## Key Features + +### 1. Advanced Twitch Stream & Transcode Customization +* **Custom Transcode Parameters**: Modify video/audio codecs, presets, samplerates, scaling, and keyframe intervals on the fly. +* **Default SOUT Preset**: Optimized specifically for Twitch streaming: + `#transcode{vcodec=h264,vb=3000,scale=Auto,acodec=mp4a,ab=128,channels=2,samplerate=44100,fps=60,soverlay,venc=x264{preset=veryfast,keyint=60}}` +* **Dynamic Stream Reconfiguration**: Subtitle burn-ins and audio tracks are locked during active transcodes. Our dynamic reconfiguration system lets you switch audio tracks/subtitles by gracefully restarting the stream on the same port in under a second. + +### 2. Media & Downloader Dashboard +* **Native In-House Downloader**: Pure Python HTTP/HTTPS chunk-downloader with Zero system daemon dependencies. +* **Pause & Resume Support**: Utilizes HTTP range requests to pause and resume downloads at any point. +* **Persistent Sessions**: Download path selections are persisted in `localStorage` and automatically synchronized with the backend. +* **File Explorer**: Browse files recursively on the host system, delete files, and click **Play** to automatically prepopulate stream startup configurations. + +### 3. Integrated Acer Movies Scraper +* **Scraper APIs**: Search movies and TV series directly on `acermovies.fun` from the dashboard. +* **Season & Episode Selector**: Fetches episodes and displays them in a clean checklist. +* **Checklist Bulk Download**: Select specific episodes or select the entire season to queue them sequentially with one click. +* **Silent Background Queues**: All browser alert alerts are muted for seamless background additions. + +--- + +## Installation & Running + +### Option 1: Running Locally (Recommended) + +#### Prerequisites +1. Install [VLC Media Player](https://www.videolan.org/vlc/). Make sure the `vlc` executable is in your system PATH, or specify its location via the `VLC_EXECUTABLE` environment variable. +2. Install Python 3.10 or higher. + +#### Setup & Start +1. Clone the repository and navigate to the directory: + ```bash + git clone https://github.com/shubhamakshit/tw-watchparty-web.git + cd tw-watchparty-web + ``` +2. Install dependencies: + ```bash + pip install -r requirements.txt + ``` +3. Run the server: + ```bash + python main.py + ``` +4. Open your browser and navigate to `http://localhost:8000`. + +--- + +### Option 2: Running with Docker + +1. Ensure Docker and Docker Compose are installed. +2. Build and start the containers: + ```bash + docker-compose up --build + ``` +3. The server will start on port `8000` and map the `./movies` folder to `/movies` inside the container. + +--- + +## Environment Variables + +Configure the server behavior using these environment variables (or setting them inside your shell/Docker configs): + +* `BASE_MOVIES_DIR`: The root directory where files are browsed and downloads are saved (Defaults to the user's home directory `~`). +* `VLC_PASSWORD`: The Telnet password used by the backend to control VLC instances (Default: `pass`). +* `VLC_EXECUTABLE`: Path to the VLC executable (Default: `vlc`). + +--- + +## Frontend Development & Rebuilding + +The frontend is built using Next.js, Mantine components, and Tabler icons inside the `frontend` folder. + +If you make modifications to the frontend code and want to package it for distribution: +1. Run the build packaging script in the root directory: + ```bash + python build_package.py + ``` +2. The script will automatically compile the Next.js static export and copy the assets to the `out` directory, which is served directly by the Python FastAPI backend. diff --git a/README_DEPLOY.md b/README_DEPLOY.md new file mode 100644 index 0000000000000000000000000000000000000000..87ca8446e5ec3deee845c8cfd566cb8d7b329d6d --- /dev/null +++ b/README_DEPLOY.md @@ -0,0 +1,69 @@ +# Deploying the WatchParty Bridge to a Home Server + +This guide explains how to package the Next.js frontend and FastAPI backend into a single, unified package and deploy it on your home server (either directly with Python or via Docker). + +--- + +## Part 1: How Subtitles Work (Updated) +We have added support for **burning subtitles directly into the Twitch stream**. +* In the UI, selecting a **Subtitle Track** will send the track index to the backend. +* The backend automatically appends the `,soverlay` parameter to VLC's `#transcode` block. +* VLC will burn (render) the selected subtitle track directly onto the video frames before streaming to Twitch. + +--- + +## Part 2: Packaging the Application (Single Port Setup) +We have configured Next.js to build as a static export, and FastAPI to host these static files directly. This means **both the frontend and backend run on a single port (e.g. 8000)**. + +To compile the frontend and copy it into the backend folder: +1. Open a terminal. +2. Navigate to the `tw-watchparty-server` directory. +3. Run the automated build script: + ```bash + python build_package.py + ``` +This script will build the Next.js app and copy the static build output into a folder named `out` in the FastAPI directory. + +--- + +## Part 3: Deployment Options + +### Option A: Running Directly with Python +After running `build_package.py`, you can start the unified server using `uvicorn`: + +```bash +uvicorn main:app --host 0.0.0.0 --port 8000 +``` +* Access the dashboard from any device on your local network: `http://:8000` + +--- + +### Option B: Running with Docker / Docker Compose +We have included a `Dockerfile` and `docker-compose.yml` for containerized deployment. + +1. Package the build first: + ```bash + python build_package.py + ``` +2. Open `docker-compose.yml` and adjust the local path to your movies directory: + ```yaml + volumes: + - /path/to/your/movies/on/server:/movies + ``` +3. Start the container in the background: + ```bash + docker compose up -d --build + ``` + +Note: VLC has a built-in security policy that blocks running as `root` inside Docker. The provided `Dockerfile` creates a dedicated, non-root `watchparty` user automatically to ensure VLC starts up safely. + +--- + +## Part 4: Configuration Options +You can configure the server using environment variables (which are pre-configured in the Docker setup): + +| Variable | Description | Default | +| --- | --- | --- | +| `BASE_MOVIES_DIR` | Directory containing your movies | `C:\Users\Administrator\Downloads` | +| `VLC_PASSWORD` | Password for VLC Telnet/HTTP interfaces | `pass` | +| `VLC_EXECUTABLE` | Path to the VLC executable | `vlc` | diff --git a/app.2.py b/app.2.py new file mode 100644 index 0000000000000000000000000000000000000000..bef785ad1eb1c489d41ad71bd8e25304672fa89d --- /dev/null +++ b/app.2.py @@ -0,0 +1,73 @@ + + +from textual.app import App, ComposeResult +from textual.containers import HorizontalGroup, Grid +from textual.screen import ModalScreen +from textual.widgets import Footer, Header, OptionList, Label +from textual.containers import HorizontalGroup, VerticalScroll +from textual.widgets import Button, Digits, Footer, Header +from textual.widgets._option_list import Option + + +class FileSelectorDialog(ModalScreen): + + def compose(self) -> ComposeResult: + yield Grid( + Label("Select a file:"), + OptionList( + Option("Aerilon", id="aer"), + Option("Aquaria", id="aqu"), + None, + Option("Canceron", id="can"), + Option("Caprica", id="cap", disabled=True), + None, + Option("Gemenon", id="gem"), + None, + Option("Leonis", id="leo"), + Option("Libran", id="lib"), + None, + Option("Picon", id="pic"), + None, + Option("Sagittaron", id="sag"), + Option("Scorpia", id="sco"), + None, + Option("Tauron", id="tau"), + None, + Option("Virgon", id="vir"), + ) +, + + Grid( + Button("Open", id="open"), + Button("Cancel", id="cancel"), + id = "dialog-buttons" + ), + id = "dialog" + ) + + +class StopwatchApp(App): + """A Textual app to manage stopwatches.""" + + CSS_PATH = "app.css" + BINDINGS = [("d", "toggle_dark", "Toggle dark mode")] + + + + + def compose(self) -> ComposeResult: + """Create child widgets for the app.""" + + + yield Header() + yield Footer() + + + def action_toggle_dark(self) -> None: + """An action to toggle dark mode.""" + self.push_screen(FileSelectorDialog()) + + +if __name__ == "__main__": + app = StopwatchApp() + app.run() diff --git a/app.css b/app.css new file mode 100644 index 0000000000000000000000000000000000000000..44a8cb75a73919217dcb2e0aa60af765737c872e --- /dev/null +++ b/app.css @@ -0,0 +1,81 @@ +Stopwatch { + background: $boost; + height: 5; + margin: 1; + min-width: 50; + padding: 1; +} + +Screen{ + layout: grid; + grid-size: 3 3; + grid-gutter: 1; + +} + +TimeDisplay { + text-align: center; + color: $foreground-muted; + height: 3; +} + +TimeDisplay#hover{ +color:green; +} + +Button { + width: 10; +} + +#start { + dock: left; +} + +#stop { + dock: left; + display: none; +} + +#reset { + dock: right; +} + +.started { + background: $success-muted; + color: $text; +} + +.started TimeDisplay { + color: $foreground; +} + +.started #start { + display: none +} + +.started #stop { + display: block +} + +.started #reset { + visibility: hidden +} + +#dialog{ + +row-span:2; + column-span:1; + align: center middle; + grid-gutter: 1 2; + grid-rows: 1fr 3; + padding: 0 1; + width: 60; + height: 30; + border: thick $background 80%; + background: $surface; +} + + +#dialog-buttons{ + grid-size:2; +} \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..3205f60de482075811e9dccbed58eb758a5f843c --- /dev/null +++ b/app.py @@ -0,0 +1,76 @@ +import asyncio +import telnetlib + +HOST = "localhost" +PORT = 4200 +password = "pass" + + +async def vlc(): + print("Launching VLC...") + # Use asyncio's native non-blocking subprocess creator + process = await asyncio.create_subprocess_exec( + "vlc", + r"C:\Users\Administrator\Downloads\bbb_sunflower_1080p_30fps_normal.mp4\bbb_sunflower_1080p_30fps_normal.mp4", + "--loop", + r"--sout=#transcode{vcodec=h264,vb=2000,acodec=aac,ab=128,channels=2,soverlay,fps=30,soverlay}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://live.twitch.tv/app/live_1518336715_CrQoiygeCkDolYIZ0eF5ZJBFHA1e0i}", + "--intf", + "telnet", + "--telnet-password", + "pass", + "-vv", + + "--telnet-port", + "4200", + "--extraintf", + "http", + "--http-password", + "pass", + "--no-sout-all", + "--sout-keep", + # This keeps stdout/stderr flowing without blocking your loop + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE + ) + + + # Optional: Read logs asynchronously so they don't block + + while True: + line = await process.stderr.readline() + if not line: + break + print(f"[VLC] {line.decode().strip()}") + + +async def tl(): + # Now this will actually count down while VLC is running! + print("Waiting 5 seconds for VLC to start...") + await asyncio.sleep(5) + print("Connecting to VLC via Telnet...") + + try: + tn = telnetlib.Telnet(HOST, PORT) + + if password: + tn.read_until(b"Password: ") + tn.write(password.encode('ascii') + b"\n") + + tn.read_until(b"> ") + + tn.write(b"help\n") + + output = tn.read_until(b"> ") + print(output.decode('ascii')) + + tn.close() + except ConnectionRefusedError: + print("Error: Could not connect to VLC. Is the port open?") + + +async def main(): + # Now gather will actually run them concurrently + await asyncio.gather(vlc(), tl()) + + +asyncio.run(main()) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..9ce5b4f9159b579154f23ebad65bd3b0d8496190 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.8' + +services: + watchparty: + build: . + container_name: watchparty-bridge + ports: + - "7860:7860" + # Expose dynamic ports if you want to inspect VLC HTTP/Telnet directly: + # - "4200-4250:4200-4250" + environment: + - BASE_MOVIES_DIR=/movies + - VLC_PASSWORD=pass + volumes: + # Replace the left path with the absolute path to your movies folder on your host server + - ./movies:/movies + restart: unless-stopped diff --git a/glv.py b/glv.py new file mode 100644 index 0000000000000000000000000000000000000000..0c9dd94e6b349d77632d54f0c87a107b83e081df --- /dev/null +++ b/glv.py @@ -0,0 +1,74 @@ +from colorama import Fore, Style, init +import glv_var +import shutil + + + +# Initialize colorama +init() + +class Global: + + # PREFERENCES_FILE is currently not used in mainLogic Project + # only used in beta project + import os + disable_hr = False + + def __init__(self, vout=True, outDir="./"): + self.outDir = outDir + self.vout = vout + + @staticmethod + def set_color(color, style=None): + """Prints text in the specified color and style.""" + print(getattr(Fore, color), end="") + if style: + print(getattr(Style, style), end="") + + @staticmethod + def reset(): + """Resets text color and style to defaults.""" + print(Style.RESET_ALL, end="") + + @staticmethod + def print_colored(text, color, style=None): + """Prints text in the specified color and style, resetting afterward.""" + Global.set_color(color, style) + print(text) + Global.reset() + + @staticmethod + def dprint(text): + """Prints debug text in yellow.""" + Global.print_colored(text, "YELLOW") + + @staticmethod + def errprint(text): + """Prints error text in red.""" + Global.print_colored(text, "RED") + + @staticmethod + def setDebug(): + """Sets the text color to yellow (for debugging).""" + Global.set_color("YELLOW") + + @staticmethod + def setSuccess(): + """Sets the text color to green (for success messages).""" + Global.set_color("GREEN") + + @staticmethod + def sprint(text): + """Prints success text in green.""" + Global.print_colored(text, "GREEN") + + @staticmethod + def hr(): + + # Disable horizontal rule if set + if Global.disable_hr: + return + + """Fills the entire terminal with = (one row only).""" + columns, _ = shutil.get_terminal_size() + print("-" * columns) \ No newline at end of file diff --git a/glv_var.py b/glv_var.py new file mode 100644 index 0000000000000000000000000000000000000000..4324a9f0e73c2c058506a084148bf068863a1c6d --- /dev/null +++ b/glv_var.py @@ -0,0 +1,66 @@ +# defining some variables that can be used in the preferences file +import os + +from Debugger import Debugger +import os + +class BasicUtils: + + @staticmethod + def delete_old_files(directory, minutes): + """ + Delete files in the given directory which are older than the given number of minutes. + """ + import time + + current_time = time.time() + + for file in os.listdir(directory): + file_path = os.path.join(directory, file) + + if os.path.isfile(file_path): + file_time = os.path.getmtime(file_path) + + if current_time - file_time >= minutes * 60: + os.remove(file_path) + + @staticmethod + def abspath(path): + return str(os.path.abspath(os.path.expandvars(path))).replace("\\", "/") + +vars = { + + # $script is the path to the folder containing the pwdl.py file + # Since the userPrefs.py is in the startup folder, + # we need to go one level up however we make the exception that if the pwdl.py is in the same folder as + # the startup folder, we don't need to go one level up + "$script": BasicUtils.abspath(os.path.dirname(__file__) + ( + '/../..' if not os.path.exists(os.path.dirname(__file__) + '../pwdl.py') else '')), + "$home": os.path.expanduser("~") if os.name == 'posix' else os.getenv('USERPROFILE'), +} + +debugger = Debugger(enabled=True,show_location=True) + +env_file = os.getenv('PWDL_PREF_FILE') +sys_verbose = os.getenv('PWDL_VERBOSE') +if env_file and os.path.exists(env_file): + if sys_verbose: print(f"Using preferences file: {env_file}") + PREFS_FILE = env_file +else: + if sys_verbose: print(f"Using default preferences file: {os.path.join(vars['$script'], 'preferences.json')}") + PREFS_FILE = os.path.join(vars["$script"], 'preferences.json') + +api_webdl_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../webdl')) +EXECUTABLES = ['ffmpeg', 'mp4decrypt'] + + +MINIMUM_PORT = 1024 + +class ENDPOINTS_NAME: + + base = 'api' + + @staticmethod + def GET_PVT_FILE_FOR_A_CLIENT(client_id="",name=""): + return f"/{ENDPOINTS_NAME.base}/get-private-file/{client_id}/{name}" + diff --git a/main.py b/main.py new file mode 100644 index 0000000000000000000000000000000000000000..8eec466edc9f12fbc640f14188cbe80a9705d3cc --- /dev/null +++ b/main.py @@ -0,0 +1,1105 @@ +import asyncio +import os +import shutil +import subprocess +import socket +import time +import uuid +from collections import deque +from pathlib import Path +from typing import Dict, List, Optional +from urllib.parse import urlparse, unquote +import re +import unicodedata + +import telnetlib +import requests +from fastapi import FastAPI, HTTPException +from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel, Field + +# ---------------- Config ---------------- + +default_movies_dir = Path.home() + +BASE_MOVIES_DIR = Path(os.getenv("BASE_MOVIES_DIR", default_movies_dir)).resolve() +PASSWORD = os.getenv("VLC_PASSWORD", "pass") +TELNET_HOST = "localhost" +VLC_EXECUTABLE = os.getenv("VLC_EXECUTABLE", "vlc") + + +class SimpleDownload: + def __init__(self, url: str): + self.gid = str(uuid.uuid4())[:16] + self.url = url + self.status = "waiting" # waiting, active, paused, complete, error, removed + self.total_length = 0 + self.completed_length = 0 + self.download_speed = 0 + self.download_speed_str = "0 B/s" + self.eta = "—" + self.name = "" + self.error_message = "" + self.file_path = None + self._cancel_event = False + self._pause_event = False + + +class InHouseDownloader: + def __init__(self): + self.downloads = {} # gid -> SimpleDownload + self._tasks = {} # gid -> asyncio.Task + + def get_downloads(self): + return list(self.downloads.values()) + + def get_download(self, gid: str): + return self.downloads.get(gid) + + def add(self, url: str): + dl = SimpleDownload(url) + parsed = urlparse(url) + filename = os.path.basename(unquote(parsed.path)) + if not filename: + filename = "download_" + dl.gid + + dl.name = filename + dl.file_path = BASE_MOVIES_DIR / filename + self.downloads[dl.gid] = dl + + # Start download task + self.resume(dl.gid) + return dl + + def pause(self, gid: str): + dl = self.downloads.get(gid) + if dl and dl.status == "active": + dl.status = "paused" + dl._pause_event = True + + def resume(self, gid: str): + dl = self.downloads.get(gid) + if not dl: + return + + dl.status = "active" + dl._pause_event = False + dl._cancel_event = False + + task = asyncio.create_task(self._download_loop(dl)) + self._tasks[dl.gid] = task + + def remove(self, gid: str): + dl = self.downloads.get(gid) + if dl: + dl.status = "removed" + dl._cancel_event = True + if dl.file_path and dl.file_path.exists(): + try: + dl.file_path.unlink() + except Exception: + pass + self.downloads.pop(gid, None) + self._tasks.pop(gid, None) + + def autopurge(self): + to_purge = [gid for gid, dl in self.downloads.items() if dl.status in ("complete", "error", "removed")] + for gid in to_purge: + self.downloads.pop(gid, None) + self._tasks.pop(gid, None) + + async def _download_loop(self, dl: SimpleDownload): + try: + headers = {} + if dl.completed_length > 0: + headers["Range"] = f"bytes={dl.completed_length}-" + + response = await asyncio.to_thread( + requests.get, + dl.url, + headers=headers, + stream=True, + timeout=15, + ) + + if "content-disposition" in response.headers: + cd = response.headers["content-disposition"] + for part in cd.split(";"): + if "filename=" in part: + dl.name = part.split("=")[1].strip('"\'') + dl.file_path = BASE_MOVIES_DIR / dl.name + + is_resume = response.status_code == 206 + if not is_resume and dl.completed_length > 0: + dl.completed_length = 0 + + if "content-length" in response.headers: + total_len = int(response.headers["content-length"]) + dl.total_length = total_len + (dl.completed_length if is_resume else 0) + + mode = "ab" if (is_resume and dl.file_path.exists()) else "wb" + + start_time = time.time() + bytes_since_start = 0 + + with open(dl.file_path, mode) as f: + for chunk in response.iter_content(chunk_size=128 * 1024): + if dl._cancel_event or dl.status == "removed": + return + if dl._pause_event or dl.status == "paused": + return + + if chunk: + f.write(chunk) + dl.completed_length += len(chunk) + bytes_since_start += len(chunk) + + elapsed = time.time() - start_time + if elapsed > 0.5: + dl.download_speed = bytes_since_start / elapsed + speed = dl.download_speed + if speed >= 1024**2: + dl.download_speed_str = f"{speed / 1024**2:.2f} MB/s" + elif speed >= 1024: + dl.download_speed_str = f"{speed / 1024:.2f} KB/s" + else: + dl.download_speed_str = f"{speed:.2f} B/s" + + remaining = dl.total_length - dl.completed_length + if remaining > 0 and dl.download_speed > 0: + eta_secs = int(remaining / dl.download_speed) + if eta_secs >= 3600: + dl.eta = f"{eta_secs // 3600}h {(eta_secs % 3600) // 60}m" + elif eta_secs >= 60: + dl.eta = f"{eta_secs // 60}m {eta_secs % 60}s" + else: + dl.eta = f"{eta_secs}s" + else: + dl.eta = "0s" + + await asyncio.sleep(0.001) + + dl.status = "complete" + dl.download_speed_str = "0 B/s" + dl.eta = "done" + + except Exception as e: + dl.status = "error" + dl.error_message = str(e) + dl.download_speed_str = "0 B/s" + dl.eta = "—" + + +aria2_manager = InHouseDownloader() + +app = FastAPI(title="VLC Control API", debug=True) + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], +) + +# ---------------- Utilities ---------------- + +def find_free_port() -> int: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + s.bind(("localhost", 0)) + return s.getsockname()[1] + + +# ---------------- Models ---------------- + +class StartVLCRequest(BaseModel): + video_path: str = Field(..., description="Path relative to BASE_MOVIES_DIR, or absolute") + stream_key: Optional[str] = Field(None, description="Twitch stream key") + rtmp_url: Optional[str] = Field(None, description="Full RTMP dst, overrides stream_key") + loop: bool = True + video_bitrate: int = 3000 + audio_bitrate: int = 128 + fps: int = 60 + name: Optional[str] = None + audio_track: Optional[int] = Field(None, description="Audio track index (0 to n)") + sub_track: Optional[int] = Field(None, description="Subtitle track index (0 to n)") + scale: str = "Auto" + vcodec: str = "h264" + acodec: str = "mp4a" + samplerate: int = 44100 + preset: str = "veryfast" + keyint: int = 60 + + +class InstanceInfo(BaseModel): + id: str + name: str + pid: Optional[int] + telnet_port: int + http_port: int + video_path: str + status: str + started_at: Optional[float] + returncode: Optional[int] + start_req: Optional[StartVLCRequest] = None + + +class ExecRequest(BaseModel): + command: str + + +class AddDownloadRequest(BaseModel): + uri: str + + +class DeleteFileRequest(BaseModel): + path: str + + +class UpdateConfigRequest(BaseModel): + movies_dir: str + create_if_missing: bool = True + + +class SearchRequest(BaseModel): + query: str + + +class SourceQualityRequest(BaseModel): + url: str + + +class SourceEpisodesRequest(BaseModel): + url: str + + +class AcerDownloadRequest(BaseModel): + url: str + filename: str + series_type: str = "episode" + + +def sanitize_filename(filename): + normalized = unicodedata.normalize('NFKD', filename).encode('ascii', 'ignore').decode('ascii') + sanitized = re.sub(r'[\\/*?:"<>|]', "", normalized) + sanitized = sanitized.replace(' ', '_') + sanitized = re.sub(r'_+', '_', sanitized).strip('._') + if not sanitized: + return 'download' + stem, ext = os.path.splitext(sanitized) + max_length = 180 + if len(sanitized) <= max_length: + return sanitized + allowed_stem_length = max_length - len(ext) + shortened_stem = stem[:allowed_stem_length].rstrip('._') + return f"{shortened_stem}{ext}" if shortened_stem else f"download{ext}" + + +# ---------------- VLC instance / manager ---------------- + +class VLCInstance: + def __init__(self, instance_id: str, name: str, video_path: str, telnet_port: int, http_port: int): + self.id = instance_id + self.name = name + self.video_path = video_path + self.telnet_port = telnet_port + self.http_port = http_port + self.process: Optional[subprocess.Popen] = None + self.status = "starting" + self.started_at: Optional[float] = None + self.log_lines: deque = deque(maxlen=200) + self._reader_task: Optional[asyncio.Task] = None + self.start_req: Optional[StartVLCRequest] = None + + def to_info(self) -> InstanceInfo: + return InstanceInfo( + id=self.id, + name=self.name, + pid=self.process.pid if self.process else None, + telnet_port=self.telnet_port, + http_port=self.http_port, + video_path=self.video_path, + status=self.status, + started_at=self.started_at, + returncode=self.process.poll() if self.process else None, + start_req=self.start_req, + ) + + async def _read_logs(self): + if not self.process or not self.process.stderr: + return + + def read_loop(): + try: + for line in self.process.stderr: + self.log_lines.append(line.decode(errors="replace").strip()) + except Exception as e: + self.log_lines.append(f"[log reader error] {e}") + finally: + if self.status not in ("stopped", "killed"): + self.status = "exited" + + await asyncio.to_thread(read_loop) + + +class VLCManager: + def __init__(self): + self.instances: Dict[str, VLCInstance] = {} + self._lock = asyncio.Lock() + + def _resolve_video_path(self, raw: str) -> Path: + p = Path(raw) + if not p.is_absolute(): + p = BASE_MOVIES_DIR / raw + return p.resolve() + + async def start(self, req: StartVLCRequest, instance_id: Optional[str] = None, telnet_port: Optional[int] = None, http_port: Optional[int] = None) -> VLCInstance: + async with self._lock: + video_path = self._resolve_video_path(req.video_path) + if not video_path.exists(): + raise HTTPException(status_code=404, detail=f"Video not found: {video_path}") + if shutil.which(VLC_EXECUTABLE) is None: + raise HTTPException(status_code=500, detail="vlc executable not found on PATH") + + dst = req.rtmp_url + if not dst: + if not req.stream_key: + raise HTTPException(status_code=400, detail="Provide rtmp_url or stream_key") + dst = f"rtmp://live.twitch.tv/app/{req.stream_key}" + + if not instance_id: + instance_id = uuid.uuid4().hex[:8] + name = req.name or instance_id + if not telnet_port: + telnet_port = find_free_port() + if not http_port: + http_port = find_free_port() + + # Generate dynamic SOUT options based on request params + transcode_opts = ( + f"vcodec={req.vcodec},vb={req.video_bitrate}," + f"scale={req.scale},acodec={req.acodec},ab={req.audio_bitrate}," + f"channels=2,samplerate={req.samplerate},fps={req.fps}" + ) + + if req.preset or req.keyint: + venc_opts = [] + if req.preset: + venc_opts.append(f"preset={req.preset}") + if req.keyint: + venc_opts.append(f"keyint={req.keyint}") + transcode_opts += f",venc=x264{{{','.join(venc_opts)}}}" + + if req.sub_track is not None: + transcode_opts += ",soverlay" + + sout = ( + f"#transcode{{{transcode_opts}}}" + f":std{{access=rtmp,mux=flv,dst={dst}}}" + ) + + args = [ + VLC_EXECUTABLE, + str(video_path), + f"--sout={sout}", + "--intf", "telnet", + "--telnet-password", PASSWORD, + "--telnet-port", str(telnet_port), + "--extraintf", "http", + "--http-password", PASSWORD, + "--http-port", str(http_port), + "--no-sout-all", + "--sout-keep", + "-vv", + ] + if req.loop: + args.append("--loop") + if req.audio_track is not None: + args.append(f"--audio-track={req.audio_track}") + if req.sub_track is not None: + args.append(f"--sub-track={req.sub_track}") + + # Reuse existing instance configuration if reconfiguring + if instance_id in self.instances: + instance = self.instances[instance_id] + instance.video_path = str(video_path) + instance.status = "starting" + instance.process = None + instance.log_lines.clear() + else: + instance = VLCInstance(instance_id, name, str(video_path), telnet_port, http_port) + + instance.start_req = req + + import traceback + print("--- Launching VLC ---") + print(f"Executable: {VLC_EXECUTABLE}") + print(f"Resolved executable: {shutil.which(VLC_EXECUTABLE)}") + print(f"Arguments: {args}") + try: + process = await asyncio.to_thread( + subprocess.Popen, + args, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + print(f"Successfully launched VLC. PID: {process.pid}") + except Exception as e: + print(f"Exception while launching VLC: {e}") + traceback.print_exc() + raise HTTPException(status_code=500, detail=f"Failed to launch VLC: {e}") + + instance.process = process + instance.started_at = time.time() + instance._reader_task = asyncio.create_task(instance._read_logs()) + self.instances[instance_id] = instance + + ok = await self._wait_for_telnet(instance, timeout=8) + instance.status = "running" if ok else "error" + if ok: + # Headless VLC often starts muted (volume 0) when no soundcard is detected. + # Explicitly initialize VLC volume to 256 (100%) so stream audio works. + try: + await asyncio.to_thread( + requests.get, + f"http://localhost:{instance.http_port}/requests/status.json?command=volume&val=256", + auth=("", PASSWORD), + timeout=2, + ) + except Exception: + pass + if not ok: + instance.log_lines.append("Telnet interface did not become ready in time.") + return instance + + async def _wait_for_telnet(self, instance: VLCInstance, timeout: float = 8) -> bool: + deadline = time.time() + timeout + while time.time() < deadline: + if instance.process.poll() is not None: + return False + try: + if await asyncio.to_thread(self._telnet_probe, instance.telnet_port): + return True + except Exception: + pass + await asyncio.sleep(0.5) + return False + + @staticmethod + def _telnet_probe(port: int) -> bool: + tn = None + try: + tn = telnetlib.Telnet(TELNET_HOST, port, timeout=2) + tn.read_until(b"Password: ", timeout=2) + tn.write(PASSWORD.encode("ascii") + b"\n") + tn.read_until(b"> ", timeout=2) + return True + except Exception: + return False + finally: + if tn: + tn.close() + + def get(self, instance_id: str) -> VLCInstance: + inst = self.instances.get(instance_id) + if not inst: + raise HTTPException(status_code=404, detail=f"No such instance: {instance_id}") + return inst + + def list(self) -> List[VLCInstance]: + return list(self.instances.values()) + + async def stop(self, instance_id: str, force: bool = False) -> VLCInstance: + inst = self.get(instance_id) + if inst.process is None or inst.process.poll() is not None: + inst.status = "stopped" if inst.process is None else "exited" + return inst + try: + if force: + inst.process.kill() + else: + inst.process.terminate() + try: + await asyncio.wait_for(asyncio.to_thread(inst.process.wait), timeout=6) + except asyncio.TimeoutError: + if not force: + inst.process.kill() + await asyncio.wait_for(asyncio.to_thread(inst.process.wait), timeout=6) + inst.status = "killed" if force else "stopped" + except ProcessLookupError: + inst.status = "stopped" + except Exception as e: + inst.log_lines.append(f"[stop error] {e}") + raise HTTPException(status_code=500, detail=f"Failed to stop instance: {e}") + return inst + + def remove(self, instance_id: str): + self.instances.pop(instance_id, None) + + +manager = VLCManager() + + +def _telnet_exec(port: int, command: str, timeout: float = 5) -> str: + tn = telnetlib.Telnet(TELNET_HOST, port, timeout=timeout) + try: + tn.read_until(b"Password: ", timeout=timeout) + tn.write(PASSWORD.encode("ascii") + b"\n") + tn.read_until(b"> ", timeout=timeout) + tn.write(command.encode("ascii", errors="replace") + b"\n") + return tn.read_until(b"> ", timeout=timeout).decode("ascii", errors="replace") + finally: + tn.close() + + +# ---------------- Routes ---------------- + +# @app.get("/") +# async def root(): +# return {"message": "VLC Control API"} + + +@app.get("/movies/probe/{path:path}") +async def probe_movie(path: str): + import json + target = (BASE_MOVIES_DIR / path).resolve() + try: + target.relative_to(BASE_MOVIES_DIR) + except ValueError: + raise HTTPException(status_code=400, detail="Path escapes movies directory") + if not target.exists(): + raise HTTPException(status_code=404, detail="Path not found") + if target.is_dir(): + raise HTTPException(status_code=400, detail="Path is a directory") + + cmd = [ + "ffprobe", + "-v", "error", + "-show_entries", "stream=index,codec_type,codec_name:stream_tags=language,title", + "-of", "json", + str(target) + ] + try: + process = await asyncio.to_thread( + subprocess.run, + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + check=True + ) + data = json.loads(process.stdout) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to probe file: {e}") + + streams = data.get("streams", []) + audio_tracks = [] + sub_tracks = [] + + audio_index = 0 + sub_index = 0 + + for stream in streams: + t = stream.get("codec_type") + tags = stream.get("tags", {}) + language = tags.get("language", "und") + title = tags.get("title", "") + codec = stream.get("codec_name", "") + + info = { + "vlc_index": None, + "ffprobe_index": stream.get("index"), + "codec": codec, + "language": language, + "title": title + } + + if t == "audio": + info["vlc_index"] = audio_index + audio_tracks.append(info) + audio_index += 1 + elif t == "subtitle": + info["vlc_index"] = sub_index + sub_tracks.append(info) + sub_index += 1 + + return { + "audio": audio_tracks, + "subtitle": sub_tracks + } + + +@app.get("/movies") +@app.get("/movies/{path:path}") +async def get_movies(path: str = ""): + target = (BASE_MOVIES_DIR / path).resolve() + try: + target.relative_to(BASE_MOVIES_DIR) + except ValueError: + raise HTTPException(status_code=400, detail="Path escapes movies directory") + if not target.exists(): + raise HTTPException(status_code=404, detail="Path not found") + if not target.is_dir(): + raise HTTPException(status_code=400, detail="Path is not a directory") + + try: + subfolders = [f.name for f in os.scandir(target) if f.is_dir() and not f.name.startswith(".")] + files = [f.name for f in os.scandir(target) if not f.is_dir() and not f.name.startswith(".")] + except PermissionError: + raise HTTPException(status_code=403, detail=f"Permission denied accessing directory: {target}") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to scan directory: {e}") + return {"message": {"files": files, "subfolders": subfolders}} + + +@app.post("/vlc/start", response_model=InstanceInfo) +async def start_vlc(req: StartVLCRequest): + instance = await manager.start(req) + return instance.to_info() + + +@app.post("/vlc/{instance_id}/reconfigure", response_model=InstanceInfo) +async def reconfigure_instance(instance_id: str, req: StartVLCRequest): + inst = manager.get(instance_id) + # Stop the current process + await manager.stop(instance_id, force=True) + # Start it again on the same ports! + new_inst = await manager.start( + req, + instance_id=instance_id, + telnet_port=inst.telnet_port, + http_port=inst.http_port + ) + return new_inst.to_info() + + +@app.get("/vlc/instances", response_model=List[InstanceInfo]) +async def list_instances(): + return [i.to_info() for i in manager.list()] + + +@app.get("/vlc/{instance_id}", response_model=InstanceInfo) +async def get_instance(instance_id: str): + return manager.get(instance_id).to_info() + + +@app.get("/vlc/{instance_id}/logs") +async def get_logs(instance_id: str, lines: int = 50): + inst = manager.get(instance_id) + return {"status": "success", "message": list(inst.log_lines)[-lines:]} + + +@app.post("/vlc/{instance_id}/stop", response_model=InstanceInfo) +async def stop_instance(instance_id: str): + return (await manager.stop(instance_id, force=False)).to_info() + + +@app.post("/vlc/{instance_id}/kill", response_model=InstanceInfo) +async def kill_instance(instance_id: str): + return (await manager.stop(instance_id, force=True)).to_info() + + +@app.delete("/vlc/{instance_id}") +async def delete_instance(instance_id: str): + inst = manager.get(instance_id) + if inst.process and inst.process.poll() is None: + await manager.stop(instance_id, force=True) + manager.remove(instance_id) + return {"status": "success", "message": f"Removed instance {instance_id}"} + + +@app.post("/vlc/{instance_id}/exec") +async def exec_command(instance_id: str, body: ExecRequest): + inst = manager.get(instance_id) + if inst.process is None or inst.process.poll() is not None: + raise HTTPException(status_code=409, detail="Instance is not running") + try: + output = await asyncio.to_thread(_telnet_exec, inst.telnet_port, body.command) + return {"status": "success", "message": output} + except (ConnectionRefusedError, OSError) as e: + raise HTTPException(status_code=502, detail=f"Could not connect to VLC telnet: {e}") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Exec failed: {e}") + + +@app.get("/vlc/{instance_id}/status") +async def instance_status(instance_id: str): + inst = manager.get(instance_id) + if inst.process is None or inst.process.poll() is not None: + return {"status": "error", "message": "Instance is not running"} + try: + res = await asyncio.to_thread( + requests.get, + f"http://localhost:{inst.http_port}/requests/status.json", + auth=("", PASSWORD), + timeout=5, + ) + return {"status": "success", "message": res.json()} + except Exception as e: + return {"status": "error", "message": f"Could not connect to VLC HTTP interface. Error: {e}"} + + +@app.post("/vlc/{instance_id}/volume") +async def change_volume(instance_id: str, val: str): + inst = manager.get(instance_id) + if inst.process is None or inst.process.poll() is not None: + raise HTTPException(status_code=409, detail="Instance is not running") + try: + res = await asyncio.to_thread( + requests.get, + f"http://localhost:{inst.http_port}/requests/status.json?command=volume&val={val}", + auth=("", PASSWORD), + timeout=5, + ) + return {"status": "success", "message": res.json()} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to change volume: {e}") + + +@app.post("/vlc/{instance_id}/track") +async def change_track(instance_id: str, type: str, val: int): + inst = manager.get(instance_id) + if inst.process is None or inst.process.poll() is not None: + raise HTTPException(status_code=409, detail="Instance is not running") + + command = "audio_track" if type == "audio" else "subtitle_track" + try: + res = await asyncio.to_thread( + requests.get, + f"http://localhost:{inst.http_port}/requests/status.json?command={command}&val={val}", + auth=("", PASSWORD), + timeout=5, + ) + return {"status": "success", "message": res.json()} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to change track: {e}") + + +# ---------------- Aria2 / Explorer API routes ---------------- + +@app.get("/aria2/downloads") +async def get_downloads(): + try: + downloads = aria2_manager.get_downloads() + results = [] + for dl in downloads: + total = dl.total_length + completed = dl.completed_length + pct = (completed / total * 100) if total > 0 else 0 + + results.append({ + "gid": dl.gid, + "name": dl.name, + "status": dl.status, + "total_length": total, + "completed_length": completed, + "progress": round(pct, 2), + "download_speed": dl.download_speed, + "download_speed_str": dl.download_speed_str, + "eta": dl.eta, + "files": [str(dl.file_path)] if dl.file_path else [], + "error_message": dl.error_message + }) + return {"status": "success", "downloads": results} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to fetch downloads: {e}") + + +@app.post("/aria2/add") +async def add_download(req: AddDownloadRequest): + try: + dl = aria2_manager.add(req.uri) + return {"status": "success", "gid": dl.gid} + except Exception as e: + raise HTTPException(status_code=400, detail=f"Failed to add download: {e}") + + +@app.post("/aria2/pause/{gid}") +async def pause_download(gid: str): + try: + aria2_manager.pause(gid) + return {"status": "success"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@app.post("/aria2/resume/{gid}") +async def resume_download(gid: str): + try: + aria2_manager.resume(gid) + return {"status": "success"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@app.post("/aria2/remove/{gid}") +async def remove_download(gid: str): + try: + aria2_manager.remove(gid) + return {"status": "success"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@app.post("/aria2/purge") +async def purge_downloads(): + try: + aria2_manager.autopurge() + return {"status": "success"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +# ---------------- Acer Scraper APIs ---------------- + +API_BASE_URL = 'https://api2.acermovies.fun/api' +DEFAULT_HEADERS = { + "Accept": "*/*", + "Accept-Language": "en-US,en;q=0.9", + "Content-Type": "application/json", + "Origin": "https://acermovies.fun", + "Referer": "https://acermovies.fun/", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 Edg/150.0.0.0", + "sec-ch-ua": '"Not;A=Brand";v="8", "Chromium";v="150", "Microsoft Edge";v="150"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": '"Windows"', + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site" +} + + +@app.post("/acer/search") +async def acer_search(req: SearchRequest): + try: + res = await asyncio.to_thread( + requests.post, + f"{API_BASE_URL}/search", + headers=DEFAULT_HEADERS, + json={"searchQuery": req.query}, + timeout=10 + ) + res.raise_for_status() + return res.json() + except Exception as e: + raise HTTPException(status_code=500, detail=f"Search failed: {e}") + + +@app.post("/acer/qualities") +async def acer_qualities(req: SourceQualityRequest): + try: + res = await asyncio.to_thread( + requests.post, + f"{API_BASE_URL}/sourceQuality", + headers=DEFAULT_HEADERS, + json={"url": req.url}, + timeout=10 + ) + res.raise_for_status() + return res.json() + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to fetch qualities: {e}") + + +@app.post("/acer/episodes") +async def acer_episodes(req: SourceEpisodesRequest): + try: + res = await asyncio.to_thread( + requests.post, + f"{API_BASE_URL}/sourceEpisodes", + headers=DEFAULT_HEADERS, + json={"url": req.url}, + timeout=10 + ) + res.raise_for_status() + return res.json() + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to fetch episodes: {e}") + + +@app.post("/acer/download") +async def acer_download(req: AcerDownloadRequest): + try: + # 1. Resolve sourceUrl + res = await asyncio.to_thread( + requests.post, + f"{API_BASE_URL}/sourceUrl", + headers=DEFAULT_HEADERS, + json={"url": req.url, "seriesType": req.series_type}, + timeout=15 + ) + res.raise_for_status() + data = res.json() + direct_url = data.get("sourceUrl") + if not direct_url: + raise HTTPException(status_code=400, detail="Could not resolve download URL") + + # Decode URL + direct_url = unquote(direct_url) + + # 2. Add to downloader + dl = aria2_manager.add(direct_url) + if req.filename: + sanitized = sanitize_filename(req.filename) + dl.name = sanitized + dl.file_path = BASE_MOVIES_DIR / sanitized + + return {"status": "success", "gid": dl.gid, "filename": dl.name} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Download queue failed: {e}") + + +@app.get("/config") +async def get_config(): + return { + "status": "success", + "default_movies_dir": str(default_movies_dir), + "current_movies_dir": str(BASE_MOVIES_DIR), + } + + +@app.post("/config") +async def update_config(req: UpdateConfigRequest): + global BASE_MOVIES_DIR + target = Path(req.movies_dir).expanduser().resolve() + + if not target.exists(): + if req.create_if_missing: + try: + target.mkdir(parents=True, exist_ok=True) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to create directory: {e}") + else: + raise HTTPException(status_code=400, detail="Directory does not exist") + + BASE_MOVIES_DIR = target + return { + "status": "success", + "current_movies_dir": str(BASE_MOVIES_DIR), + "message": f"Updated active movies directory to {BASE_MOVIES_DIR}" + } + + +@app.get("/explorer") +@app.get("/explorer/{path:path}") +async def explorer_list(path: str = ""): + target = (BASE_MOVIES_DIR / path).resolve() + try: + target.relative_to(BASE_MOVIES_DIR) + except ValueError: + raise HTTPException(status_code=400, detail="Access denied") + + if not target.exists(): + raise HTTPException(status_code=404, detail="Path not found") + + if not target.is_dir(): + raise HTTPException(status_code=400, detail="Not a directory") + + entries = [] + try: + for item in os.scandir(target): + if item.name.startswith("."): + continue + + stat = item.stat() + relative = str(Path(item.path).relative_to(BASE_MOVIES_DIR)).replace("\\", "/") + + is_directory = item.is_dir() + size_bytes = stat.st_size if not is_directory else 0 + + if is_directory: + size_str = "dir" + else: + if size_bytes >= 1024**3: + size_str = f"{size_bytes / 1024**3:.2f} GB" + elif size_bytes >= 1024**2: + size_str = f"{size_bytes / 1024**2:.2f} MB" + elif size_bytes >= 1024: + size_str = f"{size_bytes / 1024:.2f} KB" + else: + size_str = f"{size_bytes} B" + + entries.append({ + "name": item.name, + "type": "directory" if is_directory else "file", + "size": size_bytes, + "size_str": size_str, + "modified_at": stat.st_mtime, + "path": relative + }) + except PermissionError: + raise HTTPException(status_code=403, detail="Permission denied") + + entries.sort(key=lambda x: (x["type"] != "directory", x["name"].lower())) + return {"status": "success", "entries": entries, "current_path": path} + + +@app.post("/explorer/delete") +async def explorer_delete(req: DeleteFileRequest): + target = (BASE_MOVIES_DIR / req.path).resolve() + try: + target.relative_to(BASE_MOVIES_DIR) + except ValueError: + raise HTTPException(status_code=400, detail="Access denied") + + if not target.exists(): + raise HTTPException(status_code=404, detail="File or directory not found") + + try: + if target.is_dir(): + shutil.rmtree(target) + else: + target.unlink() + return {"status": "success", "message": f"Successfully deleted {req.path}"} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to delete: {e}") + + +@app.on_event("shutdown") +async def shutdown_event(): + for task in list(aria2_manager._tasks.values()): + task.cancel() + for inst in list(manager.instances.values()): + if inst.process and inst.process.poll() is None: + try: + inst.process.kill() + except Exception: + pass + + +from fastapi.responses import FileResponse + +# Serve Next.js static export files from 'out' folder +OUT_DIR = Path(__file__).parent / "out" + +@app.get('/') +@app.get("/{catchall:path}", include_in_schema=False) +async def serve_static(catchall: str): + if not OUT_DIR.exists(): + return {"message": "VLC Control API (Frontend static files 'out' folder not found)"} + + # Try to serve exact file requested + file_path = (OUT_DIR / catchall).resolve() + try: + file_path.relative_to(OUT_DIR) + if file_path.is_file(): + return FileResponse(file_path) + + # Try appending .html (Next.js default static routing) + html_file = file_path.with_suffix(".html") + if html_file.is_file(): + return FileResponse(html_file) + + if file_path.is_dir(): + index_file = file_path / "index.html" + if index_file.is_file(): + return FileResponse(index_file) + except ValueError: + pass + + # Otherwise fall back to index.html (SPA routing) + index_path = OUT_DIR / "index.html" + if index_path.exists(): + return FileResponse(index_path) + + return {"message": "VLC Control API (index.html not found)"} \ No newline at end of file diff --git a/movies/bbb_sunflower_1080p_30fps_normal.mp4 b/movies/bbb_sunflower_1080p_30fps_normal.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e2ba08c3dc9d1303b667327123c68cc3a54bf503 --- /dev/null +++ b/movies/bbb_sunflower_1080p_30fps_normal.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae51005850b0ff757fe60c3dd7a12d754d3cd2397d87d939b55235e457f97658 +size 276134947 diff --git a/out/404.html b/out/404.html new file mode 100644 index 0000000000000000000000000000000000000000..af9e65100b42b9e645cf6d203f14a0a397f4b206 --- /dev/null +++ b/out/404.html @@ -0,0 +1,5 @@ +404: This page could not be found.My Mantine app

404

This page could not be found.

\ No newline at end of file diff --git a/out/404/index.html b/out/404/index.html new file mode 100644 index 0000000000000000000000000000000000000000..af9e65100b42b9e645cf6d203f14a0a397f4b206 --- /dev/null +++ b/out/404/index.html @@ -0,0 +1,5 @@ +404: This page could not be found.My Mantine app

404

This page could not be found.

\ No newline at end of file diff --git a/out/__next.__PAGE__.txt b/out/__next.__PAGE__.txt new file mode 100644 index 0000000000000000000000000000000000000000..66e291ef6ccfe0020f2e05b3f0eba7e26a871ca8 --- /dev/null +++ b/out/__next.__PAGE__.txt @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +3:I[31713,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2aanosyrv6eaw.js","/_next/static/chunks/18dm0rqyf17bd.js"],"default"] +6:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2aanosyrv6eaw.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/18dm0rqyf17bd.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/out/__next._full.txt b/out/__next._full.txt new file mode 100644 index 0000000000000000000000000000000000000000..911f11d354bd907ae15d20ec037f2214143e708b --- /dev/null +++ b/out/__next._full.txt @@ -0,0 +1,19 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +5:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +6:I[31713,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2aanosyrv6eaw.js","/_next/static/chunks/18dm0rqyf17bd.js"],"default"] +9:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +a:"$Sreact.suspense" +c:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +e:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +10:I[68027,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2aanosyrv6eaw.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/18dm0rqyf17bd.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9TP5TNTvxBGj0fHE1AOrA"} +7:{} +8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +11:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +b:null +f:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L11","3",{}]] diff --git a/out/__next._head.txt b/out/__next._head.txt new file mode 100644 index 0000000000000000000000000000000000000000..a695f2171d1326f1c8ac8075e6986079581d0391 --- /dev/null +++ b/out/__next._head.txt @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/__next._index.txt b/out/__next._index.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e77d9b526204c2c6ffacad054633cc0ec0682bb --- /dev/null +++ b/out/__next._index.txt @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/__next._tree.txt b/out/__next._tree.txt new file mode 100644 index 0000000000000000000000000000000000000000..bf62cee34c33b0c68942cb7b690e826471423e2b --- /dev/null +++ b/out/__next._tree.txt @@ -0,0 +1,2 @@ +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_buildManifest.js b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_buildManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..22b0b1001f76a9d723998c666248fef61e9f80b1 --- /dev/null +++ b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_buildManifest.js @@ -0,0 +1,18 @@ +self.__BUILD_MANIFEST = { + "__rewrites": { + "afterFiles": [ + { + "source": "/vlc/:path*" + }, + { + "source": "/movies/:path*" + } + ], + "beforeFiles": [], + "fallback": [] + }, + "sortedPages": [ + "/_app", + "/_error" + ] +};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_clientMiddlewareManifest.js b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_clientMiddlewareManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..a8acaffa33a1fe475700d809ebf9b700e2a5b36f --- /dev/null +++ b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_clientMiddlewareManifest.js @@ -0,0 +1 @@ +self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB() \ No newline at end of file diff --git a/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_ssgManifest.js b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_ssgManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..5b3ff592fd46c8736892a12864fdf3fed8775202 --- /dev/null +++ b/out/_next/static/9TP5TNTvxBGj0fHE1AOrA/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/out/_next/static/chunks/0cz1d0mv5g_q7.js b/out/_next/static/chunks/0cz1d0mv5g_q7.js new file mode 100644 index 0000000000000000000000000000000000000000..ab422b94a4fbe76275d31c0bf7ef334768b39cae --- /dev/null +++ b/out/_next/static/chunks/0cz1d0mv5g_q7.js @@ -0,0 +1 @@ +!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;aa;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+""},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;ii;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r                 \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;uo)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;ob)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"​…᠎"!=="​…᠎"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;ne){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;se||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;se.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;uo;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&o<=56319&&r=i&&nZv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;rGv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e4)return t;for(r=[],n=0;n1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},91915,(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let a=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=a}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(33525)},68017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return u}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(90373),s=e.r(54394);e.r(33525);let l=e.r(8372);class c extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,s.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,s.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:o}=this.state,i={[s.HTTPAccessErrorStatus.NOT_FOUND]:e,[s.HTTPAccessErrorStatus.FORBIDDEN]:t,[s.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(o){let l=o===s.HTTPAccessErrorStatus.NOT_FOUND&&e,c=o===s.HTTPAccessErrorStatus.FORBIDDEN&&t,u=o===s.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return l||c||u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,i[o]]}):n}return n}}function u({notFound:e,forbidden:t,unauthorized:r,children:n}){let s=(0,i.useUntrackedPathname)(),d=(0,o.useContext)(l.MissingSlotContext);return e||t||r?(0,a.jsx)(c,{pathname:s,notFound:e,forbidden:t,unauthorized:r,missingSlots:d,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},28298,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t,r){let[a,o]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(a.tree===e)return a;let i={tree:e,cacheNode:t,stateKey:r,next:null},s=1,l=a,c=i;for(;null!==l&&s<1;){if(l.stateKey===r){c.next=l.next;break}{s++;let e={tree:l.tree,cacheNode:l.cacheNode,stateKey:l.stateKey,next:null};c.next=e,c=e}l=l.next}return o(i),i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39756,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={LoadingBoundaryProvider:function(){return j},default:function(){return A}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(55682),i=e.r(90809),s=e.r(43476),l=i._(e.r(71645)),c=o._(e.r(74080)),u=e.r(8372),d=e.r(1244),f=e.r(72383),p=e.r(91915),m=e.r(58442),h=e.r(68017),g=e.r(70725),y=e.r(28298);e.r(74180);let b=e.r(61994),P=e.r(33906),_=e.r(95871),v=c.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function O(e,t){let r=e.getClientRects();if(0===r.length)return!1;let n=1/0;for(let e=0;e=0&&n<=t}class R extends l.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,cacheNode:t}=this.props,r=e.forceScroll?e.scrollRef:t.scrollRef;if(null===r||!r.current)return;let n=null,a=e.hashFragment;if(a&&(n="top"===a?document.body:document.getElementById(a)??document.getElementsByName(a)[0]),n||(n="u"0===t[e])}(n);){if(null===n.nextElementSibling)return;n=n.nextElementSibling}r.current=!1,(0,p.disableSmoothScrollDuringRouteTransition)(()=>{if(a)return void n.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!O(n,t)&&(e.scrollTop=0,O(n,t)||n.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,e.hashFragment=null,n.focus()}}}}function w({children:e,cacheNode:t}){let r=(0,l.useContext)(u.GlobalLayoutRouterContext);if(!r)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,s.jsx)(R,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function S({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:a,url:o,isActive:i}){let c,f=(0,l.useContext)(u.GlobalLayoutRouterContext);if((0,l.useContext)(b.NavigationPromisesContext),!f)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let p=null!==n?n:(0,l.use)(d.unresolvedThenable),m=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,h=(0,l.useDeferredValue)(p.rsc,m);if((0,_.isDeferredRsc)(h)){let e=(0,l.use)(h);null===e&&(0,l.use)(d.unresolvedThenable),c=e}else null===h&&(0,l.use)(d.unresolvedThenable),c=h;let g=c;return(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:a,parentLoadingData:null,debugNameContext:r,url:o,isActive:i},children:g})}function j({loading:e,children:t}){let r=(0,l.use)(u.LayoutRouterContext);return null===r?t:(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:r.parentTree,parentCacheNode:r.parentCacheNode,parentSegmentPath:r.parentSegmentPath,parentParams:r.parentParams,parentLoadingData:e,debugNameContext:r.debugNameContext,url:r.url,isActive:r.isActive},children:t})}function C({name:e,loading:t,children:r}){if(null!==t){let n=t[0],a=t[1],o=t[2];return(0,s.jsx)(l.Suspense,{name:e,fallback:(0,s.jsxs)(s.Fragment,{children:[a,o,n]}),children:r})}return(0,s.jsx)(s.Fragment,{children:r})}function A({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:a,templateScripts:o,template:i,notFound:c,forbidden:p,unauthorized:b,segmentViewBoundaries:_}){let v=(0,l.useContext)(u.LayoutRouterContext);if(!v)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:E,parentCacheNode:O,parentSegmentPath:R,parentParams:j,parentLoadingData:x,url:k,isActive:T,debugNameContext:N}=v,D=E[0],M=null===R?[e]:R.concat([D,e]),I=E[1][e],F=O.slots;(void 0===I||null===F)&&(0,l.use)(d.unresolvedThenable);let $=I[0],L=F[e]??null,U=(0,g.createRouterCacheKey)($,!0),X=(0,y.useRouterBFCache)(I,L,U),V=[];do{let e=X.tree,l=X.cacheNode,d=X.stateKey,g=e[0],y=j;if(Array.isArray(g)){let e=g[0],t=g[1],r=g[2],n=(0,P.getParamValueFromCacheKey)(t,r);null!==n&&(y={...j,[e]:n})}let _=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(g),v=_??N,E=void 0===_?void 0:N,O=(0,s.jsxs)(w,{cacheNode:l,children:[(0,s.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,s.jsx)(C,{name:E,loading:x,children:(0,s.jsx)(h.HTTPAccessFallbackBoundary,{notFound:c,forbidden:p,unauthorized:b,children:(0,s.jsxs)(m.RedirectBoundary,{children:[(0,s.jsx)(S,{url:k,tree:e,params:y,cacheNode:l,segmentPath:M,debugNameContext:v,isActive:T&&d===U}),null]})})})}),null]}),R=(0,s.jsxs)(u.TemplateContext.Provider,{value:O,children:[a,o,i]},d);V.push(R),X=X.next}while(null!==X)return V}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},37457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(8372);function s(){let e=(0,o.useContext)(i.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93504,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66996,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},6831,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97689,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={accumulateRootVaryParam:function(){return y},accumulateVaryParam:function(){return g},createResponseVaryParamsAccumulator:function(){return c},createVaryParamsAccumulator:function(){return u},createVaryingParams:function(){return b},createVaryingSearchParams:function(){return P},emptyVaryParamsAccumulator:function(){return l},finishAccumulatingVaryParams:function(){return _},getMetadataVaryParamsAccumulator:function(){return d},getMetadataVaryParamsThenable:function(){return p},getRootParamsVaryParamsAccumulator:function(){return h},getVaryParamsThenable:function(){return f},getViewportVaryParamsAccumulator:function(){return m}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(62141);function i(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let s=new Set,l={varyParams:s,status:"fulfilled",value:s,then(e){e&&e(s)},resolvers:[]};function c(){let e=i();return{head:e,rootParams:i(),segments:new Set}}function u(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=i();return t.segments.add(e),e}}}return null}function d(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}function f(e){return e}function p(){let e=d();return null!==e?e:null}let m=d;function h(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.rootParams}}return null}function g(e,t){e.varyParams.add(t)}function y(e){let t=h();null!==t&&g(t,e)}function b(e,t,r){if(null!==r)return new Proxy(t,{get:(t,n,a)=>("string"==typeof n&&(n===r||Object.prototype.hasOwnProperty.call(t,n))&&g(e,n),Reflect.get(t,n,a)),has:(t,n)=>(n===r&&g(e,r),Reflect.has(t,n)),ownKeys:t=>(g(e,r),Reflect.ownKeys(t))});let n={};for(let r in t)Object.defineProperty(n,r,{get:()=>(g(e,r),t[r]),enumerable:!0});return n}function P(e,t){let r={};for(let n in t)Object.defineProperty(r,n,{get:()=>(g(e,"?"),t[n]),enumerable:!0});return r}async function _(e){let t=e.rootParams.varyParams;for(let r of(v(e.head,t),e.segments))v(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function v(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}},42715,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},76361,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var r={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e.r(71645));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}let o={current:null},i="function"==typeof n.cache?n.cache:e=>e,s=console.warn;function l(e){return function(...t){s(e(...t))}}i(e=>{try{s(o.current)}finally{o.current=null}})},65932,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return s},describeStringPropertyAccess:function(){return i},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function i(e,t){return o.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}function s(e,t){let r=JSON.stringify(t);return`\`Reflect.has(${e}, ${r})\`, \`${r} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},83066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},41643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(83066)},50999,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(43248),i=e.r(41643);function s(e,t){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=i.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},28649,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>h,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>f,stringifyCookie:()=>u};for(var c in l)n(s,c,{get:l[c],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function f(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:o,httponly:i,maxage:s,path:l,samesite:c,secure:u,partitioned:f,priority:h}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,b={name:t,value:decodeURIComponent(r),domain:a,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...c&&{sameSite:p.includes(g=(g=c).toLowerCase())?g:void 0},...u&&{secure:!0},...h&&{priority:m.includes(y=(y=h).toLowerCase())?y:void 0},...f&&{partitioned:!0}};let e={};for(let t in b)b[t]&&(e[t]=b[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||void 0===s||n(e,s,{get:()=>t[s],enumerable:!(r=a(t,s))||r.enumerable});return e})(n({},"__esModule",{value:!0}),s);var p=["strict","lax","none"],m=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,o,i=[],s=0;function l(){for(;s=e.length)&&i.push(e.substring(t,e.length))}return i}(a)){const t=f(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},96883,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RequestCookies:function(){return o.RequestCookies},ResponseCookies:function(){return o.ResponseCookies},stringifyCookie:function(){return o.stringifyCookie}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(28649)},97270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MutableRequestCookiesAdapter:function(){return m},ReadonlyRequestCookiesError:function(){return c},RequestCookiesAdapter:function(){return u},appendMutableCookies:function(){return p},areCookiesMutableInCurrentPhase:function(){return g},createCookiesWithMutableAccessCheck:function(){return h},getModifiedCookieValues:function(){return f},responseCookiesToRequestCookies:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(42715),s=e.r(63599),l=e.r(39146);class c extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new c}}class u{static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"clear":case"delete":case"set":return c.callable;default:return i.ReflectAdapter.get(e,t,r)}}})}}let d=Symbol.for("next.mutated.cookies");function f(e){let t=e[d];return t&&Array.isArray(t)&&0!==t.length?t:[]}function p(e,t){let r=f(t);if(0===r.length)return!1;let n=new o.ResponseCookies(e),a=n.getAll();for(let e of r)n.set(e);for(let e of a)n.set(e);return!0}class m{static wrap(e,t){let r=new o.ResponseCookies(new Headers);for(let t of e.getAll())r.set(t);let n=[],a=new Set,c=()=>{let e=s.workAsyncStorage.getStore();if(e&&(e.pathWasRevalidated=l.ActionDidRevalidateStaticAndDynamic),n=r.getAll().filter(e=>a.has(e.name)),t){let e=[];for(let t of n){let r=new o.ResponseCookies(new Headers);r.set(t),e.push(r.toString())}t(e)}},u=new Proxy(r,{get(e,t,r){switch(t){case d:return n;case"delete":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.delete(...t),u}finally{c()}};case"set":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.set(...t),u}finally{c()}};default:return i.ReflectAdapter.get(e,t,r)}}});return u}}function h(e){let t=new Proxy(e.mutableCookies,{get(r,n,a){switch(n){case"delete":return function(...n){return y(e,"cookies().delete"),r.delete(...n),t};case"set":return function(...n){return y(e,"cookies().set"),r.set(...n),t};default:return i.ReflectAdapter.get(r,n,a)}}});return t}function g(e){return"action"===e.phase}function y(e,t){if(!g(e))throw new c}function b(e){let t=new o.RequestCookies(new Headers);for(let r of e.getAll())t.set(r);return t}},87720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HeadersAdapter:function(){return s},ReadonlyHeadersError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(42715);class i extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new i}}class s extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return o.ReflectAdapter.get(t,r,n);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);if(void 0!==i)return o.ReflectAdapter.get(t,i,n)},set(t,r,n,a){if("symbol"==typeof r)return o.ReflectAdapter.set(t,r,n,a);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);return o.ReflectAdapter.set(t,s??r,n,a)},has(t,r){if("symbol"==typeof r)return o.ReflectAdapter.has(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==a&&o.ReflectAdapter.has(t,a)},deleteProperty(t,r){if("symbol"==typeof r)return o.ReflectAdapter.deleteProperty(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===a||o.ReflectAdapter.deleteProperty(t,a)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return i.callable;default:return o.ReflectAdapter.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new s(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},1643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getParamProperties:function(){return l},getSegmentParam:function(){return i},isCatchAll:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(91463);function i(e){let t=o.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{paramType:"optional-catchall",paramName:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{paramType:t?`catchall-intercepted-${t}`:"catchall",paramName:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{paramType:t?`dynamic-intercepted-${t}`:"dynamic",paramName:e.slice(1,-1)}:null}function s(e){return"catchall"===e||"catchall-intercepted-(..)(..)"===e||"catchall-intercepted-(.)"===e||"catchall-intercepted-(..)"===e||"catchall-intercepted-(...)"===e||"optional-catchall"===e}function l(e){let t=!1,r=!1;switch(e){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":t=!0;break;case"optional-catchall":t=!0,r=!0}return{repeat:t,optional:r}}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return _},NormalizeError:function(){return b},PageNotFoundError:function(){return P},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return E}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>s.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class P extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class _ extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function E(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},90929,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parseRelativeUrl",{enumerable:!0,get:function(){return o}});let n=e.r(18967),a=e.r(98183);function o(e,t,r=!0){let i=new URL("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationError:function(){return s},isInstantValidationError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="INSTANT_VALIDATION_ERROR";function i(e){return!!(e&&"object"==typeof e&&e instanceof Error&&e.digest===o)}class s extends Error{constructor(...e){super(...e),this.digest=o}}},18450,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assertRootParamInSamples:function(){return S},createCookiesFromSample:function(){return y},createDraftModeForValidation:function(){return _},createExhaustiveParamsProxy:function(){return v},createExhaustiveSearchParamsProxy:function(){return E},createExhaustiveURLSearchParamsProxy:function(){return O},createHeadersFromSample:function(){return P},createRelativeURLFromSamples:function(){return w},createValidationSampleTracking:function(){return m},trackMissingSampleError:function(){return h},trackMissingSampleErrorAndThrow:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(97270),s=e.r(87720),l=e.r(1643),c=e.r(90929),u=e.r(12718),d=e.r(13770),f=e.r(62141),p=e.r(65932);function m(){return{missingSampleErrors:[]}}function h(e){(function(){let e=null,t=f.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"request":case"validation-client":e=t.validationSampleTracking??null}if(!e)throw Object.defineProperty(new u.InvariantError("Expected to have a workUnitStore that provides validationSampleTracking"),"__NEXT_ERROR_CODE",{value:"E1110",enumerable:!1,configurable:!0});return e})().missingSampleErrors.push(e)}function g(e){throw h(e),e}function y(e,t){let r=new Set,n=new o.RequestCookies(new Headers);if(e)for(let t of e)r.add(t.name),null!==t.value&&n.set(t.name,t.value);return new Proxy(i.RequestCookiesAdapter.seal(n),{get(e,n,a){if("has"===n){let o=Reflect.get(e,n,a);return function(n){return r.has(n)||g(b(t,n)),o.call(e,n)}}if("get"===n){let o=Reflect.get(e,n,a);return function(n){let a;if("string"==typeof n)a=n;else{if(!n||"object"!=typeof n||"string"!=typeof n.name)return o.call(e,n);a=n.name}return r.has(a)||g(b(t,a)),o.call(e,a)}}return Reflect.get(e,n,a)}})}function b(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed cookie "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`cookies\` array, or \`{ name: "${t}", value: null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1115",enumerable:!1,configurable:!0})}function P(e,t,r){let n=e?[...e]:[];if(n.find(([e])=>"cookie"===e.toLowerCase()))throw Object.defineProperty(new d.InstantValidationError('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'),"__NEXT_ERROR_CODE",{value:"E1111",enumerable:!1,configurable:!0});if(t){let e=t.toString();n.push(["cookie",""!==e?e:null])}let a=new Set,o={};for(let[e,t]of n)a.add(e.toLowerCase()),null!==t&&(o[e.toLowerCase()]=t);return new Proxy(s.HeadersAdapter.seal(s.HeadersAdapter.from(o)),{get(e,t,n){if("get"===t||"has"===t){let o=Reflect.get(e,t,n);return function(t){let n=t.toLowerCase();return a.has(n)||g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed header "${n}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`headers\` array, or \`["${n}", null]\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1116",enumerable:!1,configurable:!0})),o.call(e,n)}}return Reflect.get(e,t,n)}})}function _(){return{get isEnabled(){return!1},enable(){throw Object.defineProperty(Error("Draft mode cannot be enabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1092",enumerable:!1,configurable:!0})},disable(){throw Object.defineProperty(Error("Draft mode cannot be disabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1094",enumerable:!1,configurable:!0})}}}function v(e,t,r){return new Proxy(e,{get:(n,a,o)=>("string"==typeof a&&!p.wellKnownProperties.has(a)&&a in e&&!t.has(a)&&g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed param "${a}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1095",enumerable:!1,configurable:!0})),Reflect.get(n,a,o))})}function E(e,t,r){return new Proxy(e,{get:(e,n,a)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(R(r,n)),Reflect.get(e,n,a)),has:(e,n)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(R(r,n)),Reflect.has(e,n))})}function O(e,t,r){return new Proxy(e,{get(e,n,a){if("get"===n||"getAll"===n||"has"===n){let o=Reflect.get(e,n,a);return n=>("string"!=typeof n||t.has(n)||g(R(r,n)),o.call(e,n))}let o=Reflect.get(e,n,a);return"function"!=typeof o||Object.hasOwn(e,n)?o:o.bind(e)}})}function R(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed searchParam "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, or \`{ "${t}": null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1098",enumerable:!1,configurable:!0})}function w(e,t,r){let n=function(e,t){let r=[];for(let n of e.split("/")){let e=(0,l.getSegmentParam)(n);if(e)switch(e.paramType){case"catchall":case"optional-catchall":{let a=t[e.paramName];if(void 0===a)a=[n];else if(!Array.isArray(a))throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be an array of strings, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1104",enumerable:!1,configurable:!0});r.push(...a.map(e=>encodeURIComponent(e)));break}case"dynamic":{let a=t[e.paramName];if(void 0===a)a=n;else if("string"!=typeof a)throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be a string, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1108",enumerable:!1,configurable:!0});r.push(encodeURIComponent(a));break}case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":throw Object.defineProperty(new u.InvariantError("Not implemented: Validation of interception routes"),"__NEXT_ERROR_CODE",{value:"E1106",enumerable:!1,configurable:!0});default:e.paramType}else r.push(n)}return r.join("/")}(e,t??{}),a="";if(r){let e=(function(e){let t=new URLSearchParams;if(e){for(let[r,n]of Object.entries(e))if(null!=n)if(Array.isArray(n))for(let e of n)t.append(r,e);else t.set(r,n)}return t})(r).toString();e&&(a="?"+e)}return(0,c.parseRelativeUrl)(n+a,void 0,!0)}function S(e,t,r){if(t&&r in t);else{let t=e.route;g(Object.defineProperty(new d.InstantValidationError(`Route "${t}" accessed root param "${r}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1114",enumerable:!1,configurable:!0}))}}},69882,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return P},createSearchParamsFromClient:function(){return g},createServerSearchParamsForMetadata:function(){return y},createServerSearchParamsForServerPage:function(){return b},makeErroringSearchParamsForUseCache:function(){return R}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(63138),f=e.r(76361),p=e.r(65932),m=e.r(50999),h=e.r(42852);function g(t){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(r,n);case"validation-client":return function(t,r,n){var a;let{createExhaustiveSearchParamsProxy:o}=e.r(18450);return Promise.resolve(t=o(t,new Set(Object.keys((null==(a=n.validationSamples)?void 0:a.searchParams)??{})),r.route))}(t,r,n);case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1133",enumerable:!1,configurable:!0});case"request":return v(t,r,n,!1)}(0,c.throwInvariantForMissingStore)()}function y(e,t){return b(e,(0,i.getMetadataVaryParamsAccumulator)(),t)}function b(e,t,r){let n=o.workAsyncStorage.getStore();if(!n)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let a=c.workUnitAsyncStorage.getStore();if(a)switch(a.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(n,a);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1066",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1128",enumerable:!1,configurable:!0});case"prerender-runtime":return function(e,t,r,n){let a=w(null!==r?(0,i.createVaryingSearchParams)(r,e):e),{stagedRendering:o}=t;if(!o)return a;let s=n?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return o.waitForStage(s).then(()=>a)}(e,a,t,r);case"request":return v(e,n,a,r)}(0,c.throwInvariantForMissingStore)()}function P(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});if(e.forceStatic)return Promise.resolve({});let t=c.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":return(0,d.makeHangingPromise)(t.renderSignal,e.route,"`searchParams`");case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1061",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1124",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,c.throwInvariantForMissingStore)()}function _(e,t){if(e.forceStatic)return Promise.resolve({});switch(t.type){case"prerender":case"prerender-client":var r=e,n=t;let a=E.get(n);if(a)return a;let o=(0,d.makeHangingPromise)(n.renderSignal,r.route,"`searchParams`"),i=new Proxy(o,{get(e,t,r){if(Object.hasOwn(o,t))return s.ReflectAdapter.get(e,t,r);switch(t){case"then":return(0,l.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),s.ReflectAdapter.get(e,t,r);case"status":return(0,l.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),s.ReflectAdapter.get(e,t,r);default:return s.ReflectAdapter.get(e,t,r)}}});return E.set(n,i),i;case"prerender-ppr":case"prerender-legacy":var c=e,u=t;let f=E.get(c);if(f)return f;let p=Promise.resolve({}),h=new Proxy(p,{get(e,t,r){if(Object.hasOwn(p,t))return s.ReflectAdapter.get(e,t,r);if("string"==typeof t&&"then"===t){let e="`await searchParams`, `searchParams.then`, or similar";c.dynamicShouldError?(0,m.throwWithStaticGenerationBailoutErrorWithDynamicError)(c.route,e):"prerender-ppr"===u.type?(0,l.postponeWithTracking)(c.route,e,u.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(e,c,u)}return s.ReflectAdapter.get(e,t,r)}});return E.set(c,h),h;default:return t}}function v(t,r,n,a){if(r.forceStatic)return Promise.resolve({});if(!n.asyncApiPromises)return w(t);if(n.validationSamples){let{createExhaustiveSearchParamsProxy:a}=e.r(18450),o=new Set(Object.keys(n.validationSamples.searchParams??{}));t=a(t,o,r.route)}return(a?n.asyncApiPromises.earlySharedSearchParamsParent:n.asyncApiPromises.sharedSearchParamsParent).then(()=>t)}let E=new WeakMap,O=new WeakMap;function R(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let t=O.get(e);if(t)return t;let r=Promise.resolve({}),n=new Proxy(r,{get:function t(n,a,o){return Object.hasOwn(r,a)||"string"!=typeof a||"then"!==a&&p.wellKnownProperties.has(a)||(0,m.throwForSearchParamsAccessInUseCache)(e,t),s.ReflectAdapter.get(n,a,o)}});return O.set(e,n),n}function w(e){let t=E.get(e);if(t)return t;let r=Promise.resolve(e);return E.set(e,r),r}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},74804,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},88276,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(74804)},41489,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createParamsFromClient:function(){return g},createPrerenderParamsForClientSegment:function(){return _},createServerParamsForMetadata:function(){return y},createServerParamsForRoute:function(){return b},createServerParamsForServerSegment:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(65932),f=e.r(63138),p=e.r(76361),m=e.r(88276),h=e.r(42852);function g(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(e,null,t,r,null);case"validation-client":return O(e,t,r.validationSamples);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1122",enumerable:!1,configurable:!0});case"request":if(r.validationSamples)return O(e,t,r.validationSamples);return S(e)}(0,c.throwInvariantForMissingStore)()}function y(e,t,r){return P(e,t,(0,i.getMetadataVaryParamsAccumulator)(),r)}function b(e,t=null){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return v(e,null,r,n,t);case"prerender-client":case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1064",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1131",enumerable:!1,configurable:!0});case"prerender-runtime":return E(e,null,n,t,!1);case"request":return S(e)}(0,c.throwInvariantForMissingStore)()}function P(t,r,n,a){let i=o.workAsyncStorage.getStore();if(!i)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let s=c.workUnitAsyncStorage.getStore();if(s)switch(s.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(t,r,i,s,n);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1101",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1120",enumerable:!1,configurable:!0});case"prerender-runtime":return E(t,r,s,n,a);case"request":if(s.asyncApiPromises&&s.validationSamples)return function(t,r,n,a,o){let{createExhaustiveParamsProxy:i}=e.r(18450),s=i(t,new Set(Object.keys(n.params??{})),r.route);return(o?a.earlySharedParamsParent:a.sharedParamsParent).then(()=>s)}(t,i,s.validationSamples,s.asyncApiPromises,a);if(s.asyncApiPromises&&function(e,t){if(t){for(let r in e)if(t.has(r))return!0}return!1}(t,s.fallbackParams))return(a?s.asyncApiPromises.earlySharedParamsParent:s.asyncApiPromises.sharedParamsParent).then(()=>t);return S(t)}(0,c.throwInvariantForMissingStore)()}function _(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`")}break;case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in validation contexts."),"__NEXT_ERROR_CODE",{value:"E1099",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1126",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function v(e,t,r,n,a){let o=null!==a?(0,i.createVaryingParams)(a,e,t):e;switch(n.type){case"prerender":case"prerender-client":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r){let n=R.get(e);if(n)return n;let a=new Proxy((0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`"),w);return R.set(e,a),a}(o,r,n)}break}case"prerender-ppr":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r,n){let a=R.get(e);if(a)return a;let o={...e},i=Promise.resolve(o);return R.set(e,i),Object.keys(e).forEach(e=>{d.wellKnownProperties.has(e)||t.has(e)&&Object.defineProperty(o,e,{get(){let t=(0,d.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,l.postponeWithTracking)(r.route,t,n.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(t,r,n)},enumerable:!0})}),i}(o,t,r,n)}}}return S(o)}function E(e,t,r,n,a){let o=S(null!==n?(0,i.createVaryingParams)(n,e,t):e),{stagedRendering:s}=r;if(!s)return o;let l=a?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return s.waitForStage(l).then(()=>o)}function O(t,r,n){let{createExhaustiveParamsProxy:a}=e.r(18450);return Promise.resolve(a(t,new Set(Object.keys((null==n?void 0:n.params)??{})),r.route))}let R=new WeakMap,w={get:function(e,t,r){if("then"===t||"catch"===t||"finally"===t){let n=s.ReflectAdapter.get(e,t,r);return({[t]:(...t)=>{let r=m.dynamicAccessAsyncStorage.getStore();return r&&r.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,t),w)}})[t]}return s.ReflectAdapter.get(e,t,r)}};function S(e){let t=R.get(e);if(t)return t;let r=Promise.resolve(e);return R.set(e,r),r}(0,p.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},47257,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return l}});let n=e.r(43476),a=e.r(8372),o=e.r(71645),i=e.r(33906),s=e.r(61994);function l({Component:t,serverProvidedParams:r}){let c,u;if(null!==r)c=r.searchParams,u=r.params;else{let e=(0,o.use)(a.LayoutRouterContext);u=null!==e?e.parentParams:{},c=(0,i.urlSearchParamsToParsedUrlQuery)((0,o.use)(s.SearchParamsContext))}if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return i}});let n=e.r(43476),a=e.r(8372),o=e.r(71645);function i({Component:t,slots:r,serverProvidedParams:s}){let l;if(null!==s)l=s.params;else{let e=(0,o.use)(a.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(43476),a=()=>"u">typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/out/_next/static/chunks/18dm0rqyf17bd.js b/out/_next/static/chunks/18dm0rqyf17bd.js new file mode 100644 index 0000000000000000000000000000000000000000..206cf99473bd131b8de09bfc4a0a944f44fde7f6 --- /dev/null +++ b/out/_next/static/chunks/18dm0rqyf17bd.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24848,62465,43798,87725,89549,7670,18356,15400,14037,21879,e=>{"use strict";var t=e.i(82451);function r(e){if("number"==typeof e)return!0;if("string"==typeof e){if(e.startsWith("calc(")||e.startsWith("var(")||e.includes(" ")&&""!==e.trim())return!0;let t=/^[+-]?[0-9]+(\.[0-9]+)?(px|em|rem|ex|ch|lh|rlh|vw|vh|vmin|vmax|vb|vi|svw|svh|lvw|lvh|dvw|dvh|cm|mm|in|pt|pc|q|cqw|cqh|cqi|cqb|cqmin|cqmax|%)?$/;return e.trim().split(/\s+/).every(e=>t.test(e))}return!1}function n(e,o="size",i=!0){if(void 0!==e)return r(e)?i?(0,t.rem)(e):e:`var(--${o}-${e})`}function o(e){return Object.keys(e).reduce((t,r)=>(void 0!==e[r]&&(t[r]=e[r]),t),{})}e.s(["isNumberLike",0,r],62465),e.s(["getFontSize",0,function(e){return n(e,"mantine-font-size")},"getLineHeight",0,function(e){return n(e,"mantine-line-height",!1)},"getRadius",0,function(e){return void 0===e?"var(--mantine-radius-default)":n(e,"mantine-radius")},"getShadow",0,function(e){if(e)return n(e,"mantine-shadow",!1)},"getSize",0,n,"getSpacing",0,function(e){return n(e,"mantine-spacing")}],24848),e.s(["createVarsResolver",0,function(e){return e}],43798),e.s(["filterProps",0,o],87725);var i=e.i(22442);e.s(["useProps",0,function(e,t,r){let n=(0,i.useMantineTheme)(),a=(Array.isArray(e)?e:[e]).filter(Boolean),l={};for(let e of a){let t=n.components[e]?.defaultProps,r="function"==typeof t?t(n):t;r&&(l={...l,...r})}return{...t,...l,...o(r)}}],89549);let a=function(){for(var e,t,r=0,n="",o=arguments.length;r"function"==typeof t?t(e,r,n):t||l),i={},o.forEach(e=>{Object.entries(e).forEach(([e,t])=>{i[e]?i[e]=a(i[e],t):i[e]=t})}),i}function c({theme:e,styles:t,props:r,stylesCtx:n}){let o=Array.isArray(t)?t:[t],i={};for(let t of o)"function"==typeof t?Object.assign(i,t(e,r,n)):t&&Object.assign(i,t);return i}e.s(["resolveClassNames",0,s],18356),e.s(["resolveStyles",0,c],15400);var u=e.i(90098);let d={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function p({style:e,theme:t}){return Array.isArray(e)?e.reduce((e,r)=>({...e,...p({style:r,theme:t})}),{}):"function"==typeof e?e(t):null==e?{}:e}e.s(["useStyles",0,function({name:e,classes:t,props:r,stylesCtx:n,className:l,style:f,rootSelector:m="root",unstyled:h,classNames:v,styles:y,vars:g,varsResolver:b,attributes:x}){let w=(0,i.useMantineTheme)(),S=(0,u.useMantineClassNamesPrefix)(),R=(0,u.useMantineWithStaticClasses)(),E=(0,u.useMantineIsHeadless)(),C=(Array.isArray(e)?e:[e]).filter(e=>e),{withStylesTransform:P,getTransformedStyles:j}=function({props:e,stylesCtx:t,themeName:r,theme:n}){let o=(0,u.useMantineStylesTransform)()?.();return{getTransformedStyles:i=>o?[...i.map(r=>o(r,{props:e,theme:n,ctx:t})),...r.map(r=>o(n.components[r]?.styles,{props:e,theme:n,ctx:t}))].filter(Boolean):[],withStylesTransform:!!o}}({props:r,stylesCtx:n,themeName:C,theme:w}),k=s({theme:w,classNames:v,props:r,stylesCtx:n}),A=C.map(e=>s({theme:w,classNames:w.components[e]?.classNames,props:r,stylesCtx:n})),T=P?{}:c({theme:w,styles:y,props:r,stylesCtx:n}),I={};if(!P)for(let e of C){let t=c({theme:w,styles:w.components[e]?.styles,props:r,stylesCtx:n});for(let e of Object.keys(t))I[e]={...I[e],...t[e]}}let M=[E?{}:b?.(w,r,n),...C.map(e=>w.components?.[e]?.vars?.(w,r,n)),g?.(w,r,n)].reduce((e,t)=>(t&&Object.keys(t).forEach(r=>{e[r]={...e[r],...o(t[r])}}),e),{}),B=p({style:f,theme:w});return(e,o)=>({...x?.[e],className:function({theme:e,options:t,themeName:r,selector:n,classNamesPrefix:o,resolvedClassNames:i,resolvedThemeClassNames:l,classes:c,unstyled:u,className:p,rootSelector:f,props:m,stylesCtx:h,withStaticClasses:v,headless:y,transformedStyles:g}){return a(function({theme:e,options:t,unstyled:r}){return a(t?.focusable&&!r&&(e.focusClassName||d[e.focusRing]),t?.active&&!r&&e.activeClassName)}({theme:e,options:t,unstyled:u||y}),l.map(e=>e[n]),function({options:e,classes:t,selector:r,unstyled:n}){return e?.variant&&!n?t[`${r}--${e.variant}`]:void 0}({options:t,classes:c,selector:n,unstyled:u||y}),i[n],function({selector:e,stylesCtx:t,theme:r,classNames:n,props:o}){return s({theme:r,classNames:n,props:o,stylesCtx:t})[e]}({selector:n,stylesCtx:h,theme:e,classNames:g,props:m}),function({selector:e,stylesCtx:t,options:r,props:n,theme:o}){return s({theme:o,classNames:r?.classNames,props:r?.props||n,stylesCtx:t})[e]}({selector:n,stylesCtx:h,options:t,props:m,theme:e}),function({rootSelector:e,selector:t,className:r}){return e===t?r:void 0}({rootSelector:f,selector:n,className:p}),function({selector:e,classes:t,unstyled:r}){return r?void 0:t[e]}({selector:n,classes:c,unstyled:u||y}),v&&!y&&function({themeName:e,classNamesPrefix:t,selector:r,withStaticClass:n}){return!1===n?[]:e.map(e=>`${t}-${e}-${r}`)}({themeName:r,classNamesPrefix:o,selector:n,withStaticClass:t?.withStaticClass}),t?.className)}({theme:w,options:o,themeName:C,selector:e,classNamesPrefix:S,resolvedClassNames:k,resolvedThemeClassNames:A,classes:t,unstyled:h,className:l,rootSelector:m,props:r,stylesCtx:n,withStaticClasses:R,headless:E,transformedStyles:j([o?.styles,y])}),style:function({theme:e,selector:t,options:r,props:n,stylesCtx:o,rootSelector:i,withStylesTransform:a,resolvedStyles:l,resolvedThemeStyles:s,resolvedVars:u,resolvedRootStyle:d}){return{...s[t],...l[t],...!a&&c({theme:e,styles:r?.styles,props:r?.props||n,stylesCtx:o})[t],...u[t],...i===t?d:null,...p({style:r?.style,theme:e})}}({theme:w,selector:e,options:o,props:r,stylesCtx:n,rootSelector:m,withStylesTransform:P,resolvedStyles:T,resolvedThemeStyles:I,resolvedVars:M,resolvedRootStyle:B})})}],14037);var f=e.i(43476);function m(e){return e}function h(e){return e.extend=m,e.withProps=t=>{let r=r=>(0,f.jsx)(e,{...t,...r});return r.extend=e.extend,r.displayName=`WithProps(${e.displayName})`,r},e}e.s(["factory",0,h,"genericFactory",0,function(e){return h(e)},"identity",0,m],21879)},57942,e=>{"use strict";var t=e.i(21879),r=e.i(43476);e.s(["polymorphicFactory",0,function(e){return e.withProps=t=>{let n=n=>(0,r.jsx)(e,{...t,...n});return n.extend=e.extend,n.displayName=`WithProps(${e.displayName})`,n},e.extend=t.identity,e}])},44662,99818,19254,59729,e=>{"use strict";var t=e.i(62465),r=e.i(90098),n=e.i(22442),o=e.i(45981);function i(e){return(0,o.keys)(e).reduce((t,r)=>void 0!==e[r]?`${t}${r.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${e[r]};`:t,"").trim()}var a=e.i(43476);function l({deduplicate:e,...t}){let n=(0,r.useMantineStyleNonce)(),o=function({selector:e,styles:t,media:r,container:n}){let o=t?i(t):"",a=Array.isArray(r)?r.map(t=>`@media${t.query}{${e}{${i(t.styles)}}}`):[],l=Array.isArray(n)?n.map(t=>`@container ${t.query}{${e}{${i(t.styles)}}}`):[];return`${o?`${e}{${o}}`:""}${a.join("")}${l.join("")}`.trim()}(t);return e?(0,a.jsx)("style",{href:`mantine-${function(e){let t=5381;for(let r=0;r>>0).toString(36)}(o)}`,precedence:"mantine",nonce:n?.(),children:o}):(0,a.jsx)("style",{"data-mantine-styles":"inline",nonce:n?.(),dangerouslySetInnerHTML:{__html:o}})}e.s(["InlineStyles",0,l],99818);var s=e.i(87725);function c(e){let{m:t,mx:r,my:n,mt:o,mb:i,ml:a,mr:l,me:c,ms:u,mis:d,mie:p,p:f,px:m,py:h,pt:v,pb:y,pl:g,pr:b,pe:x,ps:w,pis:S,pie:R,bd:E,bdrs:C,bg:P,c:j,opacity:k,ff:A,fz:T,fw:I,lts:M,ta:B,lh:N,fs:L,tt:_,td:z,w:$,miw:O,maw:F,h:D,mih:W,mah:H,bgsz:V,bgp:U,bgr:Y,bga:X,pos:G,top:q,left:Z,bottom:K,right:Q,inset:J,display:ee,flex:et,hiddenFrom:er,visibleFrom:en,lightHidden:eo,darkHidden:ei,sx:ea,...el}=e;return{styleProps:(0,s.filterProps)({m:t,mx:r,my:n,mt:o,mb:i,ml:a,mr:l,me:c,ms:u,mis:d,mie:p,p:f,px:m,py:h,pt:v,pb:y,pl:g,pr:b,pis:S,pie:R,pe:x,ps:w,bd:E,bg:P,c:j,opacity:k,ff:A,fz:T,fw:I,lts:M,ta:B,lh:N,fs:L,tt:_,td:z,w:$,miw:O,maw:F,h:D,mih:W,mah:H,bgsz:V,bgp:U,bgr:Y,bga:X,pos:G,top:q,left:Z,bottom:K,right:Q,inset:J,display:ee,flex:et,bdrs:C,hiddenFrom:er,visibleFrom:en,lightHidden:eo,darkHidden:ei,sx:ea}),rest:el}}e.s(["extractStyleProps",0,c],19254);let u={m:{type:"spacing",property:"margin"},mt:{type:"spacing",property:"marginTop"},mb:{type:"spacing",property:"marginBottom"},ml:{type:"spacing",property:"marginLeft"},mr:{type:"spacing",property:"marginRight"},ms:{type:"spacing",property:"marginInlineStart"},me:{type:"spacing",property:"marginInlineEnd"},mis:{type:"spacing",property:"marginInlineStart"},mie:{type:"spacing",property:"marginInlineEnd"},mx:{type:"spacing",property:"marginInline"},my:{type:"spacing",property:"marginBlock"},p:{type:"spacing",property:"padding"},pt:{type:"spacing",property:"paddingTop"},pb:{type:"spacing",property:"paddingBottom"},pl:{type:"spacing",property:"paddingLeft"},pr:{type:"spacing",property:"paddingRight"},ps:{type:"spacing",property:"paddingInlineStart"},pe:{type:"spacing",property:"paddingInlineEnd"},pis:{type:"spacing",property:"paddingInlineStart"},pie:{type:"spacing",property:"paddingInlineEnd"},px:{type:"spacing",property:"paddingInline"},py:{type:"spacing",property:"paddingBlock"},bd:{type:"border",property:"border"},bdrs:{type:"radius",property:"borderRadius"},bg:{type:"color",property:"background"},c:{type:"textColor",property:"color"},opacity:{type:"identity",property:"opacity"},ff:{type:"fontFamily",property:"fontFamily"},fz:{type:"fontSize",property:"fontSize"},fw:{type:"identity",property:"fontWeight"},lts:{type:"size",property:"letterSpacing"},ta:{type:"identity",property:"textAlign"},lh:{type:"lineHeight",property:"lineHeight"},fs:{type:"identity",property:"fontStyle"},tt:{type:"identity",property:"textTransform"},td:{type:"identity",property:"textDecoration"},w:{type:"spacing",property:"width"},miw:{type:"spacing",property:"minWidth"},maw:{type:"spacing",property:"maxWidth"},h:{type:"spacing",property:"height"},mih:{type:"spacing",property:"minHeight"},mah:{type:"spacing",property:"maxHeight"},bgsz:{type:"size",property:"backgroundSize"},bgp:{type:"identity",property:"backgroundPosition"},bgr:{type:"identity",property:"backgroundRepeat"},bga:{type:"identity",property:"backgroundAttachment"},pos:{type:"identity",property:"position"},top:{type:"size",property:"top"},left:{type:"size",property:"left"},bottom:{type:"size",property:"bottom"},right:{type:"size",property:"right"},inset:{type:"size",property:"inset"},display:{type:"identity",property:"display"},flex:{type:"identity",property:"flex"}};var d=e.i(82360);function p(e,t){let r=(0,d.parseThemeColor)({color:e,theme:t});return"dimmed"===r.color?"var(--mantine-color-dimmed)":"bright"===r.color?"var(--mantine-color-bright)":r.variable?`var(${r.variable})`:r.color}var f=e.i(82451);let m={text:"var(--mantine-font-family)",mono:"var(--mantine-font-family-monospace)",monospace:"var(--mantine-font-family-monospace)",heading:"var(--mantine-font-family-headings)",headings:"var(--mantine-font-family-headings)"},h=["h1","h2","h3","h4","h5","h6"],v=["h1","h2","h3","h4","h5","h6"],y={color:p,textColor:function(e,t){let r=(0,d.parseThemeColor)({color:e,theme:t});return r.isThemeColor&&void 0===r.shade?`var(--mantine-color-${r.color}-text)`:p(e,t)},fontSize:function(e,t){return"string"==typeof e&&e in t.fontSizes?`var(--mantine-font-size-${e})`:"string"==typeof e&&h.includes(e)?`var(--mantine-${e}-font-size)`:"number"==typeof e||"string"==typeof e?(0,f.rem)(e):e},spacing:function(e,t){if("number"==typeof e)return(0,f.rem)(e);if("string"==typeof e){let r=e.replace("-","");if(!(r in t.spacing))return(0,f.rem)(e);let n=`--mantine-spacing-${r}`;return e.startsWith("-")?`calc(var(${n}) * -1)`:`var(${n})`}return e},radius:function(e,t){return"string"==typeof e&&e in t.radius?`var(--mantine-radius-${e})`:"number"==typeof e||"string"==typeof e?(0,f.rem)(e):e},identity:function(e){return e},size:function(e){return"number"==typeof e?(0,f.rem)(e):e},lineHeight:function(e,t){return"string"==typeof e&&e in t.lineHeights?`var(--mantine-line-height-${e})`:"string"==typeof e&&v.includes(e)?`var(--mantine-${e}-line-height)`:e},fontFamily:function(e){return"string"==typeof e&&e in m?m[e]:e},border:function(e,t){if("number"==typeof e)return(0,f.rem)(e);if("string"==typeof e){let[r,n,...o]=e.split(" ").filter(e=>""!==e.trim()),i=`${(0,f.rem)(r)}`;return n&&(i+=` ${n}`),o.length>0&&(i+=` ${p(o.join(" "),t)}`),i.trim()}return e}};function g(e){return e.replace("(min-width: ","").replace("em)","")}var b=e.i(71645);function x(){return`__m__-${(0,b.useId)().replace(/[:«»]/g,"")}`}function w(e){return`data-${(e.startsWith("data-")?e.slice(5):e).replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}`}function S(e,t){return Array.isArray(e)?[...e].reduce((e,r)=>({...e,...S(r,t)}),{}):"function"==typeof e?e(t):null==e?{}:e}e.s(["useRandomClassName",0,x],59729);var R=e.i(7670);function E({component:e,style:s,__vars:d,className:p,variant:f,mod:m,size:h,hiddenFrom:v,visibleFrom:b,lightHidden:C,darkHidden:P,renderRoot:j,__size:k,ref:A,...T}){var I,M;let B=(0,n.useMantineTheme)(),{styleProps:N,rest:L}=c(T),_=(0,r.useMantineSxTransform)()?.()?.(N.sx),z=x(),$=function({styleProps:e,data:t,theme:r}){return function({media:e,...t}){let r=Object.keys(e).sort((e,t)=>Number(g(e))-Number(g(t))).map(t=>({query:t,styles:e[t]}));return{...t,media:r}}((0,o.keys)(e).reduce((n,i)=>{var a,l;if("hiddenFrom"===i||"visibleFrom"===i||"sx"===i)return n;let s=t[i],c=Array.isArray(s.property)?s.property:[s.property],u="object"==typeof(l=e[i])&&null!==l?"base"in l?l.base:void 0:l;if(!function(e){if("object"!=typeof e||null===e)return!1;let t=Object.keys(e);return 1!==t.length||"base"!==t[0]}(e[i]))return c.forEach(e=>{n.inlineStyles[e]=y[s.type](u,r)}),n;n.hasResponsiveStyles=!0;let d="object"==typeof(a=e[i])&&null!==a?(0,o.keys)(a).filter(e=>"base"!==e):[];return c.forEach(t=>{null!=u&&(n.styles[t]=y[s.type](u,r)),d.forEach(o=>{var a;let l=`(min-width: ${r.breakpoints[o]})`;n.media[l]={...n.media[l],[t]:y[s.type]((a=e[i],"object"==typeof a&&null!==a&&o in a?a[o]:a),r)}})}),n},{hasResponsiveStyles:!1,styles:{},inlineStyles:{},media:{}}))}({styleProps:N,theme:B,data:u}),O=(0,r.useMantineDeduplicateInlineStyles)(),F=O&&$.hasResponsiveStyles?(I=$.styles,M=$.media,`__mdi__-${function(e){let t=5381;for(let r=0;r>>0).toString(36)}(`${I?i(I):""}|${Array.isArray(M)?M.map(e=>`${e.query}:${i(e.styles)}`).join("|"):""}`)}`):z,D={ref:A,style:function({theme:e,style:t,vars:r,styleProps:n}){let o=S(t,e),i=S(r,e);return{...o,...i,...n}}({theme:B,style:s,vars:d,styleProps:$.inlineStyles}),className:(0,R.default)(p,_,{[F]:$.hasResponsiveStyles,"mantine-light-hidden":C,"mantine-dark-hidden":P,[`mantine-hidden-from-${v}`]:v,[`mantine-visible-from-${b}`]:b}),"data-variant":f,"data-size":(0,t.isNumberLike)(h)?void 0:h||void 0,size:k,...function e(t){return t?"string"==typeof t?{[w(t)]:!0}:Array.isArray(t)?[...t].reduce((t,r)=>({...t,...e(r)}),{}):Object.keys(t).reduce((e,r)=>{let n=t[r];return void 0===n||""===n||!1===n||null===n||(e[w(r)]=t[r]),e},{}):null}(m),...L};return(0,a.jsxs)(a.Fragment,{children:[$.hasResponsiveStyles&&(0,a.jsx)(l,{selector:`.${F}`,styles:$.styles,media:$.media,deduplicate:O}),"function"==typeof j?j(D):(0,a.jsx)(e||"div",{...D})]})}E.displayName="@mantine/core/Box",e.s(["Box",0,E],44662)},25436,e=>{"use strict";var t=e.i(89549),r=e.i(14037),n=e.i(57942),o=e.i(44662),i={root:"m_87cf2631"},a=e.i(43476);let l={__staticSelector:"UnstyledButton"},s=(0,n.polymorphicFactory)(e=>{let n=(0,t.useProps)("UnstyledButton",l,e),{className:s,component:c="button",__staticSelector:u,unstyled:d,classNames:p,styles:f,style:m,attributes:h,...v}=n;return(0,a.jsx)(o.Box,{...(0,r.useStyles)({name:u,props:n,classes:i,className:s,style:m,classNames:p,styles:f,unstyled:d,attributes:h})("root",{focusable:!0}),component:c,type:"button"===c?"button":void 0,...v})});s.classes=i,s.displayName="@mantine/core/UnstyledButton",e.s(["UnstyledButton",0,s],25436)},98193,45500,67228,36597,e=>{"use strict";var t=e.i(90098);let r=e=>({in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:`scale(.9) translateY(${"bottom"===e?10:-10}px)`},transitionProperty:"transform, opacity"}),n={fade:{in:{opacity:1},out:{opacity:0},transitionProperty:"opacity"},"fade-up":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(30px)"},transitionProperty:"opacity, transform"},"fade-down":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(-30px)"},transitionProperty:"opacity, transform"},"fade-left":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(30px)"},transitionProperty:"opacity, transform"},"fade-right":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(-30px)"},transitionProperty:"opacity, transform"},scale:{in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:"scale(0)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"scale-y":{in:{opacity:1,transform:"scaleY(1)"},out:{opacity:0,transform:"scaleY(0)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"scale-x":{in:{opacity:1,transform:"scaleX(1)"},out:{opacity:0,transform:"scaleX(0)"},common:{transformOrigin:"left"},transitionProperty:"transform, opacity"},"skew-up":{in:{opacity:1,transform:"translateY(0) skew(0deg, 0deg)"},out:{opacity:0,transform:"translateY(-20px) skew(-10deg, -5deg)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"skew-down":{in:{opacity:1,transform:"translateY(0) skew(0deg, 0deg)"},out:{opacity:0,transform:"translateY(20px) skew(-10deg, -5deg)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"rotate-left":{in:{opacity:1,transform:"translateY(0) rotate(0deg)"},out:{opacity:0,transform:"translateY(20px) rotate(-5deg)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"rotate-right":{in:{opacity:1,transform:"translateY(0) rotate(0deg)"},out:{opacity:0,transform:"translateY(20px) rotate(5deg)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"slide-down":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(-100%)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"slide-up":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(100%)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"slide-left":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(100%)"},common:{transformOrigin:"left"},transitionProperty:"transform, opacity"},"slide-right":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(-100%)"},common:{transformOrigin:"right"},transitionProperty:"transform, opacity"},pop:{...r("bottom"),common:{transformOrigin:"center center"}},"pop-bottom-left":{...r("bottom"),common:{transformOrigin:"bottom left"}},"pop-bottom-right":{...r("bottom"),common:{transformOrigin:"bottom right"}},"pop-top-left":{...r("top"),common:{transformOrigin:"top left"}},"pop-top-right":{...r("top"),common:{transformOrigin:"top right"}}},o={entering:"in",entered:"in",exiting:"out",exited:"out","pre-exiting":"out","pre-entering":"out"};function i({transition:e,state:t,duration:r,timingFunction:a}){let l={WebkitBackfaceVisibility:"hidden",transitionDuration:`${r}ms`,transitionTimingFunction:a};return"string"==typeof e?e in n?{transitionProperty:n[e].transitionProperty,...l,...n[e].common,...n[e][o[t]]}:{}:{transitionProperty:e.transitionProperty,...l,...e.common,...e[o[t]]}}var a=e.i(22442),l=e.i(71645);function s(e,t){let r=(0,l.useRef)(!1);(0,l.useEffect)(()=>()=>{r.current=!1},[]),(0,l.useEffect)(()=>{if(r.current)return e();r.current=!0},t)}function c(e,t,{getInitialValueInEffect:r}={getInitialValueInEffect:!0}){let[n,o]=(0,l.useState)(r?t:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,l.useEffect)(()=>{try{if("matchMedia"in window){let t=window.matchMedia(e);o(t.matches);let r=e=>o(e.matches);return t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}}}catch(e){return}},[e]),n||!1}function u(e,t){return c("(prefers-reduced-motion: reduce)",e,t)}e.s(["useDidUpdate",0,s],45500),e.s(["useMediaQuery",0,c],67228),e.s(["useReducedMotion",0,u],36597);var d=e.i(74080),p=e.i(43476);function f({keepMounted:e,keepMountedMode:r="activity",transition:n="fade",duration:o=250,exitDuration:c=o,mounted:m,children:h,timingFunction:v="ease",onExit:y,onEntered:g,onEnter:b,onExited:x,enterDelay:w,exitDelay:S}){let R=(0,t.useMantineEnv)(),{transitionDuration:E,transitionStatus:C,transitionTimingFunction:P}=function({duration:e,exitDuration:t,timingFunction:r,mounted:n,onEnter:o,onExit:i,onEntered:c,onExited:p,enterDelay:f,exitDelay:m}){let h=(0,a.useMantineTheme)(),v=u(),y=!!h.respectReducedMotion&&v,[g,b]=(0,l.useState)(y?0:e),[x,w]=(0,l.useState)(n?"entered":"exited"),S=(0,l.useRef)(-1),R=(0,l.useRef)(-1),E=(0,l.useRef)(-1);function C(){window.clearTimeout(S.current),window.clearTimeout(R.current),cancelAnimationFrame(E.current)}let P=r=>{C();let n=r?o:i,a=r?c:p,l=y?0:r?e:t;b(l),0===l?("function"==typeof n&&n(),"function"==typeof a&&a(),w(r?"entered":"exited")):E.current=requestAnimationFrame(()=>{d.default.flushSync(()=>{w(r?"pre-entering":"pre-exiting")}),E.current=requestAnimationFrame(()=>{"function"==typeof n&&n(),w(r?"entering":"exiting"),S.current=window.setTimeout(()=>{"function"==typeof a&&a(),w(r?"entered":"exited")},l)})})};return s(()=>{(C(),"number"!=typeof(n?f:m))?P(n):R.current=window.setTimeout(()=>{P(n)},n?f:m)},[n]),(0,l.useEffect)(()=>()=>{C()},[]),{transitionDuration:g,transitionStatus:x,transitionTimingFunction:r||"ease"}}({mounted:m,exitDuration:c,duration:o,timingFunction:v,onExit:y,onEntered:g,onEnter:b,onExited:x,enterDelay:w,exitDelay:S});if("test"===R)return m?(0,p.jsx)(p.Fragment,{children:h({})}):e?h({display:"none"}):null;if(0===E)return e?"display-none"===r?m?(0,p.jsx)(p.Fragment,{children:h({})}):h({display:"none"}):(0,p.jsx)(l.Activity,{mode:m?"visible":"hidden",children:h({})}):m?(0,p.jsx)(p.Fragment,{children:h({})}):null;let j="exited"===C;if(e){let e=h(j?"display-none"===r?{display:"none"}:{}:i({transition:n,duration:E,state:C,timingFunction:P}));return"display-none"===r?e:(0,p.jsx)(l.Activity,{mode:j?"hidden":"visible",children:e})}return j?null:(0,p.jsx)(p.Fragment,{children:h(i({transition:n,duration:E,state:C,timingFunction:P}))})}f.displayName="@mantine/core/Transition",e.s(["Transition",0,f],98193)},42948,e=>{"use strict";var t=e.i(24848),r=e.i(43798),n=e.i(15259),o=e.i(89549),i=e.i(14037),a=e.i(21879),l=e.i(44662),s={root:"m_5ae2e3c",barsLoader:"m_7a2bd4cd",bar:"m_870bb79","bars-loader-animation":"m_5d2b3b9d",dotsLoader:"m_4e3f22d7",dot:"m_870c4af","loader-dots-animation":"m_aac34a1",ovalLoader:"m_b34414df","oval-loader-animation":"m_f8e89c4b"},c=e.i(7670),u=e.i(43476);let d=({className:e,...t})=>(0,u.jsxs)(l.Box,{component:"span",className:(0,c.default)(s.barsLoader,e),...t,children:[(0,u.jsx)("span",{className:s.bar}),(0,u.jsx)("span",{className:s.bar}),(0,u.jsx)("span",{className:s.bar})]});d.displayName="@mantine/core/Bars";let p=({className:e,...t})=>(0,u.jsxs)(l.Box,{component:"span",className:(0,c.default)(s.dotsLoader,e),...t,children:[(0,u.jsx)("span",{className:s.dot}),(0,u.jsx)("span",{className:s.dot}),(0,u.jsx)("span",{className:s.dot})]});p.displayName="@mantine/core/Dots";let f=({className:e,...t})=>(0,u.jsx)(l.Box,{component:"span",className:(0,c.default)(s.ovalLoader,e),...t});f.displayName="@mantine/core/Oval";let m={bars:d,oval:f,dots:p},h={loaders:m,type:"oval"},v=(0,r.createVarsResolver)((e,{size:r,color:o})=>({root:{"--loader-size":(0,t.getSize)(r,"loader-size"),"--loader-color":o?(0,n.getThemeColor)(o,e):void 0}})),y=(0,a.factory)(e=>{let t=(0,o.useProps)("Loader",h,e),{size:r,color:n,type:a,vars:c,className:d,style:p,classNames:f,styles:m,unstyled:y,loaders:g,variant:b,children:x,attributes:w,...S}=t,R=(0,i.useStyles)({name:"Loader",props:t,classes:s,className:d,style:p,classNames:f,styles:m,unstyled:y,attributes:w,vars:c,varsResolver:v});return x?(0,u.jsx)(l.Box,{...R("root"),...S,children:x}):(0,u.jsx)(l.Box,{...R("root"),component:g[a],variant:b,size:r,...S})});y.defaultLoaders=m,y.classes=s,y.varsResolver=v,y.displayName="@mantine/core/Loader",e.s(["Loader",0,y],42948)},73404,e=>{"use strict";var t=e.i(24848),r=e.i(43798),n=e.i(89549),o=e.i(14037),i=e.i(57942),a=e.i(44662),l=e.i(25436),s=e.i(98193),c=e.i(42948),u={root:"m_8d3f4000",icon:"m_8d3afb97",loader:"m_302b9fb1",group:"m_1a0f1b21",groupSection:"m_437b6484"},d=e.i(82451),p=e.i(21879),f=e.i(43476);let m={orientation:"horizontal"},h=(0,r.createVarsResolver)((e,{borderWidth:t})=>({group:{"--ai-border-width":(0,d.rem)(t)}})),v=(0,p.factory)(e=>{let t=(0,n.useProps)("ActionIconGroup",m,e),{className:r,style:i,classNames:l,styles:s,unstyled:c,orientation:d,vars:p,borderWidth:v,variant:y,mod:g,attributes:b,...x}=t;return(0,f.jsx)(a.Box,{...(0,o.useStyles)({name:"ActionIconGroup",props:t,classes:u,className:r,style:i,classNames:l,styles:s,unstyled:c,attributes:b,vars:p,varsResolver:h,rootSelector:"group"})("group"),variant:y,mod:[{"data-orientation":d},g],role:"group",...x})});v.classes=u,v.varsResolver=h,v.displayName="@mantine/core/ActionIconGroup";let y=(0,r.createVarsResolver)((e,{radius:r,color:n,gradient:o,variant:i,autoContrast:a,size:l})=>{let s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:i||"filled",autoContrast:a});return{groupSection:{"--section-height":(0,t.getSize)(l,"section-height"),"--section-padding-x":(0,t.getSize)(l,"section-padding-x"),"--section-fz":(0,t.getFontSize)(l),"--section-radius":void 0===r?void 0:(0,t.getRadius)(r),"--section-bg":n||i?s.background:void 0,"--section-color":s.color,"--section-bd":n||i?s.border:void 0}}}),g=(0,p.factory)(e=>{let t=(0,n.useProps)("ActionIconGroupSection",null,e),{className:r,style:i,classNames:l,styles:s,unstyled:c,vars:d,variant:p,gradient:m,radius:h,autoContrast:v,attributes:g,...b}=t;return(0,f.jsx)(a.Box,{...(0,o.useStyles)({name:"ActionIconGroupSection",props:t,classes:u,className:r,style:i,classNames:l,styles:s,unstyled:c,attributes:g,vars:d,varsResolver:y,rootSelector:"groupSection"})("groupSection"),variant:p,...b})});g.classes=u,g.varsResolver=y,g.displayName="@mantine/core/ActionIconGroupSection";let b=(0,r.createVarsResolver)((e,{size:r,radius:n,variant:o,gradient:i,color:a,autoContrast:l})=>{let s=e.variantColorResolver({color:a||e.primaryColor,theme:e,gradient:i,variant:o||"filled",autoContrast:l});return{root:{"--ai-size":(0,t.getSize)(r,"ai-size"),"--ai-radius":void 0===n?void 0:(0,t.getRadius)(n),"--ai-bg":a||o?s.background:void 0,"--ai-hover":a||o?s.hover:void 0,"--ai-hover-color":a||o?s.hoverColor:void 0,"--ai-color":s.color,"--ai-bd":a||o?s.border:void 0}}}),x=(0,i.polymorphicFactory)(e=>{let t=(0,n.useProps)("ActionIcon",null,e),{className:r,unstyled:i,variant:d,classNames:p,styles:m,style:h,loading:v,loaderProps:y,size:g,color:x,radius:w,__staticSelector:S,gradient:R,vars:E,children:C,disabled:P,"data-disabled":j,autoContrast:k,mod:A,attributes:T,...I}=t,M=(0,o.useStyles)({name:["ActionIcon",S],props:t,className:r,style:h,classes:u,classNames:p,styles:m,unstyled:i,attributes:T,vars:E,varsResolver:b});return(0,f.jsxs)(l.UnstyledButton,{...M("root",{active:!P&&!v&&!j}),"aria-busy":v||void 0,...I,unstyled:i,variant:d,size:g,disabled:P||v,mod:[{loading:v,disabled:P||j},A],children:["boolean"==typeof v&&(0,f.jsx)(s.Transition,{mounted:v,transition:"slide-down",duration:150,children:e=>(0,f.jsx)(a.Box,{component:"span",...M("loader",{style:e}),"aria-hidden":!0,children:(0,f.jsx)(c.Loader,{color:"var(--ai-color)",size:"calc(var(--ai-size) * 0.55)",...y})})}),(0,f.jsx)(a.Box,{component:"span",mod:{loading:v},...M("icon"),children:C})]})});x.classes=u,x.varsResolver=b,x.displayName="@mantine/core/ActionIcon",x.Group=v,x.GroupSection=g,e.s(["ActionIcon",0,x],73404)},98526,e=>{"use strict";let t={app:100,modal:200,popover:300,overlay:400,max:9999};e.s(["getDefaultZIndex",0,function(e){return t[e]}])},84660,e=>{"use strict";var t=e.i(71645);e.s(["createSafeContext",0,function(e){let r=(0,t.createContext)(null);return[r,()=>{let n=(0,t.use)(r);if(null===n)throw Error(e);return n}]}])},72213,73651,85369,52647,45639,49859,54673,e=>{"use strict";let[t,r]=(0,e.i(84660).createSafeContext)("AppShell was not found in tree");e.s(["AppShellProvider",0,t,"useAppShellContext",0,r],72213);var n,o,i,a,l,s,c,u={root:"m_89ab340",navbar:"m_45252eee",aside:"m_9cdde9a",header:"m_3b16f56b",main:"m_8983817",footer:"m_3840c879",section:"m_6dcfc7c7"};e.s(["default",0,u],73651);var d=e.i(89549),p=e.i(21879),f=e.i(44662),m=function(){return(m=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}var v=("function"==typeof SuppressedError&&SuppressedError,e.i(71645)),y="right-scroll-bar-position",g="width-before-scroll-bar";function b(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var x="u">typeof window?v.useLayoutEffect:v.useEffect,w=new WeakMap,S=(void 0===o&&(o={}),(void 0===i&&(i=function(e){return e}),a=[],l=!1,s={read:function(){if(l)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return a.length?a[a.length-1]:null},useMedium:function(e){var t=i(e,l);return a.push(t),function(){a=a.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(l=!0;a.length;){var t=a;a=[],t.forEach(e)}a={push:function(t){return e(t)},filter:function(){return a}}},assignMedium:function(e){l=!0;var t=[];if(a.length){var r=a;a=[],r.forEach(e),t=a}var n=function(){var r=t;t=[],r.forEach(e)},o=function(){return Promise.resolve().then(n)};o(),a={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),a}}}}).options=m({async:!0,ssr:!1},o),s),R=function(){},E=v.forwardRef(function(e,t){var r,n,o,i,a=v.useRef(null),l=v.useState({onScrollCapture:R,onWheelCapture:R,onTouchMoveCapture:R}),s=l[0],c=l[1],u=e.forwardProps,d=e.children,p=e.className,f=e.removeScrollBar,y=e.enabled,g=e.shards,E=e.sideCar,C=e.noRelative,P=e.noIsolation,j=e.inert,k=e.allowPinchZoom,A=e.as,T=e.gapMode,I=h(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),M=(r=[a,t],n=function(e){return r.forEach(function(t){return b(t,e)})},(o=(0,v.useState)(function(){return{value:null,callback:n,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=n,i=o.facade,x(function(){var e=w.get(i);if(e){var t=new Set(e),n=new Set(r),o=i.current;t.forEach(function(e){n.has(e)||b(e,null)}),n.forEach(function(e){t.has(e)||b(e,o)})}w.set(i,r)},[r]),i),B=m(m({},I),s);return v.createElement(v.Fragment,null,y&&v.createElement(E,{sideCar:S,removeScrollBar:f,shards:g,noRelative:C,noIsolation:P,inert:j,setCallbacks:c,allowPinchZoom:!!k,lockRef:a,gapMode:T}),u?v.cloneElement(v.Children.only(d),m(m({},B),{ref:M})):v.createElement(void 0===A?"div":A,m({},B,{className:p,ref:M}),d))});E.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},E.classNames={fullWidth:g,zeroRight:y};var C=function(e){var t=e.sideCar,r=h(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return v.createElement(n,m({},r))};C.isSideCarExport=!0;var P=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=n||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var o,i;(o=t).styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),i=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(i)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},j=function(){var e=P();return function(t,r){v.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},k=function(){var e=j();return function(t){return e(t.styles,t.dynamic),null}},A={left:0,top:0,right:0,gap:0},T=function(e){return parseInt(e||"",10)||0},I=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[T(r),T(n),T(o)]},M=function(e){if(void 0===e&&(e="margin"),"u"

No instance selected. Start a new VLC stream to begin.

\ No newline at end of file diff --git a/out/index.txt b/out/index.txt new file mode 100644 index 0000000000000000000000000000000000000000..911f11d354bd907ae15d20ec037f2214143e708b --- /dev/null +++ b/out/index.txt @@ -0,0 +1,19 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +5:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +6:I[31713,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2aanosyrv6eaw.js","/_next/static/chunks/18dm0rqyf17bd.js"],"default"] +9:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +a:"$Sreact.suspense" +c:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +e:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +10:I[68027,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2aanosyrv6eaw.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/18dm0rqyf17bd.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9TP5TNTvxBGj0fHE1AOrA"} +7:{} +8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +11:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +b:null +f:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L11","3",{}]] diff --git a/out/manager/__next._full.txt b/out/manager/__next._full.txt new file mode 100644 index 0000000000000000000000000000000000000000..fcd1d52c99e18c3d7fc0edb7cd36aee0d171cafb --- /dev/null +++ b/out/manager/__next._full.txt @@ -0,0 +1,21 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +5:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +6:I[10555,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/3ybqu9j5tvj27.js","/_next/static/chunks/1roiulrahi6-9.js"],"default"] +9:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +a:"$Sreact.suspense" +d:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +f:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +11:I[68027,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"P":null,"c":["","manager",""],"q":"","i":false,"f":[[["",{"children":["manager",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3ybqu9j5tvj27.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1roiulrahi6-9.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9TP5TNTvxBGj0fHE1AOrA"} +12:[] +c:"$W12" +7:{} +8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +13:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +b:null +10:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L13","3",{}]] diff --git a/out/manager/__next._head.txt b/out/manager/__next._head.txt new file mode 100644 index 0000000000000000000000000000000000000000..a695f2171d1326f1c8ac8075e6986079581d0391 --- /dev/null +++ b/out/manager/__next._head.txt @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/manager/__next._index.txt b/out/manager/__next._index.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e77d9b526204c2c6ffacad054633cc0ec0682bb --- /dev/null +++ b/out/manager/__next._index.txt @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/manager/__next._tree.txt b/out/manager/__next._tree.txt new file mode 100644 index 0000000000000000000000000000000000000000..f7660301a6555c9be599b7ab315ef0eed8e2406a --- /dev/null +++ b/out/manager/__next._tree.txt @@ -0,0 +1,2 @@ +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"manager","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/manager/__next.manager.txt b/out/manager/__next.manager.txt new file mode 100644 index 0000000000000000000000000000000000000000..7aa0e4a4e96ff9efa830bb1cdb27d40af338b4f4 --- /dev/null +++ b/out/manager/__next.manager.txt @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +3:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"9TP5TNTvxBGj0fHE1AOrA"} diff --git a/out/manager/__next.manager/__PAGE__.txt b/out/manager/__next.manager/__PAGE__.txt new file mode 100644 index 0000000000000000000000000000000000000000..09c66a6c019431dc56bd282d979ab02497885c73 --- /dev/null +++ b/out/manager/__next.manager/__PAGE__.txt @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +3:I[10555,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/3ybqu9j5tvj27.js","/_next/static/chunks/1roiulrahi6-9.js"],"default"] +6:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3ybqu9j5tvj27.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/1roiulrahi6-9.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"9TP5TNTvxBGj0fHE1AOrA"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/out/manager/index.html b/out/manager/index.html new file mode 100644 index 0000000000000000000000000000000000000000..3e4cc406661fe0b0bacdf86199a386f393cab8da --- /dev/null +++ b/out/manager/index.html @@ -0,0 +1,5 @@ +My Mantine app
Back to Control Panel

Media & Downloader Manager

Active Queue

No active downloads. Add a URL or magnet link above to start downloading.

\ No newline at end of file diff --git a/out/manager/index.txt b/out/manager/index.txt new file mode 100644 index 0000000000000000000000000000000000000000..fcd1d52c99e18c3d7fc0edb7cd36aee0d171cafb --- /dev/null +++ b/out/manager/index.txt @@ -0,0 +1,21 @@ +1:"$Sreact.fragment" +2:I[29765,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"] +3:I[39756,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +4:I[37457,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default"] +5:I[47257,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"] +6:I[10555,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/3ybqu9j5tvj27.js","/_next/static/chunks/1roiulrahi6-9.js"],"default"] +9:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"] +a:"$Sreact.suspense" +d:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"] +f:I[97367,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"] +11:I[68027,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1] +:HL["/_next/static/chunks/2v-rv291cn1b-.css","style"] +0:{"P":null,"c":["","manager",""],"q":"","i":false,"f":[[["",{"children":["manager",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ifm0u80_nm7s.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3ybqu9j5tvj27.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1roiulrahi6-9.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"9TP5TNTvxBGj0fHE1AOrA"} +12:[] +c:"$W12" +7:{} +8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +13:I[27201,["/_next/static/chunks/1ifm0u80_nm7s.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"] +b:null +10:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L13","3",{}]] diff --git a/out/next.svg b/out/next.svg new file mode 100644 index 0000000000000000000000000000000000000000..5174b28c565c285e3e312ec5178be64fbeca8398 --- /dev/null +++ b/out/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/vercel.svg b/out/vercel.svg new file mode 100644 index 0000000000000000000000000000000000000000..77053960334e2e34dc584dea8019925c3b4ccca9 --- /dev/null +++ b/out/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/window.svg b/out/window.svg new file mode 100644 index 0000000000000000000000000000000000000000..b2b2a44f6ebc70c450043c05a002e7a93ba5d651 --- /dev/null +++ b/out/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/process.py b/process.py new file mode 100644 index 0000000000000000000000000000000000000000..a60445a73fa1fd06b2f6101f85b0866a1e0ba09e --- /dev/null +++ b/process.py @@ -0,0 +1,98 @@ +import subprocess +import re +import sys +import os +import shutil + +from glv import Global +from glv_var import debugger + + +def shell(command, filter=None, verbose=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + universal_newlines=True, progress_callback=None, handleProgress=None, inline_progress=False, return_out=False, + cwd=os.getcwd(), color_function=None): + # Set PYTHONUNBUFFERED environment variable + os.environ['PYTHONUNBUFFERED'] = '1' + + command = to_list(command) + + try: + if verbose: + Global.hr() + debugger.debug(f"Running command: {command}") + Global.hr() + + process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding='utf-8', + universal_newlines=True, cwd=cwd) + + output_lines = [] + while True: + try: + output = process.stdout.readline() + if output == '' and process.poll() is not None: + break + + output = output.strip() + if output: + if color_function: + output = color_function(output) + + output_lines.append(output) + + if filter is not None and re.search(filter, output): + # Call the progress callback with the filtered output + if progress_callback: + if handleProgress: + progress_callback(handleProgress(output)) + else: + progress_callback(output) + + if inline_progress: + # Update progress in the same line + sys.stdout.write('\r' + ' ' * int(shutil.get_terminal_size().columns) + '\r') # Clear the line + sys.stdout.write('\r' + output) + sys.stdout.flush() + else: + # Print output normally + if stdout is not None and stdout != '': + print(output) + + except UnicodeEncodeError: + sys.stdout.write("\rUnicodeEncodeError") + sys.stdout.flush() + pass + + # Wait for the process to complete and get the return code + return_code_value = process.wait() + + if verbose: + debugger.debug(f"Return code: {return_code_value}") + Global.hr() + + if inline_progress: + # Print newline after inline progress + print() + + # Return output only if return_code flag is False + if not return_out: + return return_code_value + else: + # Return both output and return code + return return_code_value, output_lines + + except Exception as e: + print(f"Error: {e}") + if not return_out: + return [] + else: + return -1, [] + + +def to_list(variable): + if isinstance(variable, list): + return variable + elif variable is None: + return [] + else: + # Convert to string and then to list by splitting at whitespaces + return variable.split() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e94db594450b425fdf6953c69e733788d21ee6a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +fastapi +uvicorn +requests +pydantic +telnetlib3 diff --git a/test_main.http b/test_main.http new file mode 100644 index 0000000000000000000000000000000000000000..d46b80430d2c9d915d0d84a272e8b8b4886603e8 --- /dev/null +++ b/test_main.http @@ -0,0 +1,11 @@ +# Test your FastAPI endpoints + +GET http://127.0.0.1:8000/ +Accept: application/json + +### + +GET http://127.0.0.1:8000/hello/User +Accept: application/json + +### diff --git a/vlc-help.txt b/vlc-help.txt new file mode 100644 index 0000000000000000000000000000000000000000..9b1b40da945e36336adbb004ce029197c79205b1 --- /dev/null +++ b/vlc-help.txt @@ -0,0 +1,413 @@ +Usage: vlc [options] [stream] ... +You can specify multiple streams on the commandline. +They will be enqueued in the playlist. +The first item specified will be played first. + +Options-styles: + --option A global option that is set for the duration of the program. + -option A single letter version of a global --option. + :option An option that only applies to the stream directly before it + and that overrides previous settings. + +Stream MRL syntax: + [[access][/demux]://]URL[#[title][:chapter][-[title][:chapter]]] + [:option=value ...] + + Many of the global --options can also be used as MRL specific :options. + Multiple :option=value pairs can be specified. + +URL syntax: + file:///path/file Plain media file + http://host[:port]/file HTTP URL + ftp://host[:port]/file FTP URL + mms://host[:port]/file MMS URL + screen:// Screen capture + dvd://[device] DVD device + vcd://[device] VCD device + cdda://[device] Audio CD device + udp://[[]@[][:]] + UDP stream sent by a streaming server + vlc://pause: Pause the playlist for a certain time + vlc://quit Special item to quit VLC + + + core program (core) + + Audio + --audio, --no-audio Enable audio + (default enabled) + --force-dolby-surround={0 (Auto), 1 (On), 2 (Off)} + Force detection of Dolby Surround + --audio-replay-gain-mode={none,track,album} + Replay gain mode + --audio-replay-gain-preamp= + Replay preamp + --audio-replay-gain-default= + Default replay gain + --audio-time-stretch, --no-audio-time-stretch + Enable time stretching audio + (default enabled) + --audio-filter= Audio filters + --audio-visual={any,goom,projectm,visual,glspectrum,none} + Audio visualizations + + Video + -f, --fullscreen, --no-fullscreen + Fullscreen video output + (default disabled) + --video-on-top, --no-video-on-top + Always on top + (default disabled) + --video-wallpaper, --no-video-wallpaper + Enable wallpaper mode + (default disabled) + --video-title-show, --no-video-title-show + Show media title on video + (default enabled) + --video-title-timeout= + Show video title for x milliseconds + --video-title-position={0 (Center), 1 (Left), 2 (Right), 4 (Top), 8 (Bottom), 5 (Top-Left), 6 (Top-Right), 9 (Bottom-Left), 10 (Bottom-Right)} + Position of video title + --mouse-hide-timeout= + Hide cursor and fullscreen controller after x + milliseconds + Snapshot: + --snapshot-path= Video snapshot directory (or filename) + --snapshot-prefix= Video snapshot file prefix + --snapshot-format={png,jpg,tiff} + Video snapshot format + --snapshot-preview, --no-snapshot-preview + Display video snapshot preview + (default enabled) + --snapshot-sequential, --no-snapshot-sequential + Use sequential numbers instead of timestamps + (default disabled) + Window properties: + --crop= Video cropping + --custom-crop-ratios= + Custom crop ratios list + --aspect-ratio= Source aspect ratio + --autoscale, --no-autoscale + Video Auto Scaling + (default enabled) + --custom-aspect-ratios= + Custom aspect ratios list + --deinterlace={0 (Off), -1 (Automatic), 1 (On)} + Deinterlace + --deinterlace-mode={auto,discard,blend,mean,bob,linear,x,yadif,yadif2x,phosphor,ivtc} + Deinterlace mode + --video-filter= Video filter module + --video-splitter= Video splitter module + + Subpictures + On Screen Display: + --spu, --no-spu Enable sub-pictures + (default enabled) + --osd, --no-osd On Screen Display + (default enabled) + Subtitles: + --sub-file= Use subtitle file + --sub-autodetect-file, --no-sub-autodetect-file + Autodetect subtitle files + (default enabled) + --sub-text-scale= + Subtitles text scaling factor + Overlays: + --sub-source= Subpictures source module + --sub-filter= Subpictures filter module + Track settings: + --audio-language= Audio language + --sub-language= Subtitle language + --menu-language= Menu language + --preferred-resolution={-1 (Best available), 1080 (Full HD (1080p)), 720 (HD (720p)), 576 (Standard Definition (576 or 480 lines)), 360 (Low Definition (360 lines)), 240 (Very Low Definition (240 lines))} + Preferred video resolution + Playback control: + --input-repeat= + Input repetitions + --input-fast-seek, --no-input-fast-seek + Fast seek + (default disabled) + --rate= Playback speed + Default devices: + --dvd= DVD device + --vcd= VCD device + Network settings: + --http-proxy= HTTP proxy + --http-proxy-pwd= HTTP proxy password + Advanced: + --input-title-format= + Change title according to current media + + Input + --stream-filter= Stream filter module + Performance options: + --high-priority, --no-high-priority + Increase the priority of the process + (default disabled) + + Playlist + -Z, --random, --no-random Play files randomly forever + (default disabled) + -L, --loop, --no-loop Repeat all + (default disabled) + -R, --repeat, --no-repeat Repeat current item + (default disabled) + --play-and-exit, --no-play-and-exit + Play and exit + (default disabled) + --play-and-stop, --no-play-and-stop + Play and stop + (default disabled) + --start-paused, --no-start-paused + Start paused + (default disabled) + --playlist-autostart, --no-playlist-autostart + Auto start + (default enabled) + --playlist-cork, --no-playlist-cork + Pause on audio communication + (default enabled) + --media-library, --no-media-library + Use media library + (default disabled) + --playlist-tree, --no-playlist-tree + Display playlist tree + (default disabled) + --open= Default stream + --auto-preparse, --no-auto-preparse + Automatically preparse items + (default enabled) + --preparse-timeout= + Preparsing timeout + --metadata-network-access, --no-metadata-network-access + Allow metadata network access + (default enabled) + --recursive={none,collapse,expand} + Subdirectory behavior + --ignore-filetypes= + Ignored extensions + --show-hiddenfiles, --no-show-hiddenfiles + Show hidden files + (default disabled) + -v, --verbose= Verbosity (0,1,2) + --advanced, --no-advanced Show advanced options + (default disabled) + --interact, --no-interact Interface interaction + (default enabled) + -I, --intf= Interface module + --extraintf= Extra interface modules + --control= Control interfaces + + Hot keys + --hotkeys-y-wheel-mode={-1 (Ignore), 0 (Volume control), 2 (Position control), 3 (Position control reversed)} + Mouse wheel vertical axis control + --hotkeys-x-wheel-mode={-1 (Ignore), 0 (Volume control), 2 (Position control), 3 (Position control reversed)} + Mouse wheel horizontal axis control + --global-key-toggle-fullscreen= + Fullscreen + --key-toggle-fullscreen= + Fullscreen + --global-key-leave-fullscreen= + Exit fullscreen + --key-leave-fullscreen= + Exit fullscreen + --global-key-play-pause= + Play/Pause + --key-play-pause= Play/Pause + --global-key-faster= + Faster + --key-faster= Faster + --global-key-slower= + Slower + --key-slower= Slower + --global-key-rate-normal= + Normal rate + --key-rate-normal= Normal rate + --global-key-rate-faster-fine= + Faster (fine) + --key-rate-faster-fine= + Faster (fine) + --global-key-rate-slower-fine= + Slower (fine) + --key-rate-slower-fine= + Slower (fine) + --global-key-next= Next + --key-next= Next + --global-key-prev= Previous + --key-prev= Previous + --global-key-stop= Stop + --key-stop= Stop + --global-key-jump-extrashort= + Very short backwards jump + --key-jump-extrashort= + Very short backwards jump + --global-key-jump+extrashort= + Very short forward jump + --key-jump+extrashort= + Very short forward jump + --global-key-jump-short= + Short backwards jump + --key-jump-short= Short backwards jump + --global-key-jump+short= + Short forward jump + --key-jump+short= Short forward jump + --global-key-jump-medium= + Medium backwards jump + --key-jump-medium= Medium backwards jump + --global-key-jump+medium= + Medium forward jump + --key-jump+medium= Medium forward jump + --global-key-jump-long= + Long backwards jump + --key-jump-long= Long backwards jump + --global-key-jump+long= + Long forward jump + --key-jump+long= Long forward jump + --global-key-frame-next= + Next frame + --key-frame-next= Next frame + --global-key-quit= Quit + --key-quit= Quit + --global-key-vol-up= + Volume up + --key-vol-up= Volume up + --global-key-vol-down= + Volume down + --key-vol-down= Volume down + --global-key-vol-mute= + Mute + --key-vol-mute= Mute + --global-key-audio-track= + Cycle audio track + --key-audio-track= Cycle audio track + --global-key-audiodevice-cycle= + Cycle through audio devices + --key-audiodevice-cycle= + Cycle through audio devices + --global-key-subtitle-revtrack= + Cycle subtitle track in reverse order + --key-subtitle-revtrack= + Cycle subtitle track in reverse order + --global-key-subtitle-track= + Cycle subtitle track + --key-subtitle-track= + Cycle subtitle track + --global-key-subtitle-toggle= + Toggle subtitles + --key-subtitle-toggle= + Toggle subtitles + --global-key-program-sid-next= + Cycle next program Service ID + --key-program-sid-next= + Cycle next program Service ID + --global-key-program-sid-prev= + Cycle previous program Service ID + --key-program-sid-prev= + Cycle previous program Service ID + --global-key-aspect-ratio= + Cycle source aspect ratio + --key-aspect-ratio= + Cycle source aspect ratio + --global-key-crop= Cycle video crop + --key-crop= Cycle video crop + --global-key-toggle-autoscale= + Toggle autoscaling + --key-toggle-autoscale= + Toggle autoscaling + --global-key-incr-scalefactor= + Increase scale factor + --key-incr-scalefactor= + Increase scale factor + --global-key-decr-scalefactor= + Decrease scale factor + --key-decr-scalefactor= + Decrease scale factor + --global-key-deinterlace= + Toggle deinterlacing + --key-deinterlace= Toggle deinterlacing + --global-key-deinterlace-mode= + Cycle deinterlace modes + --key-deinterlace-mode= + Cycle deinterlace modes + --global-key-intf-show= + Show controller in fullscreen + --key-intf-show= Show controller in fullscreen + --global-key-wallpaper= + Toggle wallpaper mode in video output + --key-wallpaper= Toggle wallpaper mode in video output + --global-key-random= + Random + --key-random= Random + --global-key-loop= Normal/Loop/Repeat + --key-loop= Normal/Loop/Repeat + --global-key-zoom-quarter= + 1:4 Quarter + --key-zoom-quarter= + 1:4 Quarter + --global-key-zoom-half= + 1:2 Half + --key-zoom-half= 1:2 Half + --global-key-zoom-original= + 1:1 Original + --key-zoom-original= + 1:1 Original + --global-key-zoom-double= + 2:1 Double + --key-zoom-double= 2:1 Double + Jump sizes: + --extrashort-jump-size= + Very short jump length + --short-jump-size= + Short jump length + --medium-jump-size= + Medium jump length + --long-jump-size= Long jump length + --bookmark1= Playlist bookmark 1 + --bookmark2= Playlist bookmark 2 + --bookmark3= Playlist bookmark 3 + --bookmark4= Playlist bookmark 4 + --bookmark5= Playlist bookmark 5 + --bookmark6= Playlist bookmark 6 + --bookmark7= Playlist bookmark 7 + --bookmark8= Playlist bookmark 8 + --bookmark9= Playlist bookmark 9 + --bookmark10= Playlist bookmark 10 + -h, --help, --no-help print help for VLC (can be combined with + --advanced and --help-verbose) + (default disabled) + -H, --full-help, --no-full-help + Exhaustive help for VLC and its modules + (default disabled) + --longhelp, --no-longhelp print help for VLC and all its modules (can be + combined with --advanced and --help-verbose) + (default disabled) + --help-verbose, --no-help-verbose + ask for extra verbosity when displaying help + (default disabled) + -l, --list, --no-list print a list of available modules + (default disabled) + --list-verbose, --no-list-verbose + print a list of available modules with extra + detail + (default disabled) + -p, --module= print help on a specific module (can be + combined with --advanced and --help-verbose). + Prefix the module name with = for strict + matches. + --ignore-config, --no-ignore-config + no configuration option will be loaded nor + saved to config file + (default enabled) + --reset-config, --no-reset-config + reset the current config to the default values + (default disabled) + --reset-plugins-cache, --no-reset-plugins-cache + resets the current plugins cache + (default disabled) + --version, --no-version print version information + (default disabled) + --config= use alternate config file + +Note: add --advanced to your command line to see advanced options. + +To get exhaustive help, use '-H'.