From c8d9c8cd8cf15842bd1a38dc0eb0dfbb373a316d Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 12:37:03 +0800 Subject: [PATCH 01/43] feat: improve proactive context and dashboard integration --- _conf_schema.json | 12 + core/llm_adapter.py | 254 ++++++++++++++++++++- core/plugin_lifecycle.py | 1 + core/public_api.py | 95 ++++++++ core/web_admin_server.py | 76 +++++++ main.py | 2 + pages/proactive-chat/index.html | 386 ++++++++++++++++++++++++++++++++ 7 files changed, 821 insertions(+), 5 deletions(-) create mode 100644 core/public_api.py create mode 100644 pages/proactive-chat/index.html diff --git a/_conf_schema.json b/_conf_schema.json index 98acd6e..aca6f08 100644 --- a/_conf_schema.json +++ b/_conf_schema.json @@ -87,6 +87,12 @@ "default": true, "hint": "开启后,会把 Bot 自己在平台中的历史发言也一起提供给模型;关闭后,只提供用户侧聊天内容。开启后更有利于模型理解最近对话来回过程,但也可能让上下文更长。" }, + "include_context_insights": { + "description": "生成对话态势摘要", + "type": "bool", + "default": true, + "hint": "开启后,插件会根据最近聊天生成一段轻量态势摘要,帮助模型判断应该延续话题、轻量问候还是克制发言。" + }, "bot_identifiers": { "description": "Bot 标识符列表(逗号分隔)", "type": "string", @@ -364,6 +370,12 @@ "default": true, "hint": "开启后,会把 Bot 自己在平台中的历史发言也一起提供给模型;关闭后,只提供用户侧聊天内容。开启后更有利于模型理解最近对话来回过程,但也可能让上下文更长。" }, + "include_context_insights": { + "description": "生成对话态势摘要", + "type": "bool", + "default": true, + "hint": "开启后,插件会根据最近聊天生成一段轻量态势摘要,帮助模型判断应该延续话题、抛出开放问题还是减少刷屏感。" + }, "bot_identifiers": { "description": "Bot 标识符列表(逗号分隔)", "type": "string", diff --git a/core/llm_adapter.py b/core/llm_adapter.py index 111b132..78272ab 100644 --- a/core/llm_adapter.py +++ b/core/llm_adapter.py @@ -4,6 +4,7 @@ import asyncio import json +import time from datetime import datetime from typing import Any @@ -142,6 +143,10 @@ def _get_context_settings(self, session_id: str) -> dict[str, Any]: settings.get("include_bot_messages", True), default=True, ) + include_context_insights = self._parse_bool_setting( + settings.get("include_context_insights", True), + default=True, + ) bot_identifiers = self._parse_bot_identifiers(settings.get("bot_identifiers")) platform_history_prompt = str( settings.get("platform_history_prompt") or "" @@ -152,6 +157,7 @@ def _get_context_settings(self, session_id: str) -> dict[str, Any]: "platform_history_count": count, "platform_history_prompt": platform_history_prompt, "include_bot_messages": include_bot_messages, + "include_context_insights": include_context_insights, "bot_identifiers": bot_identifiers, "platform_context_max_chars": max_chars, } @@ -326,6 +332,203 @@ def _sanitize_platform_context_text(self, text: Any) -> str: "[真实平台聊天流水开始]", "【真实平台聊天流水开始】" ).replace("[真实平台聊天流水结束]", "【真实平台聊天流水结束】") + def _extract_platform_record_timestamp(self, record: Any) -> float | None: + """宽松提取平台流水时间戳,无法识别时返回 None。""" + for field in ( + "timestamp", + "time", + "created_at", + "created", + "message_time", + "send_time", + ): + raw_value = self._get_platform_record_field(record, field, None) + if raw_value is None: + continue + + if isinstance(raw_value, (int, float)): + timestamp = float(raw_value) + # 兼容毫秒时间戳。 + if timestamp > 10_000_000_000: + timestamp = timestamp / 1000 + return timestamp if timestamp > 0 else None + + if isinstance(raw_value, str): + text = raw_value.strip() + if not text: + continue + try: + timestamp = float(text) + if timestamp > 10_000_000_000: + timestamp = timestamp / 1000 + return timestamp if timestamp > 0 else None + except ValueError: + pass + + try: + normalized = text.replace("Z", "+00:00") + parsed = datetime.fromisoformat(normalized) + return parsed.timestamp() + except ValueError: + continue + + return None + + def _format_elapsed_seconds(self, seconds: float | int | None) -> str | None: + if seconds is None: + return None + + try: + seconds = max(0, int(seconds)) + except Exception: + return None + + if seconds < 60: + return f"{seconds} 秒" + if seconds < 3600: + return f"{seconds // 60} 分钟" + if seconds < 86400: + return f"{seconds // 3600} 小时 {seconds % 3600 // 60} 分钟" + return f"{seconds // 86400} 天 {seconds % 86400 // 3600} 小时" + + def _build_platform_conversation_insights( + self, + metas: list[dict[str, Any]], + unanswered_count: int, + ) -> str: + """基于最近平台流水生成轻量态势摘要,辅助模型选择主动开口策略。""" + if not metas: + return "" + + participants: list[str] = [] + bot_count = 0 + user_count = 0 + non_text_count = 0 + for meta in metas: + sender = str(meta.get("sender_name") or "未知用户") + if sender not in participants: + participants.append(sender) + if meta.get("is_bot"): + bot_count += 1 + else: + user_count += 1 + if meta.get("looks_non_text"): + non_text_count += 1 + + last_meta = metas[-1] + last_sender = str(last_meta.get("sender_name") or "未知用户") + last_text = str(last_meta.get("text") or "") + last_time = last_meta.get("timestamp") + elapsed = ( + self._format_elapsed_seconds(time.time() - float(last_time)) + if isinstance(last_time, (int, float)) + else None + ) + + recent_bot_tail = 0 + for meta in reversed(metas): + if meta.get("is_bot"): + recent_bot_tail += 1 + else: + break + + guidance = "优先自然延续最近话题,避免机械总结聊天记录。" + if unanswered_count > 0 or recent_bot_tail > 0 or last_meta.get("is_bot"): + guidance = ( + "最近 Bot 已主动过或仍未收到回应,应更克制,避免连续追问和刷屏感。" + ) + elif user_count == 0: + guidance = "最近缺少用户侧内容,应使用轻量问候或低压力新话题。" + elif len(participants) >= 3: + guidance = "这是多人场景,应抛出开放但不点名单人的话题。" + + snippets = [ + f"- 最近可读消息:{len(metas)} 条,其中用户侧 {user_count} 条、Bot 侧 {bot_count} 条。", + f"- 最近发言者:{last_sender}" + + (f",距现在约 {elapsed}" if elapsed else "") + + "。", + f"- 参与者概览:{', '.join(participants[:6])}" + + (" 等" if len(participants) > 6 else "") + + "。", + f"- 建议策略:{guidance}", + ] + + if unanswered_count > 0: + snippets.append(f"- 当前未回复次数:{unanswered_count} 次。") + if non_text_count > 0: + snippets.append( + f"- 最近包含 {non_text_count} 条非纯文本内容,提及时只用笼统表达。" + ) + if last_text: + preview = last_text[:80] + ("..." if len(last_text) > 80 else "") + snippets.append(f"- 最新消息摘录:{preview}") + + return "[对话态势摘要]\n" + "\n".join(snippets) + + def _extract_history_message_text(self, message: Any) -> str: + if hasattr(message, "to_dict"): + try: + message = message.to_dict() + except Exception: + return "" + + if isinstance(message, dict): + content = message.get("content") + else: + content = getattr(message, "content", "") + + if isinstance(content, str): + return self._sanitize_platform_context_text(content) + if isinstance(content, list): + return self._sanitize_platform_context_text( + self._extract_platform_message_text(content) + ) + if content is None: + return "" + return self._sanitize_platform_context_text(content) + + def _build_conversation_history_insight_context( + self, + history: list[Any], + unanswered_count: int, + ) -> dict[str, str] | None: + """为仅使用 AstrBot 对话历史的模式补充结构化态势摘要。""" + if not history: + return None + + recent_messages = history[-12:] + role_counts: dict[str, int] = {} + for message in recent_messages: + if isinstance(message, dict): + role = str(message.get("role") or "unknown") + else: + role = str(getattr(message, "role", "unknown")) + role_counts[role] = role_counts.get(role, 0) + 1 + + last_message = recent_messages[-1] + if isinstance(last_message, dict): + last_role = str(last_message.get("role") or "unknown") + else: + last_role = str(getattr(last_message, "role", "unknown")) + last_text = self._extract_history_message_text(last_message) + last_preview = last_text[:100] + ("..." if len(last_text) > 100 else "") + + guidance = "优先接续最后一个仍有余温的话题。" + if unanswered_count > 0 or last_role in {"assistant", "bot"}: + guidance = "最近一次更像 Bot 已开口但未被回应,应降低压迫感,避免连续追问。" + elif not last_preview: + guidance = "最近消息缺少可读文本,应轻量问候或开启低门槛话题。" + + content = ( + "[对话态势摘要]\n" + f"- 最近对话历史:{len(recent_messages)} 条,角色分布:{role_counts}。\n" + f"- 最新历史角色:{last_role}。\n" + f"- 当前未回复次数:{unanswered_count} 次。\n" + f"- 建议策略:{guidance}\n" + f"- 最新历史摘录:{last_preview or '无可读文本'}" + ) + return {"role": "system", "content": content} + def _is_platform_bot_record( self, record: Any, @@ -362,6 +565,7 @@ def _format_platform_history_as_context( ) -> tuple[dict[str, str] | None, int, int]: """将平台聊天流水格式化为单条上下文消息。""" lines: list[str] = [] + metas: list[dict[str, Any]] = [] used_count = 0 for record in records: @@ -386,15 +590,29 @@ def _format_platform_history_as_context( used_count += 1 lines.append(f"{used_count}. {sender_name}: {text}") + metas.append( + { + "sender_name": sender_name, + "text": text, + "is_bot": is_bot, + "timestamp": self._extract_platform_record_timestamp(record), + "looks_non_text": text.startswith("[") and text.endswith("]"), + } + ) if not lines: return None, 0, 0 max_chars = max(0, int(max_chars or 0)) trimmed_lines = list(lines) + trimmed_metas = list(metas) dropped_count = 0 - def _build_content(history_lines: list[str], dropped: int) -> str: + def _build_content( + history_lines: list[str], + history_metas: list[dict[str, Any]], + dropped: int, + ) -> str: dropped_hint = ( f"注意:较早历史已截断 {dropped} 条,仅保留最新片段。\n" if dropped > 0 @@ -427,21 +645,35 @@ def _build_content(history_lines: list[str], dropped: int) -> str: ) now_str = datetime.now(self.timezone).strftime("%Y年%m月%d日 %H:%M") + insights = "" + if (context_settings or {}).get("include_context_insights", True): + insights = self._build_platform_conversation_insights( + history_metas, + unanswered_count=unanswered_count, + ) content = ( prompt_template.replace("{{platform_history_lines}}", body) + .replace("{{conversation_insights}}", insights) .replace("{{unanswered_count}}", str(unanswered_count)) .replace("{{current_time}}", now_str) ) + if insights and "{{conversation_insights}}" not in prompt_template: + marker = "[真实平台聊天流水开始]" + if marker in content: + content = content.replace(marker, f"{insights}\n\n{marker}", 1) + else: + content = f"{insights}\n\n{content}" if dropped_hint: content = f"{dropped_hint}{content}" return content - content = _build_content(trimmed_lines, dropped_count) + content = _build_content(trimmed_lines, trimmed_metas, dropped_count) if max_chars > 0 and len(content) > max_chars: while len(trimmed_lines) > 1 and len(content) > max_chars: trimmed_lines.pop(0) + trimmed_metas.pop(0) dropped_count += 1 - content = _build_content(trimmed_lines, dropped_count) + content = _build_content(trimmed_lines, trimmed_metas, dropped_count) if len(content) > max_chars: overflow = len(content) - max_chars + 3 @@ -450,7 +682,7 @@ def _build_content(history_lines: list[str], dropped: int) -> str: trimmed_lines[-1] = f"{last_line[:-overflow]}..." else: trimmed_lines[-1] = "..." - content = _build_content(trimmed_lines, dropped_count) + content = _build_content(trimmed_lines, trimmed_metas, dropped_count) if len(content) > max_chars: hard_limit = max(0, max_chars - 7) @@ -499,7 +731,19 @@ async def _build_effective_history_context( ) if source_mode == "conversation_history": - effective_history = conversation_history + insight_context = ( + self._build_conversation_history_insight_context( + conversation_history, + unanswered_count=unanswered_count, + ) + if settings.get("include_context_insights", True) + else None + ) + effective_history = ( + [insight_context, *conversation_history] + if insight_context + else conversation_history + ) elif source_mode == "platform_message_history": if platform_context: effective_history = [platform_context] diff --git a/core/plugin_lifecycle.py b/core/plugin_lifecycle.py index cf3c28b..a04af2b 100644 --- a/core/plugin_lifecycle.py +++ b/core/plugin_lifecycle.py @@ -135,6 +135,7 @@ async def initialize(self) -> None: # 启动 Web 管理端 try: if self.web_admin_server: + self.web_admin_server.register_astrbot_page_api() await self.web_admin_server.start() except Exception as e: logger.error(f"[主动消息] Web 管理端启动失败喵: {e}") diff --git a/core/public_api.py b/core/public_api.py new file mode 100644 index 0000000..2415ed9 --- /dev/null +++ b/core/public_api.py @@ -0,0 +1,95 @@ +"""插件间通信的轻量公共接口。""" + +from __future__ import annotations + +import asyncio +from typing import Any + + +class PublicApiMixin: + """提供给其它插件复用的稳定方法,避免直接触碰内部状态。""" + + web_admin_server: Any + manual_trigger_sessions: set[str] + scheduler: Any + data_lock: Any + session_data: dict + + def get_proactive_chat_status(self) -> dict[str, Any]: + """返回主动消息运行状态快照。""" + if self.web_admin_server: + return self.web_admin_server._build_status_payload() + return {"running": False, "error": "web_admin_server_unavailable"} + + def list_proactive_chat_jobs(self) -> list[dict[str, Any]]: + """返回当前调度任务列表。""" + if self.web_admin_server: + return self.web_admin_server._collect_jobs() + return [] + + def list_proactive_chat_sessions(self) -> list[dict[str, Any]]: + """返回当前已知会话摘要。""" + if self.web_admin_server: + return self.web_admin_server._list_known_session_summaries() + return [] + + async def trigger_proactive_chat(self, session_id: str) -> dict[str, Any]: + """立即触发一次指定会话的主动消息流程。""" + normalized = self._normalize_session_id(session_id) + if normalized in self.manual_trigger_sessions: + return { + "ok": False, + "session": normalized, + "in_progress": True, + "message": "该会话正在触发中", + } + + self.manual_trigger_sessions.add(normalized) + asyncio.create_task(self.check_and_chat(normalized)) + return { + "ok": True, + "session": normalized, + "in_progress": True, + "message": "已开始触发主动消息", + } + + async def reschedule_proactive_chat( + self, + session_id: str, + *, + reset_counter: bool = False, + ) -> dict[str, Any]: + """重新调度指定会话的下一次主动消息。""" + normalized = self._normalize_session_id(session_id) + session_config = self._get_session_config(normalized) + if not session_config or not session_config.get("enable", False): + return { + "ok": False, + "session": normalized, + "error": "会话未启用或配置不存在", + } + + await self._schedule_next_chat_and_save( + normalized, + reset_counter=reset_counter, + ) + return {"ok": True, "session": normalized} + + async def cancel_proactive_chat_job(self, session_id: str) -> dict[str, Any]: + """取消指定会话当前的调度任务。""" + normalized = self._normalize_session_id(session_id) + removed = False + if self.scheduler: + try: + self.scheduler.remove_job(normalized) + removed = True + except Exception: + pass + + if self.data_lock: + async with self.data_lock: + if normalized in self.session_data: + self.session_data[normalized].pop("next_trigger_time", None) + await self._save_data_internal() + + return {"ok": True, "session": normalized, "removed": removed} diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 0460ddf..f853cc0 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -59,6 +59,8 @@ def _is_running_in_docker() -> bool: class WebAdminServer: """主动消息插件 Web 管理端服务器。""" + ASTRBOT_PAGE_API_PATH = "/proactive-chat/dashboard" + def __init__(self, plugin: Any): # plugin 是主插件实例,Web 端所有状态与操作都通过它间接访问。 self.plugin = plugin @@ -101,6 +103,47 @@ def __init__(self, plugin: Any): f" 可能是 FastAPI / Pydantic 依赖版本不兼容: {e}" ) + def register_astrbot_page_api(self) -> None: + """向 AstrBot WebUI 插件 Page 暴露轻量聚合接口。""" + context = getattr(self.plugin, "context", None) + register = getattr(context, "register_web_api", None) + if not callable(register): + logger.debug( + "[主动消息] 当前 AstrBot 版本未提供 register_web_api,跳过插件卡片接口注册喵。" + ) + return + + async def dashboard_payload(*_args, **_kwargs): + return await self.build_astrbot_page_payload() + + # AstrBot 不同版本的 register_web_api 签名可能略有差异,按常见形态逐个尝试。 + attempts = ( + lambda: register( + self.ASTRBOT_PAGE_API_PATH, dashboard_payload, methods=["GET"] + ), + lambda: register("GET", self.ASTRBOT_PAGE_API_PATH, dashboard_payload), + lambda: register(self.ASTRBOT_PAGE_API_PATH, dashboard_payload), + ) + last_error: Exception | None = None + for attempt in attempts: + try: + attempt() + logger.info( + f"[主动消息] 已注册 AstrBot 插件卡片接口喵: {self.ASTRBOT_PAGE_API_PATH}" + ) + return + except TypeError as e: + last_error = e + continue + except Exception as e: + logger.warning(f"[主动消息] 注册 AstrBot 插件卡片接口失败喵: {e}") + return + + if last_error: + logger.debug( + f"[主动消息] AstrBot 插件卡片接口签名不兼容,已跳过注册喵: {last_error}" + ) + def _setup_app(self) -> None: # 创建 FastAPI 应用,版本号用于控制台元信息展示。 self.app = FastAPI( @@ -205,6 +248,11 @@ async def get_status(): # 汇总插件运行状态、计时器与连接数,供首页卡片与轮询逻辑使用。 return self._build_status_payload() + @self.app.get("/api/embedded-dashboard") + async def embedded_dashboard(): + # 给 AstrBot 插件 Page 或其它轻量入口复用的聚合快照。 + return await self.build_astrbot_page_payload() + @self.app.get("/api/markdown-files") async def list_markdown_files(): # 仅暴露插件目录内明确允许浏览的 Markdown 文档,避免前端任意探测文件系统。 @@ -997,6 +1045,34 @@ def _build_status_payload(self) -> dict[str, Any]: "timestamp": datetime.now().isoformat(), } + def _build_web_admin_url(self) -> str | None: + web_admin = self.config.get("web_admin", {}) + if not web_admin.get("enabled", False): + return None + + host = str(web_admin.get("host", "127.0.0.1") or "127.0.0.1") + port = int(web_admin.get("port", 4100) or 4100) + display_host = "127.0.0.1" if host in {"0.0.0.0", "::"} else host + return f"http://{display_host}:{port}/" + + async def build_astrbot_page_payload(self) -> dict[str, Any]: + """构造 AstrBot 插件卡片 Page 的轻量运行快照。""" + notifications = await self._build_notification_payload() + return { + "ok": True, + "status": self._build_status_payload(), + "jobs": self._collect_jobs(), + "sessions": self._list_known_session_summaries(), + "notifications_meta": notifications.get("meta", {}), + "web_admin": { + "available": bool(self._web_admin_available and self.app), + "enabled": bool(self.config.get("web_admin", {}).get("enabled", False)), + "url": self._build_web_admin_url(), + "auth_required": self._auth_enabled, + }, + "timestamp": datetime.now().isoformat(), + } + def _collect_jobs(self) -> list[dict[str, Any]]: if not self.plugin.scheduler: return [] diff --git a/main.py b/main.py index c6102e9..d042f9d 100644 --- a/main.py +++ b/main.py @@ -22,6 +22,7 @@ from .core.message_sender import SenderMixin from .core.notification_center import NotificationCenter from .core.plugin_lifecycle import LifecycleMixin +from .core.public_api import PublicApiMixin from .core.session_config import ConfigMixin from .core.session_override_manager import SessionOverrideManager from .core.session_parser import SessionMixin @@ -41,6 +42,7 @@ class ProactiveChatPlugin( EventsMixin, # 私聊/群聊事件监听处理 LifecycleMixin, # initialize/terminate 生命周期管理 ProactiveCoreMixin, # 主动消息主流程编排 + PublicApiMixin, # 插件间通信的轻量公共接口 star.Star, ): """ diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html new file mode 100644 index 0000000..d1a48a5 --- /dev/null +++ b/pages/proactive-chat/index.html @@ -0,0 +1,386 @@ + + + + + + + 主动消息 + + + + +
+
+
+

主动消息

+
正在读取运行状态
+
+
+ + 完整控制台 +
+
+ +
+
+
会话
+
-
+
+
+
调度任务
+
-
+
+
+
实时计时器
+
-
+
+
+
未读通知
+
-
+
+
+ +
+
+

即将执行

+
+
暂无任务数据
+
+
+
+

已知会话

+
+
暂无会话数据
+
+
+
+
+ + + + + From 95f4397b10eee50bdf4a0f41e9e7d38c2a2fdcfa Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 13:09:16 +0800 Subject: [PATCH 02/43] fix: tolerate fastapi starlette router mismatch --- core/web_admin_server.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index f853cc0..70eb6d2 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -3,6 +3,7 @@ from __future__ import annotations import asyncio +import inspect import json import math import os @@ -35,6 +36,44 @@ ) +def _patch_starlette_router_startup_kwargs() -> None: + """兼容 FastAPI 与较新 Starlette Router 的启动参数签名差异。""" + try: + from starlette.routing import Router + except Exception as e: + logger.debug(f"[主动消息] 检查 Starlette Router 兼容性失败喵: {e}") + return + + init = Router.__init__ + if getattr(init, "_proactive_chat_startup_patch", False): + return + + try: + params = inspect.signature(init).parameters + except (TypeError, ValueError) as e: + logger.debug(f"[主动消息] 读取 Starlette Router 签名失败喵: {e}") + return + + unsupported = { + name + for name in ("on_startup", "on_shutdown") + if name not in params + } + if not unsupported: + return + + def patched_init(self, *args, **kwargs): + for name in unsupported: + kwargs.pop(name, None) + return init(self, *args, **kwargs) + + patched_init._proactive_chat_startup_patch = True + Router.__init__ = patched_init + logger.info( + "[主动消息] 已应用 FastAPI / Starlette Router 启动参数兼容补丁喵。" + ) + + def _is_running_in_docker() -> bool: """检测当前进程是否运行在 Docker / 容器环境中。""" # /.dockerenv 是最常见的容器特征文件,若存在可直接判定为容器环境。 @@ -145,6 +184,7 @@ async def dashboard_payload(*_args, **_kwargs): ) def _setup_app(self) -> None: + _patch_starlette_router_startup_kwargs() # 创建 FastAPI 应用,版本号用于控制台元信息展示。 self.app = FastAPI( title="主动消息管理端", From 214eb08735d0d8cc12ca37ea45b01193984437ff Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 13:22:31 +0800 Subject: [PATCH 03/43] fix: use astrbot page bridge safely --- core/web_admin_server.py | 20 +++++++++++--------- pages/proactive-chat/index.html | 11 ++++++++--- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 70eb6d2..3afe905 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -54,11 +54,7 @@ def _patch_starlette_router_startup_kwargs() -> None: logger.debug(f"[主动消息] 读取 Starlette Router 签名失败喵: {e}") return - unsupported = { - name - for name in ("on_startup", "on_shutdown") - if name not in params - } + unsupported = {name for name in ("on_startup", "on_shutdown") if name not in params} if not unsupported: return @@ -69,9 +65,7 @@ def patched_init(self, *args, **kwargs): patched_init._proactive_chat_startup_patch = True Router.__init__ = patched_init - logger.info( - "[主动消息] 已应用 FastAPI / Starlette Router 启动参数兼容补丁喵。" - ) + logger.info("[主动消息] 已应用 FastAPI / Starlette Router 启动参数兼容补丁喵。") def _is_running_in_docker() -> bool: @@ -98,7 +92,9 @@ def _is_running_in_docker() -> bool: class WebAdminServer: """主动消息插件 Web 管理端服务器。""" - ASTRBOT_PAGE_API_PATH = "/proactive-chat/dashboard" + ASTRBOT_PLUGIN_NAME = "astrbot_plugin_proactive_chat" + ASTRBOT_PAGE_API_ENDPOINT = "dashboard" + ASTRBOT_PAGE_API_PATH = f"/{ASTRBOT_PLUGIN_NAME}/{ASTRBOT_PAGE_API_ENDPOINT}" def __init__(self, plugin: Any): # plugin 是主插件实例,Web 端所有状态与操作都通过它间接访问。 @@ -157,6 +153,12 @@ async def dashboard_payload(*_args, **_kwargs): # AstrBot 不同版本的 register_web_api 签名可能略有差异,按常见形态逐个尝试。 attempts = ( + lambda: register( + self.ASTRBOT_PAGE_API_PATH, + dashboard_payload, + ["GET"], + "Proactive chat dashboard", + ), lambda: register( self.ASTRBOT_PAGE_API_PATH, dashboard_payload, methods=["GET"] ), diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index d1a48a5..1c9a7e9 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -289,14 +289,19 @@

已知会话

} async function callBridge() { - const bridge = window.AstrBotPlugin || window.parent && window.parent.AstrBotPlugin; - if (bridge && typeof bridge.callApi === 'function') { - return bridge.callApi(apiPath, { method: 'GET' }); + const bridge = window.AstrBotPluginPage; + if (bridge && typeof bridge.apiGet === 'function') { + if (typeof bridge.ready === 'function') { + await bridge.ready(); + } + return bridge.apiGet('dashboard'); } const candidates = [ + `/api/plug/${pluginName}/dashboard`, `/api/plugin/${pluginName}${apiPath}`, `/api/plugins/${pluginName}${apiPath}`, + '/api/embedded-dashboard', `/api/plugin/${pluginName}/embedded-dashboard`, `/api/plugins/${pluginName}/embedded-dashboard`, ]; From d09d1f66cf88126f9acd235a3047915539e89b79 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 14:03:21 +0800 Subject: [PATCH 04/43] feat: run full webui inside astrbot pages --- core/web_admin_server.py | 493 ++- pages/proactive-chat/css/style.css | 3540 +++++++++++++++++ pages/proactive-chat/fonts/outfit-400.ttf | Bin 0 -> 47844 bytes pages/proactive-chat/fonts/outfit-500.ttf | Bin 0 -> 47800 bytes pages/proactive-chat/fonts/outfit-600.ttf | Bin 0 -> 48456 bytes pages/proactive-chat/fonts/outfit-700.ttf | Bin 0 -> 48340 bytes pages/proactive-chat/fonts/outfit-800.ttf | Bin 0 -> 48272 bytes pages/proactive-chat/fonts/outfit.css | 45 + pages/proactive-chat/index.html | 727 ++-- pages/proactive-chat/js/app.jsx | 370 ++ .../js/components/config/ConfigRenderer.jsx | 1289 ++++++ .../js/components/layout/Header.jsx | 108 + .../js/components/layout/Sidebar.jsx | 183 + .../proactive-chat/js/context/AppContext.jsx | 114 + pages/proactive-chat/js/hooks/useApi.js | 124 + pages/proactive-chat/js/hooks/useWebSocket.js | 139 + pages/proactive-chat/js/utils/auth.js | 47 + pages/proactive-chat/js/utils/formatters.js | 206 + pages/proactive-chat/js/utils/http.js | 135 + pages/proactive-chat/js/utils/markdown.js | 612 +++ pages/proactive-chat/js/views/ConfigView.jsx | 30 + .../js/views/MarkdownDocsView.jsx | 507 +++ .../js/views/NotificationsView.jsx | 259 ++ pages/proactive-chat/js/views/StatusView.jsx | 532 +++ pages/proactive-chat/js/views/TasksView.jsx | 533 +++ pages/proactive-chat/logo.png | Bin 0 -> 69222 bytes 26 files changed, 9617 insertions(+), 376 deletions(-) create mode 100644 pages/proactive-chat/css/style.css create mode 100644 pages/proactive-chat/fonts/outfit-400.ttf create mode 100644 pages/proactive-chat/fonts/outfit-500.ttf create mode 100644 pages/proactive-chat/fonts/outfit-600.ttf create mode 100644 pages/proactive-chat/fonts/outfit-700.ttf create mode 100644 pages/proactive-chat/fonts/outfit-800.ttf create mode 100644 pages/proactive-chat/fonts/outfit.css create mode 100644 pages/proactive-chat/js/app.jsx create mode 100644 pages/proactive-chat/js/components/config/ConfigRenderer.jsx create mode 100644 pages/proactive-chat/js/components/layout/Header.jsx create mode 100644 pages/proactive-chat/js/components/layout/Sidebar.jsx create mode 100644 pages/proactive-chat/js/context/AppContext.jsx create mode 100644 pages/proactive-chat/js/hooks/useApi.js create mode 100644 pages/proactive-chat/js/hooks/useWebSocket.js create mode 100644 pages/proactive-chat/js/utils/auth.js create mode 100644 pages/proactive-chat/js/utils/formatters.js create mode 100644 pages/proactive-chat/js/utils/http.js create mode 100644 pages/proactive-chat/js/utils/markdown.js create mode 100644 pages/proactive-chat/js/views/ConfigView.jsx create mode 100644 pages/proactive-chat/js/views/MarkdownDocsView.jsx create mode 100644 pages/proactive-chat/js/views/NotificationsView.jsx create mode 100644 pages/proactive-chat/js/views/StatusView.jsx create mode 100644 pages/proactive-chat/js/views/TasksView.jsx create mode 100644 pages/proactive-chat/logo.png diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 3afe905..266ad1c 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -35,6 +35,11 @@ "[主动消息] FastAPI 未安装喵,Web 管理端不可用喵。请安装: pip install fastapi uvicorn" ) +try: + from quart import request as quart_request +except ImportError: + quart_request = None + def _patch_starlette_router_startup_kwargs() -> None: """兼容 FastAPI 与较新 Starlette Router 的启动参数签名差异。""" @@ -139,7 +144,7 @@ def __init__(self, plugin: Any): ) def register_astrbot_page_api(self) -> None: - """向 AstrBot WebUI 插件 Page 暴露轻量聚合接口。""" + """向 AstrBot WebUI 插件 Page 暴露完整管理端接口。""" context = getattr(self.plugin, "context", None) register = getattr(context, "register_web_api", None) if not callable(register): @@ -148,42 +153,174 @@ def register_astrbot_page_api(self) -> None: ) return - async def dashboard_payload(*_args, **_kwargs): - return await self.build_astrbot_page_payload() - - # AstrBot 不同版本的 register_web_api 签名可能略有差异,按常见形态逐个尝试。 - attempts = ( - lambda: register( - self.ASTRBOT_PAGE_API_PATH, - dashboard_payload, - ["GET"], - "Proactive chat dashboard", + routes = ( + ("dashboard", self.build_astrbot_page_payload, ["GET"]), + ("embedded-dashboard", self.build_astrbot_page_payload, ["GET"]), + ("auth-info", self._page_auth_info, ["GET"]), + ("login", self._page_login, ["POST"]), + ("status", self._page_status, ["GET"]), + ("config", self._page_config, ["GET", "POST"]), + ("config-schema", self._page_get_config_schema, ["GET"]), + ("session-config/sessions", self._page_list_session_configs, ["GET"]), + ("session-config/", self._page_session_config, ["GET", "POST"]), + ( + "session-config-delete/", + self._page_reset_session_config, + ["POST"], ), - lambda: register( - self.ASTRBOT_PAGE_API_PATH, dashboard_payload, methods=["GET"] + ("jobs", self._page_list_jobs, ["GET"]), + ("jobs//reschedule", self._page_reschedule_job, ["POST"]), + ("jobs//trigger", self._page_trigger_job, ["POST"]), + ("jobs-cancel/", self._page_cancel_job, ["POST"]), + ("notifications", self._page_get_notifications, ["GET"]), + ("notifications/read", self._page_mark_notification_read, ["POST"]), + ( + "notifications/read-all", + self._page_mark_all_notifications_read, + ["POST"], ), - lambda: register("GET", self.ASTRBOT_PAGE_API_PATH, dashboard_payload), - lambda: register(self.ASTRBOT_PAGE_API_PATH, dashboard_payload), + ("notifications/refresh", self._page_refresh_notifications, ["POST"]), + ("markdown-files", self._page_list_markdown_files, ["GET"]), + ("markdown-files/", self._page_get_markdown_file, ["GET"]), + ("open-directory", self._page_open_directory, ["POST"]), ) + + registered_count = 0 + for endpoint, handler, methods in routes: + path = f"/{self.ASTRBOT_PLUGIN_NAME}/{endpoint}" + if self._register_astrbot_page_route(register, path, handler, methods): + registered_count += 1 + + logger.info( + f"[主动消息] 已注册 AstrBot 插件卡片管理端接口 {registered_count}/{len(routes)} 个喵。" + ) + + def _register_astrbot_page_route( + self, + register, + path: str, + handler, + methods: list[str], + ) -> bool: + """兼容不同 AstrBot 版本的 register_web_api 签名。""" + attempts = ( + lambda: register(path, handler, methods, "Proactive chat WebUI API"), + lambda: register(path, handler, methods=methods), + lambda: register(methods[0], path, handler), + lambda: register(path, handler), + ) + last_error: Exception | None = None for attempt in attempts: try: attempt() - logger.info( - f"[主动消息] 已注册 AstrBot 插件卡片接口喵: {self.ASTRBOT_PAGE_API_PATH}" - ) - return + return True except TypeError as e: last_error = e continue except Exception as e: - logger.warning(f"[主动消息] 注册 AstrBot 插件卡片接口失败喵: {e}") - return + logger.warning( + f"[主动消息] 注册 AstrBot 插件卡片接口失败喵: {path}: {e}" + ) + return False if last_error: logger.debug( - f"[主动消息] AstrBot 插件卡片接口签名不兼容,已跳过注册喵: {last_error}" + f"[主动消息] AstrBot 插件卡片接口签名不兼容,已跳过 {path} 喵: {last_error}" ) + return False + + async def _read_astrbot_page_json(self) -> dict[str, Any]: + if quart_request is None: + return {} + + try: + payload = await quart_request.get_json(silent=True) + except Exception: + payload = None + return payload if isinstance(payload, dict) else {} + + def _get_astrbot_page_method(self) -> str: + if quart_request is None: + return "GET" + return str(getattr(quart_request, "method", "GET") or "GET").upper() + + async def _page_auth_info(self): + return {"auth_required": False} + + async def _page_login(self): + return {"token": "page-bridge", "auth_required": False} + + async def _page_status(self): + return self._build_status_payload() + + async def _page_get_config(self): + return self._build_config_payload() + + async def _page_update_config(self): + payload = await self._read_astrbot_page_json() + return await self._apply_config_payload(payload) + + async def _page_config(self): + if self._get_astrbot_page_method() == "POST": + return await self._page_update_config() + return await self._page_get_config() + + async def _page_get_config_schema(self): + return await self._load_config_schema_payload() + + async def _page_list_session_configs(self): + return {"sessions": self._list_session_config_payloads()} + + async def _page_get_session_config(self, umo: str): + return self._build_session_config_payload(umo) + + async def _page_update_session_config(self, umo: str): + payload = await self._read_astrbot_page_json() + return await self._apply_session_config_payload(umo, payload) + + async def _page_session_config(self, umo: str): + if self._get_astrbot_page_method() == "POST": + return await self._page_update_session_config(umo) + return await self._page_get_session_config(umo) + + async def _page_reset_session_config(self, umo: str): + return await self._reset_session_config_payload(umo) + + async def _page_list_jobs(self): + return {"jobs": self._collect_jobs()} + + async def _page_reschedule_job(self, umo: str): + return await self._reschedule_job_payload(umo) + + async def _page_trigger_job(self, umo: str): + return await self._trigger_job_payload(umo) + + async def _page_cancel_job(self, umo: str): + return await self._cancel_job_payload(umo) + + async def _page_get_notifications(self): + return await self._build_notification_payload() + + async def _page_mark_notification_read(self): + payload = await self._read_astrbot_page_json() + return await self._mark_notification_read_payload(payload) + + async def _page_mark_all_notifications_read(self): + return await self._mark_all_notifications_read_payload() + + async def _page_refresh_notifications(self): + return await self._refresh_notifications_payload() + + async def _page_list_markdown_files(self): + return {"items": self._list_markdown_documents()} + + async def _page_get_markdown_file(self, file_path: str): + return await self._build_markdown_file_payload(file_path) + + async def _page_open_directory(self): + payload = await self._read_astrbot_page_json() + return await self._open_directory_payload(payload) def _setup_app(self) -> None: _patch_starlette_router_startup_kwargs() @@ -848,6 +985,318 @@ def _verify_token(self, token: str) -> bool: return False return True + def _build_config_payload(self) -> dict[str, Any]: + web_admin = { + k: v for k, v in self.config.get("web_admin", {}).items() if k != "password" + } + return { + "friend_settings": dict(self.config.get("friend_settings", {})), + "group_settings": dict(self.config.get("group_settings", {})), + "web_admin": web_admin, + "notification_settings": dict(self.config.get("notification_settings", {})), + } + + async def _apply_config_payload(self, payload: dict[str, Any]) -> dict[str, Any]: + allowed_keys = {"friend_settings", "group_settings", "web_admin"} + for key in allowed_keys: + if key not in payload: + continue + if key == "web_admin": + old = dict(self.config.get("web_admin", {})) + old.update(payload.get("web_admin", {})) + if "password" in payload.get("web_admin", {}): + old["password"] = payload["web_admin"]["password"] + self.config["web_admin"] = old + else: + self.config[key] = payload[key] + + self._save_plugin_config() + await self._broadcast_update("config") + return {"ok": True} + + async def _load_config_schema_payload(self) -> dict[str, Any]: + schema_path = Path(__file__).resolve().parent.parent / "_conf_schema.json" + if schema_path.exists(): + try: + schema_text = await asyncio.to_thread( + schema_path.read_text, encoding="utf-8" + ) + return json.loads(schema_text) + except Exception as e: + logger.error(f"[主动消息] 读取 Schema 失败喵: {e}") + return {} + + def _list_session_config_payloads(self) -> list[dict[str, Any]]: + result = [] + for session in self._list_known_sessions(): + override = self.plugin.session_override_manager.get_override(session) + effective = self.plugin._get_session_config(session) + session_name = self.plugin._get_session_name(session, effective) + result.append( + { + "session": session, + "session_name": session_name, + "session_display_name": self.plugin._get_session_display_name( + session, effective + ), + "has_override": bool(override), + "override_keys": list(override.keys()), + "enabled": bool(effective and effective.get("enable", False)), + "next_trigger_time": self.plugin.session_data.get(session, {}).get( + "next_trigger_time" + ), + "unanswered_count": self.plugin.session_data.get(session, {}).get( + "unanswered_count", 0 + ), + } + ) + return result + + def _build_session_config_payload(self, umo: str) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + base = self.plugin._get_base_session_config(normalized) + return { + "session": normalized, + "base": base, + "override": self.plugin.session_override_manager.get_override(normalized), + "effective": self.plugin._get_session_config(normalized), + } + + async def _apply_session_config_payload( + self, umo: str, payload: dict[str, Any] + ) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + mode = payload.get("mode", "effective") + + if mode == "override": + override = payload.get("override", {}) + if not isinstance(override, dict): + return {"ok": False, "error": "override 必须是对象"} + await self.plugin.session_override_manager.set_override( + normalized, override + ) + else: + effective = payload.get("effective", {}) + if not isinstance(effective, dict): + return {"ok": False, "error": "effective 必须是对象"} + base = self.plugin._get_base_session_config(normalized) + if not base: + return { + "ok": False, + "error": "会话未命中 friend/group 全局配置,无法保存 effective", + } + await self.plugin.session_override_manager.update_session_from_effective( + normalized, + base, + effective, + ) + + await self._broadcast_update("session-config") + return { + "ok": True, + "session": normalized, + "override": self.plugin.session_override_manager.get_override(normalized), + "effective": self.plugin._get_session_config(normalized), + } + + async def _reset_session_config_payload(self, umo: str) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + await self.plugin.session_override_manager.delete_override(normalized) + await self._broadcast_update("session-config") + return { + "ok": True, + "session": normalized, + "override": {}, + "effective": self.plugin._get_session_config(normalized), + } + + async def _reschedule_job_payload(self, umo: str) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + session_config = self.plugin._get_session_config(normalized) + if not session_config or not session_config.get("enable", False): + return { + "ok": False, + "session": normalized, + "error": "会话未启用或配置不存在,无法重新调度", + } + + await self.plugin._schedule_next_chat_and_save(normalized, reset_counter=False) + await self._broadcast_update("jobs") + return { + "ok": True, + "session": normalized, + "message": "已重新调度下一次主动消息时间", + } + + async def _trigger_job_payload(self, umo: str) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + if normalized in self.plugin.manual_trigger_sessions: + return { + "ok": False, + "session": normalized, + "in_progress": True, + "message": "该任务正在立即触发中,请等待当前执行完成", + } + + self.plugin.manual_trigger_sessions.add(normalized) + asyncio.create_task(self.plugin.check_and_chat(normalized)) + await self._broadcast_update("jobs") + return { + "ok": True, + "session": normalized, + "in_progress": True, + "message": "已开始立即触发,正在等待 LLM 完成回复", + } + + async def _cancel_job_payload(self, umo: str) -> dict[str, Any]: + normalized = self.plugin._normalize_session_id(umo) + removed = False + try: + self.plugin.scheduler.remove_job(normalized) + removed = True + except Exception: + pass + + async with self.plugin.data_lock: + if normalized in self.plugin.session_data: + self.plugin.session_data[normalized].pop("next_trigger_time", None) + await self.plugin._save_data_internal() + + await self._broadcast_update("jobs") + return {"ok": True, "session": normalized, "removed": removed} + + async def _mark_notification_read_payload( + self, payload: dict[str, Any] + ) -> dict[str, Any]: + if not getattr(self.plugin, "notification_center", None): + return {"ok": False, "error": "通知系统不可用"} + + notification_id = payload.get("id") + if notification_id is None: + return {"ok": False, "error": "缺少必填字段 id"} + try: + normalized_id = int(notification_id) + except (TypeError, ValueError): + return {"ok": False, "error": "id 必须是数字"} + + result = await self.plugin.notification_center.mark_as_read(normalized_id) + await self._broadcast_update("notifications") + return result + + async def _mark_all_notifications_read_payload(self) -> dict[str, Any]: + if not getattr(self.plugin, "notification_center", None): + return {"ok": False, "error": "通知系统不可用"} + result = await self.plugin.notification_center.mark_all_as_read() + await self._broadcast_update("notifications") + return result + + async def _refresh_notifications_payload(self) -> dict[str, Any]: + if not getattr(self.plugin, "notification_center", None): + return {"ok": False, "error": "通知系统不可用"} + changed = await self.plugin.notification_center.refresh() + await self._broadcast_update("notifications") + payload = await self.plugin.notification_center.get_payload() + return { + "ok": True, + "changed": changed, + "items": payload.get("items", []), + "meta": payload.get("meta", {}), + } + + async def _build_markdown_file_payload(self, file_path: str) -> dict[str, Any]: + resolved = self._resolve_markdown_document(file_path) + if not resolved: + return {"ok": False, "error": "文档不存在或不允许访问"} + + try: + content = await asyncio.to_thread(resolved.read_text, encoding="utf-8") + except UnicodeDecodeError: + return { + "ok": False, + "error": "文档编码不受支持,仅支持 UTF-8 Markdown 文件", + } + except Exception as e: + logger.error(f"[主动消息] 读取 Markdown 文档失败喵: {e}") + return {"ok": False, "error": "读取文档失败", "message": str(e)} + + return { + "path": self._to_workspace_relative_path(resolved), + "title": resolved.stem, + "content": content, + "content_format": "markdown", + } + + async def _open_directory_payload(self, payload: dict[str, Any]) -> dict[str, Any]: + target = str(payload.get("path", "plugin")).strip().lower() + directory = ( + Path(self.plugin.data_dir) + if target == "data" + else Path(__file__).resolve().parent.parent + ) + + try: + directory.mkdir(parents=True, exist_ok=True) + dir_str = str(directory) + + if _is_running_in_docker(): + return { + "ok": False, + "error": "Docker 环境下不支持在宿主机直接打开目录,请手动查看挂载路径", + "path": dir_str, + } + + if os.name == "nt": + await asyncio.to_thread(os.startfile, dir_str) + elif sys.platform == "darwin": + result = await asyncio.to_thread( + subprocess.run, + ["open", dir_str], + check=False, + capture_output=True, + text=True, + ) + if result.returncode != 0: + detail = (result.stderr or result.stdout or "未知错误").strip() + return { + "ok": False, + "error": "打开目录失败(macOS)", + "message": f"open 命令执行失败: {detail}", + "path": dir_str, + } + else: + result = await asyncio.to_thread( + subprocess.run, + ["xdg-open", dir_str], + check=False, + capture_output=True, + text=True, + ) + if result.returncode != 0: + detail = (result.stderr or result.stdout or "未知错误").strip() + return { + "ok": False, + "error": "打开目录失败(Linux)", + "message": ( + "xdg-open 执行失败,服务器可能缺少桌面环境或未安装 xdg-open: " + f"{detail}" + ), + "path": dir_str, + } + + return { + "ok": True, + "path": dir_str, + "message": "已在系统文件管理器中打开目录", + } + except Exception as e: + logger.error(f"[主动消息] 打开目录失败喵: {e}") + return { + "ok": False, + "error": "打开目录失败", + "message": str(e), + "path": str(directory), + } + def _safe_timer_meta(self, timer: Any, now: float) -> dict[str, float | int | None]: # 某些会话可能当前没有有效 timer,此时直接返回空元信息。 if timer is None: diff --git a/pages/proactive-chat/css/style.css b/pages/proactive-chat/css/style.css new file mode 100644 index 0000000..2b6fb64 --- /dev/null +++ b/pages/proactive-chat/css/style.css @@ -0,0 +1,3540 @@ +/* Material Design 3 - 主动消息主题 */ +:root { + /* 整个管理端的设计令牌入口:亮色模式下所有组件都从这里读取颜色变量。 */ + /* --- MD3 颜色令牌 (紫色种子) --- */ + --md-sys-color-primary: #6750A4; + --md-sys-color-on-primary: #FFFFFF; + --md-sys-color-primary-container: #EADDFF; + --md-sys-color-on-primary-container: #21005D; + + --md-sys-color-secondary: #625B71; + --md-sys-color-on-secondary: #FFFFFF; + --md-sys-color-secondary-container: #E8DEF8; + --md-sys-color-on-secondary-container: #1D192B; + + --md-sys-color-surface: rgba(255, 255, 255, 0.8); + --md-sys-color-on-surface: #1C1B1F; + --md-sys-color-on-surface-variant: #49454F; + --md-sys-color-surface-variant: #E7E0EC; + + --md-sys-color-background: #FEF7FF; + --md-sys-color-outline-variant: rgba(103, 80, 164, 0.1); + + --glass-bg: rgba(255, 255, 255, 0.65); + --glass-border: rgba(103, 80, 164, 0.15); + --glass-shadow: 0 4px 20px 0 rgba(103, 80, 164, 0.08); + + /* Markdown 代码高亮颜色令牌,供亮暗主题统一覆写。 */ + --md-code-token-key: #7C3AED; + --md-code-token-string: #047857; + --md-code-token-number: #B45309; + --md-code-token-boolean: #C026D3; + --md-code-token-keyword: #2563EB; + --md-code-token-function: #7C2D12; + --md-code-token-command: #4338CA; + --md-code-token-flag: #0F766E; + --md-code-token-punctuation: rgba(28, 27, 31, 0.52); + + --theme-transition-duration: 220ms; + --interactive-transition-duration: 180ms; + --theme-transition-easing: cubic-bezier(0.4, 0, 0.2, 1); + + /* --- 形状 --- */ + --radius-sm: 8px; + --radius-md: 12px; + --radius-lg: 20px; + --radius-xl: 28px; + + /* --- 顶栏 --- */ + --top-bar-height: 80px; +} + +/* 暗色主题通过覆盖 CSS 变量切换外观,尽量避免为每个组件单独写一套颜色。 */ +body.dark-theme { + --md-sys-color-primary: #D0BCFF; + --md-sys-color-on-primary: #381E72; + --md-sys-color-primary-container: #4F378B; + --md-sys-color-on-primary-container: #EADDFF; + + --md-sys-color-surface: rgba(28, 27, 31, 0.8); + --md-sys-color-on-surface: #E6E1E5; + --md-sys-color-on-surface-variant: #CAC4D0; + --md-sys-color-surface-variant: #49454F; + + --md-sys-color-background: #141218; + --md-sys-color-outline-variant: rgba(208, 188, 255, 0.1); + + --glass-bg: rgba(28, 27, 31, 0.7); + --glass-border: rgba(208, 188, 255, 0.1); + --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4); + + --md-code-token-key: #C4B5FD; + --md-code-token-string: #6EE7B7; + --md-code-token-number: #FBBF24; + --md-code-token-boolean: #F0ABFC; + --md-code-token-keyword: #93C5FD; + --md-code-token-function: #FDBA74; + --md-code-token-command: #A5B4FC; + --md-code-token-flag: #5EEAD4; + --md-code-token-punctuation: rgba(236, 231, 246, 0.56); +} + +/* 首屏主题预初始化(在 React 挂载前生效,减少 FOUC) */ +html.theme-dark body { + --md-sys-color-primary: #D0BCFF; + --md-sys-color-on-primary: #381E72; + --md-sys-color-primary-container: #4F378B; + --md-sys-color-on-primary-container: #EADDFF; + + --md-sys-color-surface: rgba(28, 27, 31, 0.8); + --md-sys-color-on-surface: #E6E1E5; + --md-sys-color-on-surface-variant: #CAC4D0; + --md-sys-color-surface-variant: #49454F; + + --md-sys-color-background: #141218; + --md-sys-color-outline-variant: rgba(208, 188, 255, 0.1); + + --glass-bg: rgba(28, 27, 31, 0.7); + --glass-border: rgba(208, 188, 255, 0.1); + --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4); + + --md-code-token-key: #C4B5FD; + --md-code-token-string: #6EE7B7; + --md-code-token-number: #FBBF24; + --md-code-token-boolean: #F0ABFC; + --md-code-token-keyword: #93C5FD; + --md-code-token-function: #FDBA74; + --md-code-token-command: #A5B4FC; + --md-code-token-flag: #5EEAD4; + --md-code-token-punctuation: rgba(236, 231, 246, 0.56); +} + +/* ===== 基础重置与全局交互层 ===== */ +/* 基础样式 */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* 仅在主题切换瞬间开启统一过渡,避免常驻 transition 拖慢滚动与重绘 */ +html.theme-transitioning body, +html.theme-transitioning .app, +html.theme-transitioning .sidebar, +html.theme-transitioning .main-content, +html.theme-transitioning .card, +html.theme-transitioning .config-card, +html.theme-transitioning .config-header, +html.theme-transitioning .top-bar::before, +html.theme-transitioning .nav-item, +html.theme-transitioning .btn, +html.theme-transitioning .btn-action, +html.theme-transitioning .sidebar-action-btn, +html.theme-transitioning .sidebar-github-inner, +html.theme-transitioning .header-clock-chip, +html.theme-transitioning .connection-chip, +html.theme-transitioning .status-timers-summary-pill, +html.theme-transitioning .status-timer-section-block, +html.theme-transitioning .status-timer-panel, +html.theme-transitioning .status-timer-info-item, +html.theme-transitioning .task-next-run-panel, +html.theme-transitioning input, +html.theme-transitioning select, +html.theme-transitioning textarea, +html.theme-transitioning button, +html.theme-transitioning .MuiPaper-root, +html.theme-transitioning .MuiAccordion-root, +html.theme-transitioning .MuiAccordionSummary-root, +html.theme-transitioning .MuiAccordionDetails-root, +html.theme-transitioning .MuiTypography-root, +html.theme-transitioning .MuiChip-root, +html.theme-transitioning .MuiButton-root, +html.theme-transitioning .MuiOutlinedInput-root, +html.theme-transitioning .MuiInputBase-input, +html.theme-transitioning .MuiSvgIcon-root { + transition: + background-color var(--theme-transition-duration) var(--theme-transition-easing), + color var(--theme-transition-duration) var(--theme-transition-easing), + border-color var(--theme-transition-duration) var(--theme-transition-easing), + fill var(--theme-transition-duration) var(--theme-transition-easing), + stroke var(--theme-transition-duration) var(--theme-transition-easing); +} + + +/* 移动端触摸优化 */ +html { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + touch-action: manipulation; +} + +body { + /* 背景使用多层径向渐变,营造轻量的 MD3 柔和氛围,而不是纯色平铺。 */ + background-color: var(--md-sys-color-background); + background-image: + radial-gradient(at 0% 0%, rgba(103, 80, 164, 0.08) 0, transparent 40%), + radial-gradient(at 50% 0%, rgba(236, 72, 153, 0.05) 0, transparent 40%), + radial-gradient(at 100% 0%, rgba(103, 80, 164, 0.08) 0, transparent 40%); + background-attachment: fixed; + color: var(--md-sys-color-on-surface); + font-family: 'Outfit', "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Heiti SC", "WenQuanYi Micro Hei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + min-height: 100vh; + overflow-x: hidden; +} + +/* 无障碍:仅供读屏器读取 */ +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* ===== 首屏启动层 ===== */ +/* 首屏加载页 */ +.boot-loader { + /* 启动层覆盖整个视口,在 React 尚未挂载时承担品牌露出与状态提示职责。 */ + position: fixed; + inset: 0; + z-index: 9999; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: #1C1B1F; + font-family: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + background: + radial-gradient(ellipse at 20% 15%, rgba(103, 80, 164, 0.14), transparent 52%), + radial-gradient(ellipse at 80% 85%, rgba(103, 80, 164, 0.09), transparent 52%), + #FEF7FF; + opacity: 1; + transform: translateZ(0); + will-change: opacity, transform; +} + +html.theme-dark .boot-loader, +body.dark-theme .boot-loader { + color: #E6E1E5; + background: + radial-gradient(ellipse at 20% 15%, rgba(208, 188, 255, 0.13), transparent 52%), + radial-gradient(ellipse at 80% 85%, rgba(103, 80, 164, 0.18), transparent 52%), + #141218; +} + +#loading-skeleton.is-exiting { + opacity: 0; + transform: scale(0.985); + transition: opacity 0.3s ease-out, transform 0.3s ease-out; +} + +.boot-loader__logo { + /* Logo 外壳带轻微浮动动画,用于缓解静态等待时的“卡住感”。 */ + width: 80px; + height: 80px; + border-radius: 20px; + margin-bottom: 24px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(103, 80, 164, 0.08); + border: 1px solid rgba(103, 80, 164, 0.18); + box-shadow: 0 4px 24px rgba(103, 80, 164, 0.12); + overflow: hidden; + animation: boot-loader-float 2.4s ease-in-out infinite; + will-change: transform; +} + +.boot-loader__logo img { + width: 56px; + height: 56px; + object-fit: contain; + border-radius: 8px; +} + +html.theme-dark .boot-loader__logo, +body.dark-theme .boot-loader__logo { + background: rgba(208, 188, 255, 0.08); + border-color: rgba(208, 188, 255, 0.15); + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35); +} + +.boot-loader__title { + font-size: 22px; + font-weight: 700; + margin-bottom: 8px; + letter-spacing: 0.01em; + color: #1C1B1F; +} + +html.theme-dark .boot-loader__title, +body.dark-theme .boot-loader__title { + color: #E6E1E5; +} + +.boot-loader__subtitle { + font-size: 13px; + color: #49454F; + margin-bottom: 28px; +} + +html.theme-dark .boot-loader__subtitle, +body.dark-theme .boot-loader__subtitle { + color: #CAC4D0; +} + +.boot-loader__progress { + /* 进度条不反映真实百分比,只承担“系统仍在工作”的感知反馈。 */ + width: min(260px, 68vw); + height: 3px; + border-radius: 999px; + overflow: hidden; + background: rgba(103, 80, 164, 0.12); + contain: paint; +} + +html.theme-dark .boot-loader__progress, +body.dark-theme .boot-loader__progress { + background: rgba(208, 188, 255, 0.12); +} + +.boot-loader__progress-bar { + height: 100%; + width: 42%; + border-radius: 999px; + background: linear-gradient(90deg, + rgba(103, 80, 164, 0.25) 0%, + rgba(103, 80, 164, 0.85) 50%, + rgba(103, 80, 164, 0.25) 100%); + animation: boot-loader-progress 1.45s ease-in-out infinite; + will-change: transform; + transform: translate3d(-110%, 0, 0) scaleX(0.35); +} + +html.theme-dark .boot-loader__progress-bar, +body.dark-theme .boot-loader__progress-bar { + background: linear-gradient(90deg, + rgba(208, 188, 255, 0.2) 0%, + rgba(208, 188, 255, 0.9) 50%, + rgba(208, 188, 255, 0.2) 100%); +} + +/* 首屏 logo 呼吸浮动动画。 */ +@keyframes boot-loader-float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-7px); } +} + +/* 首屏进度条往返扫光动画。 */ +@keyframes boot-loader-progress { + 0% { transform: translate3d(-110%, 0, 0) scaleX(0.35); } + 50% { transform: translate3d(40%, 0, 0) scaleX(0.85); } + 100% { transform: translate3d(220%, 0, 0) scaleX(0.35); } +} + +.boot-login { + display: none; + width: min(360px, calc(100vw - 48px)); + margin: 16px auto 0; + text-align: left; +} + +.boot-login__label { + display: block; + margin-bottom: 8px; + font-size: 13px; + color: #625B71; +} + +.boot-login__input { + width: 100%; + box-sizing: border-box; + height: 44px; + padding: 0 14px; + border: 1px solid rgba(103, 80, 164, 0.22); + border-radius: 14px; + background: rgba(255, 255, 255, 0.88); + color: #1C1B1F; + outline: none; + font-size: 14px; + box-shadow: 0 8px 24px rgba(103, 80, 164, 0.08); +} + +.boot-login__input:focus { + border-color: rgba(103, 80, 164, 0.5); + box-shadow: 0 0 0 3px rgba(103, 80, 164, 0.12), 0 8px 24px rgba(103, 80, 164, 0.08); +} + +.boot-login__button { + width: 100%; + margin-top: 12px; + height: 44px; + border: none; + border-radius: 14px; + background: linear-gradient(135deg, #7F67BE 0%, #6750A4 100%); + color: #fff; + font-size: 14px; + font-weight: 600; + cursor: pointer; + box-shadow: 0 10px 24px rgba(103, 80, 164, 0.22); +} + +.boot-login__button:disabled { + cursor: not-allowed; +} + +html.theme-dark .boot-login__label, +body.dark-theme .boot-login__label { + color: #CAC4D0; +} + +html.theme-dark .boot-login__input, +body.dark-theme .boot-login__input { + background: rgba(28, 27, 31, 0.88); + color: #E6E1E5; + border-color: rgba(208, 188, 255, 0.22); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24); +} + +html.theme-dark .boot-login__input:focus, +body.dark-theme .boot-login__input:focus { + border-color: rgba(208, 188, 255, 0.48); + box-shadow: 0 0 0 3px rgba(208, 188, 255, 0.16), 0 8px 24px rgba(0, 0, 0, 0.24); +} + +html.theme-dark .boot-login__button, +body.dark-theme .boot-login__button { + background: linear-gradient(135deg, #A58CFF 0%, #7F67BE 100%); + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28); +} + +/* ===== 通用材质与布局骨架 ===== */ +/* 磨砂玻璃效果 */ +.glass { + /* 该类可供需要独立套用玻璃材质的区域复用。 */ + background: var(--glass-bg); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border: 1px solid var(--glass-border); + box-shadow: var(--glass-shadow); +} + +/* 布局 */ +.app { + /* 整体采用“左侧导航 + 右侧主工作区”的桌面管理台结构。 */ + display: flex; + height: 100vh; + overflow: hidden; +} + +/* ===== 侧边栏导航区 ===== */ +/* 侧边栏 (左侧导航) */ +.sidebar { + /* 侧边栏固定宽度,使用玻璃材质与主内容区形成层次区隔。 */ + width: 280px; + height: 100%; + background: var(--glass-bg); + backdrop-filter: blur(24px); + border-right: 1px solid var(--glass-border); + display: flex; + flex-direction: column; + padding: 32px 16px; + z-index: 50; +} + +.sidebar-header { + padding: 0 16px 32px; + display: flex; + align-items: center; + gap: 12px; +} + +.sidebar-logo-img { + width: 48px; + height: 48px; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(103, 80, 164, 0.2); + object-fit: contain; +} + +.nav-item { + /* 单个导航项在 hover / active 状态下通过背景与透明度强化当前定位。 */ + padding: 14px 20px; + border-radius: 16px; + display: flex; + align-items: center; + gap: 16px; + cursor: pointer; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + color var(--interactive-transition-duration) var(--theme-transition-easing), + opacity var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing); + color: var(--md-sys-color-on-surface); + opacity: 0.8; + margin-bottom: 4px; +} + +.sidebar-notification-badge { + margin-left: auto; + min-width: 22px; + height: 22px; + padding: 0 7px; + border-radius: 999px; + display: inline-flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, #FF6B6B, #E53935); + color: #FFFFFF; + font-size: 11px; + font-weight: 800; + line-height: 1; + letter-spacing: 0.01em; + box-shadow: 0 8px 18px rgba(229, 57, 53, 0.22); + border: 1px solid rgba(255, 255, 255, 0.42); + flex-shrink: 0; +} + +.nav-item.active .sidebar-notification-badge { + background: linear-gradient(135deg, #FF5A5F, #D32F2F); + box-shadow: 0 8px 18px rgba(211, 47, 47, 0.24); +} + +.nav-item:hover { + background: rgba(103, 80, 164, 0.08); + opacity: 1; +} + +.nav-item.active { + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); + opacity: 1; + font-weight: 600; +} + +/* ===== 顶栏与主内容区 ===== */ +/* 主内容区域 */ +.main-wrapper { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + position: relative; +} + +.top-bar { + /* 顶栏悬浮于内容区上方,使用伪元素实现半透明模糊遮罩。 */ + height: var(--top-bar-height); + padding: 0 40px; + display: flex; + align-items: center; + justify-content: space-between; + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 10; + background: transparent; + overflow: hidden; + isolation: isolate; +} + +.top-bar::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + background: rgba(255, 255, 255, 0.68); + -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%); + mask-image: linear-gradient(to bottom, black 55%, transparent 100%); + pointer-events: none; + z-index: 0; +} + +body.dark-theme .top-bar::before { + background: rgba(20, 18, 24, 0.88); +} + +.top-bar > * { + position: relative; + z-index: 1; +} + +.main-content { + /* 顶部留出 top-bar 高度,避免内容滚动时被悬浮顶栏遮挡。 */ + flex: 1; + overflow-y: auto; + padding: calc(var(--top-bar-height) + 16px) 24px 24px; + box-sizing: border-box; +} + +/* ===== 仪表盘卡片与通用容器 ===== */ +/* 仪表盘卡片 (Bento 风格) */ +.dashboard-grid { + /* 12 栏网格为桌面端默认布局基础,状态页和任务页都在此之上做跨度分配。 */ + display: grid; + grid-template-columns: repeat(12, 1fr); + gap: 24px; +} + +.card { + /* card 是管理端最常见的视觉容器:统一圆角、边框、阴影和悬浮反馈。 */ + background: var(--md-sys-color-surface); + border-radius: var(--radius-lg); + padding: 24px; + border: 1px solid var(--glass-border); + box-shadow: var(--glass-shadow); + transition: + background-color var(--theme-transition-duration) var(--theme-transition-easing), + border-color var(--theme-transition-duration) var(--theme-transition-easing), + color var(--theme-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing); +} + +/* 为前端的卡片提供统一的入场动画,减少页面首次渲染时的生硬感。 */ +.status-panel-card, +.tasks-summary-card, +.task-card-enhanced, +.status-timer-card, +.status-timer-section-block, +.tasks-empty-card, +.status-timers-empty-card, +.notifications-hero-card, +.notifications-empty-card, +.markdown-docs-sidebar-card, +.markdown-docs-content-card, +.markdown-docs-empty-card, +.markdown-docs-empty-side-card, +.config-card, +.config-header, +.config-renderer-shell, +.config-renderer-main, +.config-renderer-aside, +.config-renderer-form-card, +.config-renderer-preview-card, +.config-renderer-session-card, +.notifications-inline-meta-item, +.markdown-docs-file-item { + animation: card-fade-up 0.36s cubic-bezier(0.2, 0.8, 0.2, 1) both; +} + +.status-panel-card:nth-child(1), +.task-card-enhanced:nth-child(1), +.status-timer-card:nth-child(1), +.status-timer-section-block:nth-child(1) { + animation-delay: 0.02s; +} + +.status-panel-card:nth-child(2), +.task-card-enhanced:nth-child(2), +.status-timer-card:nth-child(2), +.status-timer-section-block:nth-child(2) { + animation-delay: 0.06s; +} + +.status-panel-card:nth-child(3), +.task-card-enhanced:nth-child(3), +.status-timer-card:nth-child(3), +.status-timer-section-block:nth-child(3) { + animation-delay: 0.1s; +} + +.status-panel-card:nth-child(n+4), +.task-card-enhanced:nth-child(n+4), +.status-timer-card:nth-child(n+4), +.status-timer-section-block:nth-child(n+4) { + animation-delay: 0.14s; +} + +.notifications-hero-card, +.config-header, +.markdown-docs-sidebar-card, +.config-renderer-aside { + animation-delay: 0.02s; +} + +.markdown-docs-content-card, +.config-renderer-main, +.config-renderer-form-card, +.config-renderer-session-card { + animation-delay: 0.08s; +} + +.config-card, +.config-renderer-shell, +.config-renderer-preview-card, +.notifications-empty-card, +.markdown-docs-empty-card, +.markdown-docs-empty-side-card { + animation-delay: 0.12s; +} + +.notifications-inline-meta-item:nth-child(1), +.markdown-docs-file-item:nth-child(1), +.config-card .MuiAccordion-root:nth-child(1), +.config-card .MuiPaper-root:nth-child(1) { + animation-delay: 0.03s; +} + +.notifications-inline-meta-item:nth-child(2), +.markdown-docs-file-item:nth-child(2), +.config-card .MuiAccordion-root:nth-child(2), +.config-card .MuiPaper-root:nth-child(2) { + animation-delay: 0.07s; +} + +.markdown-docs-file-item:nth-child(n+3), +.config-card .MuiAccordion-root:nth-child(n+3), +.config-card .MuiPaper-root:nth-child(n+3) { + animation-delay: 0.11s; +} + +/* ===== 配置页容器 ===== */ +/* 配置页面专用卡片样式 - 固定高度,内部滚动 */ +.config-card { + /* 配置页需要长表单滚动,因此外层卡片固定高度、内部区域自行滚动。 */ + height: calc(100vh - var(--top-bar-height) - 40px); /* 视口高度减去顶部栏和底部边距 */ + display: flex; + flex-direction: column; + padding: 0 !important; /*以此接管padding控制*/ + overflow: hidden; +} + +.config-header { + /* 配置头部固定在卡片顶部,确保模式切换、提示信息和标题不随表单滚走。 */ + padding: 20px 24px; + flex-shrink: 0; + border-bottom: 1px solid var(--glass-border); + background: rgba(255, 255, 255, 0.5); + backdrop-filter: blur(8px); + z-index: 10; +} + +body.dark-theme .config-header { + background: rgba(20, 18, 24, 0.8); /* 增加不透明度,减弱透底亮度 */ + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.card:hover { + transform: translateY(-4px); + box-shadow: 0 12px 30px 0 rgba(103, 80, 164, 0.12); +} + +/* Bento 跨列:供各页面按 12 栏系统快速声明卡片宽度。 */ +.span-4 { grid-column: span 4; } +.span-8 { grid-column: span 8; } +.span-12 { grid-column: span 12; } + +/* 状态徽章 */ +.badge { + padding: 4px 12px; + border-radius: 99px; + font-size: 12px; + font-weight: 600; +} + +.badge-success { background: #dcfce7; color: #166534; } +.badge-error { background: #fee2e2; color: #991b1b; } + +/* ===== 通用按钮与交互控件 ===== */ +/* 按钮 */ +.btn { + padding: 10px 20px; + border-radius: 12px; + border: none; + font-weight: 600; + cursor: pointer; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + color var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing), + opacity var(--interactive-transition-duration) var(--theme-transition-easing); +} + +.btn-primary { + background: var(--md-sys-color-primary); + color: white; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); +} + +.btn-primary:hover { + transform: translateY(-1px); + box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4); +} + +/* 通用操作按钮样式 */ +.btn-action { + width: 100%; + background: var(--md-sys-color-surface-variant); + color: var(--md-sys-color-on-surface); + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + font-weight: 600; + border: 1px solid transparent; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing), + opacity var(--interactive-transition-duration) var(--theme-transition-easing); + padding: 12px 16px; + line-height: 1.5; + cursor: pointer; +} + +.btn-action span { + display: inline-flex; + align-items: center; + justify-content: center; +} + +.btn-action:hover { + background: var(--md-sys-color-secondary-container); + color: var(--md-sys-color-on-secondary-container); + border-color: var(--md-sys-color-outline-variant); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.btn-action:active { + transform: translateY(0); + box-shadow: none; + opacity: 0.8; +} + +/* 暗色模式下的按钮覆盖样式 */ +body.dark-theme .btn-action { + background: rgba(255, 255, 255, 0.08); + color: var(--md-sys-color-on-surface); + border: 1px solid rgba(255, 255, 255, 0.05); +} + +body.dark-theme .btn-action:hover { + background: rgba(208, 188, 255, 0.15); + color: var(--md-sys-color-primary); + border-color: rgba(208, 188, 255, 0.3); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4); +} + +/* ===== 滚动行为与兼容辅助类 ===== */ +/* 滚动条 */ +::-webkit-scrollbar { width: 6px; height: 6px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { + background: var(--md-sys-color-secondary-container); + border-radius: 10px; +} +::-webkit-scrollbar-thumb:hover { background: var(--md-sys-color-secondary); } + +/* 移动端滚动优化 */ +.sidebar > div:nth-child(2), +.main-content { + -webkit-overflow-scrolling: touch; + scroll-behavior: smooth; +} + +/* 按钮点击反馈 */ +.nav-item, +.btn, +.btn-action { + -webkit-tap-highlight-color: transparent; + user-select: none; +} + +.nav-item:active, +.btn:active { + opacity: 0.7; + transition: opacity 0.12s var(--theme-transition-easing); +} + +/* 兼容之前的组件辅助样式 */ +.mono { + font-family: "Consolas", "SFMono-Regular", monospace; + font-size: 12px; +} +.grid { + display: grid; + gap: 14px; + grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); +} + +/* ===== 顶栏组件样式:时钟、连接状态、侧栏操作区 ===== */ +.header-clock-chip { + font-size: 14px; + font-weight: 700; + color: var(--md-sys-color-primary); + background: var(--md-sys-color-surface-variant); + padding: 6px 14px; + border-radius: 12px; + border: 1px solid var(--md-sys-color-outline-variant); + box-shadow: 0 2px 4px rgba(0,0,0,0.05); + display: flex; + align-items: center; + gap: 8px; +} + +.header-clock-label { + font-size: 14px; + opacity: 0.8; + font-weight: 600; +} + +.header-clock-value { + font-family: Monaco, Consolas, "Courier New", monospace; + font-size: 15px; + font-weight: 800; + letter-spacing: 0.5px; +} + +.connection-chip { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 16px; + border-radius: 12px; + border: 1px solid transparent; +} + +.connection-chip.is-connected { + background: rgba(76, 175, 80, 0.1); + border-color: rgba(76, 175, 80, 0.2); +} + +.connection-chip.is-disconnected { + background: rgba(244, 67, 54, 0.1); + border-color: rgba(244, 67, 54, 0.2); +} + +.connection-chip-dot { + width: 8px; + height: 8px; + border-radius: 50%; +} + +.connection-chip.is-connected .connection-chip-dot { + background: #4CAF50; + box-shadow: 0 0 8px #4CAF50; +} + +.connection-chip.is-disconnected .connection-chip-dot { + background: #F44336; + box-shadow: 0 0 8px #F44336; +} + +.connection-chip-text { + font-weight: 600 !important; + font-size: 13px !important; +} + +.connection-chip.is-connected .connection-chip-text { + color: #4CAF50; +} + +.connection-chip.is-disconnected .connection-chip-text { + color: #F44336; +} + +.sidebar-actions-panel { + display: flex; + flex-direction: column; + gap: 10px; + margin-bottom: 16px; +} + +.sidebar-action-btn { + width: 100%; + margin-bottom: 0; + padding: 10px; + font-size: 13px; + font-weight: 600; + background: rgba(0, 0, 0, 0.05); + color: var(--md-sys-color-on-surface); + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + border: 1px solid rgba(0, 0, 0, 0.04); + border-radius: 12px; + box-shadow: none; + line-height: 1.2; +} + +.sidebar-action-btn:hover { + transform: none; + box-shadow: none; + background: rgba(103, 80, 164, 0.08); + color: var(--md-sys-color-on-surface); +} + +body.dark-theme .sidebar-action-btn { + background: rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.05); +} + +body.dark-theme .sidebar-action-btn:hover { + background: rgba(255, 255, 255, 0.12); + color: var(--md-sys-color-on-surface); +} + +.sidebar-github-card { + display: block; + color: var(--md-sys-color-on-surface); +} + +.sidebar-github-inner { + display: flex; + align-items: center; + gap: 12px; + padding: 12px; + background: rgba(0, 0, 0, 0.03); + border-radius: 12px; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing); + border: 1px solid rgba(0, 0, 0, 0.06); + cursor: pointer; +} + +body.dark-theme .sidebar-github-inner { + background: rgba(255, 255, 255, 0.05); + border-color: rgba(255, 255, 255, 0.05); +} + +.sidebar-github-inner:hover { + transform: translateY(-1px); + box-shadow: var(--glass-shadow); +} + +.sidebar-github-texts { + display: flex; + flex-direction: column; + gap: 3px; + overflow: hidden; +} + +.sidebar-github-author { + font-weight: 700 !important; + color: inherit !important; + font-size: 0.75rem !important; + line-height: 1.2 !important; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; + max-width: 170px; +} + +.sidebar-github-meta { + display: block !important; + opacity: 0.6; + line-height: 1.2 !important; + font-size: 0.7rem !important; + color: inherit !important; +} + +/* ===== 状态页:概览卡片与计时器可视化 ===== */ +.proactive-status-grid { + align-items: stretch; +} + +.status-panel-card { + height: 100%; + display: flex; + flex-direction: column; + min-height: 332px; +} + +.status-panel-card-primary { + background: + linear-gradient(180deg, rgba(59, 130, 246, 0.06), transparent 50%), + var(--md-sys-color-surface); +} + +.status-panel-icon { + width: 40px; + height: 40px; + border-radius: 10px; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; +} + +.status-panel-icon-blue { background: rgba(59, 130, 246, 0.1); } +.status-panel-icon-purple { background: rgba(168, 85, 247, 0.12); } +.status-panel-icon-pink { background: rgba(236, 72, 153, 0.1); } + +.status-metric-list { + display: flex; + flex-direction: column; + gap: 14px; + flex: 1; + justify-content: center; +} + +.status-metric-row { + display: flex; + justify-content: space-between; + gap: 16px; + align-items: center; +} + +.status-metric-label { + opacity: 0.72; + font-weight: 500 !important; +} + +.status-metric-value { + font-weight: 600 !important; + text-align: right; +} + +.status-metric-value.is-emphasize { + font-weight: 800 !important; +} + +.status-metric-value.is-success { + color: #2E7D32; +} + +.status-metric-value.is-error { + color: #C62828; +} + +.status-divider { + height: 1px; + background: var(--md-sys-color-outline-variant); +} + +.status-actions-list { + display: flex; + flex-direction: column; + gap: 16px; + flex: 1; + justify-content: center; +} + +.status-action-tooltip-wrap { + position: relative; + width: 100%; +} + +.status-action-tooltip-bubble { + position: absolute; + left: 50%; + bottom: calc(100% + 10px); + transform: translateX(-50%) translateY(6px); + width: max-content; + max-width: min(92vw, 460px); + padding: 10px 14px; + border-radius: 12px; + background: rgba(28, 27, 31, 0.92); + color: #fff; + font-size: 12px; + line-height: 1.5; + text-align: center; + white-space: normal; + word-break: keep-all; + box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22); + border: 1px solid rgba(255, 255, 255, 0.08); + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease; + z-index: 12; +} + +.status-action-tooltip-bubble::after { + content: ''; + position: absolute; + left: 50%; + top: 100%; + transform: translateX(-50%); + border-width: 6px 6px 0 6px; + border-style: solid; + border-color: rgba(28, 27, 31, 0.92) transparent transparent transparent; +} + +.status-action-tooltip-wrap:hover .status-action-tooltip-bubble, +.status-action-tooltip-wrap:focus-within .status-action-tooltip-bubble { + opacity: 1; + visibility: visible; + transform: translateX(-50%) translateY(0); +} + +body.dark-theme .status-action-tooltip-bubble { + background: rgba(245, 244, 248, 0.96); + color: #1C1B1F; + border-color: rgba(28, 27, 31, 0.08); +} + +body.dark-theme .status-action-tooltip-bubble::after { + border-color: rgba(245, 244, 248, 0.96) transparent transparent transparent; +} + + +.status-timers-section { + /* 计时器区域采用“分区 + 卡片网格”的结构,便于区分群沉默与自动触发。 */ + display: flex; + flex-direction: column; + gap: 18px; + padding: 20px; + border-radius: calc(var(--radius-lg) + 2px); + border: 1px solid var(--glass-border); + background: + linear-gradient(180deg, rgba(103, 80, 164, 0.05), rgba(103, 80, 164, 0) 34%), + rgba(255, 255, 255, 0.3); + backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); +} + +body.dark-theme .status-timers-section { + background: + linear-gradient(180deg, rgba(208, 188, 255, 0.08), rgba(208, 188, 255, 0) 34%), + rgba(20, 18, 24, 0.36); + border-color: rgba(208, 188, 255, 0.12); +} + +.status-timers-header-row { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 18px; + padding-bottom: 4px; +} + +.status-timers-summary-pills { + display: flex; + gap: 10px; + flex-wrap: wrap; + justify-content: flex-end; +} + +.status-timers-summary-pill { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 6px 12px; + border-radius: 999px; + border: 1px solid var(--glass-border); + background: var(--md-sys-color-surface-variant); + color: var(--md-sys-color-on-surface-variant); +} + +.status-timers-summary-pill-label { + font-size: 12px; + font-weight: 600; +} + +.status-timers-summary-pill-count { + min-width: 18px; + height: 18px; + border-radius: 999px; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0 6px; + font-size: 11px; + font-weight: 800; + color: var(--md-sys-color-on-primary-container); + background: var(--md-sys-color-primary-container); +} + +.status-timer-sections { + display: flex; + flex-direction: column; + gap: 20px; +} + +.status-timer-section-block { + display: flex; + flex-direction: column; + gap: 14px; + padding: 16px; + border-radius: 18px; + background: rgba(255, 255, 255, 0.34); + border: 1px solid rgba(103, 80, 164, 0.12); +} + +body.dark-theme .status-timer-section-block { + background: rgba(255, 255, 255, 0.02); + border-color: rgba(208, 188, 255, 0.14); +} + +.status-timer-section-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding-bottom: 10px; + border-bottom: 1px dashed rgba(103, 80, 164, 0.14); +} + +body.dark-theme .status-timer-section-head { + border-bottom-color: rgba(208, 188, 255, 0.16); +} + +.status-timer-section-head-main { + min-width: 0; +} + +.status-timer-section-title { + font-weight: 800 !important; +} + +.status-timer-section-desc { + opacity: 0.72; + margin-top: 4px !important; +} + +.status-timer-section-count { + flex-shrink: 0; + padding: 6px 12px; + border-radius: 999px; + background: var(--md-sys-color-surface-variant); + border: 1px solid var(--glass-border); + color: var(--md-sys-color-primary); + font-size: 12px; + font-weight: 800; +} + +.status-timer-section-body { + padding-top: 2px; +} + +.status-timer-section-empty { + padding: 14px 16px; + border-radius: 14px; + background: rgba(103, 80, 164, 0.05); + border: 1px dashed rgba(103, 80, 164, 0.18); + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; +} + +.status-timers-empty-card { + text-align: center; + padding: 44px 24px; +} + +.status-timers-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); + gap: 18px; +} + +.status-timer-card { + /* 单张计时器卡片负责展示一个会话当前最值得关注的计时状态。 */ + display: flex; + flex-direction: column; + gap: 14px; + min-height: 312px; + position: relative; + overflow: hidden; + isolation: isolate; + border-top: 4px solid transparent; +} + + +.status-timer-card.accent-group-silence { + border-top-color: #2563EB; + background: + linear-gradient(180deg, rgba(59, 130, 246, 0.06), transparent 30%), + var(--md-sys-color-surface); +} + +.status-timer-card.accent-auto-group { + border-top-color: #8B5CF6; + background: + linear-gradient(180deg, rgba(139, 92, 246, 0.07), transparent 30%), + var(--md-sys-color-surface); +} + +.status-timer-card.accent-auto-friend { + border-top-color: #EC4899; + background: + linear-gradient(180deg, rgba(236, 72, 153, 0.07), transparent 30%), + var(--md-sys-color-surface); +} + +.status-timer-card.is-urgent { + border-color: rgba(245, 158, 11, 0.35); +} + +.status-timer-card.is-expired { + border-color: rgba(244, 67, 54, 0.28); +} + +.status-timer-card-top { + display: grid; + grid-template-columns: minmax(220px, 1fr) auto; + gap: 14px; + align-items: flex-start; +} + +.status-timer-title-block { + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} + +.status-timer-kicker { + display: block !important; + margin-bottom: 4px !important; + opacity: 0.6; +} + +.status-timer-session { + font-weight: 700 !important; + word-break: break-all; + font-size: 13px !important; + line-height: 1.4; +} + +.status-timer-session.is-primary { + font-size: 28px !important; + letter-spacing: -0.2px; + line-height: 1.25; +} + +.status-timer-session-sub { + display: block !important; + max-width: 100%; + white-space: nowrap; + word-break: normal; + overflow: visible; + text-overflow: clip; + opacity: 0.72; + font-size: 12px !important; +} + +.status-timer-chip-stack { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + align-items: center; + gap: 8px; + max-width: 280px; + flex-shrink: 0; +} + +.status-timer-kind-badge { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 4px 10px; + border-radius: 999px; + font-size: 11px; + font-weight: 800; + white-space: nowrap; + border: 1px solid transparent; + background: rgba(103, 80, 164, 0.08); + color: var(--md-sys-color-primary); +} + +.status-timer-kind-badge.accent-group-silence { + background: rgba(59, 130, 246, 0.12); + color: #2563EB; + border-color: rgba(59, 130, 246, 0.18); +} + +.status-timer-kind-badge.accent-auto-group { + background: rgba(139, 92, 246, 0.12); + color: #7C3AED; + border-color: rgba(139, 92, 246, 0.18); +} + +.status-timer-kind-badge.accent-auto-friend { + background: rgba(236, 72, 153, 0.12); + color: #DB2777; + border-color: rgba(236, 72, 153, 0.18); +} + +.status-timer-meta-row { + display: flex; + align-items: center; + justify-content: flex-start; + gap: 8px; + flex-wrap: wrap; +} + +.status-timer-category-pill { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 6px 10px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; + white-space: nowrap; + background: rgba(103, 80, 164, 0.08); + color: var(--md-sys-color-primary); +} + +.status-timer-reset-hint { + /* 当群沉默计时器被新消息重置时,短暂显示顶部提示帮助用户理解时间跳变。 */ + position: absolute; + top: 12px; + left: 16px; + right: 16px; + z-index: 3; + display: flex; + align-items: center; + gap: 8px; + padding: 8px 12px; + border-radius: 999px; + background: rgba(240, 246, 255, 0.84); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border: 1px solid rgba(59, 130, 246, 0.18); + box-shadow: 0 8px 18px rgba(59, 130, 246, 0.12); + color: #2563EB; + font-size: 11px; + font-weight: 700; + line-height: 1.4; + pointer-events: none; + opacity: 0; + transform: translateY(-6px) scale(0.98); + animation: status-reset-hint-fade 4.2s ease-out forwards; +} + +body.dark-theme .status-timer-reset-hint { + background: rgba(30, 58, 138, 0.95); + border-color: rgba(59, 130, 246, 0.4); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); + color: #93C5FD; +} + +.status-timer-reset-dot { + width: 7px; + height: 7px; + border-radius: 999px; + background: #2563EB; + box-shadow: 0 0 0 rgba(37, 99, 235, 0.35); + animation: status-reset-dot-pulse 1.4s ease-out infinite; + flex-shrink: 0; +} + +.status-timer-card.is-resetting { + border-color: rgba(59, 130, 246, 0.28); + box-shadow: 0 12px 32px rgba(59, 130, 246, 0.12); +} + +.status-timer-panel { + background: var(--md-sys-color-surface-variant); + padding: 16px; + border-radius: 16px; + border: 1px solid rgba(103, 80, 164, 0.08); + display: flex; + flex-direction: column; + gap: 10px; +} + +.status-timer-primary-row { + display: flex; + justify-content: space-between; + gap: 12px; + align-items: flex-start; +} + +.status-timer-label { + display: block !important; + margin-bottom: 4px !important; + opacity: 0.68; +} + +.status-timer-countdown { + font-weight: 800 !important; + color: var(--md-sys-color-primary); +} + +.status-timer-progress-value { + flex-shrink: 0; + font-size: 13px; + font-weight: 800; + color: var(--md-sys-color-on-surface-variant); +} + +.status-timer-info-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.status-timer-info-item { + padding: 14px; + border-radius: 14px; + background: rgba(255,255,255,0.42); + border: 1px solid var(--glass-border); +} + +body.dark-theme .status-timer-info-item { + background: rgba(255,255,255,0.04); +} + +.status-timer-info-label { + display: block !important; + margin-bottom: 6px !important; + opacity: 0.68; +} + +.status-timer-info-value { + font-weight: 600 !important; + line-height: 1.45 !important; + word-break: break-word; + white-space: pre-wrap; +} + +.status-timer-info-value.is-emphasize { + font-weight: 800 !important; +} + +/* ===== 任务页:任务卡片与调度进度 ===== */ +.tasks-header-row { + display: flex; + justify-content: space-between; + align-items: center; + gap: 16px; + margin-bottom: 20px; +} + +.tasks-header-subtitle { + opacity: 0.72; +} + +.tasks-empty-card { + text-align: center; + padding: 48px 24px; +} + +.tasks-empty-icon { + font-size: 34px; + margin-bottom: 12px; +} + +.notifications-view { + display: flex; + flex-direction: column; + gap: 18px; +} + +.notifications-hero-card { + padding: 18px 24px; + background: + linear-gradient(135deg, rgba(103, 80, 164, 0.08), rgba(103, 80, 164, 0.025) 48%, rgba(255, 255, 255, 0.72) 100%), + var(--md-sys-color-surface); + position: relative; + overflow: hidden; +} + +.notifications-hero-card::after { + content: ''; + position: absolute; + inset: auto -40px -56px auto; + width: 180px; + height: 180px; + border-radius: 50%; + background: radial-gradient(circle, rgba(103, 80, 164, 0.14), transparent 68%); + pointer-events: none; +} + +.notifications-header-row { + margin-bottom: 0; + align-items: flex-start; + position: relative; + z-index: 1; +} + +.notifications-header-main { + min-width: 0; + flex: 1; +} + +.notifications-title-row { + display: flex; + align-items: center; + justify-content: flex-start; + gap: 14px 18px; + flex-wrap: wrap; + margin-bottom: 6px; +} + +.notifications-inline-meta { + display: inline-flex; + flex-wrap: wrap; + align-items: center; + gap: 8px 10px; + margin-top: 0; + max-width: none; +} + +.notifications-inline-meta-item { + min-width: auto; + display: inline-flex; + align-items: center; + gap: 8px; + padding: 0; + border-radius: 0; + background: transparent; + border: none; + backdrop-filter: none; + -webkit-backdrop-filter: none; +} + +.notifications-inline-meta-item.is-pill { + min-height: 34px; + padding: 0 12px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.58); + border: 1px solid rgba(103, 80, 164, 0.12); + box-shadow: none; +} + +.notifications-inline-meta-item strong { + font-size: 12px; + line-height: 1.2; + font-weight: 700; + color: var(--md-sys-color-on-surface); + word-break: break-word; +} + +.notifications-inline-meta-label { + font-size: 12px; + font-weight: 700; + color: var(--md-sys-color-on-surface-variant); + white-space: nowrap; +} + +.notifications-actions-row { + display: flex; + align-items: flex-start; + justify-content: flex-end; + gap: 10px; + flex-wrap: wrap; + flex-shrink: 0; + padding-left: 12px; + padding-top: 2px; +} + +.notifications-actions-row .MuiButton-root { + min-height: 52px; + padding: 0 22px; + border-radius: 18px; + font-weight: 700; + box-shadow: none; + border-width: 1px; +} + +.notifications-empty-card { + padding: 56px 28px; +} + +.notifications-feed-list { + display: flex; + flex-direction: column; + gap: 16px; +} + +.markdown-docs-shell { + display: grid; + grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); + gap: 18px; + align-items: start; +} + +.markdown-docs-aside-column { + min-width: 0; +} + +.markdown-docs-aside-sticky { + position: sticky; + top: calc(var(--top-bar-height) + 16px); +} + +.markdown-docs-sidebar-card, +.markdown-docs-content-card { + min-height: 520px; +} + +.markdown-docs-sidebar-card { + display: flex; + flex-direction: column; + gap: 16px; + height: calc(100vh - var(--top-bar-height) - 32px); + max-height: 880px; + overflow: hidden; +} + +.markdown-docs-sidebar-head { + display: flex; + flex-direction: column; + gap: 4px; + flex-shrink: 0; +} + +.markdown-docs-file-list { + display: flex; + flex-direction: column; + gap: 10px; + min-height: 0; + flex: 1; + overflow-y: auto; + padding-right: 4px; +} + +.markdown-docs-content-column { + min-width: 0; +} + +.markdown-docs-file-item { + width: 100%; + text-align: left; + padding: 14px 16px; + border-radius: 16px; + border: 1px solid rgba(103, 80, 164, 0.12); + background: rgba(255, 255, 255, 0.56); + color: var(--md-sys-color-on-surface); + cursor: pointer; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing); +} + +.markdown-docs-file-item:hover { + transform: translateY(-2px); + background: rgba(103, 80, 164, 0.08); + border-color: rgba(103, 80, 164, 0.18); + box-shadow: 0 8px 22px rgba(103, 80, 164, 0.08); +} + +.markdown-docs-file-item.is-active { + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); + border-color: rgba(103, 80, 164, 0.22); +} + +.markdown-docs-file-item-top { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 6px; +} + +.markdown-docs-file-icon { + flex-shrink: 0; +} + +.markdown-docs-file-title { + font-size: 14px; + font-weight: 800; + line-height: 1.35; + word-break: break-word; +} + +.markdown-docs-file-path { + opacity: 0.72; + font-size: 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.markdown-docs-content-card { + display: flex; + flex-direction: column; + gap: 18px; +} + +.markdown-docs-article-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding-bottom: 12px; + border-bottom: 1px solid var(--glass-border); +} + +.markdown-docs-article { + min-height: 380px; +} + +.markdown-docs-empty-card, +.markdown-docs-empty-side-card { + min-height: 240px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.tasks-grid-enhanced { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); + gap: 18px; +} + +.task-card-enhanced { + /* 任务卡片与状态页卡片风格保持一致,但更强调执行时间与操作按钮区域。 */ + display: flex; + flex-direction: column; + gap: 16px; + min-height: 320px; + position: relative; + overflow: hidden; +} + +.notification-feed-card { + min-height: auto; + padding: 18px 20px 16px; + gap: 12px; + border-radius: 20px; + background: + linear-gradient(180deg, rgba(103, 80, 164, 0.06), rgba(103, 80, 164, 0.02) 34%, rgba(255, 255, 255, 0.78) 100%), + var(--md-sys-color-surface); + box-shadow: 0 8px 24px rgba(103, 80, 164, 0.08); +} + +.notification-feed-card::after { + width: 140px; + height: 140px; + inset: auto -34px -46px auto; + background: radial-gradient(circle, rgba(103, 80, 164, 0.12), transparent 70%); +} + +.notification-feed-card.is-read { + border-color: rgba(103, 80, 164, 0.10); +} + +.notification-feed-card-top { + align-items: center; + justify-content: space-between; + gap: 14px; + padding-bottom: 2px; +} + +.notification-feed-heading-group { + min-width: 0; + flex: 1; + display: inline-flex; + align-items: center; + gap: 10px; + flex-wrap: nowrap; +} + +.notification-feed-title-block { + gap: 6px; +} + +.notification-feed-meta-row { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.notification-feed-time { + opacity: 0.78; + font-size: 11.5px !important; +} + +.notification-feed-title { + flex: 0 1 auto; + min-width: 0; + font-size: 1.22rem !important; + line-height: 1.35 !important; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.notification-feed-side { + display: flex; + align-items: center; + gap: 8px; + flex-shrink: 0; + padding-top: 1px; +} + +.notification-feed-meta-inline { + flex-wrap: wrap; + justify-content: flex-end; + padding-left: 12px; +} + +.notification-feed-heading-group .MuiChip-root, +.notification-feed-type-chip { + height: 30px; + border-radius: 999px; + font-weight: 700; + flex-shrink: 0; + margin-left: 0; +} + +.notification-feed-status-pill { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 28px; + padding: 0 12px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; + border: 1px solid transparent; + white-space: nowrap; +} + +.notification-feed-status-pill.is-read { + color: #5B6472; + background: rgba(91, 100, 114, 0.10); + border-color: rgba(91, 100, 114, 0.14); +} + +.notification-feed-status-pill.is-unread { + color: #B45309; + background: rgba(245, 158, 11, 0.14); + border-color: rgba(245, 158, 11, 0.22); +} + + +.task-card-enhanced.is-urgent { + border-color: rgba(245, 158, 11, 0.35); +} + +.task-card-enhanced.is-expired { + border-color: rgba(244, 67, 54, 0.28); +} + +.task-card-top { + display: flex; + justify-content: space-between; + gap: 12px; + align-items: flex-start; +} + +.task-card-title-block { + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} + +.task-card-kicker { + display: block !important; + margin-bottom: 4px !important; + opacity: 0.6; +} + +.task-card-session { + font-weight: 700 !important; + word-break: break-all; + font-size: 13px !important; + line-height: 1.4; +} + +.task-card-session.is-primary { + font-size: 28px !important; + letter-spacing: -0.2px; + line-height: 1.25; +} + +.task-card-session-sub { + display: block !important; + max-width: none; + white-space: nowrap; + overflow: visible; + text-overflow: clip; + opacity: 0.72; + font-size: 12px !important; +} + +.task-next-run-panel { + background: var(--md-sys-color-surface-variant); + padding: 16px; + border-radius: 16px; + border: 1px solid rgba(103, 80, 164, 0.08); + display: flex; + flex-direction: column; + gap: 10px; +} + +.notification-feed-content-panel { + position: relative; + padding: 16px 16px 56px; + background: linear-gradient(180deg, rgba(103, 80, 164, 0.08), rgba(103, 80, 164, 0.035)); + border-color: rgba(103, 80, 164, 0.09); + border-radius: 16px; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45); +} + +.notification-feed-content-text { + color: var(--md-sys-color-on-surface); +} + +.notification-feed-content-text-plain { + white-space: pre-wrap; +} + +.notification-md { + color: var(--md-sys-color-on-surface); + line-height: 1.82; + font-size: 0.97rem; + word-break: break-word; +} + +.notification-md > :first-child { + margin-top: 0; +} + +.notification-md > :last-child { + margin-bottom: 0; +} + +.notification-md p, +.notification-md ul, +.notification-md ol, +.notification-md blockquote, +.notification-md pre, +.notification-md .notification-md-table-wrap, +.notification-md .notification-md-details, +.notification-md .notification-md-mermaid-block { + margin: 0 0 0.95rem; +} + +.notification-md h1, +.notification-md h2, +.notification-md h3, +.notification-md h4, +.notification-md h5, +.notification-md h6 { + margin: 1.2rem 0 0.72rem; + color: var(--md-sys-color-on-surface); + font-weight: 800; + letter-spacing: -0.01em; + line-height: 1.32; +} + +.notification-md h1 { + font-size: 1.32rem; + padding-bottom: 0.46rem; + border-bottom: 1px solid rgba(103, 80, 164, 0.16); +} + +.notification-md h2 { + font-size: 1.18rem; + padding-left: 0.72rem; + border-left: 4px solid var(--md-sys-color-primary); +} + +.notification-md h3 { + font-size: 1.05rem; + color: var(--md-sys-color-primary); +} + +.notification-md h4, +.notification-md h5, +.notification-md h6 { + font-size: 0.98rem; +} + +.notification-md p { + color: var(--md-sys-color-on-surface); +} + +.notification-md strong { + color: var(--md-sys-color-on-surface); + font-weight: 800; +} + +.notification-md em, +.notification-md del { + color: var(--md-sys-color-on-surface-variant); +} + +.notification-md a { + color: var(--md-sys-color-primary); + text-decoration: none; + font-weight: 700; + border-bottom: 1px solid rgba(103, 80, 164, 0.22); + transition: + color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + opacity var(--interactive-transition-duration) var(--theme-transition-easing); +} + +.notification-md a:hover { + opacity: 0.88; + border-bottom-color: rgba(103, 80, 164, 0.42); +} + +.notification-md ul, +.notification-md ol { + padding-left: 1.35rem; +} + +.notification-md li + li { + margin-top: 0.34rem; +} + +.notification-md li::marker { + color: var(--md-sys-color-primary); + font-weight: 700; +} + +.notification-md hr { + border: 0; + height: 1px; + margin: 1rem 0; + background: linear-gradient( + 90deg, + transparent, + rgba(103, 80, 164, 0.24), + transparent + ); +} + +.notification-md blockquote { + margin-left: 0; + margin-right: 0; + padding: 0.9rem 1rem; + border-left: 4px solid var(--md-sys-color-primary); + border-radius: 0 var(--radius-md) var(--radius-md) 0; + background: linear-gradient(135deg, rgba(103, 80, 164, 0.12), rgba(103, 80, 164, 0.05)); + color: var(--md-sys-color-on-surface); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24); +} + +.notification-md blockquote p { + margin: 0; +} + +.notification-md .notification-md-callout { + position: relative; + padding: 1rem 1.1rem 1rem 1.15rem; + border-left-width: 5px; + border-radius: 0 var(--radius-md) var(--radius-md) 0; + background: linear-gradient(135deg, rgba(103, 80, 164, 0.08), rgba(103, 80, 164, 0.03)); +} + +.notification-md .notification-md-callout-header { + display: inline-flex; + align-items: center; + gap: 0.55rem; + margin-bottom: 0.72rem; + font-weight: 800; + line-height: 1.2; +} + +.notification-md .notification-md-callout-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 1.2rem; + height: 1.2rem; + font-size: 0.95rem; +} + +.notification-md .notification-md-callout-title { + font-size: 1rem; + letter-spacing: -0.01em; +} + +.notification-md .notification-md-callout.is-note { + border-left-color: #2563EB; + background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(37, 99, 235, 0.04)); +} + +.notification-md .notification-md-callout.is-note .notification-md-callout-header { + color: #2563EB; +} + +.notification-md .notification-md-callout.is-tip { + border-left-color: #0F9D58; + background: linear-gradient(135deg, rgba(15, 157, 88, 0.12), rgba(15, 157, 88, 0.04)); +} + +.notification-md .notification-md-callout.is-tip .notification-md-callout-header { + color: #0F9D58; +} + +.notification-md .notification-md-callout.is-important { + border-left-color: #7C3AED; + background: linear-gradient(135deg, rgba(124, 58, 237, 0.14), rgba(124, 58, 237, 0.05)); +} + +.notification-md .notification-md-callout.is-important .notification-md-callout-header { + color: #7C3AED; +} + +.notification-md .notification-md-callout.is-warning { + border-left-color: #D97706; + background: linear-gradient(135deg, rgba(217, 119, 6, 0.14), rgba(217, 119, 6, 0.05)); +} + +.notification-md .notification-md-callout.is-warning .notification-md-callout-header { + color: #D97706; +} + +.notification-md .notification-md-callout.is-caution { + border-left-color: #DC2626; + background: linear-gradient(135deg, rgba(220, 38, 38, 0.14), rgba(220, 38, 38, 0.05)); +} + +.notification-md .notification-md-callout.is-caution .notification-md-callout-header { + color: #DC2626; +} + +.notification-md .notification-md-callout > :last-child { + margin-bottom: 0; +} + +.notification-md :not(pre) > code { + display: inline-block; + padding: 0.14rem 0.48rem; + margin: 0 0.1rem; + border-radius: 999px; + border: 1px solid rgba(103, 80, 164, 0.16); + background: rgba(103, 80, 164, 0.10); + color: var(--md-sys-color-primary); + font-family: "Consolas", "SFMono-Regular", monospace; + font-size: 0.9em; + font-weight: 700; + line-height: 1.45; +} + +.notification-md-code-block, +.notification-md-mermaid-block { + margin: 0 0 0.95rem; + overflow: hidden; + border-radius: 18px; + border: 1px solid rgba(103, 80, 164, 0.18); + background: + linear-gradient(180deg, rgba(103, 80, 164, 0.18), rgba(103, 80, 164, 0.05) 18%, rgba(255, 255, 255, 0.94) 100%), + rgba(255, 255, 255, 0.92); + box-shadow: + 0 10px 28px rgba(103, 80, 164, 0.12), + inset 0 1px 0 rgba(255, 255, 255, 0.65); +} + +.notification-md-code-header { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 42px; + padding: 0 14px; + border-bottom: 1px solid rgba(103, 80, 164, 0.10); + background: linear-gradient(180deg, rgba(103, 80, 164, 0.12), rgba(103, 80, 164, 0.06)); +} + +.notification-md-code-lang { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 24px; + padding: 0 10px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.58); + border: 1px solid rgba(103, 80, 164, 0.14); + color: var(--md-sys-color-primary); + font-size: 11px; + font-weight: 800; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.notification-md pre { + overflow-x: auto; + margin: 0; + padding: 1rem 1.05rem 1.05rem; + border: none; + border-radius: 0 0 18px 18px; + background: + radial-gradient(circle at top right, rgba(103, 80, 164, 0.08), transparent 34%), + linear-gradient(180deg, rgba(248, 245, 255, 0.96), rgba(241, 236, 251, 0.96)); + box-shadow: none; + scrollbar-width: thin; + scrollbar-color: rgba(103, 80, 164, 0.28) transparent; +} + +.notification-md pre code { + display: block; + min-width: max-content; + color: var(--md-sys-color-on-surface); + font-family: "Consolas", "SFMono-Regular", monospace; + font-size: 0.92rem; + line-height: 1.72; + background: transparent; +} + +.notification-md pre code .token { + font-weight: 600; +} + +.notification-md pre code .token-key, +.notification-md pre code .token-property { + color: var(--md-code-token-key); +} + +.notification-md pre code .token-string { + color: var(--md-code-token-string); +} + +.notification-md pre code .token-number { + color: var(--md-code-token-number); +} + +.notification-md pre code .token-boolean { + color: var(--md-code-token-boolean); +} + +.notification-md pre code .token-keyword { + color: var(--md-code-token-keyword); +} + +.notification-md pre code .token-function { + color: var(--md-code-token-function); +} + +.notification-md pre code .token-command { + color: var(--md-code-token-command); + font-weight: 800; +} + +.notification-md pre code .token-flag { + color: var(--md-code-token-flag); +} + +.notification-md pre code .token-punctuation { + color: var(--md-code-token-punctuation); +} + +.notification-md .notification-md-table-wrap { + overflow-x: auto; + border-radius: 16px; + border: 1px solid rgba(103, 80, 164, 0.12); + background: rgba(255, 255, 255, 0.34); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32); +} + +.notification-md .notification-md-details { + overflow: hidden; + border-radius: 16px; + border: 1px solid rgba(103, 80, 164, 0.16); + background: linear-gradient(180deg, rgba(103, 80, 164, 0.08), rgba(103, 80, 164, 0.03)); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3); +} + +.notification-md .notification-md-summary { + position: relative; + display: flex; + align-items: center; + gap: 0.65rem; + padding: 0.88rem 1rem; + cursor: pointer; + list-style: none; + user-select: none; + font-weight: 800; + color: var(--md-sys-color-on-surface); +} + +.notification-md .notification-md-summary::-webkit-details-marker { + display: none; +} + +.notification-md .notification-md-summary::before { + content: '▸'; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--md-sys-color-primary); + font-size: 0.92rem; + line-height: 1; + transform: rotate(0deg); + transition: transform var(--interactive-transition-duration) var(--theme-transition-easing); +} + +.notification-md .notification-md-details[open] > .notification-md-summary::before { + transform: rotate(90deg); +} + +.notification-md .notification-md-details > :not(summary) { + margin-left: 1rem; + margin-right: 1rem; +} + +.notification-md .notification-md-details > :not(summary):last-child { + margin-bottom: 1rem; +} + +.notification-md .notification-md-details > .notification-md-summary + * { + margin-top: 0.1rem; +} + +.notification-md-mermaid { + overflow: hidden; + padding: 1rem; + background: + radial-gradient(circle at top right, rgba(103, 80, 164, 0.08), transparent 34%), + linear-gradient(180deg, rgba(248, 245, 255, 0.96), rgba(241, 236, 251, 0.96)); + text-align: center; +} + +.notification-md-mermaid-toolbar { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 0.5rem; + padding: 0.7rem 0.9rem 0; +} + +.notification-md-mermaid-tool-btn { + min-width: 2rem; + height: 2rem; + padding: 0 0.65rem; + border: 1px solid rgba(103, 80, 164, 0.16); + border-radius: 999px; + background: rgba(255, 255, 255, 0.7); + color: var(--md-sys-color-primary); + font-size: 0.9rem; + font-weight: 800; + line-height: 1; + cursor: pointer; + transition: + background-color var(--interactive-transition-duration) var(--theme-transition-easing), + border-color var(--interactive-transition-duration) var(--theme-transition-easing), + transform var(--interactive-transition-duration) var(--theme-transition-easing), + box-shadow var(--interactive-transition-duration) var(--theme-transition-easing); +} + +.notification-md-mermaid-tool-btn:hover { + background: rgba(103, 80, 164, 0.12); + border-color: rgba(103, 80, 164, 0.24); + transform: translateY(-1px); +} + +.notification-md-mermaid-viewport { + position: relative; + overflow: hidden; + width: 100%; + min-height: 240px; + border-radius: 14px; + cursor: default; + touch-action: none; +} + +.notification-md-mermaid-viewport.is-pannable { + cursor: grab; +} + +.notification-md-mermaid-viewport.is-dragging { + cursor: grabbing; +} + +.notification-md-mermaid-canvas { + display: flex; + align-items: center; + justify-content: center; + min-width: 100%; + min-height: 240px; + transform-origin: center center; + will-change: transform; +} + +.notification-md-mermaid svg { + display: block; + max-width: 100%; + height: auto; + margin: 0 auto; + user-select: none; + pointer-events: none; +} + +.notification-md-mermaid.is-error { + text-align: left; + color: #B3261E; + white-space: pre-wrap; + font-family: "Consolas", "SFMono-Regular", monospace; + font-size: 0.9rem; + line-height: 1.7; +} + +.notification-md table { + width: 100%; + min-width: 420px; + border-collapse: collapse; +} + +.notification-md th, +.notification-md td { + padding: 0.72rem 0.85rem; + text-align: left; + vertical-align: top; + border-bottom: 1px solid rgba(103, 80, 164, 0.10); +} + +.notification-md th { + background: rgba(103, 80, 164, 0.10); + color: var(--md-sys-color-primary); + font-weight: 800; + white-space: nowrap; +} + +.notification-md td { + color: var(--md-sys-color-on-surface); +} + +.notification-md tr:last-child td { + border-bottom: none; +} + +.notification-feed-actions { + display: flex; + justify-content: space-between; + align-items: center; + gap: 10px; + padding-top: 0; +} + +.notification-feed-actions .MuiButton-root { + min-height: 40px; + padding: 0 16px; + border-radius: 18px; + border-width: 1px; + font-weight: 700; + background: rgba(255, 255, 255, 0.62); + box-shadow: none; +} + +.notification-feed-actions .MuiButton-root.Mui-disabled { + background: rgba(255, 255, 255, 0.34); + border-color: rgba(103, 80, 164, 0.10); +} + +.notification-feed-actions-inside { + position: absolute; + right: 14px; + bottom: 12px; + justify-content: flex-end; +} + +.task-next-run-primary-row { + display: flex; + justify-content: space-between; + gap: 12px; + align-items: flex-start; +} + +.task-next-run-label { + display: block !important; + margin-bottom: 4px !important; + opacity: 0.68; +} + +.task-next-run-time { + font-weight: 800 !important; + color: var(--md-sys-color-primary); +} + +.task-countdown-text { + opacity: 0.82; +} + +.task-status-pill { + /* 用统一的状态 pill 表达 future / soon / urgent / expired 等时序语义。 */ + display: inline-flex; + align-items: center; + justify-content: center; + padding: 6px 10px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; + white-space: nowrap; +} + +.task-status-pill.is-future { + background: rgba(103, 80, 164, 0.14); + color: var(--md-sys-color-primary); +} + +.task-status-pill.is-soon { + background: rgba(59, 130, 246, 0.12); + color: #2563EB; +} + +.task-status-pill.is-urgent { + background: rgba(245, 158, 11, 0.16); + color: #B45309; +} + +.task-status-pill.is-expired, +.task-status-pill.is-unknown { + background: rgba(244, 67, 54, 0.14); + color: #C62828; +} + +.task-progress-track { + /* 任务与计时器共用同一套进度条视觉语言,降低界面认知成本。 */ + width: 100%; + height: 8px; + border-radius: 999px; + background: rgba(103, 80, 164, 0.12); + overflow: hidden; +} + +.task-progress-bar { + height: 100%; + border-radius: inherit; + background: linear-gradient(90deg, #6750A4, #8B5CF6); + transition: width var(--theme-transition-duration) var(--theme-transition-easing); +} + +.task-progress-bar.is-soon { + background: linear-gradient(90deg, #3B82F6, #60A5FA); +} + +.task-progress-bar.is-urgent { + background: linear-gradient(90deg, #F59E0B, #F97316); +} + +.task-progress-bar.is-expired, +.task-progress-bar.is-unknown { + background: linear-gradient(90deg, #EF4444, #F87171); +} + + +body.dark-theme .sidebar-notification-badge { + border-color: rgba(28, 27, 31, 0.42); + box-shadow: 0 10px 22px rgba(255, 107, 107, 0.18); +} + +body.dark-theme .sidebar-github-author { + color: var(--md-sys-color-on-surface); +} + +body.dark-theme .sidebar-github-meta { + color: var(--md-sys-color-on-surface-variant); + opacity: 0.9; +} + +body.dark-theme .notifications-hero-card { + background: + linear-gradient(135deg, rgba(208, 188, 255, 0.10), rgba(79, 55, 139, 0.10) 50%, rgba(28, 27, 31, 0.78) 100%), + var(--md-sys-color-surface); +} + + +body.dark-theme .notification-feed-card { + background: + linear-gradient(180deg, rgba(208, 188, 255, 0.09), rgba(208, 188, 255, 0.025) 34%, rgba(28, 27, 31, 0.88) 100%), + var(--md-sys-color-surface); + border-color: rgba(208, 188, 255, 0.10); +} + +body.dark-theme .markdown-docs-file-item { + background: rgba(255, 255, 255, 0.05); + border-color: rgba(208, 188, 255, 0.12); +} + +body.dark-theme .markdown-docs-file-item:hover { + background: rgba(208, 188, 255, 0.12); + border-color: rgba(208, 188, 255, 0.20); + box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22); +} + +body.dark-theme .markdown-docs-file-item.is-active { + background: rgba(208, 188, 255, 0.18); + color: var(--md-sys-color-on-surface); + border-color: rgba(208, 188, 255, 0.24); +} + +body.dark-theme .notifications-actions-row .MuiButton-root { + box-shadow: none; +} + +body.dark-theme .notifications-inline-meta-item.is-pill { + background: rgba(255, 255, 255, 0.04); + border-color: rgba(208, 188, 255, 0.12); + box-shadow: none; +} + +body.dark-theme .notification-feed-status-pill.is-read { + color: #C7CFD9; + background: rgba(199, 207, 217, 0.12); + border-color: rgba(199, 207, 217, 0.18); +} + +body.dark-theme .notification-feed-status-pill.is-unread { + color: #FBC02D; + background: rgba(251, 192, 45, 0.14); + border-color: rgba(251, 192, 45, 0.22); +} + +body.dark-theme .notification-feed-content-panel { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.03)); + border-color: rgba(208, 188, 255, 0.10); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); +} + +body.dark-theme .notification-md h1 { + border-bottom-color: rgba(208, 188, 255, 0.18); +} + +body.dark-theme .notification-md h3, +body.dark-theme .notification-md a, +body.dark-theme .notification-md :not(pre) > code { + color: var(--md-sys-color-primary); +} + +body.dark-theme .notification-md a { + border-bottom-color: rgba(208, 188, 255, 0.26); +} + +body.dark-theme .notification-md a:hover { + border-bottom-color: rgba(208, 188, 255, 0.42); +} + +body.dark-theme .notification-md hr { + background: linear-gradient( + 90deg, + transparent, + rgba(208, 188, 255, 0.26), + transparent + ); +} + +body.dark-theme .notification-md blockquote { + background: linear-gradient(135deg, rgba(208, 188, 255, 0.14), rgba(79, 55, 139, 0.18)); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); +} + +body.dark-theme .notification-md .notification-md-callout { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); +} + +body.dark-theme .notification-md .notification-md-callout.is-note { + background: linear-gradient(135deg, rgba(96, 165, 250, 0.16), rgba(30, 64, 175, 0.18)); +} + +body.dark-theme .notification-md .notification-md-callout.is-note .notification-md-callout-header { + color: #93C5FD; +} + +body.dark-theme .notification-md .notification-md-callout.is-tip { + background: linear-gradient(135deg, rgba(74, 222, 128, 0.16), rgba(21, 128, 61, 0.18)); +} + +body.dark-theme .notification-md .notification-md-callout.is-tip .notification-md-callout-header { + color: #86EFAC; +} + +body.dark-theme .notification-md .notification-md-callout.is-important { + background: linear-gradient(135deg, rgba(196, 181, 253, 0.18), rgba(91, 33, 182, 0.20)); +} + +body.dark-theme .notification-md .notification-md-callout.is-important .notification-md-callout-header { + color: #D8B4FE; +} + +body.dark-theme .notification-md .notification-md-callout.is-warning { + background: linear-gradient(135deg, rgba(251, 191, 36, 0.18), rgba(180, 83, 9, 0.18)); +} + +body.dark-theme .notification-md .notification-md-callout.is-warning .notification-md-callout-header { + color: #FCD34D; +} + +body.dark-theme .notification-md .notification-md-callout.is-caution { + background: linear-gradient(135deg, rgba(248, 113, 113, 0.18), rgba(153, 27, 27, 0.18)); +} + +body.dark-theme .notification-md .notification-md-callout.is-caution .notification-md-callout-header { + color: #FCA5A5; +} + +body.dark-theme .notification-md :not(pre) > code { + background: rgba(208, 188, 255, 0.12); + border-color: rgba(208, 188, 255, 0.18); +} + +body.dark-theme .notification-md-code-block, +body.dark-theme .notification-md-mermaid-block { + border-color: rgba(208, 188, 255, 0.18); + background: + linear-gradient(180deg, rgba(208, 188, 255, 0.12), rgba(79, 55, 139, 0.08) 16%, rgba(23, 20, 29, 0.96) 100%), + rgba(23, 20, 29, 0.96); + box-shadow: + 0 12px 28px rgba(0, 0, 0, 0.28), + inset 0 1px 0 rgba(255, 255, 255, 0.06); +} + +body.dark-theme .notification-md-code-header { + border-bottom-color: rgba(208, 188, 255, 0.12); + background: linear-gradient(180deg, rgba(208, 188, 255, 0.14), rgba(79, 55, 139, 0.20)); +} + +body.dark-theme .notification-md-code-lang { + background: rgba(255, 255, 255, 0.08); + border-color: rgba(208, 188, 255, 0.18); +} + +body.dark-theme .notification-md pre { + background: + radial-gradient(circle at top right, rgba(208, 188, 255, 0.08), transparent 34%), + linear-gradient(180deg, rgba(30, 27, 38, 0.98), rgba(20, 18, 24, 0.98)); +} + +body.dark-theme .notification-md pre code { + color: #ECE7F6; +} + +body.dark-theme .notification-md pre code .token-key, +body.dark-theme .notification-md pre code .token-property { + color: var(--md-code-token-key); +} + +body.dark-theme .notification-md pre code .token-string { + color: var(--md-code-token-string); +} + +body.dark-theme .notification-md pre code .token-number { + color: var(--md-code-token-number); +} + +body.dark-theme .notification-md pre code .token-boolean { + color: var(--md-code-token-boolean); +} + +body.dark-theme .notification-md pre code .token-keyword { + color: var(--md-code-token-keyword); +} + +body.dark-theme .notification-md pre code .token-function { + color: var(--md-code-token-function); +} + +body.dark-theme .notification-md pre code .token-command { + color: var(--md-code-token-command); +} + +body.dark-theme .notification-md pre code .token-flag { + color: var(--md-code-token-flag); +} + +body.dark-theme .notification-md pre code .token-punctuation { + color: var(--md-code-token-punctuation); +} + +body.dark-theme .notification-md .notification-md-table-wrap { + background: rgba(255, 255, 255, 0.04); + border-color: rgba(208, 188, 255, 0.14); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); +} + +body.dark-theme .notification-md .notification-md-details { + background: linear-gradient(180deg, rgba(208, 188, 255, 0.12), rgba(79, 55, 139, 0.10)); + border-color: rgba(208, 188, 255, 0.18); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); +} + +body.dark-theme .notification-md .notification-md-summary { + color: var(--md-sys-color-on-surface); +} + +body.dark-theme .notification-md-mermaid { + background: + radial-gradient(circle at top right, rgba(208, 188, 255, 0.08), transparent 34%), + linear-gradient(180deg, rgba(30, 27, 38, 0.98), rgba(20, 18, 24, 0.98)); +} + +body.dark-theme .notification-md-mermaid-tool-btn { + background: rgba(255, 255, 255, 0.08); + border-color: rgba(208, 188, 255, 0.18); + color: var(--md-sys-color-primary); +} + +body.dark-theme .notification-md-mermaid-tool-btn:hover { + background: rgba(208, 188, 255, 0.14); + border-color: rgba(208, 188, 255, 0.24); +} + +body.dark-theme .notification-md-mermaid.is-error { + color: #F2B8B5; +} + +body.dark-theme .notification-md th, +body.dark-theme .notification-md td { + border-bottom-color: rgba(208, 188, 255, 0.10); +} + +body.dark-theme .notification-md th { + background: rgba(208, 188, 255, 0.10); +} + +body.dark-theme .notification-feed-actions .MuiButton-root { + background: rgba(255, 255, 255, 0.06); + border-color: rgba(208, 188, 255, 0.18); + box-shadow: none; +} + +body.dark-theme .notification-feed-actions .MuiButton-root.Mui-disabled { + background: rgba(255, 255, 255, 0.04); + border-color: rgba(208, 188, 255, 0.10); +} + +body.dark-theme .status-metric-label, +body.dark-theme .status-timer-section-desc, +body.dark-theme .status-timer-kicker, +body.dark-theme .status-timer-session-sub, +body.dark-theme .task-card-kicker, +body.dark-theme .task-card-session-sub, +body.dark-theme .task-next-run-label, +body.dark-theme .status-timer-label, +body.dark-theme .status-timer-info-label, +body.dark-theme .tasks-header-subtitle, +body.dark-theme .task-countdown-text, +body.dark-theme .notifications-inline-meta-label, +body.dark-theme .notification-feed-time { + color: var(--md-sys-color-on-surface-variant); + opacity: 0.95; +} + +body.dark-theme .status-timer-section-count, +body.dark-theme .status-timers-summary-pill, +body.dark-theme .header-clock-chip, +body.dark-theme .connection-chip { + color: var(--md-sys-color-on-surface); +} + +/* ========== 响应式设计 ========== */ + +/* 平板设备:缩窄侧边栏、把 12 栏压缩为 6 栏,兼顾内容密度与可读性。 */ +@media (max-width: 1024px) { + .sidebar { + width: 240px; + } + + .top-bar { + padding: 0 24px; + } + + .main-content { + padding: calc(var(--top-bar-height) + 16px) 24px 24px; + } + + .dashboard-grid { + gap: 16px; + grid-template-columns: repeat(6, 1fr); + } + + .span-4 { grid-column: span 3; } + .span-8 { grid-column: span 6; } + .span-12 { grid-column: span 6; } + + .card { + padding: 20px; + } +} + +/* 移动设备:整体从左右分栏切换为上下堆叠,导航改为横向可滚动。 */ +@media (max-width: 768px) { + .app { + flex-direction: column; + height: auto; + min-height: 100vh; + } + + .sidebar { + width: 100%; + height: auto; + padding: 12px 16px; + border-right: none; + border-bottom: 1px solid var(--glass-border); + flex-direction: column; + gap: 12px; + } + + .sidebar-header { + padding: 0; + flex-direction: row; + justify-content: space-between; + width: 100%; + } + + .sidebar-logo-img { + width: 40px; + height: 40px; + } + + .sidebar > div:nth-child(2) { + display: flex; + flex-direction: row; + gap: 8px; + overflow-x: auto; + overflow-y: hidden; + margin: 0 !important; + padding-bottom: 4px; + -webkit-overflow-scrolling: touch; + scrollbar-width: thin; + } + + .nav-item { + white-space: nowrap; + padding: 10px 16px; + margin-bottom: 0; + flex-shrink: 0; + font-size: 14px; + } + + .sidebar > div:nth-child(3) { + display: none; + } + + .top-bar { + position: relative; + top: auto; + left: auto; + right: auto; + height: auto; + min-height: calc(var(--top-bar-height) * 0.75); + padding: 12px 16px; + flex-wrap: wrap; + gap: 12px; + } + + .top-bar::before { + display: none; + } + + .top-bar > h5 { + font-size: 1.25rem; + } + + .main-wrapper { + flex: 1; + overflow: visible; + } + + .main-content { + padding: 16px; + overflow-y: visible; + height: auto; + } + + .dashboard-grid { + grid-template-columns: 1fr !important; + gap: 12px; + } + + .span-4, .span-8, .span-12 { + grid-column: span 1 !important; + } + + .card { + padding: 16px; + border-radius: var(--radius-md); + } + + .card:hover { + transform: none; + } + + .top-bar > div { + width: 100%; + justify-content: space-between; + } + + .tasks-header-row, + .status-timer-section-head { + flex-direction: column; + align-items: flex-start; + } + + .notifications-actions-row { + width: 100%; + justify-content: flex-start; + padding-left: 0; + } + + .notifications-title-row { + align-items: flex-start; + } + + .notifications-inline-meta { + width: 100%; + gap: 8px 10px; + } + + .status-timer-info-grid { + grid-template-columns: 1fr; + } + + .status-panel-card { + min-height: auto; + } + + .tasks-grid-enhanced { + grid-template-columns: 1fr; + } + + .markdown-docs-shell { + grid-template-columns: 1fr; + } + + .markdown-docs-aside-sticky { + position: static; + } + + .markdown-docs-sidebar-card { + min-height: auto; + height: auto; + max-height: none; + overflow: visible; + } + + .markdown-docs-content-card { + min-height: auto; + } + + .markdown-docs-file-list { + min-height: auto; + flex: initial; + overflow: visible; + padding-right: 0; + } +} + +/* 小屏手机:进一步压缩边距与卡片留白,保证信息仍能在窄屏完整呈现。 */ +@media (max-width: 480px) { + .notification-md { + font-size: 0.94rem; + } + + .notification-md h1 { + font-size: 1.18rem; + } + + .notification-md h2 { + font-size: 1.08rem; + } + + .notification-md h3, + .notification-md h4, + .notification-md h5, + .notification-md h6 { + font-size: 0.98rem; + } + + .notification-md-code-header { + min-height: 38px; + padding: 0 12px; + } + + .notification-md-code-lang { + min-height: 22px; + padding: 0 9px; + font-size: 10px; + } + + .notification-md pre { + padding: 0.85rem 0.9rem 0.95rem; + border-radius: 0 0 14px 14px; + } + + .notification-md .notification-md-table-wrap { + margin-left: -2px; + margin-right: -2px; + } + + .notification-md .notification-md-summary { + padding: 0.78rem 0.88rem; + } + + .notification-md .notification-md-callout { + padding: 0.9rem 0.92rem 0.9rem 0.98rem; + } + + .notification-md .notification-md-callout-header { + margin-bottom: 0.6rem; + } + + .notification-md-mermaid { + padding: 0.85rem; + } + .sidebar { + padding: 10px 12px; + } + + .sidebar-header { + gap: 8px; + } + + .sidebar-logo-img { + width: 36px; + height: 36px; + } + + .nav-item { + padding: 8px 14px; + font-size: 13px; + } + + .top-bar { + padding: 10px 12px; + min-height: 56px; + } + + .main-content { + padding: 12px; + } + + .card { + padding: 14px; + } + + .header-clock-chip, + .connection-chip { + width: 100%; + justify-content: center; + } + + .task-next-run-primary-row, + .task-card-top, + .status-timer-primary-row { + flex-direction: column; + align-items: flex-start; + } + + .notification-feed-side, + .notification-feed-actions { + width: 100%; + justify-content: flex-start; + } + + .notification-feed-card-top { + align-items: flex-start; + } + + .notification-feed-heading-group { + width: 100%; + flex-wrap: wrap; + gap: 8px; + } + + .notification-feed-title { + width: 100%; + white-space: normal; + } + + .notification-feed-meta-inline { + padding-left: 0; + gap: 8px; + } + + .notification-feed-content-panel { + padding: 14px 15px 54px; + } + + .notification-feed-actions-inside { + right: 12px; + bottom: 10px; + } + + .status-timer-card-top { + grid-template-columns: 1fr; + } + + .status-timer-chip-stack { + justify-content: flex-start; + max-width: none; + } + + .status-action-tooltip-bubble { + left: 0; + transform: translateX(0) translateY(6px); + width: 100%; + max-width: none; + text-align: left; + } + + .status-action-tooltip-bubble::after { + left: 22px; + transform: none; + } + + .status-action-tooltip-wrap:hover .status-action-tooltip-bubble, + .status-action-tooltip-wrap:focus-within .status-action-tooltip-bubble { + transform: translateX(0) translateY(0); + } +} + +/* 超小屏幕:针对极窄设备继续缩小导航与容器 padding。 */ +@media (max-width: 360px) { + .sidebar { + padding: 8px 10px; + } + + .sidebar-logo-img { + width: 32px; + height: 32px; + } + + .nav-item { + padding: 7px 12px; + font-size: 12px; + } + + .top-bar { + padding: 8px 10px; + } + + .main-content { + padding: 10px; + } + + .card { + padding: 12px; + } +} + +/* ===== 动画、骨架屏与低动态偏好兼容 ===== */ +/* ========== 骨架屏动画 ========== */ +@keyframes card-fade-up { + 0% { + opacity: 0; + transform: translateY(10px) scale(0.985); + } + 100% { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +.skeleton { + /* skeleton 类可为未来异步区域提供统一的闪烁占位样式。 */ + background: linear-gradient( + 90deg, + var(--md-sys-color-surface-variant) 0%, + rgba(var(--md-sys-color-on-surface-variant-rgb, 73, 69, 79), 0.15) 50%, + var(--md-sys-color-surface-variant) 100% + ); + background-size: 200% 100%; + animation: skeleton-loading 1.5s ease-in-out infinite; + border-radius: var(--radius-sm); + will-change: background-position; +} + +@keyframes skeleton-loading { + 0% { + background-position: 200% 0; + } + 100% { + background-position: -200% 0; + } +} + +/* 群沉默重置提示中的小圆点脉冲动画。 */ +@keyframes status-reset-dot-pulse { + 0% { + transform: scale(0.9); + box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.34); + } + 70% { + transform: scale(1); + box-shadow: 0 0 0 8px rgba(37, 99, 235, 0); + } + 100% { + transform: scale(0.95); + box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); + } +} + +/* 群沉默重置提示条的淡入停留淡出动画。 */ +@keyframes status-reset-hint-fade { + 0% { + opacity: 0; + transform: translateY(-6px) scale(0.98); + } + 10% { + opacity: 1; + transform: translateY(0) scale(1); + } + 82% { + opacity: 1; + transform: translateY(0) scale(1); + } + 100% { + opacity: 0; + transform: translateY(-4px) scale(0.985); + } +} + +body.dark-theme .skeleton, +html.theme-dark .skeleton { + background: linear-gradient( + 90deg, + var(--md-sys-color-surface-variant) 0%, + rgba(202, 196, 208, 0.15) 50%, + var(--md-sys-color-surface-variant) 100% + ); + background-size: 200% 100%; +} + +/* 尊重系统“减少动态效果”偏好,关闭高频动画,提升无障碍体验。 */ +@media (prefers-reduced-motion: reduce) { + .boot-loader__logo, + .boot-loader__progress-bar, + .skeleton, + .status-timer-reset-dot, + .status-timer-reset-hint, + .status-panel-card, + .tasks-summary-card, + .task-card-enhanced, + .status-timer-card, + .status-timer-section-block, + .tasks-empty-card, + .status-timers-empty-card, + .notifications-hero-card, + .notifications-empty-card, + .markdown-docs-sidebar-card, + .markdown-docs-content-card, + .markdown-docs-empty-card, + .markdown-docs-empty-side-card, + .config-card, + .config-header, + .config-renderer-shell, + .config-renderer-main, + .config-renderer-aside, + .config-renderer-form-card, + .config-renderer-preview-card, + .config-renderer-session-card, + .notifications-inline-meta-item, + .markdown-docs-file-item { + animation: none !important; + } + + #loading-skeleton.is-exiting { + transition: opacity 0.15s linear !important; + transform: none !important; + } + + .boot-loader__progress-bar { + transform: translate3d(0, 0, 0) scaleX(1); + } +} diff --git a/pages/proactive-chat/fonts/outfit-400.ttf b/pages/proactive-chat/fonts/outfit-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0b0a0d7d6c94b22d97c44352fbf0657e2a26ac1f GIT binary patch literal 47844 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 z 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 literal 0 HcmV?d00001 diff --git a/pages/proactive-chat/fonts/outfit-500.ttf b/pages/proactive-chat/fonts/outfit-500.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0ba786a6ecc7a7b9d168248dd49c35dfd8f8a08f GIT binary patch literal 47800 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 literal 0 HcmV?d00001 diff --git a/pages/proactive-chat/fonts/outfit-700.ttf b/pages/proactive-chat/fonts/outfit-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0389ff27183e883930b4d83a18de380bf699ac03 GIT binary patch literal 48340 zcmce<2YgjU{`Ws~ZgNve?~ODPLQ7BRCG;X7B25Gm2)zlRNE0biL_|fzWwfaW5#yDNXkPoGn;blB!( z%H#b{%1|?V-sD`T|AZeWtLc>I+ML{_^W|gGLiz~ON6*cjliz0L(1}7=UgCYP`STVQ zSY1~45+d*~oD({KLH_*d)-CHv?@4->H>7?2Kb;=pPa*Ag;mxa%E5)nAOWY=`>aQk0 z7L|&e%WT&uPb>R6Q#t5mK!K0t>N!dNnGdVy5A89GKtSA+KCN5#p|C*Ixg z_SA{qU4If5OPPv3Rq_LM7UFd0;5J-mq1Q#r71CNc-~4ehMv#Lu8E!Vl5H;9*l@mmo zjCZ7|e`!{WsS9$aiDyNNUktMzmNMx?LY+pI8t-u&E!_Cq5T9~PPs;fsfcoqgd-#1( zY!+igf{4;JDHZ?G=Q;@~^GMS{wBfy2-VGB$!jDF#eLO}8>GmpB4ieJ3R7j_jLRz|V z#?v=Dqs3y*_?M9GA)GOjGu{%?xdmrT;Eb24afAq=JU+rxNS8~ze-}A^!22C||8dH# z%0lk?wWs5?fYOF>>;Yb)C1H$+CrlK{gsCE%u#@OdI7Eyj93}Dyr-(UJ`E*?iZ9*yelZZI3m6xJRwR5zY#wWs4*ec=V~pgn8_$^BgVm#SAfxb|}yki1}h6IVJPEP)rsJ zcy~VUEu`lcay*;YdBjfR{b8aXtvO6A;{B<-S0LJR)p?|uLi^^EN}VxJ%tddhoR=z6 z`0c{EQ%O5dr(7uRBCZ2{(?O)sOLsTRFS;SWrsq#3=Uj5>(kyM`wd>2!v}C=x+I(@Z zu8&#UXs(w6sg!OcbtIH~8Mj(pmofOmW8nocK9)ht@H{#A=j)2%R_ba~Wg zGAZZic4}-P)gG$l8e`hiimHuN8z<2_QY)elBiQKEZ^%dyKRdTzE}B+jSYW}F%`)gi zCytz(#45{EAL}xC@|^i%qz(sR4yWR_CZ(w+CDs1jFoTtmFQR>%LWW*qXak8ek8 z5a&>8=|T-7L=7=s!YZBhUzeoS5vzKqT3jZqKUZBTMA=GS%XBHXQ%+T~T}@J{*6{*~ z)iJ~q*o>y7Rq?7u&o%UqA(o<<31Wcmp?ICYSzeV^oonHYAV+$vjw9AASA80lt3}%* z>^t^I(zCOOQ(D@^uPTiy&vX2$w5m?(oj>un`iT?W#6WSUSRpowN71aZlOKpr$-c9k zBkz@O%0u!q`HRusm|{F;yk-;`mB!B&tHsX}Wocu{vJAIuvOH$_lV!K%UzRdUjgxe0 z;S}oB$|=>Uo73%1zv};)p@#ef%9tTEzTb}f9ib7 zxy-r7+S%IAy1}}``n`*nOSa2Wm%qB~b-C#Bi)%;MKCW9`pKyKN^%plUw+?Qd-6pur zbX)AU#%-(H6K==d{_XaITeZ8@y_I{adpGxi?svK`bAR0Z&+ad~zvccf_fq#u9#I}` zJf?aq@L1__*yA&gQyyg=mp$yB9-cv-v7VDWANKsC=LyfVo|P@ywV2mpd5eQBe)h6@ z-R3pMYqHloujO73cy0IE=k4U}?Y-Q4gZFOllisyHhEEHh5T7`o4nCcIhWd>4+2B*? zbHL}QPqEKgpGu#rzFxjVd>8nx@_ohk9p4ZAoc*%>dixFa8|#Iw*Q*^mNDXs_3VqKZvf0af*qJ=^3*k=Jl9^F{fgFj*X0M8`~+iZ|v={ zcgN0%eIWMFvERmp#-+v$jJrK8^pTu2^_l|EJ-z)z1_}us<@$2LN*vhTdh*oP` z{gBW*;qio`g#RS`oamJ}DRF1w_pK9KPiwus^}*I3w?5nYVvTw3*XpW1By>d8f_SZ7#KK(KfN|khXbk=eJ$ec1PR2Z4b9S+4f4ixOM~E zjcT{7-P7$pXjj^7pl=xwUA4rSHVt{*rW&{xV#~$wb*!rps*ET@H}9$-88(%$KX= z$40o3ZM<##%lO9PWO224GCEpEt&e&->T+~IbXas$bZm4&bm!1$zF1h94;rwDU9snMu@)BVdHCy zU=+G@rG%)}T_~`HEAO!k*Pw4k?)kiOE7ei|%?(59J`s|6O?Uj)e+r(!Ofipsh@{tVmoaiK^ZR{bwOG$gwjB@iac#~2!c6dYtmYo((F4qI?=wps z6UF$Ir|>Gz%6QpLwvxl7mkeYk?L%+&MLiwmY}rXv(!;~Cvx{X{W@9&6Yn~i|xxn+n7dv62~Q1$tg99%hZOMLZ;)7Jn2^il@W_;-6xl*vqPFzj#d!5^svn z#BuQn>x*y2JK{8R`!dGJB4+R9tibMPu3E>8y+#Cz4a`s*SxszX7T=2B{)h+_53;^^ z6z_c}v&&uf#<0IiBU0 z_^1EIi~SDoZN4~%xA%j%M|_Vruo&OvUwGLc$%V{r1#+oeBCNg(UmD3nwcQcpf z%Sm!FR-gpW@oW6llX!P$WINejwq{hel}U1(94SZ1F<5{*Ti1=(lw>4$THYz!B0(rEO3*~_7C7axMBpUc>6K9Bz^7oDU4Xo z0Y~~Qc~&2L%hmMd44t3K^Vjs`+PB6>y+@scs9TnU5cxKFn_ z%M7?%coC!O`>6g35owkI{2j#}QA?32FH@f~ ztm!`beWe9BG$N_{C0~N=KVen{F)rA zIQ=&*mkr~fbrXg)Ic^%Sj>8}v)E;MRc~NA`v0|L;%`s5^*78^rMsZvNpF#?K*PmA} z?3}X4s;<;idyiyhf0EhkCO_;l3Q`@BhO~%(F+1&+PPF-CX18sk6|>@Xys;^)Iupft z=6F|Xk}ututB<0VkEDn6)N^|sK8_bX7p3VCz1Is3E!x*p7ogjn47zba@j$=C6h%rTBcMoTZkF>VCi@ov&BrAfuA*( zdG}f7?|#CDTRjg&_7@jqHoI2?#C+LN?Y`js+=J)S1+Qz6xQhSNO$?UZ@xM;ssVv4< zS;P)pPuWY{CUeA4`e+!wQ(xJS*?c&<>yQ6EP%On$8G&!J9Is}X^78O7R^mC_Au5^Y z@5J*PDu;o(!oT`joWV=_25;*mp5kfwC_DW-<>S^~c?%K+LGI+q`Ev`beJ1Df4lfJlc8Ck zHoWiB*KulJ^Hej-v^4kr4N05^yX^Ziwg3sLv-F|2I)E0 zp=RvRCb1crmcDbRwHP*i(cEdd3l`0pox7;OWtf?(b%dFIM3eNHS=Kvrtj;towWE4X z?c1rZb!20zwA5bKJ9TrkxU*TtcRGrDr&(O*I~UBDJIy*;XXr6{@{9$O7tNVEJAbL$ z=qWSu7vwLTvCukt+JfB0`5t2%-?Wa^QPy$#H1}~0tzyk>+68@GavfL8b#%ex#*|ZZ zVXgW4#XY~_4VQe!Ir&W+G%ekIT0;`2>8kB#%ygOINIIiQ(zNt!M{8$WXPd1zyRltT z(|cRznz3`6#Aak!^67(l&6;YSnY)#ZP}P$QnxxOnwl37Mjy~vQEogizeH!`v81ti-Ig@8{Sve7?`?e3dav2`%k*jP%Nkn6GIioqnCUTZ z;-ZNK6Q@p`F|ok6$uV*H6Q}$tW`U((Vu8!D`~~wm6il@;P}EDo67`pB!Sn_B>Tj2+ z^A;`8uQL|w_ZQAss@`A7aGR?R@@H@#OC^{)Lua6yB_*em<2B9knyy~cQnE9Q-XqMY zUMV^%JJozEH7&)d@1h0sbYxm;rkN-w({DxfRTqJte=%*%@YvRL2=a(BYO27 z+;?P$#kmW5%`Qku4OEuuSFyoU=FOg+yWm&x$`@eTW2N4jxyrl;;B~`20JZBR@gOX- z^4ZCcos+v@mI#|OYtAg~pQs&L91Weq%*&}oYoi!@@6PPtL%h2_{|Q#plDXQG-%(s^ z5OZ;N=J1Zp{q68DqV*lM4VDyAl^Od9e>M&gzGMj`{LxT5H9uO|>J?XvKM+1=Tp@hb z;!L>P_=K>I5TD0$Cv1bwuntzi(k3k6cs5LhNtC?#9WrNKTK301N06JvQ!!2+Du$34Cl3{4%uz9fszh^C47(%5 z;EAcSY+>&GzbVU~R30unbXj(&T%EsHF@<->Vp>Ocg_@%95#Kj0aQRFDR^bxvn@9Y*WEN=gx_Ybqn@9Ji_UejT% z4y&4k7xeM>I{a3Jj`Uyan9p^1%=Iu&5**awejS=Iuj=D}a8=>@f)1b4;gdSt>AKBz zv+Ft?u4)o4)yHPIKp)T6p_zWF>m+g;r$h62q&^<%I>0r@wX18EYl>?deH^dDs3u{E zKK9e0PESsZHZyd!x^m?5vkJ{)NB9qy8saNm$_UTu@RSbCm|}ITeq26vr93W2T|Us^ z0TsGZHe%k;;T|2nq~pz$&+C|HU7q0VM|HSWhi1%1mo>z%(BWbonlWZL-(@E6PSK%0 zcBPyy6I{mVaD)n7pVP-fbl6XaJ$2Ywg^u(YI;Mk5YjTU#VT2BYbm*f)cNdgnwdt@< zhnI9%p~F&Dd+TW(p48!&I{euBq4hoM+dAB*!+$mjU)0Bc(c#lNG}He|?JbZEvD=;OK8>DD~!cpZ*v5)RkLW;jS6_tBx5{$p!*^4zDxjyil%g~X*<+gTHI z7_GxF9R}#oONEX!u1$_rdV`jur_9j#nw8b5bFB`|V>7IBzCir<&fgM#t;5fCXvQ3C za(vkOq4PoK{W^SAhyT#w3p#vGhfnHorw+I2Yi-uyIvtuZtDKoJoEPYDwhql0Go0!? ziFccZCjV$RviizI{oa#2y&{_ zVVMrk>hP2fi=B9?#_6aIKhWU;9lqhThxnJAo~LQ0ct$-RB3@#bLvqhX9sffgU)S^I zbv>(I*YoLho&LJAlhQ-Yt!r>WAL{aa$a6$eT-4>fsLOd?$6wTG ze$eqh==dM>6{D5sAfxqlqxE&8^>w55b))rlqg8rC-J>9-KC7iZtEGOor7llPU6Pji zDhKrypOJr|B(GV%P@yhWg`Q2;YL8{Dx{6qUTM7ULlD(8v%tcjNQ^|8wNE8ROi zbv`|H4n1`a9d%4copXea@2KP3==e4|UhQ*9*+$3ju>6VR9r}tp^c8pLa_-RScc}Et z@XAkkSzqxUo&FyE?marUdvtF1nB~{U$vQsSJl64p)UnW4A*4oxv=t#ONyt^$eK`Cae%+OI<)xtY;J7{l9?$GfAbomG9k`K^rH9(hefG&RzU6KqP4$$fE)!{^) zW}$hk!}a>y^*VmNuEjEa)_VQ!99{Q07M^60bMzJG=qt|AXU)-P&Cz9>qpy2ZpR0XM zIfon!c9_(Yaq3yWmb|Jb<09ENOy)>E8P|qAy8axgC*ykJ1?RD=rk;!&#U0F*>}IJa ziLiR*>zIS3aTeQwsYTaKlkO-lX1^-2lFfTm(-JS`}C7>Z|P^^ zKG4s^9b(r?;Oz=>6?mC~JOv)Ox@+D@9>?Qh6bz^AgP;%f=uQimtAQ7IN3xTo!VP*X zm+A0l9loT)A9Z+zomti<`uJ5H?$%))VbhhyEaA-GJi+8V6vY|FY2{x!EwfB#CE>?) zZusFjAz`mmk@oLzc&p)0`_J`c_t4S5b}#`vQBJ{W-4w z9PM$D96z>yV^{O4YO5FRkL#nx>+7@3zS8gLUeiZgIO7>w_h~z;H~TevF)jZGj=mAG z_E+tPMKs5>s##jj2;rFCcGQ*eZU2n1BJ8ihca*8vzC!1FO@!FX)KTM)*&dGC5^X8r(Z+a`@P}E-b5AkZ#C4x>_hcr znE5oQ7wY!JLbPN@Sv{W_#_sU|?sX_T&`R5ZH0;1!?8GYUKv(_rLT{d4_yc#<|1RF) zzWNb<^TbCywJ@0{?n<#07xR3wTs!Q*wOW#5)r2LX6Fz(}N2=x>Ob_0thv0d9ypZUb^ze!MJ1ySa^=~V@ zcmkk3p}O1Qt6M?xbVoOKJ5*bE@zmrp%CG9JthI$!@uXI&Mcj1%IO+azrsn-A-vEA{ zbZuMc+B)mny6f6{=z1E|a~*l88hYs-le$)tTJ7gLs#fax%OkYZNBp|#`dD>+{B=)y z>7I1eJ?ZMGPaD~WyMwAe-aOOLj$>6T?*I~B9z_X-cs{w}roTs%A5C7|@Ow1* zhTrzbcm}KNSHHzcRf)Fdv5CiS{7pXE>SR1mn(-u)RsFUr{`GIu=1DL2X>qj0+by1JF{MSn79pPRc|OYTRQIo4J6l&+tvu5EqVu!Pn>FK|#|PyY zPqZsD9_3l46-J)(X5&$MtR4FBqg{hhik}`IYBo>gUQiNaqa}Cg(%C!g$k<5I&m?tW z4js-DKBG`bcb-d{$H-mC??^qO?_@;pV766Hdrspn(sRtjf8loqDtQ+*z0dDbt&)4S zN|vFI6O3H-e9}tp8lFXKYSgdRTDf0qWesjr)ti;t`&# ziV)kmhZrSx$XLnKK0N0XFCOEbVFLG>l&yGN>*vu!EolYQOr1_VGNA57mIOl7mSCyVFFBqNstS9Fxmd1n8N%x!~V9I z$-VAbFdOE;T$pD+CKlSyivm~#i(v^Yg?nKcEQb}a5>~-#xF6QQT383`VFPT0O|Tgr zge~w8Y=wtm8$1Hr?PtUeULS?WU?=Q>z3?i$2K(T3cmv*q{qPnXfcN1Dc^rk0;23_{ zarhWMfluKx_#D1~FX1aFwtpl};01ic>$mV7oQ5+{N-mR9|I3i^>n9`!B^6eEd4}e-+L1?2mmNsZY}nm7H-@ zoFxx~*iHKUK(t+hwrkLK4ce|j+cjvk294IB(Hb;bgN|y@Q4Kn(K}R*{s0JO?praae zRD+Ic&`}Ngslkej;JVK-3rGI0yi+LYf0utAZAr~(fp2*I7QTbia0ccv!p||n&oRQ! zF~ZL=!p||n&oRQ!F~ZL=!p||n&oRQ!F~ZL=L#jLKzT6-2)xUm(F%S!J5DzJMUp;v3 z3B4c(dP5)R3;m!!41mEf++M+`ImoCv$f!BUX!wB9@G-sc38P^zqhT+jVK1X$FQZ{E zqu~;EIgm9`AWusM@+3nb&oTsJe*<|=A&~V_AeJ|f=M@66y@A;8K40ggE*bA@1Yp@Sqhd1C&*bi^P0XV|> zN8uwV#$!H(wfKhDZ{a&Q4QJpiyAl1B-eG$0Fuo)AduVNM@Bv@&1NDrB`VE922nO}( zvQP+vaEO3Nh=P_74KbV>3vmz+t%ys6BxnQbnb~&G9y&lWq_AR1MmX`UMujVpsx8 z;a*q<%V7nqgjKK_?uRw77S_Rf*Z>=06KsYDVGBG2Tj62Y29LmYR<=8MeH0#po$z;T z*GsS){sAw;Kj9VF!~1*TRd@~d!Rzn_yb1f^EqI%>@4x|$-{tin6v2D&zWr+ycLl{= zL2*~Gy=Bha zU`I;H>qjVq^KgN4%AvwuhV4CpryhWZ9>6L`+ApBa3#jt~>b!tD`Ro$7fGfCxJ9vO6 zc!4+gfG_w#48%el#6t?D=)r4G=mj~@8~Q+B=m-5_01SpvtXW6H7#Pbq8V7g5c(@xT zz(kk?xsV5wvHVl8VKeQ!u|2!7J-e|zyRkjHQBNJ}sY5+=sHYC~)S;d_)KiCg>QGM| z>ZwCLb*QHf_0*xBI@D8#dg@S59qOq=J$0z34)xTbo;uW1hkEKzPaW#1Lp^n?T~nBe`lXmSK1- z?AVg00TyrqXRv|`xPlwFg9ms*3XHE9V}x9)xw7`V@lUMc65$nl zDJlL#ivMulS^S%)xtkeHC7VeegQG0dK;7cnc0d(|PZPd5slL2sN)l zqd)OH-9p-+02aYwSOQDoURVaIH&(z(SOxddtE+jvAJ)KHSO@E218js%uo)hNE$|R* zg@<7qJObMpAv<_|6dr?}@HlzzqL$CWUpOv==i#sL0{jhLgulZ}up9mXFT+3K71%>Q zd*M}h4fet7@CLjI`{6Bko3!u10gm70^&k|%d+_y~&mTlsUR;2Vy=h40`r zoPo0_s+4qUceD)7V*$MFZ=<8Pd20QV^n)n-k1|euDgkXK+G}b3N<6iNjD-SN1dCw_ zEQNbv87zktuo70mYPcWPz*<-b>tO?IgiWv+9)vCM5Nw5qVH-RGrnWBA@|S7(%e4Gu zTJ18ec9~YYOsid{)h^R&mua=jwAy7_?J}))nbx{Y>r^$ZFjaI0o6>4dPT3Vr&R;Z;FYH5X9TA`L!sHGKZX@y!^p_W#t zr4?#vg<4vnmR6{x6>4dPT3Vr&R;Z;FYH5X9TA`L!sHGKZX@y!^p_W#tMSHchKrJm$ zOAFMZyE4dPT3Vr&R;Z;FYH5X9TA`L!sHGKZX$9p`R#Ec{)cg`PucGEv z)VzwCS5fmSbfI)miVjNY`|q37x)zJ`K4+aE)hXIYrHrzdD}}H_@ILvUvR@@u>4wkq zVvR0fjV|yc@6H}b~Uf}!x~r%>tH=>fQ_&THp7Fk z1s;N}@GxwHN5E9g8QSa&ZFYt>JHvRbq}?hRuN92fO2%s??wD}p@{0wb=hBiM#o1dZ0&(P*)X!A3S*K)>d zIcJWA#P6!qD}oc0{no1j z<$E<>6A!ONubloXr~k_7zjFGooc=4P|H|pVa{8~FzALBi%IUju`mUV5E2rAQ0JuAIIr zr|-(?yK?%joW3ik@5<@Ba{8{EzALBien9W#^j$f9S5DuRJNixaO%;7pMc-7>H&yga z6@61h-&D~z<@8NCeN#@~l+!om^i4T^Q%>KM(>LYxO*ws2Mc-7>H|6wA6@61h-&D~z zRgS*-0bBY5w)6*l;@{ghWsDBBVmrs!Dr0PwF}BJWTV;%`GRB7Ln;)>bKVWlzz~=sd zU);2Bs_2_48N}X1l>H0(q+GB2)e{XT80%^eAOnv_+4>WDyj>vAN zcS5)u#j}Be&)N%i;{~5A_;0|n= zf$g;U4qhLH$6zPyfxYl5yaxN=b$A2bg#GXq9DpO7e-u7~V(Or*_BXtK3*W(MI0L1; z|09&ad3yzFXhDBpLOmB)v8UJ18_Yyn3m)PmO#5(U=)_LEu&ij^i-nZ=ZUSg;B z5<9(@*y+8*PVXgldM~lldx@RiOClLkC`T%4)lgT&=>kae;5D*NjnGzb3BCC+h8aRgW=o(9mUFfG>n0< zjNWl@7mSCyVFFBqNstS9Fqxj3LjTTS1)+Lt7R-h@Fc;>LW}&?VU6-Ki5_DaHu1nB$ z3A!#p*Cpt>1YMV)>k@Qb!pvHUwoA}<3ED0}+a+kb1Z|g~?Gm(Ig0@T0b_v=pLE9y0 zy98~QpzRX0U4pht(DqTZU4pht&~^#hF3~gV|2(6XVYSP!+GSYnGOTtPR=W(VUB?1#7DZPLC22RMG0*Mm?5@4@?UgmN8)kKh<;KMo(mC-5nJ z2A{(h@Fjc&#q4;UV6}A$oqWUbx9}aDhBI)Md`rpiM<|2yaDns6p~8Ne(ea6Fi+|W& z?`)JXQtH@QW+vtDW%U1AMnEYepp+3%$_OZB1eBuWQj}bZl1ou?DJtEC+DcJdDQYW4 zZKbHK6t$J2wo=qqirPw1TPZ3lMOEie)p=BP9#x%3E#EuT^8HQM>!wT; zgi?x7N)bvaLMcTkr3j^*LMcTkr3j@Ip_C%#?}I4eAWArh5)Pt-gDBx3N;rrTicmrk zN+?1JMJS;NB^05AB9u^s5{ghl5lT3S5)Pt-B9w3tCGd$bcn{v^p34!gdlWu`WAyHE z_!vHcPvJB89KL`r;VUS%A4ds%TY&vNlyDp+97hSqQNnSQa2zEZMhT}-!YPz+3MHIE z3CB>vF_dr&zxh+>K|G|`H=>?%sOKE&Ifr`Ap`LT7=N#%ehkDMTo^z<@9O~h7 zd-i{$o>J6Pih4>>&$kZsoI*XPu{Ec$HK(yPr?EAsu{CAbnnKi5hM2A$g{Y?x^%SC>Lex`; zdJ0ibA?hhaJ)fhVLex`;dJ0ibA?i7RdJdqT1E}W!>N$XV4xpX`sOJx;rx5iNqMkz3 zQ;2#BQBNW2DMUSmsHYJ196&uhgTV2-ydH!icn{vU^VAjBJqjPeF%)$iK88==Q}_%% zhcDnu_zH^Q1h(N6W%!2UZ{a&Q4QJr2eIM%i9QAyTdOk-zpQE0GsOKQ+If#1pqn`b! z=LqUK(nLKUpq@gl9&dVjIlWgxkCoD6=b0T&&^u=-^&?#UIj+8mD?Q8njUUOA1QF;l zirkg<=AgX_v{!-l@CU&etl$E!;0EsC0iM8jGO;VBKIdZP4vhLVq?P+PR_^0ixsPLI z*Uw6czT-ZQmHRkWb_cB7$FXuB$I5*iEBA4%+{dwUAIHjl94q&6tdzd8nfAu=RK+;B z3&z9UFaajQB*=w4n2ar*f)_l4J)oJ)sk2}<%z?SEkbS@cSOkk<2`q(sVHqrk6|fRk z!D_f4*1%d=2kT)2Y=lj)86Jc!@DOZ;hhZB$0z2SQcno&J9@q=7!fUV(UWYf}P1p}_ z!2u}7gI8WX{x^E5MK87Jr53%^qL*5Ha!>l5bLq8H^cvq^2TtG&R&W7Va07Sn08cQz zu8UZWi&%||SdEKVjf?*auj?Y#<|5YSBG%^O@ASGV{}*1@MJ(AxEZIdY*+nebMJ(Ax zEZIdY*+nebMJ(CHCSKRYn|NJkP}xZ=+(|6lNxZHqysj#|t}48)D!i^Lysj#|t}48) zD!i^Lysj!#_8ls_fXdFIvd>W2XQ=EmRQ4Gv`;4*nACy*#(n?WUDM~9vX{9Kw6s47- zv{IB-iqc9^S}987X%4s_*1%d=2kT)2Y=lj)86Jc!@DOZ;hhZB$0^1oiJ9vE*9)q2* z2lm3N@EYuc*WnF#6ZXSfZ~)BxhDxkjC04Bxt5%CutHr9-V%2J~YPDFkTC7?vR;?DR zR*O}uMWt%3sdmcLy`G!xBUWP7DzR#nShY&5S|wJk7OPf^RYS%0j~cwAG}fx=kjdUs zQxB;JcO0#(Rjk|(;@eh0ebZVngg_{SK{!M}Bt$_=h=x{>2uaWe+Cn>M4;>&GQXvh} zApvRKkA^WYh1Q+HI(jBg9n6B+FbC#R zbI0C2``3Z2$U|s}3;2l_xcgMDi~iCjIRpDR|Vs% zg7H>uN@m0b2s$hIoFup1nUuvaZ!Pu%`Y*jF}Di~W8 zjI9dBRt00Lg0WS>*s5S`RWPn`_-JfJ{Eu6iz zaP(e*-mkK^7S4*`Dsx#1&n*ns*5;f;Ki^_mxQl?|PuZ`KLk0HVSMs!oOr*t>M)-b5 zuz(XdgB4uB72LobJirsY@bJ9B2YkT~VjvdcARbbY0~O_Sfmh*XhUCv8iR))G};p88)>Hn_7lVEyJdkVN=Vnsb$zywL_!s5+0_%pJ#+T z&j@**5%N4E3kd1htf)mJ-xb z!aPtceV`TVueLn9-X0wH=9vSWc@9{jHv=r-1kPXu7jOkPa0d_Y1TR|18+^bQ{2&Hm zAr9g}tqgnc+7o&~4)lgT&=>kae;5FRVL0oKQFyweVT|^8%g}ipIEh8m~s<)o8pLjaQ@bYBXMr#;ehIH5#u*l*(jMPhpmy!EA7| zCstfJ>kMb99o|c%Q1@)O*Q&k|&@740SJ|?1Qan#SC+Qb;$FhzRsQrbnspBy{&Vtx` z470Bz2cFAB!@|hrGinyf?ZGGz>Ao?(tzvv*g0q8N{DWN*dmB-6XOIm_TnC!jtFEf7$7Tle}M@ zX$-o)Z}sZc`ac11j^%`rz&$EH>?|j8|L9ah{O*SMDSTQ@eGj|7h6TNI4gcm>u>`xs zC1wXFHoIDO+V(Nq(+(FjxvFJA&LfZHERzja`LN+CdFm<+@h>#QkLNki#`wn4PGGie zjNjUjej3ky>UevS@xAe0L;Ngxh|e0S|9_xr{a8bMzEFFo_3=+N#82fpR95UNz2z-h zmTwKDk9}F`gzCBn#_9GArj28K(|s+xO0&JMKl6o?oYP58vqeAMO7^zBBkA7_*AIQP zdi6&eH>%c!7VnL*5rl)0PW+WuU#W{}jK~PX&fYl{izgXkc z<=%e2LqOi4-H^?IL)X(LBCjm_;eYq0H$KQ7Bk3~v*%B(Zg3;AlAJ zX8KMa()sQzb#3)|!D#zW#xuroMuTvU?OtK2bc zLw?7OQ#K46xi)o1#ITGGw`I3%nSEP_tl^O})7N@rPg#H4ZR_*0vyx{<#kTA`A~kJ9 z=jhm|naNqSsJ@EUm-_Uy($_g!)NsUq$kmg6>-y+l>*_bkk?2s`|4<&w7Y)jbMj6ze zo;J%hlkY!O$}r2TlxN1@Exy*}RXy}MJrvAp*6g9iE{dYHybRqX|9H9Qq>RjoJzw27 zd_#VAHf?4*_tfU}yxzShWo$~Hc>mDb)=bDSd%%Ke~6)0_k4 zYTN4FH_Ki=v()zQTU|q!oAIj39rr(#Tsm6$rZtdmj>f&&Wh@_>tx7%kF)A8sPyaeQ;+fYS7MOR_8DdRyuD5T^t}v~MeQUgue8|xx4Odh)&b(qC z`=ZJ=nI%z5Gvmke>7<**-_5rRH^wX5XQrRPbLx%p%J!M@)7X2}@hE((wtZ&&EZLbF zTl96?H?*LxWxd@}HOsXzu?`cubswEP-F8SWyz5UM9VcTm)=kdN={&1lyX?t1 zIa4|&kL}sdd42GGyT{az!&-})f3Q#3jVXMuv8q+HZJ|L)8scY2=Z0}xYf-IfroWqK zAJlxMTKVzjwN<9mREi9F+U6l2RJGMLPTaUreP)Uu<7C4**nX{J&ZM~ex$4vJ>N~TaR`ue$r@VB%m`|jq)@7oKmlN@i zs4w^Tg&b~C>M`T<>@Vr~&xyZ7*Vl|6Z#Pxale2$l5`Q;)T&mq%i2u1s{u9_OHTR~4 z9K<&dDBTN-vOv@`Ue2{`pZ=6(>pj=bIZEziPZGaqHL2@aL$KuJ1Yapac)Tt3CBRiJY)l~&dwOD5S)bYsq+ASe8N?cZq~eQ~V`OEBl4CrT&dB74N`mP`bS3K?(5~dA2KqT>mBueTGty#QP=wudf&9BPcu81xiTM7 zvL^X9SiGkB|4CcCLwIz}uhTFMsO!;gl$Jg+uQ!8Pzp)(3zcS;e^0^+}&h~_+>BXPr z`?^n~?KKuF-<|8<-13+cZlazkI~Z}X$^=Cj^0DC?rYb*WxWiu=-eY1$RL9$r)l2qJ z&yM&hL$Nv8lh+TuZT;kq4|mMZNxQvE%k0U$(?)cOHmwfV)9s|bwLT;X$%IcW$0^jnf+S`o3qU)2yK6ew(>*jT`;7|v{Z`AFM z+eWO)h2N^9v7*D#0sn-CGOBsQEaNmj6|F30xc$7vlkYsYFrVO?@mbZxM*r~Ur8NFF z`T9M1a@qgb{>I74*B9iC{@uNxRAQEFDxb+!UO27il&jUC{N#4n(2QHPpmJhORX97w zrLy>%Z9~`N&7y%}i-#vB4qH4Jd1OxLVTy!*)@8a66K#KzD{tDIIa5%OR?J#8wi_pX zhYe!RHP;6>_;L=%T~eO6{}7oH5s?!4hnIWL?$Kj*Z`;40l5$x{hnVONA(cx&+O*@p(9UK$D8E2p?Q`Y%p5JWT^81u01hY0EP4D(=p(eWR)- zQxa`|tG6<%^e7(U7{wbKtlcWCoq5$b?DntLSB=-Lw|zIi{)Y}Dc*}C!Xbq_?dN#{5 zgU^+#+0zGaAQ7*sjZ$&_?3tO-!8tP{E308Grfi!tUX=_Py)t8J>>b%@+3{Wa_v;eh zWB$NF%Ue&4?v<33V#aLq=+rqsv2A>GWPDgi%jEu9y(Xk)w9k);ZW$RK6A}`gIygIj zp=u$0W!*x<9WAtz7BU?1A5tQong1PSYFL{6j#)4Z7u=R_^6V_8V+CRS@|t0gVUNDWNs zV9_>%S()aSckR7z)89rV=LGu?OlpU!OW@XmVorf&D@= z2e#TZbgO*+&BPs}ZM!|aUy6tgONow64s~`O?dp+!caQ$Fx*DhbL;R*%-Q286y<6M5 z%ku+g^L-cWQVC-gqd@y!%41RXsro6~1IB3Mjq3x9PMbFIo=$~oRVveW(CO;+X{LX+ zei`C8Pd?nR(hZ=UxC-qzO82$;Mgyh3PN+|Pvl6pDJ)Mxr_3Qn3b%+-~Y4rNRPsjI2 zXx%mL=|Sr}2CW?_U$PBu(>*4pTN}C0cE`vygV2)BM{8-ULrd@IInaz(9=sVph0pG) zxzUVQbEz4h*DPMmrDptizJZ}Jy_!qS_z8}A%FO4AwzYg$*v;$EFn>0$%Sp$4dDA*s z+#QpoQki)bHA|XTpXTsbI@!}z>ovsB;(OxV8`9S_#OL$LVfD>gKJ@i|S{vUqMyC76 z`KL=6ZL50WlfIunZ~G7C>yXjK+?T#_vG{4o?HH0*TO%Z zTmI+Hf9A9^MoUe1^~&}2*}6BTn7twI(5-03t5!GT^Q3o^c-87={CHt&60cg_jGrKT zQ4e$f?`>TVy-yiq!H=abF*4ZVpXi@%I34o0RlW6|zx26&hjhO8qpEv9*vl7RZLoc9 zn<|&}u^pAS^^rL4hVo*K=Nvf+oPXUW7BvbYZB_d|TlCo;Tjc{!@umK6*`AP7ZGCN5 zbjI2es4MJTkC%=?_`Hn{LOM36^;8fjuJJLGjD+ERWtTjL+tqM#@NQX zPT+e98sqmgq@LE_j7>7KWtAh=h5v34(wN#3(h#4|lgEv@6gA{BHPej!$+AOMvmdZY zk`BLEwKHo{`nwC?7U+Xd#Ts4N!^BLzr>iHqR*Wo{;K1zq?L|kw%b}?wGMt<;Mx^$g z)vens+n;xZ22YJnjfkMz)50TC-IMyZJx*tvJ@0N5+jcEpymoa|MvU3_gjlyA_5sdP zrg}Tv%zvrhAJTitF@u-&>%VMBr-`ldeA`FHq@$ncsAS*Vgh?Jb1p@{y%t=hl^Y@EP zkB!ZU3iQuwokZK~+_j=sI}}ALV?oUL3a+a6rI^ERdEEv_<<{4~%`wt$Q4Zru!;Bha zPg1p|UsQRla^`H+FJ@_!LR72^|M}t`UM&vgsD6pA?-xfo>&IcUf#@8^NMwJ&S@%cZ zwA(W+mW&a>F)0!CBT+`|3=Z4XsOjTv`zCE>7{;bY(JhX_D5t4whcd^v!o~*DLVBOQ zp^buq6PaAJGR$>!{fa3l$dcG9ShgIvq+idOy%LgJdUg5cm4Efp0gal)|W{rWB*G+=HIi<9kcnU^C&l4IjDBU^S#jPD#YGJdK@ zuY!T7x%=GyEh7E-UncF^WJktyZQHh6OlauHHf>D37(QCnn{=y8#1C?)nt1hH8||B0 zLv{P-rln~R_ivV}Prb(f=h8LP`cJAfs9KfMD)Y1rLhHmTt(&pq;~gWQNvs+H%t$w> z=>)!Et1(_#Ni&ye>1J%Y>I+9KR+1<0`6f#4yb1ZeafWe(N1U#F^d?Ir?GhJcPRdCe z95Kl~)VF24?V8+X_;i_=9TPdp-6Ou`^>R67%^I{8#9osh^P)eR)B6VvD=%{j#Pd!3 z4Gl`C;rGT(2G*?W4|uG4#`4NFy%W* z%P2>Q`)gG=_F6N4cbWZNT(Yu)gMwVBUP1z^pX}`4UyVQAmFynu8JTFcc1dj2p8s1L zJmtTsnXzSs)yrEtXT>KZTdmy_eOgC7&`?{YB2`sNGc`?1CRplZqH$_65{r zmFO@Ef#x>+lH~Z%grF`dqdImPm26AcB?A+Z0~13d`78O3Y}*l|_<9?9TV<&7qThKI zRqy2c-y+Anz#FpE_T&4TW{e(F$oebeGjdj*Ic`|JtgEV=sdWN(wbf4z#dT3K&5G(}kE zpoobc!QMfUyV6E?ceKjMxaf&3Ji@{aX_H+>r7&#j8;B=tRNf_gFD+}P#=8oRoSWr# zLoSp{@65;0-{w7q#B8>Z{PjJBIWPY0@5h`!vjy(DcENVFhwZEu2I9XZH#=zmUVYc9+9USYs|*#tkMs%rFH;qt%l{}->sN2vLjG@v z%3sA><&2*k<&=YT?k4v>h3QjULgY~;{Of*J0 zTt0;Lbo-d#_`oh{qq5R(Pci=(V`SgespIH$)weRDRg!;fXjtbv+IJYy$#%r?w`cdU zsmY_e*}ibJrVrQtJtHw~Y{#rSQksv%^pR=gYwDYNFcOuo{F0;HR`P1zOHuQkx&~{R zTa5RHInFWe8?IL3@bQ}r(}t_oyY-GH{B;Ltkqv9Absy85G?cVntuMZS;!obJytKHQS=-==c&jG@^qxk& z*;ALj(Rq&^d~d&gONR_us=^rMug63y|IDLz!GHk^dgm-0Frc9KgOQo|hI*lv8L8^5 zuc3QF?F1Orr+Ke5a)EKLJ)68Q6-xi_Pb2@KJxGsNv+co%e zy6JAHL&FZut?H6jzgKh1I>|pb-qkScrhE#sw9`7O{`9e*HBt=z*)wA`4y%&LU5zGl z{LRWWW`O*9fbHU7-L$HK?;VoRF*>?qLVPE}r~&fd18kj}7HLIHmxRPFF)^JJ2^(5j zDa$O$)C5Pn>D8N~-5hH;rMPsXi&orCS8wd_2f76N`rpuaH(R~s$C#_P)QIpjcb4kM z+xBa1`oQlSdsi-AY}+SqYgoRqS}^s_)v-pmSUalw3%~Q~^=n72o_fR8Eq}J{FfXqb zEA=}E^hpSH|NT1^{=WaKoeJAtIcV|XmDg{px595|+sgi!nvH!Eo4S=*yL$SM8y=S# zaF=_Oe?oh0G(FPpoDdka(8Dv?v>x&eJ(AwlBW7Z6)tZUS1aDx`EbPXG-YnmGW2W-I zYnaYIG9aP-a}MwPhU>^Z4J%LP5=nW{lzBZhmq?yDt&y+upEj8tm@gaL*^CZOj)j!@ zP?x%q;DpqFYUW{xgBZP^&B=KZ^<1@k`t4Y-T(UGud;<0Dy)r?X50;^ka+lYv^VJiX>LPO#MJ0xAdF0c2P+O6|lnb{+P5x}3YPC;Q*@E>^7Y%*+J+u!K?N>Y?!X5*LS2*(a#qe!@zj;GX#o|F57JrHv<l+mAhS^&XhcMXLah zQqLyL1YFaMS8Ev+&wgL)##ptUG-LCc#Hu;Qj2$1`m{!d(X6%G?*B-Ns3ylQ7Ne!RmAx-p*#e51Q+YvPRnT?=!!KaowN;9&n4hHN&zwVb>t z=H0z>q7PrM{@3Uwe;Pga`F8?kz$*c^?__x1n_uL;qLk}|b@y}RA%e|28W#0X^RW*L z@9Vav@YBoNb4MAnjA!=N+Cn~(UFLs8N%dK}X5Tn!Hbd9Ij8`>N@%SjMRK3htRWCDk zd_ZHY(vKNCVYI4KFx{j6OPje5FS2Rx#@+qkn*BBV=g2O$nexfmZ?!0WH>oumA$Xu*>9F-y?twzce2B6ZGH{;K%><%uchi_UhD4Rs`PFI zA?$+qvZu$cK5oCBuz~_z^pYS@Z-mGjcSi~`r}XJFzWw6XtrA+>t{ETLN}6t!$X|L) z?wma~-Mdwrq*m8|R<^|Uq~YDQ$=(UIbi*ee>ezp2rEGiswd-dW^R{H;jcle1TUDCt?=@d8 z8t0N@V>@(+jZIeNLS*&j3Sm#@7UiNeO&93DDoW2?LvDF}+mmWaHryJns{6s{MQgb8 z{GMO^H3QYGpl;%-+gJse`Tb%NsO6cQU4}>J+%B8iL|w0PG_Km5pyYU~Zp+Cvd{Qqh)CyuZvCE zXJAA7UPLYTS;|at0vnQs-@JgZtwcRcB`FOPHb50IBv2v+q_nH z*~sg6w!BQfvDvRBSl_+&NkiNJahH7Vw>F~XVRM(vQrxO0g9=QDV&V2o%K;2H1)6^Jgp*67imKu1N{~`XH>*Sk`mH&SfkWKeC zUqt-B?CdMMdZ`6PmSe&4-;K@xPdk_Y!iSgAxL8ti7v8C{&*8(WPbjI8pziqasytca zZ?>zu>YZ68AY}s7S@Ll?*x-|N?BB+)SJpVhf&=xIhwq)&+CEMDp#jCu^YrF(Ic5KH^;w3mvf=LKj2)KkKkkq6El9bT0bS7oe zkETF}DYQ)&w$hJ}E=>7`&d`OK>Gwf^whT1W(#Fs8yYES|yd=#ZlP`L*-n;jnbC+}O zIp>~pUULio4wY0g@ZR7x!TQtu+|6_>eP>C~e&V z7*WS2Q+~dYerUTirsN>}yl%{<)7f{TtMk4M{r7cs-P>PWYc|)Gxav%%x{Tqk?%4T{ zLqq3x?mR#AdH+Of+qmC1-qtpbLkz)}h|qVlON$!%$ZTHObNFvjZ+?L*bP3aBu5$rOI1$>7}D&-vCi-oL08T zUE&{VZV8SzIGdY_zPn+d^cY}Mzp`9lp@Z)gv|wm|F}qou3odcH3WP#38ZjW7Z$0Ro zSk=$!YhQonpZSl-Yj zyJ|>7gtYT7yo^b~tR$b(#(0?^l`aBZVfZU-+t(C%?b%;fW*2&_^;5Oc+uMYL*+PM_ zXVl-)G&oF*{2M81Gh02?*mUdCliB!+fk!|3p9We)rzkDTc7J^Cy#)z*uZ-C~e-^7| zpoET)4kM(5$0&VMUiBis4dG-oepX9uXfiP$$$-4T9 za$VT5#?x%8xpkesG(W#ouP@bVOZDcG5;J7HjNnL>uRFNbknWAz!u>v9f7llFrW@7< zyM0w7!DE`@`~sIo<0{B6)({`$$C6@H6Gjym3)VV4`$qplh|pSO9a!ozY2Gqx+Roop zWEHyYwbKy{XWQ*fHLu0TRHyTiz#6FXaE*!1)Ysh-9US6+L$>Js1|!|Gj0Qh-!$CCg z6{huuDc!OD$hwYu*57obqvLR|v(jL!bUG>xhN|mPx)fPWButJlZ(^KhoQq=i{`3fc zi3H(e^=h2v=U+Z{40st($9f}lZzKw>AuCwyj2fq0NBY`!RH=N<7eV*4pnGi*rTgMC zk?vj5MY`9b-xlB$qkHVPH$?X&v;B~3Qqk_Tl^bw4uAmNYqV1yQ-b$OL zMw6*_`AywB!_nEdn#?C{>s92T44-#GXSy!wGsxI*1$JrCKjQ`|-`=)A8hQPj?^a|P zJhuAj+U9-j2I_DDcO9%!O8G-W0_AH=*P?vrNKBEif|4o!>}QYs5C0L95?Dg{c3^1# zf1-T*y4xa-7B^E=p|9LlU%#zFA9hMTEsn^Z&O&c~zPC`k3P*$<52bv6cQAc9<);U` z{nw{_oSZQ3>r(!5JNn*tE5Jx?bvtUK``g<0H$`42@j=z=5tg)uv&gSU`V4Y)e2Vvz z(bHg9eBcaeCw7)2`Q^WwAP4BBx{Ci~g1D zZDSnl7zP;}7L_s=kn7Xf!=-12iq?G z`KIlYdvD&OCwWJ9klFzM{sbv0BkBqMvX+ak&6elp%B4(AN=nEZjy_i1*XtjtHYTGE zX^RX==)0eV*`^vIov*$<&pl0s;v)^NtHiG|$dgLyd2sF7)IOM=D$mQ-=Cxt^YTGpV z8;)=O4mr2_L_x+PeWVnyHG;fC<drrk5 zJCi-HIJD*DJA-fR78HO z;D<2wbZ!08KUfjEDU{*c^d*N$Wt10NhAP{b+(d6N3lhA8@mu7lIIBR$C1Rj!Q1Ta2 zMDX4$^nQtun40>Gg(f?&nCbN|hOo&PHsZf2Y@ln`K!T99-i2-|VeK+IY~nOw2l91r zZ;?B~U)a~*@7cBS5ydGt2|l`Ur*~lBz^U>($wAK<*e&U?4t@JIm^8vbR=G67*f4>|BV+9A%_|6za%XpRf+q| zr!O5mi2IU-E#xy~7(+Wsv_n37eE)u7WESowcHl+VqNpU$d8A7EFUq@}&hGNw+Q!D( zS?`JSgM;T!czbHTb=#ijBeZ4?YN}#2vG~B%>>+x#mYO;y)ae!K&vr+i-*elyYIL` zxK}{qz~CT8yADvR1x_Jo0b=yAUrG0&x;tuq@Pi+0mIklBJ~PAoXl90TaRbU1tX}>r zcU)ao9yAi;%1kPO7nb;&ya~=FBQ8nC{C|O08ObSf32UFedsQNM7mBWLW`Tc)LMhbY zaOtgg1eU3DQ)Uj9Ns7VTm6-|V&OA@KyW1M)?nO&~0;Y@HMSjG*A;KgpcMI#vTO@NS zpXT3Mx}%UMk7s5pJXU)sWY2XOPdk?Wr0WVjmAoVLbhUmi>(ug2pgypc{7%3cyXT4> z&UJl!&}+4%g}hJx0jF`;PwBavjPncEyCx@3PEW6!oczM{bj!uqKe~@_sPSH+1{gXg zGYZ#Frl-F!Imw@$o<2D_xmbk=FfxT2F$iMYLJ>L!w8f0rbDKrWKgvGpY( z*tv}Okb;8K1^mAkoYvtf!s6)%ZTZPX$!kJc3EktmP)K}^XL3nITE@`#PfIW*oD7aS zBxiohhgIa6t$Z-@*Ugt1a(OGi7Dfn(ZQ&I2Qznd9;1Dt>H6zC-bf`oo8}U?LFmX{E z7v(+i?Ig*+S4oA*B=ZCZ0-_%HG#2KrmODoR!O_pPZav-0DsIbFtPN~wj80dTZ)9f^49Q8JLdALZc(`nUu{oG5RWM+=sQZ{s`rRC6YS>Ks4cSj+^dddy0!w zSV2h8BXCk8*tN@q9Wv3oY=+G9mu#lcXvEtQ&Y4uWbb320C-?CaEz_0JXq{fq73)pj zylr_AxD7blOM*ioU5RE(KFn(>6UL$TOo-YB(Q z{SPU&f4tXx;a>6y=){b<#O%{qxrPf16$lbiZ>$VQZNP$qODa*M7%jG{#wxpiG*W-7 zd84M*P-w7KHB{MxqkVO_p{_L;aHA17Hb>SNtakdRf71h7)tsh4&ROdMfu3TYcgUbq zD^yyRv)1_Btq%UrOK(AUO{&mcf>A0#OaqU3V__+)OJ0w$$ocr7#WO7}S(mb91}Sp3 z>&TWs+2$i%-A6YE0-KLCRF73ujMtQQ=r?2mN9| z9`xh~g@26kr@9~YLMz8CFXAg&!9gD2J=}6kg}8L8fY2R~mPGt^-FSI;oErGb$M5&H zM17r8!S2%1?qFGWNlAB(Cp#}M+Y>N2oko&TwJj2vsH~c(shzCa``h1cPMvJ?+*Ic8 z@p^mwWjA@AwB}@H<=Cw{9ZVPS7sG!0D)R*Xk^xVNsDBxi_~y(ZnuSA1Wu&~f>-(fw z6`s@0g}br`1A|#4LWcSCMAz8J|2Nt4%U|-3|9Z{+_pkXiU3+?R57{O3{qNZRf8_0O zxjMYw_F`Psg@tN-$UUyMQcqiPahs>K&9%dzRvT%!HRYQ<3wKH0k){Dx3EiW6P8^n= zxOzKldSDsBTgJAP)mm4(c*~K zpXV&Vy4G9FdbuHNu~jSlxkiOjE!UeZI(hR{@*q_d===($9L`@^nK^1pKB5`&RleNZ zoSdw@%*_oY#y3JG5(T^*FGN z%s1xOLsNorh?A&b2_EA|Ezy zuL!!v3JSO)9nXRujC=NgJ7Gkb-PnIbZHaOyDrX3>(bU~S%9#UH1A$-!``G(Wo$o(? z;e%t3J+FO<(LZN-01ERD`IBTfU(55PiT^J7&FJVt4CCu*Q4IL_FvBnn0=E$()WBlA z?~s6;N(dpUg+`+p_!C~QYb;6QcCwoCYThaTx=l(-(x8Ru4+!`OHX3-AiYwkR*au41{q^` z0l)`mXD{3?&v5r!8W;%w1l6iN(TcT#7DB zH%ZG?=Bl`EcWJI7SE0r?9euCl>zJ2U7kh0N=kGA4FFHHBji&|yiHW>Ip2eC)uZi6+ zL&QBxDtDFdy8YpibL5pb-z0MW545$Og=$74c#pwrl5%v|3j!epl`LaklRf8l_HU@g zF;?+8fB(zO*XH}by=#N2#0LLi75|I!0Uy?~5mLe&b{p!CUI_kGi4!VBnaAWgsx^tb zZIWQRVkb^|R!#nCj^9X1kzK-3U*y8I!O5!CtX!?;f4<61YCu@)Xee^lIUIG)qDK48 zYK2^*kt@`s#opj7LJ)3!k+T7}S=tPXFlCxwE1&6NP5@_kT+!rJR)Tz8grpujMq2s5 z@_!>K$jkCBUwM(F@_)TVFG8(#s5KC)MRN&Bts!F`xiG>%wwWAf_y-P?-Awif|L8~y znPKkXPf}QN$vWolL@lK;z|!nsguI>HIyrOf82KpOnl1(pmbWg+ImILw3je^tpJSC>=-%l7Nv*$!(LI=as}l1IWUdvQe_ly$&|KcD#kA@L%znF3p=X&l1ARVUU!c&56rY$M2ctv;nL5VZ7p0{YH2-y5rP*9*vsRi+l~$2J z)r`_qVYOD6&Gc&O)v^kWmSu6kKu1|m-e6wDt}CJ3BEdNmdM{}(xa}Ng$ZpluxeRWH zN^Qu(pNw9mV%Zj#Q^m20Rwq4*LR)p@f)E`jJQCm(Tff5Q6>X*p<723jjj~OjvX6P3pJ<-ZxdkHJgRHPeN|J$K( zS#y>lyGWm>NK5I?$f1_9IQ6BHVZm}1r=e8Dx6pGR_U*8Ju zkgQ`^mq`4pNVRrYaaic0*VQz3;omj1ji$$#)C*J=OP1(;Hzd<1K;MvDPjR>r*}n4v J^8tML{|`q-nqL3_ literal 0 HcmV?d00001 diff --git a/pages/proactive-chat/fonts/outfit-800.ttf b/pages/proactive-chat/fonts/outfit-800.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6f0672bdeec68d36ceb605c95a065619320b7b3d GIT binary patch literal 48272 zcmc${34ByV*1%hJJKaeqWZxkP*#m@x>|x&_>>whdY=#gZ>_XT<5kUkI!3A8#8OQOP z$+)0`3xextP*8A(QA3Q3VptMF1Y(@f{r*+AvjL9I`+o0z#((wg>bkX^Q>RW<-EM>w zLiiE536VE&(BN^G7bgl~#0w$s&KooOdUigy_FI@A@11pV<3Voe(w;(mXx- z`YsuZ&&+?3wC|D2E!U6hH*UovbDrb11PSrQt_sdp{@v#3<$ zTl2Ja%x$w?bNzxMKl#?4`vKB8>X@i8g#5!RM>V@i?FN=JO}0x2nrv*Xu~v z>so5tmTNEY5$y?ML_A@V=t7t-atXVMJi-xT9N~B|jc~e{ML1jBMz~h2C)^}xi+Dg# zFY$=@GvQz85hP@6i!@fzoi>>9 zHsUE+=jlWGPOfX!r;YjhBfU0eJbJ6ficT->I{rpcD2l{P`lnb763Yn}iG0ytED&?) zwb5b;F*8U}tWy+=g<>(~cj0fbC?IVSF~wY`LJ{|*a_1uQ>%zT*kwMEGQm#?Lc*`lOK8mSskZF{ECAt`*Wh#eCXN_u(w!R6Cn@aBk7ee9?R1{3Y{5*F{Sg z%@-NP>bf(TO5v_UrOT3BRfw%7RGN+zrxaDXvT|<1Q?8Y>`5PrWh_m7g@w&*us;FA4 zy9}kDa;01)u>jl~BKykz+@&n9VkvRsNROQ$ma)f}w4m!De0rL)KjQuUjN*gjZEx}J zAfx;(aptPH4dfER-G21hDRTR(_>u5QQAzj+quU@iRge3zk_WjmYpGi4$!C%gTCd}p z;+>at{4Z+uBJald&cudr54D!=v@k+kAjU`7q*cGGl{QzblFoVY6Jg`Ms-!SwcX_SU zwY;Bts+v90B9-bLACOouLp+N8X<1tpuUhnElY9(4!l#HKv`%0*RsLpuRa$kgg*!rA z>9Jt0ShHS@X;iKjZQG=_Z4$}OAx`PiBmAk_sQNs~pGvFRq(1pG@6~^CqL&ydZV;=* z-Qq!XR@vP5#3y9mP0p3e*H+#+Sy4CA7ulKw@_WH)_q*tw%qm8{yaGUGftZTEi&7n45w)xJx zz4tWl`QCfHtGw%d`uYs_8SgXAXTHx0pA9~L_o?$WeCPYF^nJqjuo5KL_!s)$>i?Ag3;z54e-7vrkQ2}^U_`)# zfQJMA5^y}AGT=gBX5ga0U4cgezY4Mi`3H>*nh^9v&@(}=1{=Y_!7;&|gGUEX44x5u zYw+sejlp|^-wpma`0L=R5bu!ikc5!*kX|8ELso@s47oq#@sN^`10kP={5#YZIw17E z&_khBVQa!~Z#%v1?QLIbThT6{T|&DX+CA9rg?2R&$r1e`9*g)g(mgUJ^18@vkV(xyI|p`^IrbhKHq%CBV`lYD3f?qkf7Gif$Vn6&)L$7~MU3V03Zx zvoX;zu`v(CJQ5oa8=MsQZ-W^@P*OBAS$D?YF6k*lWRy&lon)%aVHEb0!{it_MNVgA zA2z~tNe7I7T7<=B@uZ~0sI`<-8yy%O79F8W>eiy9Z81AsB`Hr_mGw6Kj{h8U9d9_E zX-w!C?-(G&cdvr-T0})%MHReVv6H{{72zuG+njIHzmBo~sQYpT5$kA6to%Zrlr{1f z*&rQ;hv8`i8L>tOqqi~87;MZp7OFcD#X@7HvCg{)HHmDOwko7 z_rVGd$4452mwFTP{&f6+*QDdJ`^3D0bf7$!czYbqAY#2RLt)#&q`;y%_JTg1KMkK!@$2l2SLOS~Xn5qnsn z?GrD{Vd6FMsW>b?X01{#-Vhbc?JF50OPIY^v6{PsxoSN#_Bs(PHZnuqjeon1S$r#N zfbAk&+{0SsL1wfa%q|bHa(Ng}>IufupYc{6WnBFUpY4C}I{t>2{CANpO7J0{M*E)= zJ;n3*jk`o|@gg4JUc9JRnIHGFYJ3}y>mOp2ct>2v{B*rIAjXPPaicgSZV{j3j~>Ba z`%+95pW#b>fv@@%Ugfv=ZVSb~@b!KWw~FtXU6P)s z8FD6LY%+6cp}a*FUeu*o-^tE0MRs6RCd-cUW;srdmlLo6H^>|1O~#)@ zALFF(`n|9k^)fbd&r2fWD(Xcai?;|e)N3fCU@_@_i<@=Y2+}uU{EPek#dM#}>(`ht7vDe<$kba z(&n99w`3gsaV6EH*(3s*cu!;*zlYC+m*s-+z7pdL%6LWCucC;1 zyeI;$MCUO;1Y7b*GXXl$mfwKgA9rH}=~|K}GL1as7${QN?a2fW8RRU5H{qg@q2iq% z$v|hNjCS6xFfzFZTlXnR}qc8E@(33)5y9y5j`56JkcN5`U2N|QBPGgkFgHQ+r zJNQC4w1;R2GxiD}&1<~AEPPns`^oEtzZ_0^Hk1pGAAQocD^4kwaf(I)hi%da?)Y=s_8ig)fB3TSPBt zukts%DC3fdfCTButEWgXd})I(y4z6%LI840WB()7auaoQhwPWs~}kxIWs8V8)`jTMa5T_Q!*(da?hCdn$S}=)gCwu|DML2!fK?Z2s%7!NOrJdS)Bs1q9n9Z*7pIk#^yf`QgX+eI| z#BaJ%!=0E1FE*pO~uU8%fu3P^ZLquVx;UZM#%wUG``ayIhfgejJOUD zZwOw_ay*r>_%^HXYE~*Q4-aDvp2PK`ntA>PJik$Lv=}ePF#k8m>+sud#J{?p`TsUK z4o~h5aXa((cxLbk_nWy z(;x99gYbYt@F&C2E9H+x;6u!kMQRO>hc{2o$D><_XLvze6qn?!auI$+#*( zE!VJ$xt)EXJLEcfr(7>L$h+i5dAHmoH_LnE7J0ASD({oq>5=a%!+c?zHurwy1Dvq5G2gMQP~+2D0A3uZ2uUpU8e z!1M*h`2_`q^NVc*3-bAdmqiQmi*1ASJI_H)pSuro-8#s;)yy&@!!xfbiQABA`HPI9 z!`z3uk`8T|G&9FGBEMisaiML5&fCl&v%hVW89S;)Y*w~q(EOR+qh~FdKQn*Pl6iCU zmlV5?HgmO&HPer6kv==ecD;_(nP#MSRj=uTx(%|8YfhDs-p_V}?hfx8T4j8LtGYLs z)wSNRsA&F7+l@LyuNw=B78NX+H)C$$a{G2iP_bc^no-3Pr#WG{+44Cb;VCs^o#ZzZYEt*>F-{P9M!l~1*idkeSo?7g_ zvT)IY)Z!U728wzqUZ&o86wg{zsNTEJSg>S~el1$6KVMw5Tz$Tn;Wl4g6c%wNrV`9A z(i!M(N$cOu^_t;&%~Y=$X}MX(fU#y&zcd|{n{IxTo{{D@Xvv}lIx-_Y+f39y+dY5L zq6N#AEY$Jo-Euwk`$ei$S5#NKj+(w;*?d<_H#25#;f%&KIXb({G(BR{GShPHx+@D7 z%$sJ{y{WETY5IF9Gm@D$AT@ukzMpHe8N|8LH0IaOUR*SHdSQ#Zv&kd2{B?(LRdWp~Z0`7sHj8TbtL7 zGVHx4vx6V;o;vD*S!Xi}XvJ`_yA#%Emb zvfw+5Dx*$?7Im`cVLZ(B)9PBhVNoT#Y*gs<-;uXy(+T1s3c>(ys*Q?o#KyHsL$$nq zq1LTW+we@uk^OP6lO(Zt-J|JM16u z^nu0RA00U0@ubHeJa%|&)8Xb8*JjLm9dnxwm+R0>zer!t)!__}TX;6%<`$tDGfu~h zqEz8AM2G!#*i(l&oH%syh`%a~(lKE=4A5a49h&LYV;sW$7ZrM#*B5k5wSBF7rTYo@ zGWVnIpXh5dJfyGR)8U&s+^a*Ko}6~8x~Py-kiQZ>p+oc93?Fqz^6p#R?Okgwyr)6dg{`;aC;AQjX9ugWda*bN3dZ8Ixr%CO)-AXvUaf2lrS$ zjnJWa9pdii?&(Ef4wLyivUb5C$PwVje7Gb%* z{-+9EX+CRlt6Iu^gFA=`2L-X1U_gP;eewVd`@W~dT8S@7nV_xsD-DTZo z-P|Hvudi>@;c^`=(&1bk&d_Du(jqitZnlo2tWhmOGsX;uSQ(4fmSIn8jy28NNr&+* zuA}sIm<|JU*hYtDdNZ`CiO21i7U2bbU9H1Pw-bC?)*?KruRqb@A-DJV^vxFGUVXjW z?OEb?yD=)UVt-LjoQU0KXmG+R4WmMZdR8@58rJ{VM(L|&Rq1Pdr?1tV>#INY)t_$D zpKjBiZqxT})1PkBp9bl@j89HE*GzWd*gMU zdIl2@$>%BYOG||cb?HCrd1154Uu;%6i_I!$u9d&BS>OAeuG?mvTej}QY~{DeIA=Ox zl&)Kpu2q!&G)mVkO4s3WT{nCal~UI*TBnKDpN8o8XdR!eYo4wAADON5%+`5k>)f(+ ze`c$@j1Ky)II}+b-tLyyxvRTsm+Y?EB_~?W>hKL6s`!aI{Y3rgFZ$D8Eb7x=^j*K` zPk+&$PP5b#Kh5$t9d6g5%59oXKh5&FzE*i2*R7kT@13Ua9jJ2~sAC4|nBF?3x4ur+ z*Qxr`WF51EeQGIp=(2WLR9QQ8-FE1*cBu61;;GsERbAFnoqnm#XQ|F-sm|vHeSL$z zPS>BN>zH&MGge)TM^q_;V7Mctqu!x4VRhMI^3e~-J;`H>-1Z6{9@hS#g;$N zGmCXui*;Fxbt#K=eHQDozR`CrHbd?;*!xk>zo{qs+ViTOe~V;CuM1b|`L|B&p5<|+ zo`35r)bnpcg?j#NyqL{S)kLA5e_O!5)ONgB_59l!&J_R5zLa|YZL@wB<9<%$_HkmS zo_~8nsOR7Q&K}t}c*5%WxBdFbxA*juZ>8)f333#8eS-W1ez7{s7L?k|B(B%Oco;+7 zhrvMFp`P>8{x17YT8=v0sx+UyI~DHIVU-G{hx~|`r*+I5I(%8j3&NJ({~S&&4LpCt zIttBFw$TmixzaLA1nC`F3TgSDlP6-GKdTt$_buaFUOUw&(*HRd)Qj_^`L1QC@^D_% zpZ=4pOU{o8PwCh%oYl^+c~|2+?%d^k%lWeNN#|dkXrc3daOit3H0R~4YQDbms7 zp+0glbCE-Z^N-G5TsfR&)aY@pPKYGue&<1UI)&<0v$ot2#?|r$tSOz*_(H&Hg4=zM{}(#lpA$O;5vyv zgHwhsgq#Qys#?0~J$ZwtA%=6Uo*Ff%_XNi8P1MLk*S?Ley|-9Q{UuLD+|CmU>d6Sn z4mR_PxSv0}>xtf-w9B2n=BEjtVRznwg;7uRzD_$W>}kBo^;?|nTWIlz-1QMQ&PuzF zVo#5=zwAZp)#~~*I|WwVazB0g;mb*UGG}Wk^n#D>1%KTOk|!>Du>+y{!iOgrS5kk~ zZe^z}NTm&}QaxhV@^RDhvC{H9>NiBUU$xd-x7Mm#>#1AorQ2!H&h_M>TIi!CCUvXu z0hEaBnj}Z-*rboH{OfWk;p_Oa zm|vm?M%&b1=c8BuMSjq3U)cJvoW{S9yF;dhj0@=>(zWSt9PeBId4{+JJA!`>T1mPq z|J1$xgXRY83wR;mkNmCo-|Ba_ucuGv5Kr~qC%~tTkKuj6`;hnR-cNc@_a5vW*5)5= z9^`L^=RZBV+g96bJZAf}^$F`{%_Qrjkp9M_ohx~oajUV~m}cF~9*V(!nbb2R%k6*iGCbo z)6crz$$6l+xL51VR?hu`#Wv3TLdABTc8U=9Ky zEwqCOh=eF;577|Ay|EAn@sL1V5_E)4kPMw61yZ34q(cT|LKb904&*{t=my=P2lRwq z&>Q-Ye_!Ya{b2wMgh4PE@?Z!ICG9X6&h-dhN5Uu=4P%_A#CYeE;zpPNH#v`rn_(hM zg2^xirot_d57VH)`ByQW{ED2fi`mYdVh+rOc`zRqI6o4Loj;0VSOQC787zktuo70m zYFGoe!CJTj*1?^y9yY*6xEnUXX1E8oz`d{)?t^Wx9qvav9^myscnEgDZrB4a!OQRp zyb62aHP{FH;Z1lK4wAL*vV!#`!O_{6qBq zpP~*+@H2PUGm}_Jy^hos$f24$J`pGIEDd6}@~(`NVINZZf*<%p0K`Bn#6djtfxgfW z`ojPi2!miSG#v7%G;+GFT2PU?r@A)vyL`gSBu6tb;pYJ#2uDa5rp%&2SHFfqP*q z+y~oWJKT?V`T(yF!b7kFcEcWc30{U*;8oZQufaap4{yRj?mq+{!cjctGOWdMUd!QI zsDSU_1m5~d()lk72=U#81v|u+8t`8-}vuE}aLE-T|a{0O=h-dIyl+0i<^T z=^a3N2aw(Yq;~-69l!?)LC>nu;c9fa8Xc}ihpUl62>sub~hI;h?^u)(+Hn zIwBzo+CwzNaBnQcK|CZ7mjoR_eS;(!IztMiLKjHG&ZYC30hyq_tC9^lkPBU*8+3;r z&=Yz=Z|FlAeW4%phXF7U2Eky+gCQ`Kw8LOH*CTix38P>%ET#vGVF@gSWw0Dpz)DyJ zt6>e?25aFCSO<5)de{IP;cnOjo8cbV0{6mJxDU3$cDSF_)C0Ue2oJ#yc*gmIcov?6 zUGO}-058IBKHmc`!OQRpyb62aHP{FH;dRo!0dI2s7O!u^JMa&9*ZCD1*MP<~pm7b@ z-b!q5CAPN`+gpk4t;F_LVtXsGy_MMBN^EZ>nt8%ydrzR5C(z6jXyyqt6E6lka+17$ zgi1ICr@7}0oaJf7Y@R+vR(R+kta7CDEZTV%?L3Qi;_HJA+`$9v;0a#P27H`n(9APv z<{32e44Qcc4LgH|ok7FSpkZgw9-e~bwJ-F8{xARr!XOw7c`yWq!+7Vj*p+9oE6*|; zUt%`C#B6+t+4vH(@g-*COU%ZXn2j$n8((5JzJ&cbjQu%=?RgQ~^CGtAMQqQD*q#^B zo_e&W9_^_|d+O1idbFn=?Wsq5>d~Hhw5J~JsYiS2(Vlv=rylL8M|d~Hhw5J~JsYiS2(VluVryk9zM|0}YoO(m3n5v@yPB*m;eQgi|H_%IbaUVg?TU^@LEV+;CzD= zpYtvrZ8*i8S%VGYxhLmOE`RX|{^D1%Epfp}`gWE-vcyUz7ekDNd8(H1~bX zeIM)lej@fPv5XONxk$-BDZd;4#HRO9&75mUQNw-z;=X@j9~V(0}<^R(_ftvgTa&eOW{;&$#@%j+Gm4(^2YumLv0-LMHZ!#%JC?uD&zA8do|a6kKA z5AgaRJOn#nCwV_YE7jiFQ(XTK{1yHNCGdB68lHh?;W^j^&%+DwBJ3ugJ@68|46nee zuoqr~eXt*1C+!>XCf9HA`Zl}+|A2SVz=PE95PS$nd9VDrGC0n4IeZHh@Ex3BpYbH= zeuPS3mlREV9X)zo`qR?^5am20(+(ety}M6JzD!! zXX%|SceYQp?`JgUmf~ahyK-}e|6|z9r{;?{?(y>b?9Fm`d5ek)uDfN z=wBWBSBL)9p?`JsKpj0$hwjy(dv)mD&*)Aay-*J6L(6Muc?~VEq2)E`h0=pl=)oyu|9y*A*I{wq<*s9-Dx;57 z$|z@*(hznC-o-+eF@xZh63cgSu|}t{MyGi?cro^_7?!|NSO&{s1+0Wsuo~9DZE!m} zyO!5GU>)2E>tO?Igu7uAY=(Pa3)~A^;Xc>~+d+HcygmpI!4BAo?mq%gGV4FZ>;J%C z;crj^e}|{x8EXD4JO{hrd3XU{gx%z`2VR1g;T3ol_QGqh5B9_BqepSe?3i(wb zzbfQch5V|JUlsDJLVi`qt_s;zA-gJMSB31VkX;qBt3q~F$gT?6RUx}7WLJgks*qh3 zva3RNRmiRi*{MB+Dr8rM?5dDml}m0)HZ{nm2HDggn;K+OgKTP$O%1ZCLN-;%rV80q zA)6{>Q-y4*kWCe`sX{hY$fgF_)F7KGWK)A|YLHD0vZ-;&rsaOb@0HCN*XU4IkMN<$>z#^iI%c4=kX9`{3z!?kx7+a_p4_OjxpBN9zYfzkFxd07|&%o z&uYE{ki&ET0m$?x?)z58iLNq%xFl9dh8mT`Rx?J;doECq8g>gqk@GQ5)yj~%dS_>6 zTd+4N_->tGcT(t`5OvD-Bd8M?en*C<{r_7p&IfJBv%z0KjlX_c1V9YLLL9_H8okno z*S^pX`ojPi2!miSqo-m=*QFSk$q2220HaRxxIpI_<|=(q}u5M z3%G$5Y~T(aUzTgM`5CDP12SG4|Kq!PkIJAX!5CM^Z-^WgGEjzun z=uHKBQ-R)8pf?rl^wzS|Tgy&wEjzun?DW>M(_70=ng%gC-j2e(1$YmLO#&HA#M^<_2d%WBq_)vPb8SzlJOzN|)CWk~CLr1hDW)*K`@7v{ly zExl^=x*W?~j%6;#GM8hS%dyPmSmtspb2*l|9LrpeWiH1umou|gW1Y*f&gEF=a;$SX z*0~((T#j`v$2yl|oy)P#+Lc)Ca;$bGR=X0bU5VAMM1w0CGlv*6hZr-5*vY71My+5*tzbs2U`DNAMy+5* ztzbs2U`DNAMy+6M9YFIxLi4|7d>vqX9bkMNV0;~5d>vpkR5Hd6F~$xt#tt#Y4zZh2 z!HinLj9S6y_(CSLtC6C2Hp&?(KeMx3D_8J-CGx+M5m3npsAL3GG6E_Y0hMTSC7N7` zCRd`#m1yZ7(6&mntrBgkMB6ISwo0_E5^bwQ+bYqvO0=yKEvrPUen6|vqE%rj(*7rD#eino^3Ul%gr6Xi6!XQi`UOqA6u)N-3IBil&sJ zDW%NcZ=(rsqX}=L32&nbZ=(rsqX}=L38iQP-*Kjo)WaD1nnt7drHur z611lT?I}TfO3srv&XOL3>Kjo)WaD1nnt7drHur611lT?I}Tf zO3t!r|=nk4qw2Ra1@SV8_KA|ajwhZTd08V-~_YlN%H#cN~eGL1Jf_9lk<3Y9IF@O8*a+BnCtagJl- z9LL74pN$%w;2g)sIgX9p0UPHyHqLQuoa5Ly$FXsaW8)mh#yO6Sa~vDBuWseP-NaKB zH^W4j1e0M3Oodw@AErS8J73dTVHV-}&Sp-X19M>>%!kG70~W&)SPIKvIjn${unJbg z8n_MC!X2;tATuw^+Duv2fqwb=BZ?)!=p2;C0pDb=BZ?)!=p2;C0pD zb=BZ?)u3f3T;u8owCqc?>`S!lOSJ4uwCqd9+IckX|Kg0j8g2XEoUyC@hH9)@HCC+} zt5%0qtHY|*Vb$ueYIRt(I;>h9R;>=JR){iO|)~8Xy+u+&Pk%36||j`M7zj=T<8kjpgZ({p3n<=!%!FoBVZ)(yAPZW z+R>~EG^+y5QY)%TY|>@4}2-KQh@yN534u< zvvd9|No{}y+`tMpa0d^tgC}@F8}Me;9tc4Y3?UE-VGs^&p&dj(Bt$`bh=v46f{xG$ zlA$xCKq_>BH0F|YUNayQvLG9BAQ!qqH|P#MpeOW#-Y^t~!3Y=$qhK_QXD8`Km;eP> zxFU95XET4zfw?db=EDM5j1CpU5?Bh$U^%RSm7q>rR>K;&4c5XPunz8o^{@dp!rib5 zHp4xz1@48da35@g?eG9R2oJ#y*bRH&C3qQLfmdNKyaxMVKfDR-eKOywy|rD;;JcV} zzd`TI*;|WbZ!HpiuVzK?3wvvktO$N#E=yzXAH(P=U__hxqkJq*5zzQDY<~oIMDg1k zJS`%VSh*`5sYXYt(GhlXzzQ~S2M@4=CwM^{@ZsrLU+@Ee2!I%fg*b?ZH1>1)@Y)yp zL4Ozk17Q#hhCCPo!$CdsGT!+na(ojxzKKn(#HLnaQ!BBlmDtouY-%MowGx|JiA}A< zrm7tpbxL>$c|VQ3pGMwKBk!k?_tVI_0a-U7>jq@qfUFykbpx_)K-LY&x&c`?AnOKX z-GHnckaYvHZa~%z$hrYpHz4ZM2ISp{r1M+S_-VMmR0XupQJ9-W~dJg+|4*RH1 z5-wpM&tV_WVIR+7AJ1VQ&tV(SVH?k38_!`I&!Hzj%Mf1MI-f;H&S4SW#Ui{bGo1Ue zjr-A+1}ww7JQeca@3knYe}L3KKznP>(f|{YAi=JmZKWWQH|xO#&T3+IjXT7)mV;dEJrn#qZ-RmjpeAua`3B9l+hRZ zL4Ozk17Q#hhCCPoLrFUfhI2iF*O4#^M#C7q;qmy>H^KzC35~rOCc-3`3{zk#+yeP9 z4GPF>IxD{-?wQTA>T_T&%!B!`fX^0_cQGu1rLYW^!wOglt6(*(f!km$+yU$0PFN2c zU?bcOn_x5C16$x;*b4W-HrNjL^NiF3ygmpI!4B9Bd*CH_8D4=`VK2M}`(Qu33F>*a zgXD1tK7@~0#U6$u@G*P>pTcMGIeYfM#I(Kh}x4@Pl1im^FcLM?Z+&Y~@9$N3D}avW_rjC?2HgE?Iu!ARfK^yR4o!|?8;12;11F;YX@sQ?R%NVL>4AnD+ z>KQ}zjG=nQP(5R)o-tI<7^-Is)iZYLY1Ku>%4x>RX~xQFT2qOh^UNGlD264l6qdnq zSOF_x6|9Cea2u?JJ768$3F~14Y=paE6KsZiU<=#}Tj4&~2HW8Qcn}_f9k3hrz)SEl zyaKPnUU&`m!G3rX)M?03q+yvPoQCee`2+)PQpTXUL*~z9zzc5*%S4wX_-1Z;ZyZXPTqX_wM#qB z(~sxrM>VHkLOXt;KdZRwB-(Kj?Kp{coJ2cL^34GCbdp*H7oh30^?500t^C@Q@(`(s z&R5y8DpLH7e7;65>cmp57eAy1YM=5WJq^fPh+GA>F2xe+9+#9G8rQ0{tc;yE@60&5sYR)lVZ*j; z8CI-*S=%iAKvOBxR4GmIFE_+^Hm|5Gt%;2@iOwtlh2sp1Yl*eN}vW5k1-;!;xLHoeq8KP!LI zjJZAM4Re&fu%Sz0cvA2kaR~`=8#2aa=S}wN*=EjlJtya=qLFn3zeD&}<5MiGu*Rku z*;&1f%#4swcS?=*F@l4lc$j^u z%d_tE$}PBS)aVVSOt|N$(=i3tEqy&3esNC#OyIReEQ}Pv#_5)mO=<9QlN@ zmNn(mETAZQ%g4|H+52?Qo6^!J^xVB??B*HWy3N>ho#X30kETxS*Y~E>M>D6a8$D*- zluRuEMiSrrR=UYmJ66OZ5ETkk^1f!yL2|8Q?KQKPf7{?F|Ftr7y)6fHz4>Oe)~svh zFI~NS?IJ9$&b?MKmIG$5(hmMJ{@vUne?1z0twr)1$1l(HoRFR|p~vpsWAB;Kwd;({ z*Ezn~BO~v*$MLUgmE^LMBXtQ)b~4jH&Nb@P$m_EwLG_fJElz#SACaE#q*rC%l`6dCIhTx&W+ZsRS7d)9n-ob`LOPirt*}1Gs~OCo~W`* zW_e1_%=k&{Ph2a0GT%mOj#qZiOh1L^)tlp$-8187^4%sKkA6?rcF&BTBRkVxi!Qfk zQ~&8UHrg!JuBnbc%LS?}(oVl6DBGkhg+*d160R{)ZMNW`kPt26&;+_a2z#;Px=k~? z^_YF{n5mDZEsr1Ht^35B%$vG*zb<)&;|+P+q`!FOPTzpVD99bqV|j9N=A_=er(|^= z*L{@7{q1glVWMjkTBJqIJy<8^r0INvTD2;|QJ`wl6ko(IGB&4Iy=kVO%y$sgT%~&X zsn)GkQZ@C&xyK>py{fUg!O=T*pkMrF{Hy5>=3%YF+|ziU@vqC1_L#TI+Rd9CKCLpK zwsBEl8Lo9QNyW>ltT$;br}jclwkX{( z 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

Ic zk_CwnWU<^Q`cO>YQZJ$z2RhH(Ek1VTOBCYl6YO-t7=-6%&X8kdAAdLE6z=5rqnwI_ zm>)6UfPMgS0(v&P?r$6w4(rn#G@Px7m4;+aEvJ&{&E-0oDQvaI*-(jzl`0c=7L8{j zDO9Sfl`BdL3#0`FB`S-itV*L%h9I885v(9zsqgc5RGhz$2Ww-8$Rrt=nKkq5M<#j63Bg zzqJ=}{F7Fvp>%E>zsac9%*OHei%(qHioBC}S0(c#P7XuLmXSUYZ!jOw_`{BEl8{Hb zriX)p;d{Dzrjf<1z1p|553U>jWG!9CTmJ*r0=pH4qBz=h}BE_89PbCmAMl4Z$aPiS~kG}Y) zhraWQ`cv2a2O#-H&G#Oo*D0V~`%Ob#}vZNrRQ2bedKS>fY zaQF=XUpX`L7yg;2fG#59$O3qqy+-GjfRh8;mM~1})7b{UR90y&Q)wLRDtnL5P*HB- zv@W*Kv79WBvQmy)<*kt_rL3mchi!q5`kR;+*XZ8xnava4{v;!y!_T%gya86TkE_QVc-Ca)?itp`#CfP{-A<#l}Ufe z&hs04SGC$yD(lm}-dC8XulBq+(aTzmMl0I56kb__b&Pi?LQ_oN0V@ZMR*9f^qPaMe zyd0I7=AAn8&fyG(wTYZQ&5shhv)OK6=ycJmtAu4sN)#;rk|TA~vCt(|uqDL`1yvp7 z*_)ltCcC}KiCWtfC5iGRl6iX)P0(goI`Re)$1G!xqtCFk$bmx(K}Ife?bIoD<*1VmNTmpwZO>Rvc#64NlG3Z-NZk! zX@J}zKFJ@VwTe*dK)M!d^2=%dFG7Bj**tmp)G1iH0G5KE2TMYNVv8J^uowi0KCx+# zY^SZ01!JUljNh|>Y)`^!5GgUPV~HMGz`JG<0<$i;KeP3>$@k9CA-+j3^TtJK+9J=A zn53U?BCE#vJz}!`1b^sjn@I1bLH?*1L!@;IF{ma6WwhqeL;o<2N3;wKfoUniU#qy^a-ReWf zDSg=)6>&0GfMw_wgIvGo{4z$h^0+YDc7|cH#aVbp_od|dyek>(!7!=Z8)&6NbPrL0 z`XGfv2EJa5ezbdzqWGS&a{jEyXicA3 zo7~-Jd8K(Yf8JJSHrH9L^lFi*R5FE1#mLGd7HiaOj?!zdMlM%t=HOJpz}*}#}GxRfk+TW z9&*;|Yl`$G@?w@#n)*vCo7+0ylSvzM^YU|Z3&t1O{BCDZ7&qFgg&tZiw1xGaR9Plf z(66_9vY@xHi0a8w)Q4zjL2s6#p=?-;=<^hv zWRt<)EhScJHUSfJYb#f%l~}p(#!tdetjBBur*+|ZVjUp{F8MpL z7P83(;dct($aj!aWwH;)%mbB?nv;+EE! zPXj(h0&>K{=UEODOg7P9T93UUQ^J6@@rz{)8#Fj_NTOdTXY9qlo5&hnk2B19%8O<4 c^PXGc=+mHYiL0l5xE0QR;JeHRPl`nU3)dO7MgRZ+ literal 0 HcmV?d00001 diff --git a/pages/proactive-chat/fonts/outfit.css b/pages/proactive-chat/fonts/outfit.css new file mode 100644 index 0000000..d997f61 --- /dev/null +++ b/pages/proactive-chat/fonts/outfit.css @@ -0,0 +1,45 @@ +/* + * Outfit 字体族定义。 + * 采用本地静态字体文件而非远程 CDN,确保插件离线可用且首屏加载更稳定。 + * 各个字重拆分声明,浏览器可根据 font-weight 自动匹配最接近的字体文件。 + */ +@font-face { + font-family: 'Outfit'; + font-style: normal; + font-weight: 400; + /* swap 可避免字体尚未加载时页面长时间不可见。 */ + font-display: swap; + src: url(outfit-400.ttf) format('truetype'); +} + +@font-face { + font-family: 'Outfit'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(outfit-500.ttf) format('truetype'); +} + +@font-face { + font-family: 'Outfit'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(outfit-600.ttf) format('truetype'); +} + +@font-face { + font-family: 'Outfit'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(outfit-700.ttf) format('truetype'); +} + +@font-face { + font-family: 'Outfit'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(outfit-800.ttf) format('truetype'); +} diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 1c9a7e9..32566a3 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -1,390 +1,409 @@ - + - - 主动消息 - + })(); + -

- + +
+ +
主动消息管理端
+
正在初始化...
+ +
+
+
+
+ + +
+ + - const $ = (id) => document.getElementById(id); + + + + diff --git a/pages/proactive-chat/js/app.jsx b/pages/proactive-chat/js/app.jsx new file mode 100644 index 0000000..2223087 --- /dev/null +++ b/pages/proactive-chat/js/app.jsx @@ -0,0 +1,370 @@ +/** + * 文件职责:前端应用入口,负责首屏数据加载、实时同步、视图装配与根节点挂载。 + */ + +function App() { + const { state, dispatch } = useAppContext(); + const api = useApi(); + const themeInitializedRef = React.useRef(false); + const mainContentRef = React.useRef(null); + const isRestoringRef = React.useRef(false); + + const getScrollKey = React.useCallback( + (view = state.currentView) => `astrbot_scroll_${view}`, + [state.currentView] + ); + + const loadAll = React.useCallback(async () => { + // 首次进入页面或手动全量刷新时,统一拉取首页所需的全部关键数据。 + dispatch({ type: 'SET_LOADING', payload: true }); + dispatch({ type: 'SET_ERROR', payload: '' }); + try { + // 并发请求状态、会话、配置、任务与通知,减少首屏等待时间。 + const [statusRes, sessionsRes, configRes, jobsRes, notificationsRes] = await Promise.all([ + api.getStatus(), + api.listSessions(), + api.getConfig(), + api.listJobs(), + api.getNotifications(), + ]); + dispatch({ type: 'SET_STATUS', payload: statusRes }); + dispatch({ type: 'SET_SESSIONS', payload: sessionsRes.sessions || [] }); + dispatch({ type: 'SET_CONFIG', payload: configRes || null }); + dispatch({ type: 'SET_JOBS', payload: jobsRes.jobs || [] }); + dispatch({ type: 'SET_NOTIFICATIONS', payload: notificationsRes.items || [] }); + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: notificationsRes.meta || null }); + } catch (e) { + // 将后端错误或网络错误统一透传到顶部错误卡片中展示。 + dispatch({ type: 'SET_ERROR', payload: e.message || '加载失败' }); + } finally { + dispatch({ type: 'SET_LOADING', payload: false }); + } + }, [api, dispatch]); + + const loadRealtime = React.useCallback(async () => { + try { + // 轻量轮询只更新变化频率最高的状态与任务列表,避免每秒都重载完整配置。 + const [statusRes, jobsRes] = await Promise.all([ + api.getStatus(), + api.listJobs(), + ]); + dispatch({ type: 'SET_STATUS', payload: statusRes }); + dispatch({ type: 'SET_JOBS', payload: jobsRes.jobs || [] }); + } catch (e) { + // 兜底轮询失败不打断主界面;实时信息短暂过期比整页报错更友好。 + } + }, [api, dispatch]); + + React.useEffect(() => { + // 若入口页仍在等待鉴权预检查,则挂起首次加载,等 auth-ready 事件触发后再开始。 + if (window.__PROACTIVE_AUTH_PENDING) { + const onReady = () => loadAll(); + window.addEventListener('auth-ready', onReady); + return () => window.removeEventListener('auth-ready', onReady); + } + loadAll(); + }, [loadAll]); + + useWebSocket( + React.useCallback( + (data) => { + // WebSocket 推送只负责把增量/全量快照写回全局状态,不在这里做业务判断。 + if (data.status) dispatch({ type: 'SET_STATUS', payload: data.status }); + if (Array.isArray(data.jobs)) dispatch({ type: 'SET_JOBS', payload: data.jobs }); + if (data.notifications) { + dispatch({ type: 'SET_NOTIFICATIONS', payload: data.notifications.items || [] }); + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: data.notifications.meta || null }); + } + if (data.notificationsMeta) { + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: data.notificationsMeta || null }); + } + if (Array.isArray(data.sessions)) { + // 后端可能返回字符串数组,也可能返回对象数组,这里统一标准化结构。 + const mapped = data.sessions.map((s) => + typeof s === 'string' ? { session: s, has_override: false } : s + ); + dispatch({ type: 'SET_SESSIONS', payload: mapped }); + } + }, + [dispatch] + ) + ); + + React.useEffect(() => { + if (window.__PROACTIVE_AUTH_PENDING) return; + + let disposed = false; + const tick = async () => { + if (disposed) return; + // 页面隐藏时暂停轮询,减少后台标签页的无意义请求。 + if (document.visibilityState === 'hidden') return; + await loadRealtime(); + }; + + // 每秒一次兜底轮询;即便 WebSocket 短暂断开,界面也能维持基本新鲜度。 + const timer = setInterval(tick, 1000); + return () => { + disposed = true; + clearInterval(timer); + }; + }, [loadRealtime]); + + React.useEffect(() => { + if (window.__PROACTIVE_AUTH_PENDING) return; + // 兼容旧版启动节点:一旦状态已返回,就主动隐藏遗留的 boot 元素。 + const boot = document.getElementById('boot'); + if (boot) boot.style.display = 'none'; + }, [state.status]); + + // 切换主视图时恢复对应滚动位置。 + React.useLayoutEffect(() => { + const el = mainContentRef.current; + if (!el) return; + + const key = getScrollKey(); + const savedPos = parseInt(localStorage.getItem(key) || '0', 10); + + if (savedPos > 0) { + isRestoringRef.current = true; + const applyRestore = () => { + if (!mainContentRef.current) return; + const maxScrollTop = Math.max(mainContentRef.current.scrollHeight - mainContentRef.current.clientHeight, 0); + mainContentRef.current.scrollTop = Math.min(savedPos, maxScrollTop); + }; + + applyRestore(); + requestAnimationFrame(() => { + if (!isRestoringRef.current) return; + applyRestore(); + }); + + const timer = window.setTimeout(() => { + isRestoringRef.current = false; + }, 320); + + return () => { + window.clearTimeout(timer); + isRestoringRef.current = false; + }; + } + + el.scrollTop = 0; + isRestoringRef.current = false; + }, [state.currentView]); + + // 记录主内容区滚动位置,并在用户主动交互时终止恢复锁。 + React.useEffect(() => { + const el = mainContentRef.current; + if (!el) return; + + const stopRestoring = () => { + isRestoringRef.current = false; + }; + + let timeout = 0; + const handleScroll = () => { + if (isRestoringRef.current) { + const key = getScrollKey(); + const savedPos = parseInt(localStorage.getItem(key) || '0', 10); + if (savedPos > 0 && Math.abs(el.scrollTop - savedPos) > 100) { + isRestoringRef.current = false; + } + } + + window.clearTimeout(timeout); + timeout = window.setTimeout(() => { + const key = getScrollKey(); + localStorage.setItem(key, String(el.scrollTop)); + }, 120); + }; + + el.addEventListener('scroll', handleScroll); + el.addEventListener('wheel', stopRestoring, { passive: true }); + el.addEventListener('touchstart', stopRestoring, { passive: true }); + el.addEventListener('mousedown', stopRestoring); + + return () => { + el.removeEventListener('scroll', handleScroll); + el.removeEventListener('wheel', stopRestoring); + el.removeEventListener('touchstart', stopRestoring); + el.removeEventListener('mousedown', stopRestoring); + window.clearTimeout(timeout); + }; + }, [getScrollKey, state.currentView]); + + const renderView = () => { + // 当前仅暴露三个主视图;未识别视图时回退到状态页,避免出现空白主区域。 + switch (state.currentView) { + case 'status': + return ; + case 'config': + return ; + case 'tasks': + return ; + case 'notifications': + return ; + case 'docs': + return ; + default: + return ; + } + }; + + React.useEffect(() => { + // 将暗色模式类名直接挂载到 html / body,便于纯 CSS 全局变量一起切换。 + const root = document.documentElement; + const body = document.body; + + if (state.theme === 'dark') { + root.classList.add('theme-dark'); + body.classList.add('dark-theme'); + } else { + root.classList.remove('theme-dark'); + body.classList.remove('dark-theme'); + } + + // 首次挂载不加过渡,避免首屏闪动;后续主题切换时才短暂打开统一过渡。 + if (!themeInitializedRef.current) { + themeInitializedRef.current = true; + return; + } + + root.classList.add('theme-transitioning'); + + const computedStyle = window.getComputedStyle(root); + const themeTransitionVar = computedStyle + .getPropertyValue('--theme-transition-duration') + .trim(); + const interactiveTransitionVar = computedStyle + .getPropertyValue('--interactive-transition-duration') + .trim(); + + let themeTransitionDuration = Number.parseFloat(themeTransitionVar); + let interactiveTransitionDuration = Number.parseFloat(interactiveTransitionVar); + + if (Number.isNaN(themeTransitionDuration)) { + themeTransitionDuration = 220; + } + if (Number.isNaN(interactiveTransitionDuration)) { + interactiveTransitionDuration = themeTransitionDuration; + } + + const transitionDuration = Math.max( + themeTransitionDuration, + interactiveTransitionDuration + ); + + const timer = window.setTimeout(() => { + root.classList.remove('theme-transitioning'); + }, transitionDuration); + + return () => { + window.clearTimeout(timer); + root.classList.remove('theme-transitioning'); + }; + }, [state.theme]); + + return ( +
+ dispatch({ type: 'SET_VIEW', payload: view })} + /> +
+
+
+ {/* 顶部错误条统一展示最近一次加载 / 操作失败的消息。 */} + {state.error ?
错误:{state.error}
: null} + {renderView()} +
+
+
+ ); +} + +function ThemedAppShell() { + const { state } = useAppContext(); + + const muiTheme = React.useMemo(() => { + const isDark = state.theme === 'dark'; + + return MaterialUI.createTheme({ + palette: isDark + ? { + mode: 'dark', + primary: { + main: '#D0BCFF', + }, + secondary: { + main: '#CCC2DC', + }, + background: { + default: '#141218', + paper: '#1C1B1F', + }, + text: { + primary: '#E6E1E5', + secondary: '#CAC4D0', + }, + divider: 'rgba(208, 188, 255, 0.16)', + } + : { + mode: 'light', + primary: { + main: '#6750A4', + }, + secondary: { + main: '#625B71', + }, + background: { + default: '#FEF7FF', + paper: '#FFFFFF', + }, + text: { + primary: '#1C1B1F', + secondary: '#49454F', + }, + divider: 'rgba(103, 80, 164, 0.16)', + }, + typography: { + fontFamily: '"Roboto", "Noto Sans SC", "Helvetica", "Arial", sans-serif', + } + }); + }, [state.theme]); + + return ( + + + + ); +} + +function AuthWrapper() { + // ready 初值根据启动页鉴权状态决定,避免无鉴权场景下多等一次事件。 + const [ready, setReady] = React.useState(() => !window.__PROACTIVE_AUTH_PENDING); + + React.useEffect(() => { + if (ready) return; + // 等待入口页完成鉴权预检查后,再真正挂载 React 应用。 + const onReady = () => setReady(true); + window.addEventListener('auth-ready', onReady); + return () => window.removeEventListener('auth-ready', onReady); + }, [ready]); + + if (!ready) return null; + + return ( + + + + ); +} + +if (!window.__PROACTIVE_WEBUI_INITIALIZED) { + // 防止脚本重复执行时反复 createRoot,避免 React 在同一节点重复挂载。 + window.__PROACTIVE_WEBUI_INITIALIZED = true; + const root = ReactDOM.createRoot(document.getElementById('root')); + root.render(); +} + diff --git a/pages/proactive-chat/js/components/config/ConfigRenderer.jsx b/pages/proactive-chat/js/components/config/ConfigRenderer.jsx new file mode 100644 index 0000000..e78f15c --- /dev/null +++ b/pages/proactive-chat/js/components/config/ConfigRenderer.jsx @@ -0,0 +1,1289 @@ +(() => { +/** + * 文件职责:配置渲染核心组件,基于 Schema 动态生成表单并处理保存/会话差异配置逻辑。 + */ + + const { Box, TextField, Switch, Typography, Button, Accordion, AccordionSummary, AccordionDetails, Paper, Chip, Slider, MenuItem, ToggleButton, ToggleButtonGroup } = MaterialUI; + const { useState, useEffect, useRef, useLayoutEffect } = React; + +// 递归扫描 Schema 中所有 object 节点,生成“全部展开 / 收起”功能需要的路径列表。 +const getAllExpandablePaths = (schema, prefix = '') => { + let paths = []; + Object.entries(schema).forEach(([key, value]) => { + const currentPath = prefix ? `${prefix}.${key}` : key; + if (value.type === 'object' && value.items) { + paths.push(currentPath); + paths = paths.concat(getAllExpandablePaths(value.items, currentPath)); + } + }); + return paths; +}; + +// 为常见配置组与字段定义 emoji 图标,提升配置页的可扫读性。 +const CONFIG_ICONS = { + friend_settings: '👤', + group_settings: '👥', + web_admin: '🌐', + auto_trigger_settings: '🤖', + schedule_settings: '🕒', + tts_settings: '🔊', + segmented_reply_settings: '🔪', + enable: '✅', + session_list: '📋', + proactive_prompt: '🧠', + group_idle_trigger_minutes: '⏳', + enable_auto_trigger: '✅', + auto_trigger_after_minutes: '⏱️', + min_interval_minutes: '⏱️', + max_interval_minutes: '⏱️', + quiet_hours: '🌙', + max_unanswered_times: '🛑', + enable_tts: '💬', + always_send_text: '🔤', + words_count_threshold: '📏', + split_mode: 'Ⓜ️', + regex: '🧩', + split_words: '📝', + interval_method: '⏱️', + interval: '🎲', + log_base: '📈', + enabled: '✅', + host: '📡', + port: '🔌', + password: '🔑', + session_name: '🏷️' +}; + +// 某些 Schema 描述文本自身已带 emoji;这里剥离前缀,避免界面上图标重复出现。 +const LEADING_EMOJI_REGEX = /^\s*(?:\p{Extended_Pictographic}(?:\uFE0F|\u200D\p{Extended_Pictographic})*)\s*/u; + +const stripLeadingEmoji = (text) => { + if (typeof text !== 'string') return text; + return text.replace(LEADING_EMOJI_REGEX, '').trimStart(); +}; + +/** + * 配置字段渲染组件 + * 根据后端返回的 Schema 动态渲染不同类型的输入控件 + */ +function ConfigField({ fieldKey, schema, value, onChange, depth = 0, path = '', expandedKeys = [], onToggleExpand = () => {} }) { + // hidden 字段完全不渲染,通常用于后端保留字段或不希望前端直接编辑的项。 + if (schema.hidden) return null; + + // 对输入控件使用一层本地态,便于处理 Slider / 文本输入中的过渡值。 + const [localValue, setLocalValue] = useState(value); + + useEffect(() => { + // 当外部配置值变化(如切换会话 / 回滚 / 重新加载)时,同步重置局部编辑态。 + setLocalValue(value); + }, [value]); + + const handleChange = (newValue) => { + // 所有字段都通过统一出口把最新值同时写入本地态与父级配置对象。 + setLocalValue(newValue); + onChange(newValue); + }; + + const rawTitle = schema.description || fieldKey; + const titleText = stripLeadingEmoji(rawTitle) || rawTitle; + const icon = CONFIG_ICONS[fieldKey] || '⚙️'; + const currentPath = path ? `${path}.${fieldKey}` : fieldKey; + + // object + items 表示一个可折叠的配置分组,内部再递归渲染子字段。 + if (schema.type === 'object' && schema.items) { + const isExpanded = expandedKeys.includes(currentPath); + + return ( + + onToggleExpand(currentPath)} + elevation={0} + sx={{ + '&:before': { display: 'none' }, + bgcolor: 'transparent' + }} + > + + {isExpanded ? '▲' : '▼'} + + } + sx={{ + px: 2, + py: 1, + minHeight: '48px !important', + bgcolor: depth === 0 ? 'rgba(0, 90, 193, 0.06)' : depth === 1 ? 'rgba(0, 90, 193, 0.02)' : 'transparent', + '&:hover': { + bgcolor: depth === 0 ? 'rgba(0, 90, 193, 0.1)' : 'rgba(0, 90, 193, 0.05)' + }, + transition: 'all 0.2s ease', + '& .MuiAccordionSummary-expandIconWrapper': { + transform: 'none !important' + }, + '& .MuiAccordionSummary-expandIconWrapper.Mui-expanded': { + transform: 'none !important' + } + }} + > + + {icon} + + 0 ? 'primary.dark' : 'text.primary', + fontSize: depth === 0 ? '0.95rem' : '0.875rem' + }} + > + {titleText} + + {schema.hint && depth === 0 && ( + + {schema.hint} + + )} + + {depth === 0 && ( + + )} + {depth > 0 && ( + + {isExpanded ? '收起' : '展开'} + + )} + + + + + {Object.entries(schema.items).map(([key, subSchema]) => ( + handleChange({ ...localValue, [key]: newValue })} + depth={depth + 1} + path={currentPath} + expandedKeys={expandedKeys} + onToggleExpand={onToggleExpand} + /> + ))} + + + + + ); + } + + // 通用左侧描述区,统一标题与 hint 的排版逻辑,减少各字段类型重复 JSX。 + const DescriptionSection = ({ flex = 8 }) => ( + + + {schema.description || fieldKey} + + {schema.hint && ( + + {schema.hint} + + )} + + ); + + // 布尔配置映射为开关组件,适合表示 enable / always_send_text 这类 on-off 项。 + if (schema.type === 'bool' || schema.type === 'boolean') { + return ( + + + + handleChange(e.target.checked)} + sx={{ + width: 52, + height: 32, + padding: 0, + '& .MuiSwitch-switchBase': { + padding: 0, + margin: '4px', + transitionDuration: '300ms', + '&.Mui-checked': { + transform: 'translateX(20px)', + color: '#fff', + '& + .MuiSwitch-track': { + backgroundColor: 'primary.main', + opacity: 1, + border: 0, + }, + }, + }, + '& .MuiSwitch-thumb': { + boxSizing: 'border-box', + width: 24, + height: 24, + boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)', + }, + '& .MuiSwitch-track': { + borderRadius: 16, + backgroundColor: 'rgba(0, 0, 0, 0.12)', + opacity: 1, + transition: 'background-color 300ms', + }, + }} + /> + + + ); + } + + // 数值字段支持“滑杆 + 数字输入框”的双通道编辑,兼顾直观性与精确输入。 + if (['integer', 'int', 'number', 'float', 'double'].includes(schema.type)) { + const sliderConfig = schema.slider; + const hasRange = sliderConfig !== undefined; + // 如果有范围,展示 Slider,布局 5:3:2;否则回退到 8:2 + const descFlex = hasRange ? 5 : 8; + + const min = sliderConfig?.min ?? schema.minimum; + const max = sliderConfig?.max ?? schema.maximum; + const step = sliderConfig?.step ?? (schema.type === 'integer' || schema.type === 'int' ? 1 : 0.1); + const fallbackNumber = schema.default ?? min ?? 0; + const parsedLocalNumber = Number(localValue); + const sliderValueRaw = Number.isFinite(parsedLocalNumber) ? parsedLocalNumber : Number(fallbackNumber); + const sliderValue = Math.min( + max ?? sliderValueRaw, + Math.max(min ?? sliderValueRaw, sliderValueRaw) + ); + + return ( + + + + {hasRange && ( + + setLocalValue(newValue)} + onChangeCommitted={(e, newValue) => handleChange(newValue)} + min={min} + max={max} + step={step} + size="small" + valueLabelDisplay="auto" + sx={{ color: 'primary.main' }} + /> + + )} + + + { + const v = e.target.value; + // 允许输入空值或负号 + if (v === '' || v === '-') { + setLocalValue(v); + return; + } + const num = schema.type === 'integer' || schema.type === 'int' ? parseInt(v) : parseFloat(v); + handleChange(isNaN(num) ? 0 : num); + }} + inputProps={{ + min: min, + max: max, + step: step + }} + variant="outlined" + sx={{ + '& .MuiOutlinedInput-root': { + borderRadius: 1.5, + bgcolor: 'background.paper', + '&.Mui-focused > fieldset': { borderColor: 'primary.main' } + } + }} + /> + + + ); + } + + // 列表字段使用“每行一项”的多行文本输入,适合编辑 session_list / split_words 等数组数据。 + if (schema.type === 'list' || schema.type === 'array') { + return ( + + + + {schema.description || fieldKey} + + {schema.hint && ( + + {schema.hint} + + )} + + handleChange(e.target.value.split('\n'))} + placeholder="每行一项" + variant="outlined" + sx={{ + '& .MuiOutlinedInput-root': { + borderRadius: 1.5, + bgcolor: 'background.paper', + '&.Mui-focused > fieldset': { borderColor: 'primary.main' } + } + }} + /> + + ); + } + + // 若 Schema 给出了 options,则优先渲染为下拉选择框,而不是自由文本输入。 + if (schema.options && Array.isArray(schema.options)) { + const optionLabels = Array.isArray(schema.labels) ? schema.labels : []; + const optionLabelMap = new Map( + schema.options.map((option, index) => [option, optionLabels[index] || option]) + ); + const currentValue = localValue !== undefined ? localValue : (schema.default || ''); + + return ( + + + + handleChange(e.target.value)} + variant="outlined" + SelectProps={{ + renderValue: (selected) => optionLabelMap.get(selected) || selected, + MenuProps: { + PaperProps: { + sx: { + borderRadius: 1.5, + mt: 0.5, + boxShadow: '0 4px 16px rgba(0,0,0,0.1)' + } + } + } + }} + sx={{ + '& .MuiOutlinedInput-root': { + borderRadius: 1.5, + bgcolor: 'background.paper', + '&.Mui-focused > fieldset': { borderColor: 'primary.main' } + }, + '& .MuiSelect-select': { + textAlign: 'center', + pr: '32px !important' // 给箭头图标留出空间,确保视觉居中 + } + }} + > + {schema.options.map((option) => ( + + {optionLabelMap.get(option) || option} + + ))} + + + + ); + } + + // 其余情况按字符串处理,并依据字段语义决定是否切换为多行文本框。 + const shouldBeMultiline = + schema.type === 'text' || + (schema.hint && schema.hint.length > 100) || + fieldKey.includes('prompt') || + fieldKey.includes('format') || + fieldKey.includes('template') || + fieldKey.includes('pattern') || + fieldKey.includes('message') || + fieldKey.includes('body') || + fieldKey.includes('content'); + const multilineRows = + fieldKey.includes('prompt') || schema.type === 'text' + ? 8 + : 4; + + // 如果是长文本,保持上下布局;否则使用 8:2 布局 + if (shouldBeMultiline) { + return ( + + + + {schema.description || fieldKey} + + {schema.hint && ( + + {schema.hint} + + )} + + handleChange(e.target.value)} + placeholder={fieldKey.includes('prompt') ? '请输入该会话/全局场景下的 Prompt 内容…' : ''} + variant="outlined" + sx={{ + '& .MuiOutlinedInput-root': { + alignItems: 'flex-start', + borderRadius: 2, + bgcolor: 'background.paper', + fontFamily: 'inherit', + lineHeight: 1.65, + '& textarea': { + lineHeight: 1.7, + fontSize: '0.95rem', + resize: 'vertical' + }, + '&.Mui-focused > fieldset': { borderColor: 'primary.main' } + } + }} + /> + + ); + } + + return ( + + + + handleChange(e.target.value)} + variant="outlined" + sx={{ + '& .MuiOutlinedInput-root': { + borderRadius: 1.5, + bgcolor: 'background.paper', + '&.Mui-focused > fieldset': { borderColor: 'primary.main' } + } + }} + /> + + + ); +} + +// 根据会话 ID 的消息类型片段判断是私聊还是群聊,用于筛选对应的配置 Schema。 +function detectSessionType(sessionId) { + const raw = String(sessionId || ''); + if (raw.includes(':GroupMessage:') || raw.includes(':GuildMessage:')) return 'group'; + if (raw.includes(':FriendMessage:') || raw.includes(':PrivateMessage:')) return 'friend'; + return 'friend'; +} + +// 会话差异配置页并不暴露完整全局 Schema,而是按会话类型抽取可编辑字段子集。 +// 因此像 web_admin、notification_settings 这类纯全局配置块不会出现在会话差异编辑视图中。 +function getSessionSchemaEntries(schema, sessionType) { + const rootKey = sessionType === 'group' ? 'group_settings' : 'friend_settings'; + const rootItems = schema?.[rootKey]?.items || {}; + const orderedKeys = [ + 'auto_trigger_settings', + 'group_idle_trigger_minutes', + 'proactive_prompt', + 'context_settings', + 'schedule_settings', + 'tts_settings', + 'segmented_reply_settings', + ]; + const hiddenKeys = new Set(['enable', 'session_list']); + + const entries = []; + const sessionNameSchema = rootItems.session_name || { + type: 'string', + default: '', + description: '会话备注名', + hint: '用于日志和管理端展示。为空时将回退显示 UMO。', + }; + entries.push(['session_name', sessionNameSchema]); + + orderedKeys + .filter((key) => !hiddenKeys.has(key) && rootItems[key]) + .forEach((key) => { + entries.push([key, rootItems[key]]); + }); + + return entries; +} + +/** + * 主配置渲染器组件 + * 负责加载、显示和保存插件的完整配置 + * 包含了配置的获取、状态管理和保存逻辑 + */ +function ConfigRenderer() { + const { state } = useAppContext(); // 获取全局状态 + // schema: 后端返回的配置结构定义;config: 当前正在编辑的配置草稿。 + const [schema, setSchema] = useState(null); + const [config, setConfig] = useState(null); + const [expandedKeys, setExpandedKeys] = useState([]); + const [loading, setLoading] = useState(true); + const [saving, setSaving] = useState(false); + const [saveFeedback, setSaveFeedback] = useState({ type: '', text: '' }); + + // 多会话模式相关状态:global 表示编辑全局配置,session 表示编辑单会话差异配置。 + const [mode, setMode] = useState('global'); // global | session + const [sessions, setSessions] = useState([]); + const [selectedSession, setSelectedSession] = useState(''); + const [sessionLoading, setSessionLoading] = useState(false); + const [sessionConfigState, setSessionConfigState] = useState({ baseAvailable: true, message: '' }); + + const api = useApi(); + const scrollContainerRef = useRef(null); + const loadConfigSeqRef = useRef(0); + const isDirtyRef = useRef(false); // 标记用户是否有未保存的修改 + + // 动态缓存 key:不同模式 / 不同会话使用不同 localStorage 键,避免草稿串线。 + const getDraftKey = (currentMode = mode, currentSession = selectedSession) => { + if (currentMode === 'session' && currentSession) { + return `astrbot_plugin_proactive_draft_config_session_${currentSession}`; + } + return 'astrbot_plugin_proactive_draft_config_global'; + }; + + const getExpandedKey = (currentMode = mode, currentSession = selectedSession) => { + if (currentMode === 'session' && currentSession) { + return `astrbot_plugin_proactive_expanded_keys_session_${currentSession}`; + } + return 'astrbot_plugin_proactive_expanded_keys_global'; + }; + + const getScrollKey = (currentMode = mode, currentSession = selectedSession) => { + if (currentMode === 'session' && currentSession) { + return `astrbot_scroll_config_list_session_${currentSession}`; + } + return 'astrbot_scroll_config_list_global'; + }; + + useEffect(() => { + // 首次进入页面时只初始化一次:加载 Schema,并准备会话列表。 + initializePage(); + }, []); + + useEffect(() => { + if (!schema) return; + // 切换模式或切换会话时,需要重新从服务端拉取当前上下文下的配置快照。 + setSaveFeedback({ type: '', text: '' }); + loadConfig(mode, selectedSession); + }, [mode, selectedSession]); + + // 使用 useLayoutEffect 恢复滚动位置,尽量让用户在绘制完成前回到上次浏览位置。 + useLayoutEffect(() => { + if (!loading && scrollContainerRef.current) { + const savedPos = localStorage.getItem(getScrollKey()); + if (savedPos) { + // 尝试恢复 + const pos = parseInt(savedPos, 10); + if (pos > 0) { + scrollContainerRef.current.scrollTop = pos; + // 双重保障 + requestAnimationFrame(() => { + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTop = pos; + } + }); + } + } + } + }, [loading, mode, selectedSession]); + + // 监听滚动并节流写入 localStorage,便于大配置表单下次打开时恢复阅读位置。 + useEffect(() => { + const el = scrollContainerRef.current; + if (!el || loading) return; + + const handleScroll = () => { + localStorage.setItem(getScrollKey(), el.scrollTop); + }; + + let timeout; + const debouncedScroll = () => { + clearTimeout(timeout); + timeout = setTimeout(handleScroll, 100); + }; + + el.addEventListener('scroll', debouncedScroll); + return () => { + el.removeEventListener('scroll', debouncedScroll); + clearTimeout(timeout); + }; + }, [loading, mode, selectedSession]); + + // 自动保存草稿,但只有发生本地修改时才写入,避免把服务端新值反向覆盖成本地草稿。 + useEffect(() => { + if (config && isDirtyRef.current) { + localStorage.setItem(getDraftKey(), JSON.stringify(config)); + } + }, [config, mode, selectedSession]); + + // 记忆折叠 / 展开状态,让用户在大型 Schema 中保持稳定的浏览结构。 + useEffect(() => { + if (schema) { // 确保 schema 加载后再保存,避免初始化时的空状态覆盖 + localStorage.setItem(getExpandedKey(), JSON.stringify(expandedKeys)); + } + }, [expandedKeys, schema, mode, selectedSession]); + + const initializePage = async () => { + setLoading(true); + try { + // 初始化时优先拿 Schema;没有 Schema 就无法安全地动态构建表单。 + const schemaData = await api.getConfigSchema(); + setSchema(schemaData); + + await loadSessions(); + } catch (e) { + console.error('初始化配置页失败', e); + // showToast('初始化配置页失败,请检查控制台', 'error'); + } finally { + setLoading(false); + } + }; + + const loadSessions = async () => { + try { + // 会话列表用于会话差异配置模式下的下拉框、状态提示与覆写标记展示。 + const result = await api.listSessions(); + const sessionList = result?.sessions || []; + + // 确保 sessionList 中的每一项都是包含 session, has_override 的对象形式 + const normalizedSessions = sessionList.map(item => + typeof item === 'string' ? { session: item, has_override: false } : item + ); + + setSessions(normalizedSessions); + + // 默认选中第一个会话 + if (!selectedSession && normalizedSessions.length > 0) { + setSelectedSession(normalizedSessions[0].session); + } + } catch (e) { + console.error('加载会话列表失败', e); + // showToast('加载会话列表失败,请检查控制台', 'error'); + } + }; + + const loadConfig = async (currentMode = mode, currentSession = selectedSession) => { + // 所有配置加载都以当前 Schema 为前提,避免出现“无结构定义的盲编辑”。 + if (!schema) return; + + // 递增请求序号,防止快速切换会话时后返回的旧请求覆盖新状态。 + const requestSeq = ++loadConfigSeqRef.current; + setLoading(true); + try { + let configData = null; + + if (currentMode === 'session') { + if (!currentSession) { + if (requestSeq === loadConfigSeqRef.current) { + setConfig(null); + setSessionConfigState({ baseAvailable: false, message: '请先选择一个会话' }); + } + return; + } + setSessionLoading(true); + const sessionData = await api.getSessionConfig(currentSession); + const hasBaseConfig = Boolean(sessionData?.base); + setSessionConfigState( + hasBaseConfig + ? { baseAvailable: true, message: '' } + : { baseAvailable: false, message: '该会话尚未命中对应类型的全局 session_list,因此暂时无法保存会话差异配置。请先在对应的全局配置中加入该会话。' } + ); + configData = sessionData?.effective || sessionData?.override || {}; + } else { + setSessionConfigState({ baseAvailable: true, message: '' }); + configData = await api.getConfig(); + } + + // 如果不是最新请求,丢弃过期响应,避免会话串改 + if (requestSeq !== loadConfigSeqRef.current) { + return; + } + + // 1. 配置加载以服务端返回值为准 + // 旧版本这里会无条件恢复本地草稿,导致真实已保存配置被默认草稿覆盖 + // 因此改为始终优先使用服务端配置;草稿仅在当前编辑会话中用于暂存,不参与初始化覆盖 + const finalConfig = configData; + isDirtyRef.current = false; + + // 2. 处理展开状态记忆 + const cachedExpandedStr = localStorage.getItem(getExpandedKey(currentMode, currentSession)); + let finalExpandedKeys = []; + if (cachedExpandedStr) { + try { + finalExpandedKeys = JSON.parse(cachedExpandedStr); + } catch (e) { + console.error('解析展开状态失败', e); + } + } else { + // 默认全展开 + finalExpandedKeys = getAllExpandablePaths(schema); + } + + setConfig(finalConfig); + setExpandedKeys(finalExpandedKeys); + } catch (e) { + if (requestSeq === loadConfigSeqRef.current) { + console.error('加载配置失败', e); + // showToast('加载配置失败,请检查控制台', 'error'); + setConfig(null); + } + } finally { + if (requestSeq === loadConfigSeqRef.current) { + setSessionLoading(false); + setLoading(false); + } + } + }; + + const handleToggleExpand = (path) => { + // 单个折叠面板的展开态切换逻辑集中处理,便于后续扩展批量控制。 + setExpandedKeys(prev => { + if (prev.includes(path)) { + return prev.filter(p => p !== path); + } else { + return [...prev, path]; + } + }); + }; + + const handleToggleAll = () => { + // 会话模式只对会话可编辑字段做“全部展开”,不污染全局 Schema 的路径集合。 + const expandableSchema = mode === 'session' + ? Object.fromEntries(sessionSchemaEntries) + : schema; + if (expandedKeys.length > 0) { + setExpandedKeys([]); // 全部收起 + } else { + setExpandedKeys(getAllExpandablePaths(expandableSchema)); // 全部展开 + } + }; + + const cleanConfig = (obj) => { + // 保存前递归清理配置:数组中的字符串去首尾空白,并去掉空项,减小脏数据概率。 + if (Array.isArray(obj)) { + return obj + .map(item => typeof item === 'string' ? item.trim() : item) + .filter(item => item !== ''); + } + if (obj && typeof obj === 'object') { + const newObj = {}; + for (const key in obj) { + newObj[key] = cleanConfig(obj[key]); + } + return newObj; + } + return obj; + }; + + const handleSave = async () => { + // 保存逻辑按 mode 分叉:全局配置直接写配置块,会话模式则保存差异配置。 + setSaving(true); + try { + const cleanedConfig = cleanConfig(config); + const currentMode = mode; + const currentSession = selectedSession; + + if (currentMode === 'session') { + if (!currentSession) { + // showToast('请先选择会话', 'warning'); + return; + } + const response = await api.updateSessionConfig(currentSession, { + mode: 'effective', + effective: cleanedConfig + }); + isDirtyRef.current = false; + localStorage.removeItem(getDraftKey(currentMode, currentSession)); + setConfig(response?.effective || cleanedConfig); + setSaveFeedback({ type: 'success', text: '会话差异配置已保存' }); + await loadSessions(); + // 会话模式保存后强制回读服务端 effective,确保会话隔离与覆写状态显示正确 + await loadConfig(currentMode, currentSession); + } else { + const payload = { + friend_settings: cleanedConfig.friend_settings, + group_settings: cleanedConfig.group_settings, + web_admin: cleanedConfig.web_admin, + }; + await api.updateConfig(payload); + isDirtyRef.current = false; + setConfig(cleanedConfig); // 全局模式可直接更新界面 + localStorage.removeItem(getDraftKey(currentMode, currentSession)); // 已保存,清除草稿 + setSaveFeedback({ type: 'success', text: '全局配置已保存' }); + } + } catch (e) { + console.error('保存配置失败', e); + setSaveFeedback({ type: 'error', text: e?.message || '保存配置失败,请检查后端返回信息' }); + window.alert(e?.message || '保存配置失败,请检查后端返回信息'); + } finally { + setSaving(false); + } + }; + + const handleResetOverride = async () => { + // 仅会话模式下可用:清空后该会话重新完全继承全局配置。 + if (!selectedSession) { + // showToast('请先选择会话', 'warning'); + return; + } + + const ok = confirm('确定要清空该会话的差异配置吗?\n\n清空后将完全继承全局默认配置。'); + if (!ok) return; + + setSaving(true); + try { + await api.resetSessionConfig(selectedSession); + localStorage.removeItem(getDraftKey(mode, selectedSession)); + setSaveFeedback({ type: 'success', text: '会话差异配置已清空' }); + await loadSessions(); + await loadConfig(mode, selectedSession); + } catch (e) { + console.error('清空会话差异配置失败', e); + setSaveFeedback({ type: 'error', text: e?.message || '清空会话差异配置失败' }); + window.alert(e?.message || '清空会话差异配置失败'); + } finally { + setSaving(false); + } + }; + + if (loading) { + return ( + + ⚙️ + 加载配置中... + + ); + } + + if (!schema || !config) { + return ( + + + 无法加载配置 + + ); + } + + // 以下派生变量统一在渲染前计算,避免 JSX 中出现过多内联判断,降低维护复杂度。 + const selectedSessionMeta = sessions.find(s => (s.session || s) === selectedSession); + const hasOverride = selectedSessionMeta?.has_override; + const currentSessionType = detectSessionType(selectedSession); + const sessionSchemaEntries = mode === 'session' ? getSessionSchemaEntries(schema, currentSessionType) : []; + const schemaEntries = mode === 'session' ? sessionSchemaEntries : Object.entries(schema); + const sessionEnabled = mode === 'session' ? Boolean(config?.enable) : false; + const sessionTypeLabel = currentSessionType === 'group' ? '群聊' : '私聊'; + const canSaveSessionConfig = mode !== 'session' || sessionConfigState.baseAvailable; + + return ( + + {/* 顶部控制区:负责在“全局配置”和“会话差异配置”两种编辑模式间切换。 */} + + + { + if (!val) return; + setMode(val); + }} + > + 全局配置 + 会话差异配置 + + + {mode === 'session' && ( + <> + setSelectedSession(e.target.value)} + sx={{ minWidth: 420, maxWidth: '100%' }} + > + {sessions.map((item) => { + const displayName = item.session_display_name || item.session_name || item.session; + const hasAlias = Boolean(item.session_name && item.session_name.trim()); + const optionText = hasAlias ? `${displayName}(${item.session})` : displayName; + return ( + + {optionText} + + ); + })} + + {hasOverride && ( + + )} + {sessionLoading && ( + 会话配置加载中... + )} + + )} + + + {mode === 'session' && selectedSessionMeta && ( + + 当前会话:{selectedSessionMeta.session_display_name || selectedSessionMeta.session_name || selectedSessionMeta.session || selectedSessionMeta} + {selectedSessionMeta.session_name ? ` | UMO:${selectedSessionMeta.session}` : ''} + {' | '}未回复次数:{selectedSessionMeta.unanswered_count ?? 0} + + )} + {mode === 'session' && !sessionConfigState.baseAvailable && sessionConfigState.message && ( + + + {sessionConfigState.message} + + + )} + {saveFeedback.text && ( + + + {saveFeedback.text} + + + )} + + + {/* 主编辑区:根据 schemaEntries 动态递归渲染所有当前可见配置项。 */} + + + {mode === 'session' && config && ( + + + + + {sessionTypeLabel}会话启用状态 + + + 这是当前会话的独立开关。关闭后,该会话会暂停主动消息,但不会影响同类型的全局配置与其他会话。 + + + + + { + isDirtyRef.current = true; + setConfig({ ...config, enable: e.target.checked }); + }} + /> + + + + )} + {schemaEntries.map(([key, subSchema]) => ( + + { isDirtyRef.current = true; setConfig({ ...config, [key]: newValue }); }} + path="" + expandedKeys={expandedKeys} + onToggleExpand={handleToggleExpand} + /> + + ))} + + + + {/* 底部操作栏:集中放置折叠控制、恢复默认、撤销、清空覆写与保存操作。 */} + + + + {schemaEntries.length} 个配置组 + + + + + + + {mode === 'session' && ( + + )} + + + + + ); +} + +window.ConfigRenderer = ConfigRenderer; +})(); + diff --git a/pages/proactive-chat/js/components/layout/Header.jsx b/pages/proactive-chat/js/components/layout/Header.jsx new file mode 100644 index 0000000..3343a63 --- /dev/null +++ b/pages/proactive-chat/js/components/layout/Header.jsx @@ -0,0 +1,108 @@ +(() => { +/** + * 文件职责:顶部栏组件,负责标题展示、时钟显示、连接状态指示与主题切换入口。 + */ + + const { Box, Typography, IconButton } = MaterialUI; + const { useState, useEffect } = React; + +function RealTimeClock({ timeZone }) { + const [timeStr, setTimeStr] = useState(''); + + useEffect(() => { + const updateTime = () => { + // 头部时钟始终使用统一的格式化工具,确保与状态页、任务页时间显示风格一致。 + setTimeStr(formatDateTime(new Date(), timeZone || 'Asia/Shanghai', { + includeYear: true, + includeSeconds: true, + })); + }; + + updateTime(); + // 每秒刷新一次时钟文本;组件卸载时清理定时器,避免后台泄漏。 + const timer = setInterval(updateTime, 1000); + return () => clearInterval(timer); + }, [timeZone]); + + // 初始尚未生成时间字符串时先不渲染,避免短暂出现占位空壳。 + if (!timeStr) return null; + + return ( +
+ 当前时间 🕒 + {timeStr} +
+ ); +} + +function Header({ currentView }) { + const { state, dispatch } = useAppContext(); + const { config, status } = state; + // 若配置中未单独指定展示时区,则默认按插件主要使用场景的东八区展示。 + const displayTimezone = config?.displayTimezone || 'Asia/Shanghai'; + + const toggleTheme = () => { + dispatch({ type: 'TOGGLE_THEME' }); + }; + + // 视图 key 到标题文案的映射集中维护,避免 JSX 中散落条件判断。 + const viewTitles = { + status: '运行状态', + tasks: '任务管理', + notifications: '通知中心', + docs: '文档浏览', + config: '配置管理', + }; + + // Header 不直接感知底层 socket 实例,只消费后端状态中的连接计数结果。 + const wsCount = Number(status?.ws_connections ?? 0); + const wsConnected = wsCount > 0; + + return ( + <> +
+ + {viewTitles[currentView] || viewTitles.status} + + + + + + {/* 连接状态胶囊用于快速反馈实时通道是否可用。 */} +
+
+ + {wsConnected ? '已连接' : '未连接'} + +
+ + + + {/* 图标语义与即将切换到的模式对应,帮助用户快速理解当前状态。 */} + {state.theme === 'dark' ? '🌞' : '🌙'} + + +
+
+ + ); +} + +// 暴露到全局,供入口应用直接渲染 Header。 +window.Header = Header; +})(); + diff --git a/pages/proactive-chat/js/components/layout/Sidebar.jsx b/pages/proactive-chat/js/components/layout/Sidebar.jsx new file mode 100644 index 0000000..bb494e1 --- /dev/null +++ b/pages/proactive-chat/js/components/layout/Sidebar.jsx @@ -0,0 +1,183 @@ +(() => { +/** + * 文件职责:侧边导航组件,负责视图切换、目录快捷操作与仓库信息入口展示。 + */ + + const { Box, Typography } = MaterialUI; + +function SidebarActionButton({ icon, label, onClick, iconStyle }) { + return ( + + ); +} + +function Sidebar({ currentView, onChange }) { + const { state } = useAppContext(); + // 版本号来自全局状态的 status 快照;未加载前先展示占位文本。 + const version = state.status?.version || '...'; + const unreadNotificationCount = Math.max(0, Number(state.notificationsMeta?.unread_count ?? 0)); + const [logoSrc, setLogoSrc] = React.useState('/logo.png'); + + React.useEffect(() => { + // 管理端可能被挂载在不同层级路径,依次尝试多个 logo 地址以提高兼容性。 + const candidates = ['/logo.png', '../logo.png', 'logo.png']; + let cancelled = false; + + async function resolveLogo() { + for (const candidate of candidates) { + try { + const response = await fetch(candidate, { method: 'HEAD' }); + if (response.ok) { + if (!cancelled) setLogoSrc(candidate); + return; + } + } catch (e) { + // 某个候选地址失败并不代表整体失败,继续尝试下一个即可。 + } + } + } + + resolveLogo(); + return () => { + cancelled = true; + }; + }, []); + + // 当前管理端开放的主导航项集中定义在这里,便于后续扩展新视图。 + const menus = [ + { key: 'status', label: '运行状态', icon: '📊' }, + { key: 'tasks', label: '任务管理', icon: '📋' }, + { key: 'notifications', label: '通知中心', icon: '🔔' }, + { key: 'docs', label: '文档浏览', icon: '📚' }, + { key: 'config', label: '配置管理', icon: '⚙️' }, + ]; + + const openDirectory = async (path) => { + try { + // 通过后端调用本机资源管理器打开目录,前端无需感知具体平台命令。 + const response = await window.HttpUtil.post('/api/open-directory', { path }); + if (!response || response.ok === false) { + // 读取后端可能传回来的错误描述与详细 message + const errorTitle = response?.error || '打开目录失败'; + const errorMsg = response?.message ? `\n详情: ${response.message}` : ''; + throw new Error(`${errorTitle}${errorMsg}`); + } + + // 可选:如果是 Docker 环境等虽然成功响应但并非打开了窗口的场景,给出提示 + if (response.message && response.message.includes('已在系统文件管理器中打开目录')) { + // 正常打开,可以什么都不做,也可以给个轻提示 + console.log(response.message); + } + } catch (e) { + const message = e?.message || '打开目录失败'; + window.alert(message); + } + }; + + return ( +
+
+ Logo { + // 图片加载失败时再尝试回退到上一级相对路径,兼容静态资源引用差异。 + if (logoSrc !== '../logo.png') setLogoSrc('../logo.png'); + }} + /> +
+ + 主动消息 + + + Admin Console + +
+
+ + + {menus.map((item) => { + const showUnreadBadge = item.key === 'notifications' && unreadNotificationCount > 0; + const unreadBadgeText = unreadNotificationCount > 99 ? '99+' : String(unreadNotificationCount); + return ( +
onChange(item.key)} + > + {item.icon} + + {item.label} + + {showUnreadBadge ? ( + + {unreadBadgeText} + + ) : null} +
+ ); + })} +
+ + +
+ openDirectory('plugin')} + /> + openDirectory('data')} + iconStyle={{ fontSize: '16px', marginLeft: '-4px' }} + /> +
+ + +
+ + + + +
+ + @DBJD-CR + + + 🔧 (主动消息) {version} + +
+
+
+ + 点个 Star 吧~ ⭐ + +
+
+ ); +} + +// 暴露到全局,供入口应用直接使用侧边栏组件。 +window.Sidebar = Sidebar; +})(); + diff --git a/pages/proactive-chat/js/context/AppContext.jsx b/pages/proactive-chat/js/context/AppContext.jsx new file mode 100644 index 0000000..fcfef11 --- /dev/null +++ b/pages/proactive-chat/js/context/AppContext.jsx @@ -0,0 +1,114 @@ +/** + * 文件职责:全局状态上下文,集中维护管理端共享状态与 reducer 分发逻辑。 + */ + +const { createContext, useContext, useReducer } = React; + +// 管理端的全局状态树;由于项目未使用打包器,这里采用单文件 context 统一收口共享状态。 +const initialState = { + // 当前主内容区展示的视图 key。 + currentView: 'status', + // 全局加载态,通常用于首屏或全量刷新。 + loading: false, + // 最近一次操作失败信息,会显示在页面顶部错误卡片中。 + error: '', + // 首页状态汇总数据,对应后端 /api/status。 + status: null, + // 已知会话列表,可来自 HTTP 首载或 WebSocket 推送。 + sessions: [], + // 当前生效的全局配置快照,对应后端 /api/config。 + config: null, + // 调度任务列表,对应后端 /api/jobs。 + jobs: [], + // 通知列表与元信息,对应后端 /api/notifications。 + notifications: [], + notificationsMeta: { + unread_count: 0, + last_sync_at: '', + total_count: 0, + }, + // Markdown 文档浏览页的文件目录、当前文档与选中路径。 + markdownFiles: [], + markdownDocument: null, + selectedMarkdownPath: '', + // 会话详情页当前选中的会话 ID。 + selectedSession: '', + // 当前选中会话的 base / override / effective 详情。 + sessionDetail: null, + // 主题优先读取本地存储,确保刷新页面后仍能保持用户偏好。 + theme: localStorage.getItem('theme') || 'light', +}; + +function reducer(state, action) { + // reducer 负责统一处理所有状态写入,避免各组件直接散写共享状态。 + switch (action.type) { + case 'TOGGLE_THEME': + // 主题切换时同步写入 localStorage,保证跨页面刷新可恢复。 + const newTheme = state.theme === 'light' ? 'dark' : 'light'; + localStorage.setItem('theme', newTheme); + return { ...state, theme: newTheme }; + case 'SET_VIEW': + return { ...state, currentView: action.payload }; + case 'SET_LOADING': + return { ...state, loading: action.payload }; + case 'SET_ERROR': + // 统一把 falsy 值收敛为空字符串,减少渲染层判断分支。 + return { ...state, error: action.payload || '' }; + case 'SET_STATUS': + return { ...state, status: action.payload }; + case 'SET_SESSIONS': + return { ...state, sessions: action.payload || [] }; + case 'SET_CONFIG': + return { ...state, config: action.payload || null }; + case 'SET_JOBS': + return { ...state, jobs: action.payload || [] }; + case 'SET_NOTIFICATIONS': + return { ...state, notifications: action.payload || [] }; + case 'SET_NOTIFICATIONS_META': + return { + ...state, + notificationsMeta: action.payload || { + unread_count: 0, + last_sync_at: '', + total_count: 0, + }, + }; + case 'SET_MARKDOWN_FILES': + return { ...state, markdownFiles: action.payload || [] }; + case 'SET_MARKDOWN_DOCUMENT': + return { ...state, markdownDocument: action.payload || null }; + case 'SET_SELECTED_MARKDOWN_PATH': + return { ...state, selectedMarkdownPath: action.payload || '' }; + case 'SET_SELECTED_SESSION': + return { ...state, selectedSession: action.payload || '' }; + case 'SET_SESSION_DETAIL': + return { ...state, sessionDetail: action.payload || null }; + default: + // 未识别 action 时保持原状态,避免误 dispatch 导致页面崩溃。 + return state; + } +} + +// 初始值为 null,强制消费方必须在 Provider 内部使用,避免静默使用默认值。 +const AppContext = createContext(null); + +function AppProvider({ children }) { + const [state, dispatch] = useReducer(reducer, initialState); + return ( + + {children} + + ); +} + +function useAppContext() { + const ctx = useContext(AppContext); + // 这里主动抛错,方便在开发阶段尽早发现 Provider 包裹缺失。 + if (!ctx) throw new Error('useAppContext must be used within AppProvider'); + return ctx; +} + +// 由于当前前端采用多文件 UMD / Babel 直接挂载方案,因此通过 window 暴露给其他脚本使用。 +window.AppProvider = AppProvider; +window.useAppContext = useAppContext; + diff --git a/pages/proactive-chat/js/hooks/useApi.js b/pages/proactive-chat/js/hooks/useApi.js new file mode 100644 index 0000000..9e5e456 --- /dev/null +++ b/pages/proactive-chat/js/hooks/useApi.js @@ -0,0 +1,124 @@ +/** + * 文件职责:API 访问 Hook,封装后端接口调用并提供稳定引用的方法集合。 + */ + +function useApi() { + // 将每个接口都包装成稳定引用的回调,避免依赖它们的 effect / memo 无谓重跑。 + const getStatus = React.useCallback(() => window.HttpUtil.get('/api/status'), []); + const getConfig = React.useCallback(() => window.HttpUtil.get('/api/config'), []); + const getConfigSchema = React.useCallback(() => window.HttpUtil.get('/api/config-schema'), []); + const updateConfig = React.useCallback( + // 全局配置保存接口,传入完整 payload 由后端进行白名单字段更新。 + (payload) => window.HttpUtil.post('/api/config', payload), + [] + ); + + const listSessions = React.useCallback( + // 拉取所有已知会话及其覆写状态,用于会话差异配置页与主应用首载。 + () => window.HttpUtil.get('/api/session-config/sessions'), + [] + ); + const getSessionConfig = React.useCallback( + // 会话 ID 可能包含特殊字符,因此路径参数必须先进行 encodeURIComponent。 + (session) => window.HttpUtil.get(`/api/session-config/${encodeURIComponent(session)}`), + [] + ); + const updateSessionConfig = React.useCallback( + // 同一个接口同时支持 override 与 effective 两种保存模式,由 payload.mode 区分。 + (session, payload) => + window.HttpUtil.post(`/api/session-config/${encodeURIComponent(session)}`, payload), + [] + ); + const resetSessionConfig = React.useCallback( + // 删除会话覆写后,该会话会重新完全继承全局配置。 + (session) => window.HttpUtil.del(`/api/session-config/${encodeURIComponent(session)}`), + [] + ); + + const listJobs = React.useCallback(() => window.HttpUtil.get('/api/jobs'), []); + const listMarkdownFiles = React.useCallback( + () => window.HttpUtil.get('/api/markdown-files'), + [] + ); + const getMarkdownFile = React.useCallback( + (path) => window.HttpUtil.get(`/api/markdown-files/${encodeURIComponent(path)}`), + [] + ); + const getNotifications = React.useCallback( + () => window.HttpUtil.get('/api/notifications'), + [] + ); + const readNotification = React.useCallback( + (id) => window.HttpUtil.post('/api/notifications/read', { id }), + [] + ); + const readAllNotifications = React.useCallback( + () => window.HttpUtil.post('/api/notifications/read-all', {}), + [] + ); + const refreshNotifications = React.useCallback( + () => window.HttpUtil.post('/api/notifications/refresh', {}), + [] + ); + const triggerJob = React.useCallback( + // “立即触发”接口本质上是一个无参 POST,因此 body 传空对象保持请求格式统一。 + (session) => window.HttpUtil.post(`/api/jobs/${encodeURIComponent(session)}/trigger`, {}), + [] + ); + const cancelJob = React.useCallback( + (session) => window.HttpUtil.del(`/api/jobs/${encodeURIComponent(session)}`), + [] + ); + const rescheduleJob = React.useCallback( + (session) => window.HttpUtil.post(`/api/jobs/${encodeURIComponent(session)}/reschedule`, {}), + [] + ); + + return React.useMemo( + () => ({ + // 通过 useMemo 返回统一 API 对象,确保消费方在依赖比较时具备稳定引用。 + getStatus, + getConfig, + getConfigSchema, + updateConfig, + listSessions, + getSessionConfig, + updateSessionConfig, + resetSessionConfig, + listJobs, + listMarkdownFiles, + getMarkdownFile, + getNotifications, + readNotification, + readAllNotifications, + refreshNotifications, + triggerJob, + cancelJob, + rescheduleJob, + }), + [ + getStatus, + getConfig, + getConfigSchema, + updateConfig, + listSessions, + getSessionConfig, + updateSessionConfig, + resetSessionConfig, + listJobs, + listMarkdownFiles, + getMarkdownFile, + getNotifications, + readNotification, + readAllNotifications, + refreshNotifications, + triggerJob, + cancelJob, + rescheduleJob, + ] + ); +} + +// 暴露到全局,供未经过 ESModule 打包的其余 JSX 文件直接调用。 +window.useApi = useApi; + diff --git a/pages/proactive-chat/js/hooks/useWebSocket.js b/pages/proactive-chat/js/hooks/useWebSocket.js new file mode 100644 index 0000000..ec6b9a0 --- /dev/null +++ b/pages/proactive-chat/js/hooks/useWebSocket.js @@ -0,0 +1,139 @@ +/** + * 文件职责:WebSocket Hook,负责全局单例连接管理与实时消息分发。 + */ + +// 管理端全局只维护一个 WebSocket 连接,避免多个组件重复建立相同连接。 +let __globalWs = null; +// 所有订阅实时数据的回调统一挂到一个监听集合中,由单连接分发。 +let __wsListeners = new Set(); +// 重连定时器与退避参数:插件重载期间避免高频重连打满日志。 +let __reconnectTimer = null; +const WS_RECONNECT_BASE_DELAY_MS = 1000; +const WS_RECONNECT_MAX_DELAY_MS = 10000; +let __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS; + +function clearReconnectTimer() { + if (!__reconnectTimer) return; + clearTimeout(__reconnectTimer); + __reconnectTimer = null; +} + +function resetReconnectBackoff() { + __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS; + clearReconnectTimer(); +} + +function scheduleReconnect() { + // 没有任何订阅者时不需要重连,避免后台空转。 + if (__wsListeners.size === 0) return; + // 已有重连任务时直接复用,防止重复排队。 + if (__reconnectTimer) return; + + const delay = __nextReconnectDelayMs; + __nextReconnectDelayMs = Math.min(__nextReconnectDelayMs * 2, WS_RECONNECT_MAX_DELAY_MS); + + __reconnectTimer = setTimeout(() => { + __reconnectTimer = null; + ensureGlobalWs(); + }, delay); +} + +function ensureGlobalWs() { + // 若连接已存在且仍处于“连接中 / 已连接”状态,则直接复用。 + if (__globalWs && (__globalWs.readyState === WebSocket.OPEN || __globalWs.readyState === WebSocket.CONNECTING)) { + return; + } + + // 与 HTTP 保持相同的 token 来源,统一从 AuthUtil 中读取。 + const token = window.AuthUtil.getToken(); + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + // 开启鉴权时通过 query 传 token;无鉴权或 no-auth 场景则不附加参数。 + const tokenQuery = token && token !== 'no-auth' ? `?token=${encodeURIComponent(token)}` : ''; + const ws = new WebSocket(`${protocol}//${window.location.host}/ws${tokenQuery}`); + __globalWs = ws; + + ws.onopen = function () { + // 连接恢复后重置退避,后续若再次断开可从短延迟开始。 + if (__globalWs === ws) { + resetReconnectBackoff(); + } + }; + + ws.onmessage = function (event) { + try { + const msg = JSON.parse(event.data); + // 仅处理后端定义的两类数据推送消息,其余消息类型忽略。 + if (msg.type === 'full_update' || msg.type === 'update') { + const data = msg.data || {}; + __wsListeners.forEach((listener) => { + try { + // 将后端 payload 原样广播给所有订阅者,由页面组件自行决定如何消费。 + listener(data); + } catch (e) { + // 单个监听器报错不应影响其他订阅者继续接收消息。 + } + }); + } + } catch (e) { + // 非 JSON 消息或异常格式直接忽略,避免污染控制台与中断连接。 + } + }; + + ws.onerror = function () { + // 出错后主动触发 close 流程,统一走 onclose 的回收与重连路径。 + try { + ws.close(); + } catch (e) { + // 某些浏览器状态下 close 可能抛错,这里吞掉即可。 + } + }; + + ws.onclose = function () { + // 仅处理当前活动连接的关闭事件,避免旧连接回调干扰新的连接状态。 + if (__globalWs !== ws) { + return; + } + __globalWs = null; + // 连接关闭后自动尝试重连,覆盖插件重载等短暂不可用场景。 + scheduleReconnect(); + }; +} + +function useWebSocket(onData) { + React.useEffect(() => { + if (window.AstrBotPluginPage) { + // AstrBot Pages 运行在主 WebUI 的 iframe 中,无法直连独立 WebUI 的 /ws。 + // 入口应用已有轮询兜底,因此 Page 模式下保持纯 HTTP bridge。 + return undefined; + } + + if (typeof onData === 'function') { + __wsListeners.add(onData); + } + + // 只要有任意一个订阅者存在,就确保全局连接已建立。 + ensureGlobalWs(); + + return () => { + if (typeof onData === 'function') { + __wsListeners.delete(onData); + } + // 最后一个订阅者离开时主动关闭连接,减少空闲资源占用。 + if (__wsListeners.size === 0) { + clearReconnectTimer(); + __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS; + if (__globalWs) { + try { + __globalWs.close(); + } catch (e) { + // 某些浏览器状态下 close 可能抛错,这里吞掉即可。 + } + } + __globalWs = null; + } + }; + }, [onData]); +} + +// 暴露为全局 Hook,供入口应用与各页面脚本直接调用。 +window.useWebSocket = useWebSocket; diff --git a/pages/proactive-chat/js/utils/auth.js b/pages/proactive-chat/js/utils/auth.js new file mode 100644 index 0000000..b40719b --- /dev/null +++ b/pages/proactive-chat/js/utils/auth.js @@ -0,0 +1,47 @@ +/** + * 文件职责:认证工具模块,负责 token 的读写清理与鉴权请求头拼装。 + */ + +(function () { + // 单独定义 token key,避免在多个位置硬编码同一个 localStorage 键名。 + const TOKEN_KEY = 'proactive_admin_token'; + + window.AuthUtil = { + getToken: function () { + try { + // 统一从 localStorage 读取访问令牌;读取失败时返回 null 让上层自行兜底。 + return localStorage.getItem(TOKEN_KEY); + } catch (e) { + // 某些受限环境下 localStorage 可能不可用,这里静默降级。 + return null; + } + }, + setToken: function (token) { + try { + // 登录成功后将 token 持久化,供后续页面刷新和 WebSocket 连接复用。 + localStorage.setItem(TOKEN_KEY, token); + } catch (e) { + // 存储失败不会阻止当前会话继续使用,只是刷新后需要重新登录。 + } + }, + clearToken: function () { + try { + // token 失效或用户主动退出时清空本地凭据。 + localStorage.removeItem(TOKEN_KEY); + } catch (e) { + // 删除失败时无需中断业务流程。 + } + }, + withAuthHeaders: function (headers) { + const token = window.AuthUtil.getToken(); + // 始终先复制一份 headers,避免调用方对象被原地修改。 + const base = Object.assign({}, headers || {}); + if (token && token !== 'no-auth') { + // 仅在真实鉴权场景下注入 Authorization;no-auth 是前后端协商用哨兵值。 + base.Authorization = 'Bearer ' + token; + } + return base; + } + }; +})(); + diff --git a/pages/proactive-chat/js/utils/formatters.js b/pages/proactive-chat/js/utils/formatters.js new file mode 100644 index 0000000..6e26436 --- /dev/null +++ b/pages/proactive-chat/js/utils/formatters.js @@ -0,0 +1,206 @@ +/** + * 文件职责:格式化工具模块,负责日期时间解析、显示格式化与时长文本处理。 + */ + +function parseDateish(value) { + // 统一接受 null / undefined / 空串 等空值输入,调用方可直接拿返回值做真假判断。 + if (value === null || value === undefined || value === '') return null; + + if (value instanceof Date) { + // 对 Date 对象做一次防御性复制,避免外部修改原对象影响后续逻辑。 + return Number.isNaN(value.getTime()) ? null : new Date(value.getTime()); + } + + if (typeof value === 'number') { + // 数字按时间戳处理;具体是秒还是毫秒由上层在传入前决定。 + const fromNumber = new Date(value); + return Number.isNaN(fromNumber.getTime()) ? null : fromNumber; + } + + const raw = String(value).trim(); + if (!raw) return null; + + // 兼容 "YYYY-MM-DD HH:mm:ss" 这类非标准 ISO 文本,统一替换为空格 -> T。 + const normalized = raw.includes('T') ? raw : raw.replace(' ', 'T'); + const parsed = new Date(normalized); + if (!Number.isNaN(parsed.getTime())) { + return parsed; + } + + return null; +} + +function resolveTimeZone(timeZone = 'Asia/Shanghai') { + const fallback = 'Asia/Shanghai'; + const tz = String(timeZone || fallback).trim(); + + if (!tz) return { mode: 'iana', value: fallback }; + + // 兼容 UTC+8 / UTC-5.5 这类偏移写法,便于不支持 IANA 时区名时仍可工作。 + if (/^UTC[+-]\d+(?:\.\d+)?$/i.test(tz)) { + return { mode: 'offset', value: Number(tz.slice(3)) || 0 }; + } + + // 默认按 IANA 时区名处理,如 Asia/Shanghai、UTC、America/New_York。 + return { mode: 'iana', value: tz }; +} + +function getZonedDateParts(date, timeZone = 'Asia/Shanghai', options = {}) { + const parsed = parseDateish(date); + if (!parsed) return null; + + const tz = resolveTimeZone(timeZone); + const includeYear = options.includeYear !== false; + const includeSeconds = Boolean(options.includeSeconds); + + if (tz.mode === 'offset') { + // 对纯 UTC 偏移模式,直接手动换算到目标时区,避免依赖 Intl 的 IANA 支持。 + const shifted = new Date(parsed.getTime() + tz.value * 3600000); + return { + year: String(shifted.getUTCFullYear()), + month: String(shifted.getUTCMonth() + 1).padStart(2, '0'), + day: String(shifted.getUTCDate()).padStart(2, '0'), + hour: String(shifted.getUTCHours()).padStart(2, '0'), + minute: String(shifted.getUTCMinutes()).padStart(2, '0'), + second: includeSeconds ? String(shifted.getUTCSeconds()).padStart(2, '0') : '00', + includeYear, + includeSeconds, + }; + } + + // IANA 模式交给 Intl 处理,可正确覆盖夏令时等复杂时区规则。 + const formatter = new Intl.DateTimeFormat('zh-CN', { + year: includeYear ? 'numeric' : undefined, + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: includeSeconds ? '2-digit' : undefined, + hour12: false, + timeZone: tz.value, + }); + + const parts = formatter.formatToParts(parsed); + const mapped = {}; + parts.forEach(({ type, value }) => { + mapped[type] = value; + }); + + return { + year: mapped.year || '', + month: mapped.month || '00', + day: mapped.day || '00', + hour: mapped.hour || '00', + minute: mapped.minute || '00', + second: includeSeconds ? (mapped.second || '00') : '00', + includeYear, + includeSeconds, + }; +} + +function formatDateTime(value, timeZone = 'Asia/Shanghai', options = {}) { + const parts = getZonedDateParts(value, timeZone, options); + if (!parts) return '--'; + + const datePart = parts.includeYear + ? `${parts.year}-${parts.month}-${parts.day}` + : `${parts.month}-${parts.day}`; + const timePart = parts.includeSeconds + ? `${parts.hour}:${parts.minute}:${parts.second}` + : `${parts.hour}:${parts.minute}`; + + // 统一输出为易读的“日期 + 时间”文本,供状态页、任务页、头部时钟复用。 + // 日期与时间之间保留两个空格,增强卡片中时间文本的视觉层次。 + return `${datePart} ${timePart}`; +} + +function formatFriendlyTime(value, timeZone = 'Asia/Shanghai') { + const date = parseDateish(value); + if (!date) return '--'; + + // 以当前时间为基准生成“几秒前 / 几分钟后”这类相对时间提示。 + const diffMs = date.getTime() - Date.now(); + const absMs = Math.abs(diffMs); + const absSeconds = Math.floor(absMs / 1000); + const absMinutes = Math.floor(absMs / 60000); + const absHours = Math.floor(absMs / 3600000); + + if (diffMs < 0) { + if (absSeconds < 15) return '刚刚'; + if (absSeconds < 60) return `${absSeconds} 秒前`; + if (absMinutes < 60) return `${absMinutes} 分钟前`; + if (absHours < 24) return `${absHours} 小时前`; + // 超过一天时回退到绝对时间,避免相对时间过于模糊。 + return formatDateTime(date, timeZone, { includeYear: true, includeSeconds: true }); + } + + if (absSeconds < 15) return '即将到来'; + if (absSeconds < 60) return `${absSeconds} 秒后`; + if (absMinutes < 60) return `${absMinutes} 分钟后`; + if (absHours < 24) return `${absHours} 小时后`; + return formatDateTime(date, timeZone, { includeYear: true, includeSeconds: true }); +} + +function formatDuration(totalSeconds, options = {}) { + const value = Number(totalSeconds); + if (!Number.isFinite(value) || value <= 0) { + return options.compact ? '0秒' : '0 秒'; + } + + const seconds = Math.max(0, Math.floor(value)); + const days = Math.floor(seconds / 86400); + const hours = Math.floor((seconds % 86400) / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + const secs = seconds % 60; + + const compact = Boolean(options.compact); + const padHours = Boolean(options.padHours); + const maxUnits = Number(options.maxUnits) || 4; + + if (compact) { + // 紧凑模式更适合卡片内展示,可在有限宽度中保留更多信息。 + const tokens = []; + if (days > 0) tokens.push(`${days}天`); + if (hours > 0 || (padHours && tokens.length)) tokens.push(`${days > 0 || padHours ? String(hours).padStart(2, '0') : hours}小时`); + if (minutes > 0 || tokens.length) tokens.push(`${tokens.length ? String(minutes).padStart(2, '0') : minutes}分`); + tokens.push(`${tokens.length ? String(secs).padStart(2, '0') : secs}秒`); + return tokens.slice(0, maxUnits).join(''); + } + + // 常规模式更适合阅读型文本,如“1 天 2 小时 3 分钟”。 + const segments = []; + if (days > 0) segments.push(`${days} 天`); + if (hours > 0) segments.push(`${hours} 小时`); + if (minutes > 0) segments.push(`${minutes} 分钟`); + if (secs > 0 || !segments.length) segments.push(`${secs} 秒`); + return segments.slice(0, maxUnits).join(' '); +} + + +function resolveSourceModeLabel(sourceMode) { + const normalized = String(sourceMode || '').trim().toLowerCase(); + switch (normalized) { + case 'platform_message_history': + return '平台完整聊天流水'; + case 'hybrid': + return '混合模式'; + case 'conversation_history': + default: + return '当前 AstrBot LLM 对话历史'; + } +} + +function formatUnansweredLabel(currentCount, maxCount) { + const current = Math.max(0, Number(currentCount) || 0); + const max = Math.max(0, Number(maxCount) || 0); + return max > 0 ? `未回复次数: ${current}/${max}` : `未回复: ${current}`; +} + +// 统一挂到 window,供各页面和组件直接调用,无需额外模块系统。 +window.parseDateish = parseDateish; +window.formatDateTime = formatDateTime; +window.formatFriendlyTime = formatFriendlyTime; +window.formatDuration = formatDuration; +window.resolveSourceModeLabel = resolveSourceModeLabel; +window.formatUnansweredLabel = formatUnansweredLabel; + diff --git a/pages/proactive-chat/js/utils/http.js b/pages/proactive-chat/js/utils/http.js new file mode 100644 index 0000000..9f70642 --- /dev/null +++ b/pages/proactive-chat/js/utils/http.js @@ -0,0 +1,135 @@ +/** + * 文件职责:HTTP 工具模块,负责统一请求封装、鉴权头注入与错误处理。 + */ + +(function () { + const PLUGIN_NAME = 'astrbot_plugin_proactive_chat'; + + function getPageBridge() { + return window.AstrBotPluginPage || null; + } + + function isPageBridgeAvailable() { + const bridge = getPageBridge(); + return bridge && typeof bridge.apiGet === 'function' && typeof bridge.apiPost === 'function'; + } + + async function ensureBridgeReady(bridge) { + if (bridge && typeof bridge.ready === 'function') { + await bridge.ready(); + } + } + + function parseBody(body) { + if (!body) return {}; + if (typeof body === 'string') { + try { + return JSON.parse(body); + } catch (e) { + return {}; + } + } + return body; + } + + function toBridgeEndpoint(url, method) { + const normalizedMethod = String(method || 'GET').toUpperCase(); + let endpoint = String(url || '').replace(/^\/api\/?/, ''); + + if (normalizedMethod === 'DELETE') { + if (endpoint.startsWith('session-config/')) { + return { + endpoint: `session-config-delete/${endpoint.slice('session-config/'.length)}`, + method: 'POST', + }; + } + if (endpoint.startsWith('jobs/')) { + return { + endpoint: `jobs-cancel/${endpoint.slice('jobs/'.length)}`, + method: 'POST', + }; + } + } + + return { + endpoint, + method: normalizedMethod, + }; + } + + async function bridgeRequest(url, options) { + const bridge = getPageBridge(); + await ensureBridgeReady(bridge); + + const mapped = toBridgeEndpoint(url, options && options.method); + if (!mapped.endpoint || mapped.endpoint === '/api') { + throw new Error('无效的插件接口路径'); + } + + if (mapped.method === 'GET') { + const payload = await bridge.apiGet(mapped.endpoint); + if (payload && payload.error) { + throw new Error(payload.error); + } + return payload; + } + + const payload = await bridge.apiPost(mapped.endpoint, parseBody(options && options.body)); + if (payload && payload.error) { + throw new Error(payload.error); + } + return payload; + } + + function buildHeaders(extra) { + // 所有请求默认发送 JSON;如调用方有额外头信息,再在此基础上合并。 + return window.AuthUtil.withAuthHeaders( + Object.assign({ 'Content-Type': 'application/json' }, extra || {}) + ); + } + + async function request(url, options) { + if (isPageBridgeAvailable() && String(url || '').startsWith('/api/')) { + return bridgeRequest(url, options || {}); + } + + // 复制 options,避免上层传入对象在内部被意外修改。 + const opts = Object.assign({}, options || {}); + // 在统一入口补齐认证头与默认内容类型,减少各业务文件重复代码。 + opts.headers = buildHeaders(opts.headers || {}); + + const response = await fetch(url, opts); + let payload = null; + try { + // 后端大多数接口都返回 JSON;若解析失败则容忍并回退为 null。 + payload = await response.json(); + } catch (e) { + payload = null; + } + + if (!response.ok) { + // 优先透传后端明确返回的 error 字段,提升前端报错可读性。 + const message = payload && payload.error ? payload.error : '请求失败'; + throw new Error(message); + } + + return payload; + } + + window.HttpUtil = { + pluginName: PLUGIN_NAME, + get: function (url) { + return request(url, { method: 'GET' }); + }, + post: function (url, body) { + // POST 请求统一将 body 序列化为 JSON;空 body 则发送空对象保持接口风格一致。 + return request(url, { + method: 'POST', + body: JSON.stringify(body || {}), + }); + }, + del: function (url) { + return request(url, { method: 'DELETE' }); + } + }; +})(); diff --git a/pages/proactive-chat/js/utils/markdown.js b/pages/proactive-chat/js/utils/markdown.js new file mode 100644 index 0000000..fc03e12 --- /dev/null +++ b/pages/proactive-chat/js/utils/markdown.js @@ -0,0 +1,612 @@ +/** + * 文件职责:提供管理端通用的 Markdown 渲染与安全清洗能力,供多个视图复用。 + */ + +const MARKDOWN_CODE_LANGUAGE_LABELS = { + // 这里维护“代码块语言名 -> 展示标签”的映射,供代码块头部语言徽标使用。 + js: 'JavaScript', + jsx: 'JSX', + ts: 'TypeScript', + tsx: 'TSX', + json: 'JSON', + bash: 'Bash', + shell: 'Shell', + sh: 'Shell', + python: 'Python', + py: 'Python', + yaml: 'YAML', + yml: 'YAML', + html: 'HTML', + css: 'CSS', + md: 'Markdown', + markdown: 'Markdown', + mermaid: 'Mermaid', + text: 'Text', + plaintext: 'Text', +}; + +const MARKDOWN_SANITIZE_OPTIONS = { + // 白名单只开放管理端实际需要的 Markdown 标签,减少攻击面。 + ALLOWED_TAGS: [ + 'a', 'blockquote', 'br', 'code', 'del', 'details', 'div', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', + 'hr', 'img', 'li', 'ol', 'p', 'pre', 'span', 'strong', 'summary', 'table', 'tbody', 'td', 'th', 'thead', 'tr', 'ul' + ], + ALLOWED_ATTR: ['href', 'target', 'rel', 'class', 'data-language', 'data-mermaid-source', 'src', 'alt', 'title', 'width', 'height', 'align', 'open', 'loading', 'decoding', 'referrerpolicy'], + FORBID_TAGS: ['script', 'style', 'iframe', 'object', 'embed', 'form'], + FORBID_ATTR: ['style', 'onerror', 'onload', 'onclick', 'onmouseover', 'onfocus'], + RETURN_DOM_FRAGMENT: true, +}; + +function normalizeMarkdownContent(content) { + return String(content || '') + // 兼容真实换行与被序列化成字符串字面量的“\n”。 + .replace(/\r\n/g, '\n') + .replace(/\\n/g, '\n') + // 最后统一收敛为 LF,避免后续正则与分行逻辑在不同平台行为不一致。 + .replace(/\r\n?/g, '\n'); +} + +function isProbablyMarkdown(content) { + const normalized = normalizeMarkdownContent(content); + // 这里不是严格 Markdown 语法解析,而是用启发式规则快速判断“是否值得进入 Markdown 渲染管线”。 + return /(^|\n)\s{0,3}(#{1,6}\s|>\s|[-*+]\s)|(\n|^)\s*\d+\.\s|(^|\n)\s*```|(^|\n)\|.+\|/m.test(normalized); +} + +function escapeMarkdownHtml(text) { + return String(text || '') + // 所有 fallback 渲染路径都先做 HTML 转义,防止原始文本直接进入 innerHTML。 + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function normalizeMarkdownLanguageName(language) { + const normalized = String(language || '').trim().toLowerCase(); + if (!normalized) return 'text'; + // 限制语言名字符集,避免把奇怪 class 名直接拼进 DOM。 + return normalized.replace(/[^a-z0-9_-]/g, '') || 'text'; +} + +function getMarkdownLanguageLabel(language) { + const normalized = normalizeMarkdownLanguageName(language); + // 优先使用预定义标签;若没有映射,则退化为大写原语言名。 + return MARKDOWN_CODE_LANGUAGE_LABELS[normalized] || normalized.toUpperCase() || 'Text'; +} + +function getSafeMarkdownLinkHref(href) { + const value = String(href || '').trim(); + // 仅放行 http(s)、站内绝对路径和锚点链接,避免 javascript: 等危险协议。 + if (/^https?:\/\//i.test(value) || value.startsWith('/') || value.startsWith('#')) { + return value; + } + return '#'; +} + +function getSafeMarkdownImageSrc(src) { + const value = String(src || '').trim(); + // 图片仅放行 http(s) 与站内相对路径,避免 data/javascript/blob 等协议带来的注入或追踪风险。 + if (/^https?:\/\//i.test(value) || value.startsWith('/') || value.startsWith('./') || value.startsWith('../')) { + return value; + } + return ''; +} + +function highlightMarkdownCode(code, language) { + const escaped = escapeMarkdownHtml(code); + const normalizedLanguage = normalizeMarkdownLanguageName(language); + + if (normalizedLanguage === 'json') { + // JSON 重点高亮 key / value / boolean / number,保持实现轻量而不引入大型高亮库。 + return escaped + .replace(/("(?:[^"\\]|\\.)*")\s*:/g, '$1:') + .replace(/:\s*("(?:[^"\\]|\\.)*")/g, ': $1') + .replace(/\b(true|false|null)\b/g, '$1') + .replace(/\b(-?\d+(?:\.\d+)?)\b/g, '$1'); + } + + if (['js', 'jsx', 'ts', 'tsx', 'javascript', 'typescript'].includes(normalizedLanguage)) { + // JS / TS 采用最常用语法成分的正则高亮,目标是“可读性增强”而非完整语义解析。 + return escaped + .replace(/\b(function|const|let|var|return|if|else|new|throw|class|async|await|import|from|export|default|try|catch)\b/g, '$1') + .replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)/g, '$1') + .replace(/\b(true|false|null|undefined)\b/g, '$1') + .replace(/\b(\d+(?:\.\d+)?)\b/g, '$1') + .replace(/\b([A-Za-z_$][\w$]*)\s*(?=\()/g, '$1'); + } + + if (['bash', 'shell', 'sh'].includes(normalizedLanguage)) { + // Shell 场景重点强化命令名、flag 和字符串,提升安装命令 / 运维命令的扫读效率。 + const lines = escaped.split('\n'); + return lines + .map((line) => { + const commandMatch = line.match(/^(\s*)([A-Za-z0-9_./:-]+)(.*)$/); + if (!commandMatch) return line; + const [, indent, command, rest] = commandMatch; + const highlightedRest = rest + .replace(/\s(-{1,2}[A-Za-z0-9_-]+)/g, ' $1') + .replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g, '$1'); + return `${indent}${command}${highlightedRest}`; + }) + .join('\n'); + } + + // Mermaid 图表源码不做语法高亮,直接保留为纯文本,避免破坏图定义。 + if (normalizedLanguage === 'mermaid') { + return escaped; + } + + // 未识别语言时保持纯转义文本,至少保证安全与可读。 + return escaped; +} + +function buildMarkdownMermaidBlockHtml(code) { + const normalizedCode = normalizeMarkdownContent(code).trim(); + const escapedCode = escapeMarkdownHtml(normalizedCode); + return [ + '
', + '
', + `${escapeMarkdownHtml(getMarkdownLanguageLabel('mermaid'))}`, + '
', + `
${escapedCode}
`, + '
', + ].join(''); +} + +function buildMarkdownCodeBlockHtml(code, language) { + const normalizedLanguage = normalizeMarkdownLanguageName(language); + if (normalizedLanguage === 'mermaid') { + return buildMarkdownMermaidBlockHtml(code); + } + const languageClass = normalizedLanguage !== 'text' ? ` language-${normalizedLanguage}` : ' language-text'; + const languageLabel = getMarkdownLanguageLabel(normalizedLanguage); + const highlightedCode = highlightMarkdownCode(code, normalizedLanguage); + return [ + // 代码块外层统一使用 notification-md 的样式体系,便于通知页和文档页复用同一套 CSS。 + `
`, + '
', + `${escapeMarkdownHtml(languageLabel)}`, + '
', + `
${highlightedCode}
`, + '
', + ].join(''); +} + +function extractInlineCodePlaceholders(text) { + const placeholders = []; + let output = ''; + const source = String(text || ''); + let index = 0; + + while (index < source.length) { + const char = source[index]; + const prevChar = index > 0 ? source[index - 1] : ''; + if (char !== '`' || prevChar === '\\') { + output += char; + index += 1; + continue; + } + + let fenceLength = 1; + while (source[index + fenceLength] === '`') { + fenceLength += 1; + } + const fence = '`'.repeat(fenceLength); + const searchStart = index + fenceLength; + const closingIndex = source.indexOf(fence, searchStart); + if (closingIndex === -1) { + output += fence; + index = searchStart; + continue; + } + + const code = source.slice(searchStart, closingIndex); + if (!code) { + output += fence + fence; + index = closingIndex + fenceLength; + continue; + } + + // 先把内联 code 提取成占位符,避免后续粗粒度正则误伤其中内容。 + const placeholderIndex = placeholders.push(`${escapeMarkdownHtml(code)}`) - 1; + output += `@@INLINE_CODE_${placeholderIndex}@@`; + index = closingIndex + fenceLength; + } + + return { output, placeholders }; +} + +function restoreInlineCodePlaceholders(text, placeholders) { + return String(text || '').replace(/@@INLINE_CODE_(\d+)@@/g, (_, index) => placeholders[Number(index)] || ''); +} + +function applyInlineMarkdownTokens(text) { + const extracted = extractInlineCodePlaceholders(text); + let output = extracted.output; + + output = output.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, label, href) => { + const safeHref = getSafeMarkdownLinkHref(href); + return `${label}`; + }); + // 这里按从“强语义到弱语义”的顺序处理,减少星号 / 下划线匹配互相影响。 + output = output.replace(/\*\*([^*]+)\*\*/g, '$1'); + output = output.replace(/__([^_]+)__/g, '$1'); + output = output.replace(/(^|[^*])\*([^*]+)\*(?!\*)/g, '$1$2'); + output = output.replace(/(^|[^_])_([^_]+)_(?!_)/g, '$1$2'); + output = output.replace(/~~([^~]+)~~/g, '$1'); + + return restoreInlineCodePlaceholders(output, extracted.placeholders); +} + +function renderInlineMarkdownText(text) { + return applyInlineMarkdownTokens(escapeMarkdownHtml(text)); +} + +function splitMarkdownTableCells(line) { + const trimmed = String(line || '').trim().replace(/^\|/, '').replace(/\|$/, ''); + return trimmed.split('|').map((cell) => cell.trim()); +} + +function flushMarkdownParagraph(paragraphBuffer, htmlParts) { + if (!paragraphBuffer.length) return []; + const safeText = paragraphBuffer + .map((line) => renderInlineMarkdownText(line)) + .join('
'); + htmlParts.push(`

${safeText}

`); + return []; +} + +function closeMarkdownList(listState, htmlParts) { + if (!listState) return null; + htmlParts.push(``); + return null; +} + +function flushMarkdownBlockquote(blockquoteBuffer, htmlParts) { + if (!blockquoteBuffer.length) return []; + // 引用块递归复用同一渲染器,避免另外维护一套局部语法分支。 + const quoteHtml = fallbackRenderMarkdownHtml(blockquoteBuffer.join('\n')); + htmlParts.push(`
${quoteHtml}
`); + return []; +} + +function flushMarkdownTable(tableHeader, tableRows, htmlParts) { + if (!tableHeader) { + return { tableHeader: null, tableRows: [] }; + } + const headCells = tableHeader.map((cell) => `${renderInlineMarkdownText(cell)}`).join(''); + const bodyRows = tableRows + .map((row) => `${row.map((cell) => `${renderInlineMarkdownText(cell)}`).join('')}`) + .join(''); + htmlParts.push(`
${headCells}${bodyRows}
`); + return { tableHeader: null, tableRows: [] }; +} + +function fallbackRenderMarkdownHtml(md) { + const normalized = normalizeMarkdownContent(md); + const lines = normalized.split('\n'); + const htmlParts = []; + let paragraphBuffer = []; + let listState = null; + let blockquoteBuffer = []; + let codeFence = null; + let tableHeader = null; + let tableRows = []; + + for (let index = 0; index < lines.length; index += 1) { + const rawLine = lines[index]; + const line = rawLine.trimEnd(); + const trimmed = line.trim(); + + if (codeFence) { + // 进入 fenced code block 后,直到遇到下一个 ``` 才退出,并原样保留中间内容。 + if (/^```/.test(trimmed)) { + htmlParts.push(buildMarkdownCodeBlockHtml(codeFence.lines.join('\n'), codeFence.language)); + codeFence = null; + } else { + codeFence.lines.push(rawLine); + } + continue; + } + + if (/^```/.test(trimmed)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + codeFence = { + // ``` 后方内容作为语言名,例如 ```js。 + language: trimmed.slice(3).trim(), + lines: [], + }; + continue; + } + + const tableSeparator = /^\|?(\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\|?$/.test(trimmed); + if (tableHeader && !tableSeparator && trimmed.includes('|')) { + // 表头建立后,连续的“含竖线行”都会被视作表格正文。 + tableRows.push(splitMarkdownTableCells(trimmed)); + continue; + } + if (tableHeader && (!trimmed || !trimmed.includes('|'))) { + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + } + + if (!trimmed) { + // 空行会触发段落 / 列表 / 引用 / 表格等块级结构的结算。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + continue; + } + + const nextLine = String(lines[index + 1] || '').trim(); + if (!tableHeader && trimmed.includes('|') && /^\|?(\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\|?$/.test(nextLine)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + // 当前行认定为表头,下一行是分隔线,因此这里手动跳过一行。 + tableHeader = splitMarkdownTableCells(trimmed); + tableRows = []; + index += 1; + continue; + } + + const heading = trimmed.match(/^(#{1,6})\s+(.+)$/); + if (heading) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + const level = heading[1].length; + htmlParts.push(`${renderInlineMarkdownText(heading[2])}`); + continue; + } + + if (/^---+$/.test(trimmed) || /^\*\*\*+$/.test(trimmed)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + htmlParts.push('
'); + continue; + } + + const quote = line.match(/^>\s?(.*)$/); + if (quote) { + // 相邻引用行会累积到同一 buffer,最终递归渲染为一个 blockquote。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + blockquoteBuffer.push(quote[1]); + continue; + } + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + + const unorderedItem = trimmed.match(/^[-*+]\s+(.+)$/); + const orderedItem = trimmed.match(/^\d+\.\s+(.+)$/); + const listType = unorderedItem ? 'ul' : orderedItem ? 'ol' : null; + if (listType) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + if (listState && listState !== listType) { + listState = closeMarkdownList(listState, htmlParts); + } + if (!listState) { + htmlParts.push(`<${listType}>`); + listState = listType; + } + const listContent = unorderedItem ? unorderedItem[1] : orderedItem[1]; + htmlParts.push(`
  • ${renderInlineMarkdownText(listContent)}
  • `); + continue; + } + + listState = closeMarkdownList(listState, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + // 兜底情况视为普通段落内容,延迟到 flushParagraph 时统一输出为

    。 + paragraphBuffer.push(line); + } + + // 文件结束后把剩余 buffer 全部结算,避免最后一段内容丢失。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ tableHeader, tableRows } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + + if (codeFence) { + // 若文档意外缺少结尾 ```,仍尽量把已收集内容渲染出来,而不是整体丢弃。 + htmlParts.push(buildMarkdownCodeBlockHtml(codeFence.lines.join('\n'), codeFence.language)); + } + + return htmlParts.join(''); +} + +const MARKDOWN_CALLOUT_META = { + note: { label: 'Note', icon: '📝' }, + tip: { label: 'Tip', icon: '💡' }, + important: { label: 'Important', icon: '❗' }, + warning: { label: 'Warning', icon: '⚠️' }, + caution: { label: 'Caution', icon: '🚨' }, +}; + +function enhanceMarkdownCalloutBlockquotes(sanitizedFragment) { + sanitizedFragment.querySelectorAll('blockquote').forEach((blockquote) => { + const firstChild = blockquote.firstElementChild; + if (!firstChild || firstChild.tagName !== 'P') { + return; + } + + const firstTextNode = Array.from(firstChild.childNodes).find((node) => node.nodeType === Node.TEXT_NODE && String(node.textContent || '').trim()); + if (!firstTextNode) { + return; + } + + const originalText = String(firstTextNode.textContent || ''); + const match = originalText.match(/^\s*\[!([A-Z]+)\]\s*(.*)$/); + if (!match) { + return; + } + + const calloutType = String(match[1] || '').trim().toLowerCase(); + const calloutMeta = MARKDOWN_CALLOUT_META[calloutType]; + if (!calloutMeta) { + return; + } + + const inlineTitle = String(match[2] || '').trim(); + blockquote.classList.add('notification-md-callout', `is-${calloutType}`); + + const header = document.createElement('div'); + header.className = 'notification-md-callout-header'; + + const icon = document.createElement('span'); + icon.className = 'notification-md-callout-icon'; + icon.textContent = calloutMeta.icon; + header.appendChild(icon); + + const title = document.createElement('span'); + title.className = 'notification-md-callout-title'; + title.textContent = inlineTitle || calloutMeta.label; + header.appendChild(title); + + const nextText = originalText.replace(match[0], '').trimStart(); + if (nextText) { + firstTextNode.textContent = nextText; + } else { + firstTextNode.parentNode.removeChild(firstTextNode); + } + + if (!firstChild.childNodes.length) { + firstChild.remove(); + } + + blockquote.insertBefore(header, blockquote.firstChild || null); + }); +} + +function enhanceMarkdownFragment(sanitizedFragment) { + sanitizedFragment.querySelectorAll('a[href]').forEach((link) => { + const href = String(link.getAttribute('href') || '').trim(); + // 二次校验链接协议,即使 marked 解析出 ,也不允许危险 href 流入最终 DOM。 + if (!/^https?:\/\//i.test(href) && !href.startsWith('/') && !href.startsWith('#')) { + link.setAttribute('href', '#'); + } + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener noreferrer'); + }); + + sanitizedFragment.querySelectorAll('img[src]').forEach((img) => { + const safeSrc = getSafeMarkdownImageSrc(img.getAttribute('src')); + if (!safeSrc) { + img.remove(); + return; + } + img.setAttribute('src', safeSrc); + img.setAttribute('loading', 'lazy'); + img.setAttribute('decoding', 'async'); + img.setAttribute('referrerpolicy', 'no-referrer'); + }); + + sanitizedFragment.querySelectorAll('table').forEach((table) => { + // 自动为表格包一层横向滚动容器,避免窄屏下表格把布局撑爆。 + if (!table.parentElement || !table.parentElement.classList.contains('notification-md-table-wrap')) { + const wrapper = document.createElement('div'); + wrapper.className = 'notification-md-table-wrap'; + table.parentNode.insertBefore(wrapper, table); + wrapper.appendChild(table); + } + }); + + enhanceMarkdownCalloutBlockquotes(sanitizedFragment); + + sanitizedFragment.querySelectorAll('details').forEach((detailsEl) => { + detailsEl.classList.add('notification-md-details'); + const firstSummary = Array.from(detailsEl.children).find((child) => child.tagName === 'SUMMARY'); + if (firstSummary) { + firstSummary.classList.add('notification-md-summary'); + } else { + const summary = document.createElement('summary'); + summary.className = 'notification-md-summary'; + summary.textContent = '展开详情'; + detailsEl.insertBefore(summary, detailsEl.firstChild || null); + } + }); + + sanitizedFragment.querySelectorAll('pre > code').forEach((codeEl) => { + const originalClass = String(codeEl.getAttribute('class') || ''); + const languageMatch = originalClass.match(/language-([a-z0-9_-]+)/i); + const language = normalizeMarkdownLanguageName(languageMatch ? languageMatch[1] : 'text'); + const rawCodeText = codeEl.textContent || ''; + const pre = codeEl.parentElement; + + if (language === 'mermaid') { + const mermaidWrapper = document.createElement('div'); + mermaidWrapper.innerHTML = buildMarkdownMermaidBlockHtml(rawCodeText); + pre.parentNode.replaceChild(mermaidWrapper.firstElementChild, pre); + return; + } + + const wrapper = document.createElement('div'); + wrapper.className = `notification-md-code-block language-${language}`; + wrapper.setAttribute('data-language', language); + + const header = document.createElement('div'); + header.className = 'notification-md-code-header'; + + const langChip = document.createElement('span'); + langChip.className = 'notification-md-code-lang'; + langChip.textContent = getMarkdownLanguageLabel(language); + header.appendChild(langChip); + + // 把代码内容替换为轻量高亮结果,同时保留原本

     结构供样式复用。
    +        codeEl.className = `language-${language}`;
    +        codeEl.innerHTML = highlightMarkdownCode(rawCodeText, language);
    +
    +        pre.parentNode.insertBefore(wrapper, pre);
    +        wrapper.appendChild(header);
    +        wrapper.appendChild(pre);
    +    });
    +}
    +
    +function renderMarkdownToHtml(content) {
    +    const normalized = normalizeMarkdownContent(content);
    +
    +    try {
    +        const marked = window.marked;
    +        const DOMPurify = window.DOMPurify;
    +
    +        if (marked && DOMPurify) {
    +            const parseMarkdown = (md) => {
    +                // 优先适配 marked.parse 新接口,同时兼容老版本把 marked 作为函数调用的形式。
    +                if (typeof marked.parse === 'function') {
    +                    return marked.parse(md, { gfm: true, breaks: true });
    +                }
    +                if (typeof marked === 'function') {
    +                    return marked(md, { gfm: true, breaks: true });
    +                }
    +                throw new Error('marked parser unavailable');
    +            };
    +
    +            const rawHtml = parseMarkdown(normalized);
    +            const sanitizedFragment = DOMPurify.sanitize(rawHtml, MARKDOWN_SANITIZE_OPTIONS);
    +            enhanceMarkdownFragment(sanitizedFragment);
    +
    +            const container = document.createElement('div');
    +            container.appendChild(sanitizedFragment);
    +            return container.innerHTML;
    +        }
    +    } catch (e) {
    +        // 解析失败时回退到内置渲染器,保证页面仍然可读。
    +    }
    +
    +    return fallbackRenderMarkdownHtml(normalized);
    +}
    +
    +window.MarkdownRenderUtil = {
    +    // 暴露为全局工具对象,供通知页与文档页在无打包环境下直接复用。
    +    normalizeMarkdownContent,
    +    isProbablyMarkdown,
    +    renderMarkdownToHtml,
    +};
    diff --git a/pages/proactive-chat/js/views/ConfigView.jsx b/pages/proactive-chat/js/views/ConfigView.jsx
    new file mode 100644
    index 0000000..34e57c4
    --- /dev/null
    +++ b/pages/proactive-chat/js/views/ConfigView.jsx
    @@ -0,0 +1,30 @@
    +(() => {
    +/**
    + * 文件职责:配置页视图容器,负责承载配置页头部结构并挂载 ConfigRenderer。
    + */
    + 
    + const { Box, Typography } = MaterialUI;
    +
    +function ConfigView() {
    +    return (
    +        // 该视图本身只负责提供页面容器与标题,真正的配置编辑逻辑全部下沉到 ConfigRenderer。
    +        
    +            
    +
    +
    + {/* 左侧彩色竖条用于强化“当前处于配置管理页”的视觉识别。 */} +
    + 配置管理 +
    +
    + {/* 动态 Schema 解析、草稿缓存、保存与会话差异逻辑都由 ConfigRenderer 负责。 */} + +
    +
    + ); +} + +// 暴露为全局视图组件,供应用入口按 currentView 渲染。 +window.ConfigView = ConfigView; +})(); + diff --git a/pages/proactive-chat/js/views/MarkdownDocsView.jsx b/pages/proactive-chat/js/views/MarkdownDocsView.jsx new file mode 100644 index 0000000..5217de6 --- /dev/null +++ b/pages/proactive-chat/js/views/MarkdownDocsView.jsx @@ -0,0 +1,507 @@ +(() => { +/** + * 文件职责:Markdown 文档浏览视图,负责文档目录展示、内容加载与原生 Markdown 阅读体验。 + */ + + const { Box, Typography, Button, Chip } = MaterialUI; + +function MarkdownDocsView() { + const { state, dispatch } = useAppContext(); + const api = useApi(); + const articleRef = React.useRef(null); + // 从全局状态读取文档目录与当前选中文档,便于视图切换后仍能保留上下文。 + const markdownFiles = Array.isArray(state.markdownFiles) ? state.markdownFiles : []; + const markdownDocument = state.markdownDocument || null; + const selectedMarkdownPath = String(state.selectedMarkdownPath || ''); + // 文档目录和正文分别维护加载状态,这样可以实现更细粒度的按钮禁用与空态反馈。 + const [loadingList, setLoadingList] = React.useState(false); + const [loadingDocument, setLoadingDocument] = React.useState(false); + + const loadMarkdownFiles = React.useCallback(async () => { + setLoadingList(true); + try { + const payload = await api.listMarkdownFiles(); + const items = Array.isArray(payload?.items) ? payload.items : []; + dispatch({ type: 'SET_MARKDOWN_FILES', payload: items }); + + if (!selectedMarkdownPath && items.length > 0) { + // 首次进入文档页时自动选中第一篇文档,避免右侧区域出现长时间空白。 + dispatch({ type: 'SET_SELECTED_MARKDOWN_PATH', payload: items[0].path || '' }); + } + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '加载 Markdown 文档列表失败' }); + } finally { + setLoadingList(false); + } + }, [api, dispatch, selectedMarkdownPath]); + + const loadMarkdownDocument = React.useCallback(async (path) => { + const normalizedPath = String(path || '').trim(); + if (!normalizedPath) { + // 空路径时直接清空当前文档,避免请求出错后残留旧内容误导用户。 + dispatch({ type: 'SET_MARKDOWN_DOCUMENT', payload: null }); + return; + } + + setLoadingDocument(true); + try { + const payload = await api.getMarkdownFile(normalizedPath); + dispatch({ type: 'SET_MARKDOWN_DOCUMENT', payload: payload || null }); + dispatch({ type: 'SET_SELECTED_MARKDOWN_PATH', payload: normalizedPath }); + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '加载 Markdown 文档失败' }); + } finally { + setLoadingDocument(false); + } + }, [api, dispatch]); + + React.useEffect(() => { + if (markdownFiles.length === 0) { + // 仅在目录为空时自动拉取,避免每次渲染都重复请求列表。 + loadMarkdownFiles(); + } + }, [loadMarkdownFiles, markdownFiles.length]); + + React.useEffect(() => { + if (!selectedMarkdownPath && markdownFiles.length > 0) { + // 若当前尚未有选中文档,则默认加载目录中的第一项。 + loadMarkdownDocument(markdownFiles[0].path || ''); + return; + } + + if ( + selectedMarkdownPath + && (!markdownDocument || String(markdownDocument.path || '') !== selectedMarkdownPath) + ) { + // 当选中路径变化,但正文尚未同步时,再补拉一次内容,保证左右两栏状态一致。 + loadMarkdownDocument(selectedMarkdownPath); + } + }, [loadMarkdownDocument, markdownDocument, markdownFiles, selectedMarkdownPath]); + + const handleRefreshCurrent = async () => { + // 刷新当前文档时先刷新目录,再刷新正文,避免文件列表已经变化但正文仍指向旧路径。 + await loadMarkdownFiles(); + if (selectedMarkdownPath) { + await loadMarkdownDocument(selectedMarkdownPath); + } + }; + + const currentDocumentTitle = markdownDocument?.title + || markdownFiles.find((item) => item.path === selectedMarkdownPath)?.title + || 'Markdown 文档'; + const currentDocumentPath = markdownDocument?.path || selectedMarkdownPath; + const renderedHtml = markdownDocument?.content + // 文档正文和通知正文共用同一套 MarkdownRenderUtil,确保渲染风格一致。 + ? window.MarkdownRenderUtil.renderMarkdownToHtml(markdownDocument.content) + : ''; + + React.useEffect(() => { + const articleEl = articleRef.current; + const mermaid = window.mermaid; + if (!articleEl) return; + + const mermaidBlocks = articleEl.querySelectorAll('.notification-md-mermaid[data-mermaid-source]'); + if (!mermaidBlocks.length) return; + + if (!mermaid || typeof mermaid.render !== 'function') { + mermaidBlocks.forEach((block) => { + block.classList.add('is-error'); + }); + return; + } + + if (!window.__PROACTIVE_MERMAID_INITIALIZED && typeof mermaid.initialize === 'function') { + mermaid.initialize({ + startOnLoad: false, + securityLevel: 'strict', + theme: state.theme === 'dark' ? 'dark' : 'default', + }); + window.__PROACTIVE_MERMAID_INITIALIZED = true; + } + + let disposed = false; + const cleanupFns = []; + + const attachMermaidViewportControls = (block) => { + const svg = block.querySelector('svg'); + if (!svg) return; + + const currentSvg = svg; + const svgViewBox = currentSvg.viewBox?.baseVal; + const fallbackWidth = Number(currentSvg.getAttribute('width')) || currentSvg.clientWidth || 1200; + const fallbackHeight = Number(currentSvg.getAttribute('height')) || currentSvg.clientHeight || 800; + const intrinsicWidth = svgViewBox && svgViewBox.width ? svgViewBox.width : fallbackWidth; + const intrinsicHeight = svgViewBox && svgViewBox.height ? svgViewBox.height : fallbackHeight; + + currentSvg.removeAttribute('width'); + currentSvg.removeAttribute('height'); + currentSvg.style.width = `${intrinsicWidth}px`; + currentSvg.style.height = `${intrinsicHeight}px`; + currentSvg.style.maxWidth = 'none'; + currentSvg.style.maxHeight = 'none'; + + const existingViewport = block.querySelector('.notification-md-mermaid-viewport'); + if (existingViewport) { + existingViewport.remove(); + } + const existingToolbar = block.parentElement?.querySelector('.notification-md-mermaid-toolbar'); + if (existingToolbar) { + existingToolbar.remove(); + } + + const viewport = document.createElement('div'); + viewport.className = 'notification-md-mermaid-viewport'; + + const canvas = document.createElement('div'); + canvas.className = 'notification-md-mermaid-canvas'; + canvas.style.width = `${intrinsicWidth}px`; + canvas.style.height = `${intrinsicHeight}px`; + canvas.appendChild(currentSvg); + viewport.appendChild(canvas); + block.appendChild(viewport); + + const toolbar = document.createElement('div'); + toolbar.className = 'notification-md-mermaid-toolbar'; + toolbar.innerHTML = [ + '', + '', + '', + ].join(''); + block.parentElement.insertBefore(toolbar, block); + + const stateRef = { + scale: 1, + dragging: false, + pointerId: null, + startX: 0, + startY: 0, + startScrollLeft: 0, + startScrollTop: 0, + }; + + const clampScale = (value) => Math.min(12, Math.max(0.35, value)); + const getFitScale = () => { + const viewportWidth = viewport.clientWidth || intrinsicWidth; + const viewportHeight = viewport.clientHeight || intrinsicHeight; + if (!viewportWidth || !viewportHeight || !intrinsicWidth || !intrinsicHeight) { + return 1; + } + const fitScale = Math.min(viewportWidth / intrinsicWidth, viewportHeight / intrinsicHeight, 1); + return clampScale(Number(fitScale.toFixed(3))); + }; + const applyScale = () => { + canvas.style.width = `${intrinsicWidth * stateRef.scale}px`; + canvas.style.height = `${intrinsicHeight * stateRef.scale}px`; + currentSvg.style.width = '100%'; + currentSvg.style.height = '100%'; + + requestAnimationFrame(() => { + const canPanX = viewport.scrollWidth - viewport.clientWidth > 2; + const canPanY = viewport.scrollHeight - viewport.clientHeight > 2; + viewport.classList.toggle('is-pannable', canPanX || canPanY); + }); + }; + const centerViewport = () => { + const targetScrollLeft = Math.max((viewport.scrollWidth - viewport.clientWidth) / 2, 0); + const targetScrollTop = Math.max((viewport.scrollHeight - viewport.clientHeight) / 2, 0); + viewport.scrollLeft = targetScrollLeft; + viewport.scrollTop = targetScrollTop; + }; + const resetTransform = () => { + stateRef.scale = getFitScale(); + applyScale(); + requestAnimationFrame(() => { + centerViewport(); + }); + }; + const zoomBy = (delta, originX = null, originY = null) => { + const prevScale = stateRef.scale; + const nextScale = clampScale(Number((prevScale + delta).toFixed(3))); + if (nextScale === prevScale) return; + + const viewportRect = viewport.getBoundingClientRect(); + const anchorClientX = originX === null ? viewportRect.left + viewportRect.width / 2 : originX; + const anchorClientY = originY === null ? viewportRect.top + viewportRect.height / 2 : originY; + const localX = anchorClientX - viewportRect.left; + const localY = anchorClientY - viewportRect.top; + const contentX = (viewport.scrollLeft + localX) / prevScale; + const contentY = (viewport.scrollTop + localY) / prevScale; + + stateRef.scale = nextScale; + applyScale(); + + const nextScrollLeft = contentX * nextScale - localX; + const nextScrollTop = contentY * nextScale - localY; + viewport.scrollLeft = Math.max(0, nextScrollLeft); + viewport.scrollTop = Math.max(0, nextScrollTop); + + if (stateRef.scale <= 1.001) { + centerViewport(); + } + }; + + const onToolbarClick = (event) => { + const action = event.target?.getAttribute('data-action'); + if (!action) return; + if (action === 'zoom-in') zoomBy(0.35); + if (action === 'zoom-out') zoomBy(-0.35); + if (action === 'reset') resetTransform(); + }; + + const onWheel = (event) => { + if (!(event.ctrlKey || event.metaKey)) return; + event.preventDefault(); + zoomBy(event.deltaY < 0 ? 0.28 : -0.28, event.clientX, event.clientY); + }; + + const onPointerDown = (event) => { + const canPanX = viewport.scrollWidth - viewport.clientWidth > 2; + const canPanY = viewport.scrollHeight - viewport.clientHeight > 2; + if (!canPanX && !canPanY) return; + stateRef.dragging = true; + stateRef.pointerId = event.pointerId; + stateRef.startX = event.clientX; + stateRef.startY = event.clientY; + stateRef.startScrollLeft = viewport.scrollLeft; + stateRef.startScrollTop = viewport.scrollTop; + viewport.classList.add('is-dragging'); + if (typeof viewport.setPointerCapture === 'function') { + viewport.setPointerCapture(event.pointerId); + } + }; + + const onPointerMove = (event) => { + if (!stateRef.dragging || stateRef.pointerId !== event.pointerId) return; + viewport.scrollLeft = stateRef.startScrollLeft - (event.clientX - stateRef.startX); + viewport.scrollTop = stateRef.startScrollTop - (event.clientY - stateRef.startY); + }; + + const endDrag = (event) => { + if (event && stateRef.pointerId !== event.pointerId) return; + stateRef.dragging = false; + viewport.classList.remove('is-dragging'); + if (event && typeof viewport.releasePointerCapture === 'function') { + try { + viewport.releasePointerCapture(event.pointerId); + } catch (e) { + // 某些浏览器在 pointer capture 状态不一致时会抛错,这里静默忽略。 + } + } + stateRef.pointerId = null; + }; + + toolbar.addEventListener('click', onToolbarClick); + viewport.addEventListener('wheel', onWheel, { passive: false }); + viewport.addEventListener('pointerdown', onPointerDown); + viewport.addEventListener('pointermove', onPointerMove); + viewport.addEventListener('pointerup', endDrag); + viewport.addEventListener('pointercancel', endDrag); + + cleanupFns.push(() => { + toolbar.removeEventListener('click', onToolbarClick); + viewport.removeEventListener('wheel', onWheel); + viewport.removeEventListener('pointerdown', onPointerDown); + viewport.removeEventListener('pointermove', onPointerMove); + viewport.removeEventListener('pointerup', endDrag); + viewport.removeEventListener('pointercancel', endDrag); + }); + + stateRef.scale = getFitScale(); + applyScale(); + requestAnimationFrame(() => { + centerViewport(); + }); + }; + + const renderAllMermaidBlocks = async () => { + for (let index = 0; index < mermaidBlocks.length; index += 1) { + if (disposed) return; + const block = mermaidBlocks[index]; + const source = String(block.getAttribute('data-mermaid-source') || '').trim(); + if (!source) continue; + + const renderId = `proactive-mermaid-${currentDocumentPath || 'doc'}-${index}-${Date.now()}` + .replace(/[^a-zA-Z0-9_-]/g, '-'); + + try { + block.classList.remove('is-error'); + if (typeof mermaid.parse === 'function') { + await mermaid.parse(source, { suppressErrors: true }); + } + const renderResult = await mermaid.render(renderId, source); + if (disposed) return; + block.innerHTML = renderResult?.svg || ''; + attachMermaidViewportControls(block); + } catch (error) { + if (disposed) return; + block.classList.add('is-error'); + block.textContent = source; + } + } + }; + + renderAllMermaidBlocks(); + + return () => { + disposed = true; + cleanupFns.forEach((cleanup) => { + try { + cleanup(); + } catch (e) { + // 组件卸载阶段的清理错误不影响主流程。 + } + }); + }; + }, [currentDocumentPath, renderedHtml, state.theme]); + + return ( + +
    + +
    + + + + {`文档浏览 (当前共 ${markdownFiles.length} 份文档)`} + + + + + + 在插件前端中直接阅读原生 Markdown 文件,例如 README、CHANGELOG 与 docs 目录文档。 + +
    + + + + +
    +
    + +
    + + +
    +
    + {!currentDocumentPath ? ( +
    +
    📄
    + + 请选择左侧文档 + + + 选择后即可在当前管理端中直接阅读 Markdown 文档内容。 + +
    + ) : loadingDocument && !markdownDocument ? ( +
    +
    + + 正在加载文档内容… + +
    + ) : markdownDocument ? ( + <> +
    +
    + + {currentDocumentTitle} + + + {currentDocumentPath} + +
    +
    + + + ) : ( +
    +
    ⚠️
    + + 文档暂时不可用 + + + 当前文档未能成功加载,请稍后重试。 + +
    + )} +
    +
    +
    +
    + ); +} + +window.MarkdownDocsView = MarkdownDocsView; +})(); diff --git a/pages/proactive-chat/js/views/NotificationsView.jsx b/pages/proactive-chat/js/views/NotificationsView.jsx new file mode 100644 index 0000000..94626d9 --- /dev/null +++ b/pages/proactive-chat/js/views/NotificationsView.jsx @@ -0,0 +1,259 @@ +(() => { +/** + * 文件职责:通知中心视图,负责通知列表展示、已读状态操作与手动刷新交互。 + */ + + const { Box, Typography, Button, Chip } = MaterialUI; + +const NOTIFICATION_TYPE_META = { + // 不同类型通知映射到不同的 UI 标签与颜色语义,便于用户快速区分内容性质。 + UPDATE: { label: '更新通知', color: 'info' }, + BUGFIX: { label: '修复通知', color: 'success' }, + NOTICE: { label: '公告通知', color: 'warning' }, + SECURITY: { label: '安全通知', color: 'error' }, + TEST: { label: '测试通知', color: 'default' }, +}; + +const NOTIFICATION_TYPE_ALIASES = { + // 兼容后端可能输出的别名类型,统一归并后再进入主映射表。 + INFO: 'NOTICE', +}; + +function resolveNotificationTypeMeta(type) { + const normalizedType = String(type || '').trim().toUpperCase(); + const canonicalType = NOTIFICATION_TYPE_ALIASES[normalizedType] || normalizedType; + // 即使类型未知,也返回兜底标签,避免前端因为类型缺失出现空白 chip。 + return NOTIFICATION_TYPE_META[canonicalType] || { label: '其他通知', color: 'default' }; +} + +function renderNotificationContent(item) { + // 通知正文无论来自纯文本还是 Markdown,都先走统一内容规范化,避免换行格式不一致。 + const content = window.MarkdownRenderUtil.normalizeMarkdownContent(item?.content || '--'); + const format = String(item?.content_format || 'text').trim().toLowerCase(); + const shouldRenderMarkdown = format === 'markdown' || window.MarkdownRenderUtil.isProbablyMarkdown(content); + + if (!shouldRenderMarkdown) { + return ( + + {content} + + ); + } + + return ( + + ); +} + +function NotificationsView({ onRefresh }) { + const { state, dispatch } = useAppContext(); + const api = useApi(); + // 兜底保证渲染层始终拿到数组,避免 map 时出现空值异常。 + const notifications = Array.isArray(state.notifications) ? state.notifications : []; + const notificationsMeta = state.notificationsMeta || { unread_count: 0, last_sync_at: '', total_count: 0 }; + const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai'; + // busyAction 用单字符串标记当前进行中的动作,便于按钮粒度控制禁用状态。 + const [busyAction, setBusyAction] = React.useState(''); + + const refreshFromServer = async () => { + setBusyAction('refresh'); + try { + const payload = await api.refreshNotifications(); + // 先写回刷新接口直接返回的最新通知快照,再触发上层全量刷新补齐其它区域状态。 + dispatch({ type: 'SET_NOTIFICATIONS', payload: payload.items || [] }); + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: payload.meta || null }); + await onRefresh(); + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '刷新通知失败' }); + } finally { + setBusyAction(''); + } + }; + + const markOneAsRead = async (id) => { + setBusyAction(`read-${id}`); + try { + const payload = await api.readNotification(id); + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: payload.meta || null }); + dispatch({ + type: 'SET_NOTIFICATIONS', + // 单条已读时直接在本地列表上做映射更新,避免为了一个按钮再整页重载。 + payload: notifications.map((item) => + Number(item.id) === Number(id) ? { ...item, _read: true } : item + ), + }); + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '标记已读失败' }); + } finally { + setBusyAction(''); + } + }; + + const markAllAsRead = async () => { + setBusyAction('read-all'); + try { + const payload = await api.readAllNotifications(); + dispatch({ type: 'SET_NOTIFICATIONS_META', payload: payload.meta || null }); + dispatch({ + type: 'SET_NOTIFICATIONS', + // 全部已读时直接把当前列表统一标成已读,保证交互即时反馈。 + payload: notifications.map((item) => ({ ...item, _read: true })), + }); + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '全部已读失败' }); + } finally { + setBusyAction(''); + } + }; + + return ( + +
    + +
    + + + + {`通知中心 (当前共 ${notificationsMeta.total_count || notifications.length} 条通知)`} + + 0 + ? 'rgba(245, 158, 11, 0.28)' + : 'rgba(46, 125, 50, 0.18)', + background: Number(notificationsMeta.unread_count ?? 0) > 0 + ? 'rgba(245, 158, 11, 0.12)' + : 'rgba(46, 125, 50, 0.08)', + color: Number(notificationsMeta.unread_count ?? 0) > 0 + ? '#B45309' + : '#2E7D32', + }} + > + {Number(notificationsMeta.unread_count ?? 0) > 0 + ? `未读 ${Number(notificationsMeta.unread_count ?? 0)} 条` + : '全部已读'} + + +
    +
    + 未读通知 + {Number(notificationsMeta.unread_count ?? 0)} +
    +
    + 上次同步 + + {notificationsMeta.last_sync_at + ? formatDateTime(notificationsMeta.last_sync_at, displayTimezone, { includeYear: true, includeSeconds: true }) + : '--'} + +
    +
    +
    + + 用于接收插件更新、修复说明、注意事项等官方通知。 + +
    + + + + +
    +
    + + {notifications.length === 0 ? ( +
    +
    🔔
    + 暂无通知 + + 当前还没有可展示的系统通知,后续若有插件更新、修复说明或注意事项,这里会自动出现。 + +
    + ) : ( +
    + {notifications.map((item) => { + const meta = resolveNotificationTypeMeta(item.type); + const isRead = Boolean(item._read) || false; + return ( +
    +
    +
    + + {item.title || '--'} + + +
    +
    + + {isRead ? '已读' : '未读'} + + + {formatDateTime(item.created_at, displayTimezone, { includeYear: true, includeSeconds: true })} + +
    +
    + +
    + {renderNotificationContent(item)} + + + +
    +
    + ); + })} +
    + )} +
    + ); +} + +window.NotificationsView = NotificationsView; +})(); diff --git a/pages/proactive-chat/js/views/StatusView.jsx b/pages/proactive-chat/js/views/StatusView.jsx new file mode 100644 index 0000000..50f4ba1 --- /dev/null +++ b/pages/proactive-chat/js/views/StatusView.jsx @@ -0,0 +1,532 @@ +(() => { +/** + * 文件职责:状态页视图,负责服务状态、计时器可视化与手动刷新交互展示。 + */ + + const { Box, Typography, Chip } = MaterialUI; + +function dedupeStatusTimerCards(cards) { + const priorityMap = { + // 同一会话若同时命中多类计时器,群沉默卡优先级更高,避免信息重复。 + group_silence: 3, + auto_trigger: 2, + }; + const merged = new Map(); + + cards.forEach((card) => { + const key = String(card.session_id || ''); + if (!key) return; + + const existing = merged.get(key); + if (!existing) { + merged.set(key, card); + return; + } + + const currentPriority = priorityMap[card.timer_kind] ?? 0; + const existingPriority = priorityMap[existing.timer_kind] ?? 0; + + if (currentPriority > existingPriority) { + merged.set(key, card); + return; + } + + if (currentPriority === existingPriority) { + // 若类型优先级相同,则保留“更快触发”的那张卡,突出最紧迫状态。 + const currentRemaining = Number(card.remaining_seconds ?? Number.MAX_SAFE_INTEGER); + const existingRemaining = Number(existing.remaining_seconds ?? Number.MAX_SAFE_INTEGER); + if (currentRemaining < existingRemaining) { + merged.set(key, card); + } + } + }); + + return Array.from(merged.values()); +} + +function StatusMetricRow({ label, value, emphasize = false, status = '' }) { + return ( +
    + + {label} + + + {value} + +
    + ); +} + + +function resolveStatusTimerCard(timer, nowMs, displayTimezone) { + // 后端 target_time / started_at 以秒级时间戳返回,这里统一转为 Date 便于格式化和比较。 + const targetTime = parseDateish(timer.target_time ? Number(timer.target_time) * 1000 : null); + const startedAt = parseDateish(timer.started_at ? Number(timer.started_at) * 1000 : null); + const remainingSeconds = Number.isFinite(Number(timer.remaining_seconds)) + ? Math.max(0, Number(timer.remaining_seconds)) + : (targetTime ? Math.max(0, Math.ceil((targetTime.getTime() - nowMs) / 1000)) : 0); + const windowSeconds = Math.max(0, Number(timer.window_seconds ?? 0)); + // 若后端未给出 progress_percent,则前端基于总窗口时长与剩余秒数推导一个近似值。 + const fallbackProgress = windowSeconds > 0 + ? Math.max(0, Math.min(100, Math.round(((windowSeconds - remainingSeconds) / windowSeconds) * 100))) + : 0; + const progressPercent = Math.max(0, Math.min(100, Math.round(Number(timer.progress_percent ?? fallbackProgress) || 0))); + + // 根据剩余时间给卡片打上状态标签,供颜色、文案和动画统一使用。 + let status = 'future'; + let statusLabel = '稳定运行'; + if (!targetTime) { + status = 'unknown'; + statusLabel = '待确认'; + } else if (remainingSeconds <= 0) { + status = 'expired'; + statusLabel = '待刷新'; + } else if (remainingSeconds <= 300) { + status = 'urgent'; + statusLabel = '即将结束'; + } else if (remainingSeconds <= 1800) { + status = 'soon'; + statusLabel = '正常计时'; + } + + const isGroupSession = timer.session_category === 'group'; + const isGroupSilence = timer.timer_kind === 'group_silence'; + const categoryLabel = isGroupSession ? '群会话' : '私聊会话'; + const sectionKey = isGroupSilence ? 'group_silence' : 'auto_trigger'; + const sectionTitle = isGroupSilence ? '群沉默倒计时' : '自动触发检测'; + const accentClass = isGroupSilence + ? 'accent-group-silence' + : (isGroupSession ? 'accent-auto-group' : 'accent-auto-friend'); + const kindBadgeLabel = isGroupSilence + ? '沉默重置型' + : (isGroupSession ? '群自动触发' : '私聊自动触发'); + const sourceModeLabel = resolveSourceModeLabel(timer.source_mode); + const countdownText = targetTime + ? (remainingSeconds > 0 ? `${formatDuration(remainingSeconds, { compact: true, maxUnits: 3 })} 后到期` : '等待下一轮刷新确认') + : '暂无有效目标时间'; + const sessionIdText = String(timer.session_id || ''); + const sessionDisplayName = String(timer.session_display_name || timer.session_name || sessionIdText || '--'); + const hasAlias = Boolean(sessionDisplayName && sessionIdText && sessionDisplayName !== sessionIdText); + const sessionSubText = hasAlias ? sessionIdText : ''; + + return { + ...timer, + startedAt, + targetTime, + remainingSeconds, + progressPercent, + status, + statusLabel, + categoryLabel, + // 这些派生文案与样式字段统一在这里计算,减少渲染层的模板噪声。 + sectionKey, + sectionTitle, + accentClass, + kindBadgeLabel, + sourceModeLabel, + unansweredLabel: formatUnansweredLabel(timer.unanswered_count, timer.max_unanswered_times), + countdownText, + sessionDisplayName, + sessionSubText, + hasAlias, + targetText: targetTime ? formatDateTime(targetTime, displayTimezone, { includeYear: true, includeSeconds: true }) : '--', + }; +} + +function StatusTimerCard({ timer, displayTimezone, nowMs, resetHint }) { + const meta = resolveStatusTimerCard(timer, nowMs, displayTimezone); + // 未回复次数大于 0 时用 warning 色,帮助管理员快速定位“机器人已被晾着”的会话。 + const chipColor = Number(meta.unanswered_count ?? 0) > 0 ? 'warning' : 'default'; + + return ( +
    +
    +
    + + {meta.sectionTitle} + + + {meta.sessionDisplayName} + + {meta.sessionSubText ? ( + + {`UMO · ${meta.sessionSubText}`} + + ) : null} +
    +
    +
    {meta.kindBadgeLabel}
    +
    {meta.sourceModeLabel}
    + 0 ? 'filled' : 'outlined'} + /> +
    +
    + +
    +
    {meta.statusLabel}
    +
    {meta.categoryLabel}
    +
    + + {resetHint ? ( + // 群聊出现新消息导致目标时间明显后移时,短暂显示“已重置”提示,帮助理解状态变化原因。 +
    + + 群聊刚刚有新消息,沉默计时器已重新开始计时 +
    + ) : null} + +
    +
    +
    + + 倒计时 + + + {meta.countdownText} + +
    +
    {meta.progressPercent}%
    +
    +
    +
    +
    +
    + +
    +
    + + 目标时间 + + + {meta.targetText} + +
    +
    + + 计时窗口 + + + {meta.window_seconds ? formatDuration(meta.window_seconds, { compact: true, maxUnits: 2 }) : '--'} + +
    +
    +
    + ); +} + +function StatusView({ onRefresh }) { + const { state } = useAppContext(); + const status = state.status || {}; + // nowMs 每秒更新一次,用于驱动倒计时与相对时间文本实时刷新。 + const [nowMs, setNowMs] = React.useState(Date.now()); + // resetHintMap 记录哪些群沉默卡片当前需要显示“刚刚被重置”的短暂提示。 + const [resetHintMap, setResetHintMap] = React.useState({}); + // 手动刷新按钮的视觉反馈状态机:idle -> loading -> success / error。 + const [manualRefreshState, setManualRefreshState] = React.useState({ phase: 'idle', finishedAt: 0 }); + const previousTimerSnapshotRef = React.useRef({}); + const resetHintTimersRef = React.useRef({}); + const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai'; + + React.useEffect(() => { + const timer = setInterval(() => { + setNowMs(Date.now()); + }, 1000); + return () => clearInterval(timer); + }, []); + + React.useEffect(() => { + return () => { + // 组件卸载时清理所有“重置提示”的超时器,避免状态在卸载后回写。 + Object.values(resetHintTimersRef.current).forEach((timerId) => { + clearTimeout(timerId); + }); + }; + }, []); + + // 统一把后端状态字段规整为前端友好的基础数字类型。 + const uptimeSeconds = Number(status.uptime_seconds ?? 0); + const jobsCount = Number(status.jobs_count ?? 0); + const sessionsCount = Number(status.sessions_count ?? 0); + const autoTriggerTimers = Number(status.auto_trigger_timers ?? 0); + const groupTimers = Number(status.group_timers ?? 0); + const schedulerRunning = Boolean(status.scheduler_running); + const pluginRunning = Boolean(status.running); + const autoTriggerCards = Array.isArray(status.auto_trigger_cards) ? status.auto_trigger_cards : []; + const groupTimerCards = Array.isArray(status.group_timer_cards) ? status.group_timer_cards : []; + // 合并并去重所有会话计时器,保证一个会话最多出现一张最关键卡片。 + const timerCards = dedupeStatusTimerCards([...groupTimerCards, ...autoTriggerCards]); + const timerSections = [ + { + key: 'group_silence', + title: '群沉默计时器', + description: '群内一旦有新消息就会重新计时,适合观察沉默窗口是否被活跃消息重置。', + emptyText: '当前没有正在运行的群沉默计时器。', + cards: timerCards.filter((timer) => timer.timer_kind === 'group_silence'), + }, + { + key: 'auto_trigger', + title: '自动触发计时器', + description: '用于观察会话的自动触发状况,并按群聊 / 私聊显示不同标签。通常情况下,插件运行一段时间后,这里将不会出现新的卡片。', + emptyText: '当前没有正在运行的自动触发计时器。', + cards: timerCards.filter((timer) => timer.timer_kind === 'auto_trigger'), + }, + ]; + + React.useEffect(() => { + const nextSnapshot = {}; + const nextHints = {}; + const activeKeys = new Set(); + + timerCards.forEach((timer) => { + const key = `${timer.timer_kind}-${timer.session_id}`; + const currentRemaining = Math.max(0, Number(timer.remaining_seconds ?? 0)); + const currentTarget = Number(timer.target_time ?? 0); + const currentStatus = String(timer.status || ''); + const previous = previousTimerSnapshotRef.current[key] || null; + + activeKeys.add(key); + nextSnapshot[key] = { + remainingSeconds: currentRemaining, + targetTime: currentTarget, + status: currentStatus, + }; + + // 真正的“被重置”应表现为:同一张群沉默卡片的剩余时间突然回升,且当前仍处于有效运行态。 + const isGroupReset = timer.timer_kind === 'group_silence' + && previous + && currentStatus !== 'expired' + && currentStatus !== 'unknown' + && currentRemaining - Number(previous.remainingSeconds ?? 0) > 3; + + if (isGroupReset) { + nextHints[key] = true; + if (resetHintTimersRef.current[key]) { + clearTimeout(resetHintTimersRef.current[key]); + } + resetHintTimersRef.current[key] = setTimeout(() => { + setResetHintMap((current) => { + const updated = { ...current }; + delete updated[key]; + return updated; + }); + delete resetHintTimersRef.current[key]; + }, 4200); + } + }); + + Object.keys(resetHintTimersRef.current).forEach((key) => { + if (!activeKeys.has(key)) { + clearTimeout(resetHintTimersRef.current[key]); + delete resetHintTimersRef.current[key]; + } + }); + + previousTimerSnapshotRef.current = nextSnapshot; + setResetHintMap((current) => { + const filtered = Object.fromEntries( + Object.entries(current).filter(([key]) => activeKeys.has(key)) + ); + return Object.keys(nextHints).length > 0 ? { ...filtered, ...nextHints } : filtered; + }); + }, [timerCards]); + + const handleManualRefresh = async () => { + if (manualRefreshState.phase === 'loading') return; + setManualRefreshState((current) => ({ ...current, phase: 'loading' })); + try { + // 手动刷新会回到入口层执行一次完整 loadAll,确保状态、会话、配置、任务全部同步。 + await onRefresh(); + setManualRefreshState({ phase: 'success', finishedAt: Date.now() }); + } catch (e) { + setManualRefreshState({ phase: 'error', finishedAt: Date.now() }); + } + }; + + const refreshButtonLabel = manualRefreshState.phase === 'loading' + ? '正在刷新控制台数据...' + : manualRefreshState.phase === 'success' + ? '刷新完成' + : manualRefreshState.phase === 'error' + ? '刷新失败,请重试' + : '刷新控制台数据'; + + const refreshNoteText = manualRefreshState.phase === 'loading' + ? '正在重新拉取运行状态、会话列表、配置与任务列表。' + : manualRefreshState.phase === 'success' + ? `已完成手动刷新 · ${formatFriendlyTime(manualRefreshState.finishedAt, displayTimezone)}` + : manualRefreshState.phase === 'error' + ? '本次手动刷新失败,请检查服务连接或稍后重试。' + : '手动刷新会重新拉取运行状态、会话列表、配置与任务列表。'; + + return ( + +
    +
    +
    + +
    + 服务状态 +
    + +
    + +
    + + +
    +
    +
    + +
    +
    + +
    ⏱️
    + 调度概览 +
    + +
    + +
    + + + + +
    +
    +
    + +
    +
    + +
    🚀
    + 快捷操作 +
    + +
    +
    + +
    + {refreshNoteText} +
    +
    +
    +
    +
    + +
    +
    + +
    + + {`会话计时器可视化 (当前共 ${timerCards.length} 个计时器)`} + + + 实时展示自动触发检测与群沉默检测的倒计时、进度和会话状态。此处卡片的倒计时结束后会进入任务管理页面 + +
    + +
    + + {timerCards.length === 0 ? ( +
    +
    🫧
    + 暂无运行中的会话计时器 + + 当前没有正在计时的自动触发或群沉默会话。等插件进入下一轮会话调度后,这里会自动出现对应卡片。 + +
    + ) : ( +
    + {timerSections.map((section) => ( +
    +
    +
    + + {section.title} + + + {section.description} + +
    +
    {section.cards.length} 张
    +
    + +
    + {section.cards.length === 0 ? ( +
    + {section.emptyText} +
    + ) : ( +
    + {section.cards.map((timer) => ( + + ))} +
    + )} +
    +
    + ))} +
    + )} +
    +
    +
    +
    + ); +} + +// 暴露为全局视图组件,供应用入口按当前路由态切换展示。 +window.StatusView = StatusView; +})(); + diff --git a/pages/proactive-chat/js/views/TasksView.jsx b/pages/proactive-chat/js/views/TasksView.jsx new file mode 100644 index 0000000..c436844 --- /dev/null +++ b/pages/proactive-chat/js/views/TasksView.jsx @@ -0,0 +1,533 @@ +(() => { +/** + * 文件职责:任务页视图,负责调度任务列表、倒计时进度与任务操作入口展示。 + */ + + const { Box, Typography, Button, Chip } = MaterialUI; + +function normalizeTimestampValue(value) { + // 兼容后端可能返回“秒级”或“毫秒级”时间戳;统一规整为毫秒再交给 Date 处理。 + if (value === null || value === undefined || value === '') return null; + if (typeof value === 'number') { + return value < 1000000000000 ? value * 1000 : value; + } + return value; +} + +function resolveTaskProgress(job, nowMs) { + const nextRun = parseDateish(job.next_run_time); + const nextTrigger = parseDateish(normalizeTimestampValue(job.next_trigger_time)); + const scheduledAtMs = normalizeTimestampValue(job.last_scheduled_at); + const randomIntervalSeconds = Number(job.last_schedule_random_interval_seconds); + const minIntervalSeconds = Number(job.last_schedule_min_interval_seconds); + const maxIntervalSeconds = Number(job.last_schedule_max_interval_seconds); + + if (!nextRun) { + // 若调度器未给出下一次执行时间,则返回一组可安全渲染的默认元信息。 + return { + nextRun: null, + nextTrigger, + remainingSeconds: 0, + remainingText: '--', + countdownText: '暂无有效执行时间', + friendlyText: '--', + status: 'unknown', + statusLabel: '待确认', + progressPercent: 0, + }; + } + + // remainingSeconds 驱动任务卡片的倒计时、状态颜色与进度条表现。 + const remainingSeconds = Math.max(0, Math.ceil((nextRun.getTime() - nowMs) / 1000)); + const friendlyText = formatFriendlyTime(nextRun, 'Asia/Shanghai'); + const remainingText = remainingSeconds > 0 + ? formatDuration(remainingSeconds, { compact: true, maxUnits: 3 }) + : '已到触发时间'; + + let status = 'future'; + let statusLabel = '正常排队'; + + if (remainingSeconds <= 0) { + status = 'expired'; + statusLabel = '待刷新'; + } else if (remainingSeconds <= 300) { + status = 'urgent'; + statusLabel = '即将触发'; + } else if (remainingSeconds <= 1800) { + status = 'soon'; + statusLabel = '等待触发'; + } + + // 优先使用更明确的随机调度窗口;若缺失,再尝试用 nextTrigger / max / min 区间推导。 + const candidateWindowSeconds = [ + randomIntervalSeconds, + nextTrigger ? Math.max(0, Math.round((nextTrigger.getTime() - nowMs) / 1000)) : 0, + maxIntervalSeconds, + minIntervalSeconds, + ].filter((value) => Number.isFinite(value) && value > 0); + const windowSeconds = candidateWindowSeconds.length > 0 ? candidateWindowSeconds[0] : 0; + + let progressPercent = remainingSeconds <= 0 ? 100 : 0; + if (windowSeconds > 0) { + let elapsedSeconds = 0; + + if (scheduledAtMs) { + // 若保存了调度创建时刻,则以真实经历时长计算进度更准确。 + elapsedSeconds = Math.max(0, (nowMs - scheduledAtMs) / 1000); + } else { + // 否则退化为“总窗口 - 剩余时间”的近似值。 + elapsedSeconds = Math.max(0, windowSeconds - remainingSeconds); + } + + progressPercent = Math.max(0, Math.min(100, Math.round((elapsedSeconds / windowSeconds) * 100))); + } + + return { + nextRun, + nextTrigger, + remainingSeconds, + remainingText, + countdownText: remainingSeconds > 0 ? `${remainingText} 后执行` : '等待下一轮刷新确认', + friendlyText, + status, + statusLabel, + progressPercent, + }; +} + +function formatQuietHoursText(value) { + const raw = String(value || '').trim(); + if (!raw) return '未配置'; + + const matched = raw.match(/^(\d{1,2})\s*-\s*(\d{1,2})$/); + if (!matched) return raw; + + const startHour = Number(matched[1]); + const endHour = Number(matched[2]); + if (!Number.isInteger(startHour) || !Number.isInteger(endHour)) return raw; + if (startHour < 0 || startHour > 23 || endHour < 0 || endHour > 23) return raw; + + return `${String(startHour).padStart(2, '0')}:00 - ${String(endHour).padStart(2, '0')}:00`; +} + +function formatScheduleIntervalText(minMinutes, maxMinutes) { + const minValue = Number(minMinutes); + const maxValue = Number(maxMinutes); + const hasMin = Number.isFinite(minValue) && minValue > 0; + const hasMax = Number.isFinite(maxValue) && maxValue > 0; + + if (!hasMin && !hasMax) return '未配置'; + if (hasMin && hasMax) { + if (minValue > maxValue) { + return `配置异常:${minValue} > ${maxValue} 分钟`; + } + return `${minValue} - ${maxValue} 分钟`; + } + if (hasMin) return `${minValue} 分钟`; + return `${maxValue} 分钟`; +} + + +function TasksView({ onRefresh }) { + const { state, dispatch } = useAppContext(); + const api = useApi(); + // 每秒刷新当前时间,驱动任务卡片上的倒计时与进度条更新。 + const [nowMs, setNowMs] = React.useState(Date.now()); + const [triggerFeedbackMap, setTriggerFeedbackMap] = React.useState({}); + const [rescheduleFeedbackMap, setRescheduleFeedbackMap] = React.useState({}); + const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai'; + + React.useEffect(() => { + const timer = setInterval(() => { + setNowMs(Date.now()); + }, 1000); + return () => clearInterval(timer); + }, []); + + const triggerNow = async (session) => { + setTriggerFeedbackMap((prev) => ({ + ...prev, + [session]: { status: 'pending', text: '正在触发,等待 LLM 回复完成…' }, + })); + try { + // 手动触发后会重新走一次父级全量刷新,确保状态页与任务页同步更新。 + const result = await api.triggerJob(session); + setTriggerFeedbackMap((prev) => ({ + ...prev, + [session]: { + status: 'pending', + text: result?.message || '已开始立即触发,正在等待 LLM 回复完成…', + }, + })); + await onRefresh(); + } catch (e) { + setTriggerFeedbackMap((prev) => ({ + ...prev, + [session]: { status: 'error', text: e.message || '触发任务失败,请稍后重试' }, + })); + dispatch({ type: 'SET_ERROR', payload: e.message || '触发任务失败' }); + } + }; + + const cancelJob = async (session) => { + try { + await api.cancelJob(session); + await onRefresh(); + } catch (e) { + dispatch({ type: 'SET_ERROR', payload: e.message || '取消任务失败' }); + } + }; + + const rescheduleJob = async (session) => { + setRescheduleFeedbackMap((prev) => ({ + ...prev, + [session]: { status: 'pending', text: '正在重新调度下一次主动消息时间…' }, + })); + try { + const result = await api.rescheduleJob(session); + setRescheduleFeedbackMap((prev) => ({ + ...prev, + [session]: { status: 'success', text: result?.message || '已重新调度下一次主动消息时间' }, + })); + await onRefresh(); + } catch (e) { + setRescheduleFeedbackMap((prev) => ({ + ...prev, + [session]: { status: 'error', text: e.message || '重新调度失败,请稍后重试' }, + })); + dispatch({ type: 'SET_ERROR', payload: e.message || '重新调度失败' }); + } + }; + + const jobs = state.jobs || []; + + React.useEffect(() => { + setTriggerFeedbackMap((prev) => { + let changed = false; + const next = { ...prev }; + jobs.forEach((job) => { + if (job.manual_trigger_in_progress) { + const current = next[job.id]; + const expectedText = '正在触发,等待 LLM 回复完成…'; + if (!current || current.status !== 'pending' || current.text !== expectedText) { + next[job.id] = { status: 'pending', text: expectedText }; + changed = true; + } + return; + } + + if (next[job.id]?.status === 'pending') { + next[job.id] = { status: 'success', text: '本次立即触发已完成,按钮已恢复可用' }; + changed = true; + } + }); + return changed ? next : prev; + }); + }, [jobs]); + + React.useEffect(() => { + const successEntries = Object.entries(triggerFeedbackMap) + .filter(([, value]) => value?.status === 'success'); + if (successEntries.length === 0) { + return undefined; + } + + const timers = successEntries.map(([sessionId]) => setTimeout(() => { + setTriggerFeedbackMap((prev) => { + const current = prev[sessionId]; + if (!current || current.status !== 'success') { + return prev; + } + + const next = { ...prev }; + delete next[sessionId]; + return next; + }); + }, 3000)); + + return () => { + timers.forEach((timer) => clearTimeout(timer)); + }; + }, [triggerFeedbackMap]); + + React.useEffect(() => { + const successEntries = Object.entries(rescheduleFeedbackMap) + .filter(([, value]) => value?.status === 'success'); + if (successEntries.length === 0) { + return undefined; + } + + const timers = successEntries.map(([sessionId]) => setTimeout(() => { + setRescheduleFeedbackMap((prev) => { + const current = prev[sessionId]; + if (!current || current.status !== 'success') { + return prev; + } + + const next = { ...prev }; + delete next[sessionId]; + return next; + }); + }, 3000)); + + return () => { + timers.forEach((timer) => clearTimeout(timer)); + }; + }, [rescheduleFeedbackMap]); + + return ( + + +
    + + {`调度任务 (当前共 ${jobs.length} 个调度任务)`} + +
    + +
    + + {jobs.length === 0 ? ( +
    +
    🪄
    + 暂无调度任务 + + 当前没有待执行的主动消息任务。当会话满足调度条件后,这里会自动展示任务卡片与倒计时信息。 + +
    + ) : ( +
    + {jobs.map((job) => { + // 每张任务卡在渲染前先推导出倒计时、状态与进度等派生信息。 + const task = resolveTaskProgress(job, nowMs); + const chipColor = job.unanswered_count > 0 ? 'warning' : 'default'; + const sessionIdText = String(job.id || ''); + const sessionDisplayName = String(job.session_display_name || job.session_name || sessionIdText || '--'); + const hasAlias = Boolean(sessionDisplayName && sessionIdText && sessionDisplayName !== sessionIdText); + const sessionSubText = hasAlias ? sessionIdText : ''; + const sourceModeLabel = resolveSourceModeLabel(job.source_mode); + const unansweredLabel = formatUnansweredLabel(job.unanswered_count, job.max_unanswered_times); + + const isTriggerRunning = Boolean(job.manual_trigger_in_progress); + const triggerFeedback = triggerFeedbackMap[job.id]; + const rescheduleFeedback = rescheduleFeedbackMap[job.id]; + const isRescheduling = rescheduleFeedback?.status === 'pending'; + const triggerButtonLabel = isTriggerRunning ? '触发中…' : '立即触发'; + const triggerHelperText = isTriggerRunning + ? (triggerFeedback?.text || '正在触发,等待 LLM 回复完成…') + : triggerFeedback?.text; + const rescheduleHelperText = rescheduleFeedback?.text; + const scheduleIntervalText = formatScheduleIntervalText( + job.schedule_min_interval_minutes, + job.schedule_max_interval_minutes, + ); + const quietHoursText = formatQuietHoursText(job.quiet_hours); + + return ( +
    +
    +
    + + 会话 + + + {sessionDisplayName} + +
    + + + {sourceModeLabel} + + 0 ? 'filled' : 'outlined'} + /> + +
    + + {sessionSubText ? ( + + {`UMO · ${sessionSubText}`} + + ) : null} + +
    +
    +
    + + 下一次执行时间 + + + {task.nextRun ? formatDateTime(task.nextRun, displayTimezone, { includeYear: true, includeSeconds: true }) : '--'} + +
    +
    + {task.statusLabel} +
    +
    + + {task.countdownText} + +
    +
    +
    +
    + + + + + 调度间隔 + + + {scheduleIntervalText} + + + + + 免打扰时段 + + + {quietHoursText} + + + + + + {triggerHelperText ? ( + + {triggerHelperText} + + ) : null} + {rescheduleHelperText ? ( + + {rescheduleHelperText} + + ) : null} + + + + + + +
    + ); + })} +
    + )} +
    + ); +} + +// 暴露为全局视图组件,供应用入口按 currentView 切换。 +window.TasksView = TasksView; +})(); + diff --git a/pages/proactive-chat/logo.png b/pages/proactive-chat/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc92c5398a6a8e20d76ba7ee1fcad130464e1d6 GIT binary patch literal 69222 zcmZsB1ymeCv+nNV78bW4*$_O~;<~^>a0`pO2X_zdP6)2SA-KB)clQ7x1lOR!AOC&# z+;`qNcY5YjO;6XELfD|h0vHt zt118hUUUF}e=q=W_fqA*2LQOT0{{nx0DwR$06^l9*{UM+asky??gJd~{GXEBQJnZv z1GINiR0B@txu?IJymOJ%bTKt@F%vLxGJ7EaPIgZ2_Z;l+p&V))>;mjO0#GP3`wPQ< zc74S9{|VUIn|?C){9gn(|E~c3PlJ~S1Tg%M2A5B^X3j1~whsS`%zrCc=yZK~F@Uz2 zri{6Q0)Xj-M+cw)@c~FL9PmG;0Fnbx{)-0yWPud_!>a-r{=3bKoj?Ttul-Bg|7_AP z$A1j@UzA$)hU>*-02#QLn#W4tSklc0(@1?lWA9r@|9zoMBrl|2bP;o!S!hy7!~D5vHX( zE&3fAH*2@+&>Ug2ok;ZO@T3;!xSO9JW)xp%dY`QGm+LY^)cZ&Xo}RKy5Zq7z4Fn!M z5nvU*N1dLQ_9ia}8zAMJ(_7Z7?$>^|=Xn3R{JR5s0*Q+69njXJvf7GRou;q_-G+m^Sm>HF1 z6fbt+Fq5FFPh+ymh@~_{G8f_Fso(&JvQN9Y*+fj5xjJ_wsIx0`ZQ%0v(ci89Mc?Yl zWF0@069Q9ovy&zdCX8+pM>Q2Pwzti$)5djrS{K`CDeb{H6gF{57x~TC!6CfIm0v07 zQ?&9OJQt42U@03bPt~!zoM^m0zGPP>o(aiK%}LSqGehe(`D_kH&N7{qmwJq#9DaK& z`$yd=@f(E{L_&zW7Qf!4HKv_Dqh=Rn8W|U0;0Hzk_85$nV{M=8qU}~dw~#xxEvIvr z(r=bfHyvksrn5$sTi1h9^9$?#wo&71H`Av_U8ip-7|Egr*~}>+T)0AGHrcncY@f`_ zeU_8#>tlO8WP(z18q*@_2b-vT@qSh1~nmPaqT1(NcaFL=g| z1OoLVK&~jg(A^I2qF&Y%pHhnhl@u}<$t(STrby(Cw@GbEU9{V-3TH|7H31E*`PRbD z>Wf;NSUEaTVLvdFFo;PFm#Mn12wFXpD{696EIhUNDv-eH6N^y1Cf7!lyFPWFSbxi@ zto#WSxg3_^U#?O0WA!Pb$!u>j#+lyURvS_MI~8#+ti99i)xY&jDN|?d33Tgp;6(}A zokp^ZaL^(0LozBSy?982K6js&yG}xNkUiCfe=S1@SSu)4V2uv^2g}t#_I!R9^oRP$ zi;2?$@wdf_d7|1|8-Gtk=GkwW2<(j04?`C!nubao0j?dFlJU7Q*eHH!6t+_;s16)vsmK*$YeLF43pyGVz9wb~v z(M`RE&9X5&=AT}X%TJ_@J4Q`~YvZs|?!A5Tj-rUS{$Q(ixpT%mCnJ2Z+iP`CZcY+6h^mQp?Kr&DzfU zF`#H-ZCjfiXu;6V2J7HyoBrTS^4Ty--bRKoc6^gm&>nrnpt0mR~WXAk} z+kCg*xGvgew1LiCnL|wg39N{B(0jdwJKft54XW_T3AxzFcvt*4XX}uC9(C+!V z+M@Y&gf6Otj(}f3Ez7B53VegjlO-ejw1;X*DB8^BFD{6oLcs4zxi`}Ds7x5uu+e5> zGT~QyxB+YyL*NcFL03s3&r`hr1Jmk+^9BN{K)raVcEYz%>WO8~U;bPzF~vvk{?VgM z%PanVJfo-JVjSClr}EfgLUwbF$QNK`UQtDY_h=WNE&kL}3W4OMlX0goD|=hmvNXvF zlr4PA8+B7#Jmwp;`L6uD?Dc-oa@tD#NPwZOmhsj$osD?MdEB&;w95rqfp^ew8n00( z*HvHxwXv+2Q^V7_coBKL%emPKonoRIJ#6r_PWOJ>Jh!F(>WH(u z+f3q(cI0Kn^Os+}W>SXVL8)y%KErsGw11Ps&j41m1TLJt-<6Yd5 z0g^TWNL^mN1dhWuGv+^OjKA+QO*9fg*+EcoAk0e3!%Zox6d}SC&`{nyfozcd9fjyH zjihnWtMauQbpHwccaM6k=S4>2hvxRoJ*L2vJ~9%`plRm?)CQCkOeHMe$Et=}` zTnpTqyN^*>iehp?5$Jps1KUYIy!WIzBo6{5T%N}dh1Cbc)R zjHnY!T0>kA+?7LjMZ5mcES>-;l*`QMbk;Gmt+m-AjO-2PQ06VO7Comm z+vhG_gLZY3gnN z)J(%3Q`&m_DbK-{Qg3^&AKrY#H9qnx^`||z&6`i7J`G}Zdc$Ym6H${f*5>zEFKbj? zy^9bIw=KS`X*E8>BRw`!%e=1@b&lLG_=h`VJL69DVu3qNAKRJtprzj{ zOM(|ffykl$1^)i~r>uD^o7vZXpWa$#o$Oy*?vqR$nr4wHtETGJsI%Jf@#NHX^IP-I zPlQD|^tUU0T4Q}20}9P*G@qSRt2~8{TFNme<&64YPWse%DtL`IUGN$VzNaYhvs*mq zc3=)`_4gWAC9b#-#H&aMFvd#ZmyX;sq8&DtdY($BL6xvZS~1sPqydsLkuj2!1Jg<& zAW||w89@`nQu~rbP^|Z5tz65kW+{oSegWm3!I__`5ZU`WAgP;(3!Kl%Blb|GlnA>P=@ z8qW2BepjEKs7JaRPptRavII33J=X3^DJj@LlFT2%>5tiZ(F4|cLmH3!^$UskOe9wX z2cJYtbhJ^7?oal43Yvxxt%C)@T1D>cZOZ(bbrS9?;(KkG0A`_{6yn-LL`E$2uQZ6! zJI@~Kf6YP*Z6{{Qygx&r8q5j*qDM($iErN^^)83TzxMnSU&zVlk0foHyRdwU0ZvdO zvIq?ZlCO;6*pvW{Cy)SBgqc>Ec6&29-O=dt%MvPx1|z^FJzh(Mk$HG@wK%)$hI{XU zeKl^|vtDv&%CyE}R!e)YC_$laaViUi=;(*N^TVCh_wC1lmIe_x&)+g|m~ESrs#;kl zXVgR{O9->nfH=rNy$>2e$uP;;wvRv1tx9zmQ=<(LyUECCg(^%)f{OOipDZamUESFL zx%cGJ0Dt9imej^o&ToKLclr6((kP#l5s@`ZH?x!2mn7 zfoTDx;4k-G0tx3xwE#bmaNNo2^=&uZ^%h0$kBnEq!0)LJ58!4My@~l5VECV z8PkjyRRB0V3o9R7p((4`Fj=)alX5&1GP%nC6GojuG=cKB)oE=}#H-^=ttY#PgweKc zcb&&2Zpk`}zMaFcSXUTYL)C$kc(!}nC$(@CL_I3E1h+B(#$zafjQqPZEkcvhgs36X zOv_pg4}n)YpBG++nQFx)v4c&tCIIjA50r;J(a7ZE zkknxC(A=0BwwQLpzjn-FYItJHoRdxa_B*0#oQz)CIn&-69#T6kwQ{waMKP1f`ml8h ztoIqrDee6u!pCHWJODtvV7kC+Fj^s5AOy4nW3l>}Afu&WOj4+Bj36s^EyT1km%{WP zDoe)xh|Oq~u6(fKh`|N>v*6oZn%?qcW*%w^0E5NR$-;!Te3Nm!zM*sd63Z4VABFW< z=1$9l@NfBCcg#X9_KB*cYHF@-v7Mt%{C-(w`D)>6-ApCPUCY;MVF(K+GW{@Dv+#6w zP;gmx@!i=z)VI<5Gb@yl=;tmSIv@Ts|@2&cC`q5XGCzna$vRow~~^-vU~KTF9-5 zhWt@V)!*kwkL;UjD;CYy$0FV*1)6?F;*x+yLO84t2#x_O?E%t5fdyBh?*e7gl>PM~ zENkI(kUW1&&vlal$mE5-x~b<7e{lDh@&~DRNI^!Sq(fe0S9R5G^Q%m?6)cl{)oC=T zk3{P2`$ITV-)=8o8N zcmO|ht2L)A#xmOJ;=7n;0V`i^|AdI3vR%>ybnYz zVXNN|QsQ8+tQAI@R-_FI%GAK8W5(B((pHuVJCY-}jv-PNM7+m8n2Wqb_B(`RdT?^z zrGI+XU;3I{>bQ12KXAil0}6MxigNwJU~XbfVOoy#Eji65=y95JIL}ZsQeMC5FoIDx zFv$W}vX-u#Q|zcBDPpA{wE%?&fUOlx6b=F6`OB>Q<_KqmAk{FziGFlzh08W*k!{;> z36m+Zjc76>tiIkHl(>@7Cl2o!d$_r|IlA$X;e6lMGxjS!olZgR68Jf1!GlJ71 zy@hj28p1Y~2^l}fhKH*V;-Li8wKsLtHMG^$wQX#W>$W+?ql|!;qTlZz2l@IH=NK#> zTse*KflFkgYe3)AR1{KM$guGe5?Rs#CI6PPYHbxs+nT<;4cH;g{ao6>-pjOWk^)f2 z-`ojWBqe4>{FEer>NuseRldzsF)2Vdhn#_N7F&1GT&O5Y2kjzkBXW;d-(ll zZ}0a}Ju7|gZxko+usnhYj+j@=+OuHNmEePxS$($6Huz=7#Z6;M3$x3Q1Ji8%0%-!1 zlyQjgA|idOx;k7P{5Ld^Ac4t}%&R@yZuqXi8Xd^LPKV@tHnS7|I(6?w2$?&(ndE&f`&Td@Wmu{!(_ zK=tR&SQ`maJ!-p0WGKrXt(Q+X5TZo)^yT2rnX9Fxkw=!k(MkUB>tg!ypN$76L!xW3 zkK8|%RE`C3(cq=0F_Pkuae`G1C1U;aLghP-v(|zhtrzW%PET=Bk)*^*of{v;8oO3E zPDz4T>RLz8p~hSYg!8X(74k4%6WL{>OdZ`U1Husg;k$P1DZRb%sa@2_17hqGPS~QX z)-b?4wCjFi6NJK+37lN1UXXblrx+4I1!!lCwT1%C&93mKEhlW!af;I7qLtxe(G2LR za0Kj?aISKsf~+u=5^h-H#U}(a2n{YG$S*1&ARrX^T9&#@d7=Hx2(UNQ_UeIpB8>NyPG;|5Q99yJ|Qp zUN=BopHQ-~sm}XqV4j)Rj_^?g3|`R}T|Fgf!gXs>hANlKAJ+s5|{ZCABV; zsu!bN=?09lwJ4G*WB%ZPTO-w}viNh)8-2_y@+a5AM{OXdAwz4h!8cM{AldTp;2~GE z#%jUG9ZamNt3z|&5EkX9!U;1^ewz=pt$7EL5E2Q_-%caW5*0>)>O9M%zr;pW93Dj^|piX~7hp$2dI80FRKSE8+CC0ph z9y53ieD;$%g4Vi+$lWQQ&Q_K88U)0+d#})vbK0gXtZAlm17p|_M`e7Fmry#w@ z_y$~N^@St7fDe$jdRY|yGroaYB2a1pwWP5UrV#^cWl|QeCYui+niReA<|BP$@pt^( zLEidT6?9VpKOLn$DP{Br;CqoWIH=8-Vbr78=^jEu-uVHNe z6>j1v)_#JLWjGx)H-PV3)7EJL1%dxLQ;DL*V+IE7(}_0doQu1=8{praY7_P1U=M}D zVBzwaKmt`|DHWW@-@gu$H1s{Ucdo2ERW;o1n%pC^MDSF~Wu>s9|Kx%LWP+4=7os2z z&_7AyO>&A6+BW^e6nnOmy<__~dZ|e~$M2a>Hp*a=Lfpat65iUA+tC%Z6kztPSIUO` z%yu%np``MK&~hk)%|&L9rXS?pByhns zA#|3>;(+iH^a$WkoetTWG7#1@!m()rH|>KXhs#F7Geell9GkCxM6q?9AFTIW=_{_X z-0R%-JWZ%4B&sopGhqK-=7AH61LR;JC`GwlP;)zd{mW12@tM*{cL0@r1+FrBlg7~v z3cZs@U9!P0_f8c3nlA_dvGq%ckGE&wYbt7{B)x&>Ga`@Pf5eHK9K2EbkUug77>~^s z>b$rX98{uO-2N(jCN-y~(2kA7ksCpdUWS1VDA8Gfn(v`1{M)43umdPEQz8qf=6hn< zh2pHeHv%>uqB^yS%#WzaP@(5V% zP3}#g6`Ei3Ydu#TSyU9#lA3SR(@UfPL;M!z%3!?Q{&y$pg!Yt_bo*rK3CpsISJ$8@11Q=7vetIUoYSJB_GNx4h*U_4{F~dRIqUfLQ z1_&|@EB|WB6bsNA6t$c$Fdssb4D4NSk$7?g1mrK#(vQxI=g zS8f3j*W+CBFLD{)d2x3pCfQB=aq{=qEz^KJK@AxnuA#_d9zyFbk7?Zg%P40-LZ8O}f zz7Z?Geh5HA^FC~>qphqrtdYNuVJtj|{N4ZI((G$OGvt_FHeVjhpFfCG^VWI$akT3T~l z+~2oDIg(_HF~cpdk?O0S#~9{9iVZre9PYf|A&t4Mzgy882Ba)5C3k7l+_*xz5E!l0 zjf_#bbpqv>niPh63h!``%x!SjlX$2Y`qaEa=mYQ6`H2zofW z|7u4906fms*n{!PP*u=8i$HwXTvE@cbbJ4p1t9oS2K6H2+dUq!I{^BF{cV1zt-0JU zvlcLLs$bN|^5Tx8RD8_eJbY{kPVFS6mCVSY49rwGaC$ySifg~!)ZwinkdFJ+PoaSp z;B8uhrz`=WRgRg67s3kG3Ay_irnUgSkkxEAI~wO~Z9}p#^q+TGmkek%C}+Ot&_Zb) z`PsiiGPtNU=oDiF9uv-6W>#_ICI^Td zrC>LwKW`^^JAECUQlV%Z@#uguaucQ;fSb~xn;sx)W0Nxkte=*f~HJajcjZw*mw!kbc zC6#<_&&>{fhb3);2{2X>l^~e>?IoX2i3Jb_WOTKW`l> zo%rAyV@K0932xVvIEwJ(BGqSQ!~5dhM5SBa&6V@yTfB&HHhqm) zw?7JHtVZUBso>&USr2o(n2awvogDsw6Wy=Tyz$1qMhM|jPp^NzZzHkTwf8xDM7v+b zrJ^3N+Pzy>lu91|r<>~UBWQdb%_ujo4FKY)e(8N(Iu_DanObQ95^L-%pGDw+5< zgIm7niGSmPQNH#9*)%0h+8j`>U7!rJ(G0Q=BTs|7M|QSFYYg|i%+6v^^14OR@}jgL z^5lRjk$l2!c5oqwI65#*4Y7t4Qov-ZVUg-c2>@`8ql3&-OR>7=45+$+dH`6li<~kO zDKJl^tj4myA6?2kFg}1RfJ(TXS3vOd#duu%^+=SGqEx<2`{zeP`rc@uaVdV93UG`a z(!wGEReBF)hgW%Y2uU~-G&?mKDHQa|B0rzUV?U^{10Z&+?bXXpXAx(W;PP(&y(^OL zk51!+Q(qGZtMQ3OxDVF^sYLjMx=Og&8V5*v*&f>_gJ`dj_?DQ61(FS-2s2=ImJ4}MN+LB1fZI|4T0d-u@FQsS^&DYj#pND zm?A%|Tk=Tr5L!kqx}heP%Tz%vLj5sg-yzkO3|(Kl@u&H0-iY#2y)y87zGo{^q00HW zvQaCx7Zx0Zm)DxfiNr-~Be4fi=Zn!Pi&2&0h_2vVZDq|YrS{RHd!8IFKe;PAuf<&3X|_Y#Rb@lMtcMRUHOiWbgO*|*p;0R>-Be*SSFZ^;-Z z3}6SNn5*~3U(uMFebr&>Je!X5GoG5f176?xxK=gkfg>cevzv0IVLPF-HeT6vlWamC z>)Di#oP60`0d)3%BF*RL%M+f1#iQ{NnNr*X$-o(5N^DyW+PV{Z zs-h-^2JQc*$o{oi&0)Zgq`Dea?ntI|?J3DNfQ2SjRtlJqbQJg)w z+0$bMkZ)!5kc<;pS3Bx9{n&0nw+V_iSn}ZggH{E9Yc5r-RhDtvPBG#w=#XShuIj^& z>4AX7Ipw2UG4-J{sf?FsIQt4k;!cL$Owu)|0K9K1PJIro4F+4+_iqMzvEa0{b=n2y z0Cgmy(s81X$|>y?^=?aj=~Brnoca%CjNE0__Yjw*;wYpgWmT#G_MNIWY7LZQn!5C@u z-NlJ_Pk;aQ41@1i)e#2w=P4(hkCe&i_;RJ~RE7uzG8UwA6S8=Q;98cnWuunmT>QDz z$TglEVTlNXQU+EUd}gAbAwjAQc({8O#duuzLujIxyidK)G^Up~eizifx8DtrOh;wj z0dh5&OnyUGH2b4w3S22+VLpR^wbKdKw^nvZq+CQ`%m&Y`XSzH<6{on*JK3|2Ev9YB*sibut=6U{1=gr>b zu;+09f{W_sTj%GKr`3&dycg|qA0@aFq{|9GWr{0#q403bq9SuE%Rs|F;H+^GN5@^! z(Ogd8M1!y{H@&Z7N@Fr^%6g_E4Xrv2_c()p|MRb^$E3-p?n901JJIX6Ii7cy|0c5B zL186de;7xzjPsJO~ zgB!z@@!oWUr4?{} zl${+_f9T-Gu`+>w{VjR;efoH^pGdE)fK<|NnH!EtSA>U{8v70dI{iw(n6mqfh{G7u5sto{KP+5_uYvK9Def)=_3~nJDez@FMgNI z{|)||%kv)vBcyl0II8tSw4cidK*M+15nyCv%s(8Ik#KnyT-6(p^3rwyaZx4wzR5DYDKBrcy+~ZAFq28 zXBpumCR(3wZ=T1Ox4d;@?&N8Trl$aNw8@s!x#}^o`Si%JarksF4CAXIoy~)UX4k44 z{au>*Pmt$0vfV0fRm_w;&Y8KQ7M|zE{kpq@10Zj{UPwfUHl*wCq2KXa`*vdGJAS-w z^)3U`9$1tRK?2JtI3j`HtPggfd^q8Wb;S}>SBGPG7!XmwVL7gvFd#$|s8IX@6igDT z?kmf2q#g;#_Pc91r0(Qc8ikilH$Yb$7)IiunK^)y zBSaFx`f;E7+uL%vcPU17F0o;(kaVN^y$C;JO-Z4wk+tI8;{5d5bq}G(|N7orXrDR7 zqZ%U711%0Q-=@RuIgA*CHDwgu|90Y1yjUC=*0U(D5+pY@|NF3WyrYELs2EBM`SPja zZp6AOJ0~Y@V#46_zPX+v+XUP7E4QbG=gY+>_vicPt=X+KJPTEvb70@_cQ*a!G|_u{(Z2z> zHmB!_91k~L_esUGFKGrl!BspIXLQ2wA$e8&PsL$>&mXwDNM2A*`lEF4i(~D4>z=>u z6ONuOD0WZ!*_}za`Zq}s^fA&605VINBogrBm0DH%kKg5iO()b;245xZtp(D3pEe#c zwgz#X*b}u2)Jl7T<=3jC7jg4a%<( zKSh8dzP$mH2L;Gb)lw|lD;#<_ab(V6_9gyxaT4*|kX!WIdKnZRv+_uC(Nn*j*j<6% zrkVzXvx7M~Td3x-O|s@r$&s9kB0O1KWqGfRq2b}(HTbAlhNSd@lGO)Cvl};?UAKpR zk71&Zn__m`{ibYTr_WROtgoo$5IAg7vzCeIyR&>1gdEV^*2-1an?em6x;zev1-wZ! zQwB(5Q^%i4XK438YH~lL?|O!yUbA+=dSJ-;3!=10P-#LcA^zM;=y7CM)cx+?v|IM~ zxfu6eQtUUiZEX3e{$xB%>+&j)O4?JJ@_oL+aApIC|s zx0rdG8kb&C|HMnMkq zTtj2?Tdlxq!<2E{4$0qKR-?*{rp}DMczX5e>UQIqm;UC|HcUB&uJ2nc9bI}h zSP($Bq0~vdy98(shc7h=g``-}pP#ly@MycoyV&R`v)T%kCnCa)d8)uJwWYy6kZ!T+ zwT->Kfv&D@bWyL&&s7XFt;l&n;Y#}1oQJ>EF&t0pB%KbsPoGcB%xqQO?dD?sssM}u zV!DNfM+0W&n5y!#d(JCgu*1kb-+zA7c_kef9qu~kTcuPJTGsAa{Yc_>r}R85`m{eg zyEzLL6c(Me^5LM`c(v^2cmK9({cfl0A9Yj~bKuH057i_FtH?Vklh5>Rcf1bWCAN#S^M* zqSgDv;Xj8t&%dX82l?~n-vtDal92-NI06T>;nU#&3l+|yy_Rr=AsD^6p`$r(_j9Aj z!5L>1hx_+;d`smK;?U*QwfB*~d$#Cxu_stVUkr449%$7;8sqIMytMrMm-@aZuH*LG z^Ieng;i$p=!bGlUn$`P*!s;>AFF^h#Bv{k9HCq1)oEHqnV|e!$Ob#@aCxg!pqisB| z7~B?iU3O~N|LnRi;UQJuJjvg3a{2pXoLNwC%h>upsH#IPe!b&j0_!W(g4;>b5Ux!D zJ0f~hFU^7P;sdJCsKrwP#OG;|=rXUF9i($G-&`;3d>W5FaXPbqIDT$+zB5bIOTNkC z_qC+tLO0wibZCc`80-|-QB@z}qQd32cgFpRObSRN+vs;sUuSFD=gMw89q^v`?6#Ty zKqh~S7LFJ;EI4=qxloiO+)-&pOvt_(;u%NIP4hsK78ITMt>&qrM$KN^8JHls64iDcsxpF(Jb}Tk%hk3ZBqU$mSpto{=|ZM7kW)BfB{mIeRPcN z*65vc*GC`Ld(q~;Aqh8^qESKDA}%zS5|@bDi!Ut3pyw+iOAJFG5jfSpjt79#034=0 zh>K|c56le2?E5B<1bz>3k0Wf)4^Jl(v&Hnr%hQs#3u}V}VnNv@ddq7QQ7or7op&+z zRM{zmyCfRd*L=BoM#NLn{qV06hM4+d+2LaZqEkB2-mCVP`kzvh*>AChYQz0Whq;$4 z#ZKRyuOvjp)N5)_DELCv9cNy0x^w{-NEZrDms=y};($l4t@xZK|=Exghq^zq>F z@)0S0L-Xrq{qE$Z^WII7F#5oYJbc9IO9-F_m0cNE8dmq!V{^o})=p4nxwP5wgALav zFRM3kZ^o*-?vxub;rzt2x;>sVH*=f0L|vpE>&^WmvqmKl_MRgc+#lMznUrPyIuN4x z9fNcZK~`&{JXQ6m^z>-0QT1@)_g7R6liX>9YeAVXL?&7r1tI~?w?ny*`l*S=rPT0t zEE*k<6h2aWM5IL{ReFz-F#MGJj3s&l6+J`BX>BGIZfPEhs@O`r5X6m>eaAr;)Y>RO z4zb(zIlODI7j0oi+^#isK7Paf94~IKy`WW7$YiXp&SXmV5~A=Z3o54JlH@37#EXX6 zibEmgO~}OX3vEnY$dwlO7Ha>v9;;rJ%1F9?rNuGN!qr{mj!{xNH|-L+S^dRbNve3O zxufCv&r`m8=dA+6UJpWpJsTY~@N3JYf*hQ0aa0oWGQ~@IBQq+af)O}h$6Agj= z@!zfu2;&7>yc~s%GunW06)hFRR1WIT^>aA3(&}$KpWECtidKOeM|)N=yv@X=e`88+ zVt(f=`e@<1P2zVwqS&L1bKc#PngF`F*8!x43DK|v3BcrEKHLKxX9s5PwKzdQJWk_* z*MJ-Mdj{8l+N8wft(R!hjQvB*^V!FoyB7tHS|6|CKm=|Kuq$EL-_no0+po1YEZ&VwR}S zmU%2uSh9cH+*?$)*y}g>9g}S}<@@AChrnUhg4d0Uhfu_~F6Yb3KdT0hUi_^~2SnTd z#BoSV%b0d(T-QQ+9>LoJOxW27Hr;>tDx6EnYW$uZ?cl=~yp$os+Gn+fhsJNN(~_n)8tGUE})s z`^MdITimNA?^_3LGf(woGf_4xB6BHPwM5S@W^#rSjgq1XWhm#z5KcQ1U3M5t*Qp8h zQ%KJ9GV^_#QtT@{aTV+nQIS^XQ#|uW?Q#EjX&mc{(b{N^+MZ+U#XJ7RB9t(+o0FSH zuOvM4LLz|P~qZ;>~ilFZk!gnswP2Dt=Bxy>@l^cRBBCr zd_^K?+A-ptH7WY|6kiVJx*&xxdCJl%ej(fECoGaMdYuj%P9X~rDBM*coaqOU+f9G6 z$*qdtZl%#RaU!^)q$>@x*1PN*h|5fl{I@>M9*TgXtjX+qtb|tcW$bNbz47ZZI!s`= zw7mPZ8=8)wQd}H1Ui>)AXl)oS^~o!JoHu<=Oi7N(aYbevudg{@|5-jeIzkh<-C0;z z5dBC0eA9F)BCtgHH7O4jP)!~%4DgR`bMv$6gPYDRxJa|1Xd@f`z~+X%%&^a!Ik)?w z8p*SDb+bau{ul1lLZ0_0`RfaIjFx|n2cskAVC}7%!QZ{x+B()ZOK2s+opvjl(1LoN zk|+|(2J{{7W#HAs(2*r?1Q{s66&n1dv@zNnlE>VXy)3jC`ze3!+Ftl+#B51hw0m3S zc;010irS^|DP(eY;s%`x`{NK*Rt$BPKEv+Na#QD3MLxY!6pJ+Fx1Q3RKkDp~mc`w&d@a zJh@^Z@ahr>q^7LNyZF{Uj!zI%?X`Z-Ne{FJ6YACho4*xQ< zm!jLv1H%ZHR3>_dVG*02O!`vMEGyq!#8>bmnAnV80MXf64 zo1f3?FQa=*m6>Ic>Y%{sRe7aC0><=LGVUbf>@{*c%F|Ezli-@oTi30dsLu>P`_RS( zROyyB#@ZzXJqGx@#evFf)T@^!!F1=oJvy~4e5oy2H64%4pq+~3F&5;5t6B=)%1e-^ zN-6^$25AY8hl@vhQ`<-OU0~Vt{wVLY-=l`#->!$S=Rczc-qyuU+}~KFdcdt_+NSFx z_K`p92QYThtP0W4yhZP!qE~<8eE%I?va&V4tqGn+kB~-Ef*@1iKr3X!xYWvi ztE5kQ#2xEcyp`*pUB=|i=Jb=Psi}xg*T?ULT?X}}lXUR_lB3#AucW%A&88wCw0AmspL31n7|Hg_Li0istOPD205c;L+q5vrXF z<;WN3Nd-t+Az_%7)!G5FrJ8Ay@bDN4vct0tw+rIIO=&}?P7xI5b+0cbgi}ge4p(%W zP+XOi3Y}E#$Zc(H$K5pQvyPATRfIe|M2~-&zCnfc+k%Eh(B{A0AqUQ_rT7b2;Ql|jho z?AO12BQ13+OIU+!g%xZ%xBNgBo>v+;PA(Wv>-?(&7JIm0CdT{C)q?GTLr40MJZr92 zS=&jrhqUI{O%})FM=%`KP#TlYP+n{fS%#g#0cZ2?-?P2E`l&?O&c8`)N=i!JrbP*9 zlC;6E0eOt5$ebD0V7XMlt8+pT0L-w!pAbM6pRwnN>6t+E*uIGCiObIbc49YmX!6@_ zdgHyLSw_**6HoYB>aQg=GDL#Qg@mf5iHsty3K}=~2X;94>35*{?_8rVFAj#sni7Z^ zv^YDwe!Z}MJrNXkLykSJEZhRb>D_m5;$UPn?S|*pR8}6@J^r42JPO;mk&Sy7#H5*) zPguY&i&{f-j7DnOIExj8eT}-TJ`e=cA+t9l`}8=2#p`#a;k$pOVbH-R$QUV3#Kg@S zse%yZ7Xkj3L2yEIwacB0So4y0J=YIIG7~mOdhCdm3(QYfi)4*A9w&4Xr<*Ge%gWkS z^(sI^)3CgV5)%VdQy31HDU*I5QmZTr>e0!eUYm7Vs71BwE;|&V_YKs+EA1lIZ~uqF zUnS#y233Rxj8bA8Lr5sD_BB2$W@IZWLKT2@bK3d&;om1>=>w+83oe7)$k1F_Lo7_l z1UUh}jX!*8nOcmu;D#_3>3 zHw+r~*2~v-$QgnusZOY+w@BtlE0zTIu%237!_0Ti#{SR|gw(KSynuyKI>pEUtj00mA~Y;%7#rj)4t+2R2r!w_#s4OfankTi!a&p zUB4#__r`ly{^5&Ua}{I>l_(M4%Yw{>)DYh;(f5atQL9tY-*|K8(rOEwS?c`CRT~?t zl$YK{0(ihsHB!0X^*%Ri?xJ(g@#dKpx-v&3T8McqbYm*A-yz@Q!+Yky$nh*!b2W&I zmguhcI+km=B)Ki@?t{Bay2MSfJdJ~6<|su1yc##ZfgS^I!KCqci&6=_YJZ29_iVJy z`WI&N>zX$1?6i{kK_M(j9XC!4mZ90%Xr?_s`z_4P`}BVYC?rZm^U?Mg)?upebeQ&G zvs@Ump-7m*Bzm=uMcn5LsmPq!OpBP}RW)}uS?oEdyn+(97Sq0`t$R*bwvi;eDnx1} z6G=*0<{Hx_si`J;vaN1x#F#~MH2$olgQxDIKKXn+OeMGdZ-i5{|4vE2op@-9`shs$p zPBa7|ng8+Uh9x*szN0@Em{$@0jJl=>WuGk904SBD(QkVSa9KOSEPgi=ap@J7=!I9e zQ&p>6)V!+`qtQBE+Z^Lu&PCu3eN@ai|BOD=5TGIw>*XQB`U2>^*;~8EJ$+gE{{Y8B zBa)_BRA1Nh{2fn}8IuPGr2+ZVYK^QmW-1^{oMlQ0`R6aV|6%r?Z7-D2J=Q42E`d0N zEM;qRgrV~_IHR|1g}8D(IrXQS0&td$|MEd4r?X1btqMW56>bO?^&rGiKh7>Hz;+agb! zWK$G*_=bCZ_gI?=0CNzi424e@%`zr-K3^@Ou6m!Y`*98Jc@=cLe2jAE${GPZeVO|*SOFf23%92SMLk@=!P&sqfRfWv(d>~HIA)~8Fexe zi!>n)U^rE2k~P$9yyG}Z=IZ)p9q11}Z%xkwIv0^5@)PVKa2UW)UkppQu*Z>3R?Hqd zcW#0I(x~MuJHc1N54+T@HeC6@V44&0uCH6d^!D;jGCQoILIe`28Os#K@ zEWG=}C}s6!no_Qi%G>qZHdmWnoXYfb)R57#2>X<1Oi|b|x5`8)6u-7`-K}@r)06CW zh;57rZ0Q~{nZA)i&|m?&X=OmUr3wE32hTt-zquEXz0NZlBY>F@gV_utXd6@;0=4R) zS<=r<0DyR|3Mc}Q8hT$XM`dQ;37C=kdg#o+Fy9c&kvxEuV^22Qe8npeb`~b8<#}#q zlgVT>x_I#5UiO2Z2?V!q-`wi;njVl4LWruv;c&ai@;pZhmBni8n;wM_FsiBb@MpYV(+>y=0e?Lalzx=jjU5vWVQ#YV+#>xcL6iS zRG8Gjj8X$Joy{9Dsz3*G@Cf8CQUUWD0ufbJ{fX~;lgXYudU)^tyIVy*t)^MntLrjn zW`w#dk;CrpE~$!&NUT&RWjP*?(X^KrJ6ruc&#J1*G8O~Qvh%Z1R3XSD)-l$ImWPa* zic8hSWLnjOUVl9b*j4Oo)J@GUyM!`|g9ubX4TMNm&tx3^6AR zpuK>B2+^x>7$OwCEHFk;2OLo~gdh?PkN}@NIlOV}^!lyqu@c9r6w`c)5d(;rfCgkF zb5uyw3*B|Vzr}>FwT;{tz@K*VgXcFjvHPn-)|Sn<}|ZvEOlR; z4LqQS$hi&FiM0j*@{)rsK-7FU3(0Qw2b%@am^b8705UNZGeT1G%o8&NHB|s}hXEiF zH__K-1V%)j1LbgJTWwAuc?lS`pNHT0^}qh~@#AuGaWNX@fk3nf#dvfP5O#LAfvBwO zT8ue6zc_#VG#rnPj*iFUaR^~+YwP;;Yk?R* ziC{9Vr<1xUaws^vpp`Ei)l+!sz1`0o98@7%cun1c}$gF&H&lj$JW+t+ph zD`XJUsGtl$1}Yh1?Pzj2OdkMn_z3;fjeJ2cp!qlIWq zw|7MVWJ44HFtnyrA0Qi0)S$>u&Q67cU^qHDIUkOY10x`+lBOgnWl&!PK{YU!_>P%D zig7TZc`8SA!`0?k-^F^{<-7AnG}qHNfvYYKVvNmJCaOvZNEiTA1k?}(J(*7(Y^5ar zyP7EAJU9WJuK*EMwaD@>e)04F`d_{8&;Qg|Os90T>f@nbB zd-wiyGP!c)V1Iu%&zJ}ZOrtd7!Izi73!|O6>UKD1=%o*^cE-BjzA@rHIx3+HW_qU2Hs))uc>oaF{6wX7& zRMs&MSyfA23uT$9paD>hXrs~S;oXNXzWSnwabQCgZ^N9{3zZpCt|z!F6})bwA~*EC z=x=cu
    _OFwU)eSNub_Ht5R3*6az;nBv_v?S7>x)2gX9>_w^2Tu2I_W#McZ&!@Ff z&mepB_(U|v0H&p)s)9HEGKo!%ernLLRKx+bY1Ru_!vM2hi?hxyEi-tVBg~gyr1fQX zEZX!wxdE7n2$*I7=wV5*$~XsaFb4*ZOcO98@SYIfIy)8oH|Hu!Ar>A=ghY&JNG1^j z2h9KRKmNxA^4ZURIuKS>HMzLxWnp))W1zK)n3mJ(@zayRVEd)pw~JmDV+3!R;qD7u z=)eR{(;;w?L9e(u9PT`Q`t;$$hqrFsl)450aw}OQ5xGe}(=O(#wi7{FPHx}4dF|$l zkB^6M-+er-jZCjxy?Sl0-^VCgnpqw~FE3OzFL*Q>#Tfg$`EXn_2LOsOdj65BVxY-n za`)byD>ts>d1jp81n-xls!jPl6cs}YhM20#c^E*7`+|R{<2kkQGq^osKUk%L3#_N9X6m2^RyAIv}gnA!WRY zYL=)|HPv(WKweM)g0^Lyb#q^ngQIx`o8QW4@g2PcIkTD9jh57+4#iHf3W z;DDA}9Ze!Cf~hGQMpY#RBC@tpU-Ot{3DWrE84$9(Cv|!K+Le!g^h38^d?7H`RXI94 zyLs(uFAG&!g^UzzJRa9|eDT)ptXEi+$?zhC5CUn8W=0I%{k`!P82}QX=a*f%vJapq zCnsfD_VQpRsyjqshf@0r#YXJ;>6+p%iOh=7o}5n*B~ zT33Owu4@ih)-hy-h#-0fOk~Rg(&%D%{Pb|U-xo$7s**91SLt<7%R_@ArRXsvR5T9> zNHVK|L>(U8;ImqG1%!pKmu-lyCD6uHq)(EX3qGty4MIdOFAN429Zn}ScPbGYAW*m% zPbOt)R7BCok00lG0L8plsFbWZs5E-GBPtCAs~HFwH5t6xu$?s?Z|N>r=hae~d>~$! zi1t0f1PrkueE>ogA~mT=6hTqVs;G4YjZ6$RnJ}mTMT~%;0Fu%IG!x(Z$*DVt2RC2*ze1u&Yrq#*6cFH0fpGqKrk6RaFHhUhLBpOf-ZLO&>jYaO1}H zya--6w0ShCYKoac00*8$Q&(0(m$R5$^-0bwJF-?f!l20qO*X)0FYkivZ@p_?SKdx?JNPuT2$5lDXm`bgfos^rXVyB&^+Z2GJG#QkL zjv1h_`@$O2qvPA|Y(j1sBcd*aC?jHOe%&Ca%_nFk63d9BXs8qjftWI8Eu<=q5Tckw z5>xR2LT zRoBz$xZmq-_4{>M5m{YVjL6KfDv5xZHO{q|@4jGiaS&x$W@a(Qy}i8{tI1?k6h#QZ zbwwib!?|lm6Pi9V~`hWZmnu$nV*S%h^sw%H%YbNf5JUcl#JwDmm?uS4Cp5vODqnUzHTJ8>@n%aM` z2ZYg_rPpPEg~Yv;yFs`l^|!OxR1fxh%xc_v6)QteK81vdkP8iqXaGQr24uiyR8^HH zs^-C7d;PX3)DDu6ndpK7)_78-mCemWc(XS}WTH6*W7!Ry_?~I`LvNNfI|m!Z$_zv` z+GH|0KRrD?I-6V!%gHoWC4`>mfn!ZxMTcu?y>1SSdIT6W%B^ou*hFXek0MO#N)dkO zM}GMAH(q~o`1qqAd_NORN0Tg29ivFy>-7SMs;Uq?9!i)(9ymr5tqqMhwQ_2XSt2<# z-#U|+Y6!*t?%uQSqbt`Bn33|}o45zj zBB7`uAy_KsB;Y`ip)s(R??u#9(Et&B4R}dmNfb3N9bkhEuz@k!JF15@5E`QT3J?OJ zHr1m%oXK%vB0|nN%8n=~z)HXaD-o5kg{d@N=PEU+e`yZ&006Z<DmcQI;eMi73}r$s;)o&kq@!NdOBhP5iyC(oQKTSKPD_E<6f@^sMB)H z%vqM1C^T3{Be`2nHUJQ*5t#!?G!NqEfCUr)AR=jFRP}K2SwLee3!1+PsjSN^AH4GF z3*&NnelgnG+PZP&;QF=wvYa5u!Ij-!o|)8Y@yeBb%C`UQ7r$*1qeU|l5s$A1H8lt+ zca#Ft@!{ckILh-pgan{_mthw|Ucu0i2@TK$6b!|CoG0+!i36>P{KEM?5Ss{qt`_6} z4ei@5$jg=Jr=R4GE^K@}p4(5zYHA2kgtNSvSzu6A$@3!Q10k#w##0-XWm%gV)CP{L zD>#BjZnd|;3$x!y%LAL+j^@8z?sVVXRpu;3hpA@phic~$O&mWGAQ5j}-TCnTN8fn! zgKxj}-EV#E>m^vm22`m5K@gjm2!+hhL=Z%Qlu~+!f&nUr5TYhTHOn$Uqdgf zv5$b1bveN(45V5YS(bJ>vy8YZr+JGnkA`;SMSa&X2A zF;=b@sd@+Erd}+~YK54!TO)`_p65~OEaY!~ zMc^z%H6Y}`G1kmD==C!$O!0VFJ~=)g)-s&dYE&zTTD0VaVnA<_jkCP5+0luI>saA! zx95&@^$DT&^X8KU*^BLOYeL#n0Xb}20wI8Dgw)|s-Jxx02Kd5DH?H5fb$WU_9Zwit z3jj)bm{$P+B=QJVFhxUV!lo=zQ54<^JI_Ou`bU2Fv%m6}e-5Ic#(Fa8WvmjtQHawb zBh^*K8RtdjZ%c^8NX=w5;;Dmi0h%c_F}}0kI0MJ#SKLLzVg&$fk~WFSV~P-wi1R!f z4llL`eKci;qR3Supae!UEArmq(dqB}KmT7R7bArnC{$IM`8%+fv->M))qX=ZcYHY@)42ocA3Tlf#vqv}m z1hfGHmPOj%I=T-$sfP=;%&<^ z&I`&5BSOxMgCSF3Z2F|TO+pwvZZXR^YK=^JFRSD9&5yqE@Bi}8SuLb>J((0tQb$J0 zm>4kCHbbmcvZBDiMko#HpkV&v(FBYXs40_+6jHXaLDOadu<4|NNJOSW2n1-NXbS39 zR)eKL<9P%C08hzB#K0JJ+eUC(H$9 z2ay1f|3*_9ae*_soY36_+HQm{Zxq1*6#9+Z#Wns_gOIvKyFT~p; zax0>|vzw(zH}_@LF%nS-*^9StA3Zr5kH_eSIXW=h?lGy5E;FfULSh3sEF)6C^70G6 z{%gOQ1%_B!S+QvV)w<3Spos21ccD}C3MCM4@RZ(3Q-#K~x(S+tWG}T9UOGDfbktXG zKG`Tp0I5R^Ht~%!ygY>Qc+4RXp@=f!V9+PVey_;0pe9)s_II|6B6nkOG#sB@jDF%L ze`;&*;P=1ybwefu5dq}ZgVk6rWQ0JZ3I|sY@}ie#nW_+gsxrH;RF0O0 zdr(cSu2Cf?lRD;kmewr!H?)dX-Y+7WAyLRE=%yR%)1A zUbDm@?c!<7j6|XuvaCNCxGl?!02-_E_RSlEULK_`ieh(nwwYBw`&wS?Q zt=+GG{p-$Md7kg=?97Cz0V5!qfmjqqIz2r-K01Y_hEfCNEm!OF(BFpknw_xK3j|Cw zm79hJ^%jc?0v+mC1fx#X$Yt5T`AGXwi^eoN4~HONhS1xhV820Ga@HI~Al2t9v*)--__|lVzH2zq&l6yOJhg#g4&AeK2GLZ)ArC<#>W>d7e+I z$MsK%q5$jXwX ziqoo>XC4IIwc5>$^GqC0qJSauM1E^(KXyx0%-c?@SGL{oJ@LG2_%@eVizcgTS(YN= z?U*2i$#In0OfzCIn@*>7U5iNjL=ky#_vt(DyhB7HQci1!MxcqhMXyV2;O@&9Y~9q}sTjmm&`UT$%L_qD=&ZnI|$dB764k3y4tnZ(2Du3y`VNN3~1>pVw7cS4Ey_T@re02xSvCMXLeSlczv270mSdp^BhLM(D*` z4cgz`(YB1?KkJTGY3?>|St=+)vmZgQfEHXyLjg8mgFNF9XgZyQ5ESgC*I&MN>!t=G zW(w?8FeosEKuwG>Fge|1ML{8a{||ifM}Fv2qv50%NXl_PrtuWIj z7OG1UUC^`pN&EM+gWKd8}$jPAPNvljJQDamWEwqj;MQP$Tuk3+;-3)i|T?WJk{CB_OFr07Yg4 z(bkjaTS}v*JNd?{F0!nuDpd{43IHmcQH&KL9qjLNj%Z*iYTE1PU;Xk|e*X(!Dtg<) zsA#|eLD(Jao-^1y&aIKi944dj$6w9U6(H?wV<}&0Oa(k2&y@ z6+Pt}JcBj`&s)0-37893T&SW94gNhhl@0LJ$VgB^X%ry?P%yEWWt;=W3P#Z;kX6QF zoN7TkUAo`P5P&p=PosKs7fY>N1jK(7RY0OeMO9S)TFj!l_h4=#YBx1BzuWAmZ3yX5 zN&0Wc444--9)c?XiVy)JfO>fXqEruv3`rpX1tbws)t6p*G4Evwy|XVP=H^@PLt0f2x`C!-fRJKBM3~Uejt$`brjt_!Q6p4}C7=SK7o~!fuhzLQ!n}dAax|?bI+FqO`}m^l zZ#b6b|LYoO_a+Onf3=S1ojkpVMn@a~0K4z02{F6ha@+aT;z^mnS8c0b5)!2Xm8L*SEX#~KCby<2TxN^as0>sQ^I6BqAY%1mKuK$LdR~APQ#F@#Nz4EXIh)3JVd9 z>10jG)@0U(9+RaKTB->RXcRvqcPOvW?G4s4z&ccP!+}jWITB4Ptwk2Q92>R~D;sXU zK%EPg+=7J%OUTs%ODv+O3uqEx_wVk1n|39Lm<)w=oCauW((m^U4)!>Bu~}x$+{8je zWTGq>^Ry~I`mr~^|1+O{^6;?8I1r(UHCoEdQ)2)cGbWP=Dh?QUi-4|vEK;k+H1iTc zVw4Ki1(0YIGUHAoMD++_BgPOq3;+PmElyR=+YD{_M}UrJJOfA?dBXZ1YnrN%9gyyt?{waq<$tdED+zy6IPyY^Z3Rx3$0_Y zWn;Aa;pDqeJ~Jn2i`I7$aw4u)XyYf9fYc_j~`gs-_tS6a`VT6f+Cp z0U-vc1ZWy_;&M7oB~?6-!FvY*SQL#>>hz;^jCHMb1QXS$5;H`tW1LO{QC(Lp=2Mns zUDsyDsm=x>)3mOnPHi|G?a@x6v)kM)ar;zMRaMuus^%f<^?Ip{p=y?8)9JL=@5dO6 zEH{lH$t+>Ye9K?3*}5}nW+x{nF-A*{usJ9G0!=1CU~{(b{Arlb_BDh-jSCmZ7N4<9 z9M9wsNb%25$EbjFFKd_)cxdNuE?S9m`b zG#{+)22oE7JGpf0^Go4Nw+7%*-s#UD--Ft9yazbceQuH#fd;y8>HF<)&@=<5P z@%;RJGMT6VGBGoxHXvV9mpBhC0PTbhEK}iXQd>zJw32j;)bU&*1q0$} zP)meW$_cDt=*<+_72yjA*Mh)a?hC#0o-5B;9^^WPN%cUjNypJtuA<-XQDAUkiC&tQ zf!R3JVz*v=;r2@}{>y*)FaP+D{z$=~bwz5VsT+G|n>7G6iQ7f*@%_76SDb=AB>AmD z2{9lsV1~d7XhQxu7$cxr0Lu}p(dhi-7!92M%o=E4)GO3_q(CdwR|>)Ij5*oOiburA zGyj7IBmg};deZOrcXxNQEHkNcCaGhr>YVdgY|onM_4%Amr{||ham>!Oj+ek%MrU+I=Hp)A}12i~-Oz zuot6%JP;$0idAKX5T}!X9sRSxzMPuXnnGPV=S}O zA%va%y$^rngGCk~M%SQH<;>q z@zBk}jF1}3ey(e!Lo2Fiu(Hd9TOiovUintw*pzEZDd-xFnQz^?p3ccW21vMg^Al+HRr&!WTRaWhz6YR9?Pvp3Bnyn}Eq4RAkp+lIS*S%` zfBp44ciy>jb^rC(UeVfmA&*rZQZO^L5eJyM7MsPoDkoPD_F`4$hzOcz!E5dN4iK30 zEGq&ROnD&hy21n^b(E^exGJZNxWBtQ9bN>()J7Mv#R4E@1w=DrW?a&L8iDDZ95v&> zNabYgXpe}vTzAfIo1m#G23D|szkmDIb%|4krsp;_Xp*{HKpn;MEK0|KeK5n}a5x+y zdOJ`~)88EaTo6&5E+YE}y9Wn* zckkW#*hfBc{h*Mll)6GtYU=tSqDFCciZNy!#=}uY7zhWwoX{98Bg~jHB4)~%m@y!v zj?gK*PXaI`oV!WYm4vogvUa8%fzLX8yw8BZKJZMsC(P(DDrw`k& znoL?ioOQaLebT{|+WR*}CEA}Z2YQ7bZN#~?pLGA|j9&qiOj9ko2GGD%{z!?4vS4j5 z8X^iT7H{0RQPpK#PCxa1A0q{nNR7`65xuycNesjYK%jxKs;B*4F&tf-pP#Aw1XPiX z7+lf^0zzXjFhNk$=-LQC$0#rI{oU=Yex_BmJ?NpO(r6+=fkOyp!UPf{hgx zN2Q+SST^aE>pfX3XKIBwhcySzUE4fpadPLL-suvCuoyE-UXGv%oN4JtVq0#p-Ds$P?^3J{26S>3<;ZXbcgws&_t^^q)~ z&n&1lnF0U`U}TVmETX8n389Qwms2!*@ZjEfJUTo%eJx}m6r3>uRo$&(L>VGQ$?_58&R)u?~!DlNebQo#k_3Itj25lBQzCs=d99Ji<;5;`XiCJCi6+a zWbX1NhG>D#eAt#kINDMPwDc^c4uUZw%2m|9MCk1hX9moIDu-RywEqiD3RTMtvj#Km zT`lFB_>7sEk#QhGHD;EUR!~FWt*!pUdncdyj*pL-AOljbS>m+^49t`a5HwZ9mfBJQ5io$Ns;1Lv!8DnU1M_q={KnV6 zM%jS-{k^N#_OBeIr9lLesIidef- zdUcd`4s%~Ln6Q}JMr&=;3ItqN3Nj&m6RoH}v-pLHX%i<>;Dv)_% z7#OYA{+CF6fzUfO06`4_X3dQaK{>_0S#z?|th+lYf%nXFM>Sa;JZwGnrC=o%B)9Cm z9Y$9-OVA!@P$SUvC}IUb%*2CUSJitY@R~A4s_aSyAP^d{AVp7o);VXw!oGwZ?#9mN zAp{X)Ca6IHm=F}m;Dhgfe=mTQb(UphAoV08P8DI;i;yCv*tohMaH|)p(TIwo2$@uM zAOMY3H7!EsY@9lqHD!ycSm#+UGcvP`gAm4mQN@ucFxcJNesXqpP~=4(0@2Gaym)?o zKADuL$b&4)*-A+;4yw~cE0+PB!BX}JQ3?nJM3EY?=S4`J>Rm>fdNbM3-|m4U8Hm)l zO+9s`;k1@&0V(MaXdtGO$z-qhA5$}XPp{Cn>lFf6@Op)4 z1Z^_CU+mTKkqn@TyKe%ay^etQ3NrMzxe*%)YUW8H2%4%oVk3hwbp{78Q$}V45VMdW zNeuOLhvE8eZ@V{OrKogX>yzQ=yjIF{Q}Sj@OyohY84>~@LWuEt##j19V92s;D)w|Z z8rAhkjEcMlr3UV->l%sBED%{$?grf7?(g@q41tj@Cgth4KB`JB3Zb-zz)VkTtpC)E zM-wc7V1}Uq2hEHbEg}Ggkj1iOfX9y>{phDZYN~+|Y7sz0GEqh(VpA2PVVNN=leDk1PhBT9!}N-YU|)0u7AX zv;(ga?FtVAwe9hIkDw6hsEUwf0b zJ2trw1QKH;0PzJ!dygJBV+TYsE zAgE;sAa-T9xVBRahVk9uP%!{wEgs*pdOu8hKXeo!^zNl3AgYRJAuFKPM~@zjN9Tj> zUMfLV$Fu-yX42LRL6y<@aKE<)<%IVJ{oUR3lVKI>i;L5|mvPbewi_`@U?%eZxln8B zureKw_x5&GYO6I6Q&H3!Gf!b*#0;}Mo0b=`90w*aKnzB_ySrOeQ$q}ai#!*LUNZ`@ z5%Zno;MQ_u<~+}1j9$CJhlXd+F`JI z3Xbb(ImiaLcL<>0~-NyR6z9s_Zf zsd$`hGo?*7rb5?Pf)+DqpmYg=Ohi?Yyznx6_2WrZZ82G6R2U)WS-gN4W4~YnjMZfC z%Kkgwd-weO;_AVTo40RphEJb7e);`xj7Fonn)Zr8RaKm2%v9Eu!}%HGI7ZME&_+a) z;pp1IE?6}jpAlwWgr+~pj?Yha82f_*51FpZF%eG2L(&kKDfpVs+`0>PXG^bM1Hueq zj9waukth+=Hg9^CJnOwSnuw5W;OpH)>&r&VuDsWbmc|LM4X7eMm` z4oORcGx#rMm7Br>3S{%j?jl9E&fw(#Z8CQ+%F>G+5^Z}fKv zqB#N0J;CPIaMTz@8134%>)V4ZMm-q~rzfW$ct_!h+`BkG z`OV+_&3pIm_ln)uUVG&)|I*LB{>JN1A3Qj?cJ=gPxZNMrCe>8>{XRS9VwQ)D0G>X6 z_`>a*fmo)~BF{wX)8i+-EEI#Ss#YM(vfhigcE5M;-rhd%UA^ipBAGc7dc_BYx|N3u zUfx#QwkGaBgy2~O-Sd-F#srcUMbSb0x+uk>MSV!qJp8CYDCaMzqeOp zr{i(t0EQY!q|PDBwA$+xtZEjsB;HL`^E@}gN_D5;oG8?_&Tg+L;&d7-dExdeu`Iv&?YEyEo=mH9YiIA~?OX4A;{#8g9vwY;a_!~~GaXMS zMc{}SV--T`dtswkaaFtH%$Q;QE!0FTjjKqDi}8L+Bz;u=61Rcj>l3dyK-KkJ1+DeoAX7-_(Mo@ESJ6A@zI zN-9$c0BAylNWg?dKm?Tt2FQrfpr7@Mz#7Yp5dq4oV$PyS2tie&MlSkHltVCNT@%uc z^U7W;5qc)Z0pEV-?kl%$F(a5FF#xK7DGmm`(c$Avs-1rC@BQ|_JU<`q z9_;^xzwmQ!e&mzm@${em)_?t*|JQ$bZGZ14{?wlwj;rC>8HteDcr>i5DFEn5d%XdG z4*G@G)nq)h7`L~!GN#}8@BaJW`fvW}cfR}X@yVGW))KGZy79?Re)3oT>R)}|``-7h zuYK*+*I(J{^{S|4S#ED{i`Jdq<};dYx4T(5Oq90XiHA|N9^zK3QPmL0eF6=|uMnxw z(XVh;!5h(RGMOyIT)LL!<-Avd@9pOuoy`px_LjKa45zg=!1Cvat7$=z6lNQow)#Md zbDL#ha%z&E(mR+4RNUHeUan%T#3`vqRZ`JQl-XM$7%&o{f~g{i0h{-yFhwGQ00;mP zs5U4iS|C9%GInz$Dh5;q4p{&*6Qn?SZe*g(LIQx15jSbTnvk)Cz!AV)u7gM5x-?4= zzA7_IEowj%m_tT5nN$y+9NxTs1CX1d(-uNDnM^oiX2cl(^Z)Gc{MK*%vx93l|Mvgl zfBplX{_MMV9{(5rhyT;Vdv|~AM}Ok(-TUQay4CLk03l>~4rZ#7=XqI4IUa>TD$?&2 zW)_M95&!Pr{lEP7Z~u#H*KhyGkN(NM{cA^Or{8+(JNNJ3{b&F5x4-h$Z@lq=_m$=N z7k}X|{n(HF7)s0-MeBxQwC%Oikd(JWn^lmWj;BSI=XuYwD2d3MzKAIxnu%9^D?-N1 z7+vS?>L)8BZiI-St!ZUYmZho^bX}3C)?k$#>9fF5kN`aQV>TzWxR9l$0&NwV#fz7= zdtC8pGdu1b(-dvt28sf3N>U?4Ft>=A(3+|Bu}}z==`_M1%Tm)(FhuWX%MgNS7*%!j z-a`ZkN=QT`YPG~lix2{v3J8#)frx^k5Y`6M7zN1?m>Ct&h;oW`Ij-u1URIV4X<}X1 ztb|D3#Bx|k>1Ff)8t2{GUTL%K9st_*GiJmnb-H#knGnIz@#*RL@O(TK5hRjYI0OL7 z^Fpk?xVX5UW&OMtqyFMA|MK_$z-P`bM*rX+{o`+a>)W6D`1e0OJpBtl^QQm+)cQpR zMk=~h6o43G+#2*7qB0T5IRxg1_wSk6|LTAJpS=H#51*Y*|LJf4i?e(8Z{B+010Qt0H>c7H-DSx%G^g7bVj4W4h+st-vP zAu^yhGNanJ$F*=vSC+SPYi6Floa$)V>i%Wj3m3}bx4KL+W;&i;A25ljdh!b4ipnKj zDxXiOY_~#xY7-xtbiq_{z`#%qm0(tL0lX4Ak*Fev2v`}MP3tjX38X1L6iv`HDCQ%j zvoacRAVL62EF=_oIGv26R1l4Xpf)W5A`l4@^up1oo`^*E$xxuw3_&96S)86$HRPEA zfkFmEVyFg072>&+Q?fFa$pzQ&Kngte0!U4ItH+0;3aYpZlsRi>+%uEL<8f4&POGxg z(ReBV%#9CT)y#^bsB58+g}itD+KoT<*&m9Ej~^d??W^D1-@Edwf9>> zdk^ovd+*LyzVekf-+c4ee(l$`x3{L#X*DfxT)8$KPsYQM=XNaw`KFQ?L?XgyS=$0x zbu=0QK)>Iw>$+=wwpsiw9?-bYR>mu8YG}}^G^oU2Cd?RPj4`$#Y`0p3->}V_X*X3L zTg#{bAR?(a4W>vtRd2P6E5vEuvv@L3$8gu(d`2ZAP?)M6j>o5! z*1aHkX2gmFTxiIr3P)8unMOe`@FJ;hEdU}4^W%&2v%0RCFw2pH5LHAaXU7vbt*TNH zLr8H!p7wzjP0#A`uq=m)lI6xB3SyR1p4Svk%JO(pP7yGh#VIWujhIddE&~#dz4kr=Ni-s40>uEVWA78tAvlci!IsMqjzwg?$YeeCD@4Q=2rq{1t z`}@E7_rCPyFPxs9PcBB#;1CNHu(6qw7QXajQkB2?5B~nc$B#bovG4mkf9LOf`qQ7z zvg~($=XXB&{h#`u{ms9Hi2vvx{iC`hltVBjZkh(F$CN9A zQaFtIsFI^nh6)wuW$2G6J41Xp8lP2Kfu$s{PF#Zljf|d@)x$}39Bs;Z4B05!NexfN z)#Gt_swS?v&Sc?S&VUCXwj07MkpOMkIiFE>dUAgF^fW8B%;5O+Toiyp6(xiq8ddel z46LpJi9~w}z*OpwrXSvnc3Q#+s!{1%}PUOhBcrmIVNa z%oOh4d+@DqzO}crUzhPKU;OIn(eZZC&p7{A|LR}=!Y};NzxNmZ;`#acfBAR+9vaNj z3DztzB6`ua_Ny3URaNbV-$mtHTFgSoh!KF17APJOd8r%90@qm-jVsDrxAK0O?z^g~ zw))c&=lJi%HmU9Hx`5_7!LMsRcK7J)jnGh`DbS?J9|yisf*MfB%<#Ob%X)e`fk6li zxhhTtMp4FKSQJsgK%f&t=lmm-om5&)hg(cp#z0s_99L2qMrLJHFi>SiQUHlSL?Kt; zvDP}A47uFmEGGtqN_1p8MAE=YEO7;7u^@-qc+&2{NR7_{HA*n5Ce?S|di!G^`&bD1 z+1bV6>G|%BeK(o~bbDv(o8SIkHJ%*g^aDTmV|Tv$RkWB>N8L2IXm5Wf25uhnIB^U6&rr~k!&{+|^^vC|)z>U2CgK0f}rpZ`nW_{x{R z`qi)hxBty={n=mqOOS;aW#LU5^Km99vGer0u2WAJ2!QVYCbHBB2Mw5!12*jpjR6Hy zV!(oBwSemQR%_-x&u31UIVzp^33xLoXf2j>^4x>E^%}M@LeR2qLo}DXBGxoHI8Wff0pX z4E-_njx;=~@lgrKwT+F0GGzt|N(^L(#;%DGDw6y1B@`D%kE?iZQa-BX$ZSl(LJuf! z$_My{W$9<(zs>Bl32O`~rO?d86v@264iSC+i(j2qdhOb^^NZoPzk4V22C-HEP>n!z z>(;G@kDk7L_aWuIKk+C2#Q6M#R07DAt!%$fx2_C6_{PgyefA7mZR;A$XUYNq5UP8G z48=6Ycy@g9;>}xEcK5cj?DoOIZa?o4ZTAWj6|vj5U-+RP`Vpz);gcs`=&DO(3&OIc zvu2eUfXGOyR2AJDKbmxt-=Xc$xRFWd}?F2e2^mg`-=B(KFZm z^R-mmbAg|W!FoP^AKcvTgKDUlP%Q;WrD_$Fkc82~mH?<1NaGv`QM9g03XEu& zDgZZ87SM#20ULXAk1}C^wzI5xvbRdAf}apoGbDz<2Ek{-i({T}x&L5qXRFuiRb_nj)mQud{%1b(nSQ@tacZ*xOK5saYORgYDmyNFg`O z03(=mUNRLUQYnIaC>b%Y11gY6RFhyv00F@olwMH1_Zq4(m}ym+86i<%U?Mh?8X`E} zMucFhs@>XQ-Z{N92dz2Yl>$j(A*s}e2%=_|_xfM_(pNwBCf&Y$`>)!oGAGv*1 z%cAhc~ZmMH*aG<@bO5qeND#DFOo`U;{fOSB1y; zIsv-yHHo`h;gy@WukY@Rj&qIp#s^;ByK;3}kFOl;W=u*t8jb$gr~laNufA5-wbAOv z>1Kwh#H{0_-1ZTJ6t|;QRY8*vWM)L%w&330-X@}?^eQ3&5orogUYT`}G3^i(gH-Us=jH1!OHzdQ-*KTm1uqhog9T$3z|=sZwaDH0n`+h@qqe<1(R>3r5LiL zA_q^5l^Os-2*}Kw0gxd>TPXz8TR?SlSvpcg{GI~hq~=A;9nucO2k+8BT|i;!XAOZG}a#1*`{wd#~diMFdi3p;H5si2@Wy9L<3IfJ3s<-LVQahhiBG(#Qkls1_VzFSM;%vV=~0S0>e%7{d^O5E-p0IY_B;lcl_J1v8CaCLS3B z8BiOd-CX9Ca}X2_SOF9ngPEy!;YzjZ5^zqG;Bx{bhDZebiGfh-0iQ~&V} zVqFICaK-?bCF~cXsR1}CFynMGCZf-O`Kw=h>)qbob_Q zq%4rj(dl5TcDpd@e-O3@Sux07c~>LI*z9S5h7W)G`E}XiFrVfsk`)7h)l#lAm-nux+F#_-u5F&c_Y-OwW-%n56vEGtq%(>d7z^`>Tl&QkYYhrF=B!y zIx#by`?Ly}qzr54Z!)u4Y(+<_b5e7%<2G$6B|NN2&TJ-YZglPLM5#FQOrkW8Yl50= zhP}7yU(zOVCTUzQpyxyxp@Dc@g>qd_7)iAfv8t^8`G5C6+_-!L^x~}VTFc_$5mKR=jysT@^Qn4yk^$zx+ zK!h*8`10A~hy9Gp$vDsRI>zz&@CUyCQ(IX!DN7Jj#Hf}Rg_?0dF=$JfGiRz=RaH?G zHZwWYvGP{vnh7Wy8XBs1Cwgj!xkIDXaj+uQG^;Z z%nMr0!K`h%J5}@m0Du5VL_t&-qWgK8&3vw=bi08dQd{>Oj)|Ng?i``wSf|K;6&HXdK>4KlSVa1I%B$S@D%7*Whb83QPq zfRV-+#Vqd??hR#T0t`e_M-UZ_z5e#rtM98O_>yo4nQ(L9wQflc|Y-7aeNn5LEZ}{=cOCNwXx`k{*cZ zaE_VzbmtrMlykoK@(rkZRRy4cMgu|;Y-x&cN#TO4uEMITupkOQq`BdO+*2sR4Mmzw zHV9Ih7#ctU^~QWJ=a-Q&N8H)3yPMfLs>;PNGdFj?5t&u(a^;4HUvnE(_2}^Fr`ttQ z*nDA4)}Iq2OKU!QiNqE`1^|f%9$!;GZn8r?1;8FSf8EHg$}{#JV!xyJ+tlE-5qDdi z2I)wYHsbn~*XAd<%FwpCC9L{$-|@A1tSdKw4RCpPO0V1P+TK(fUbl|Ywd2cAoKr*z zvXIgyQdO19vh$0}-+ubVqbD!6CcFReAO0g%{a63$-<+MEZ;dCc;EbzzsS#??d08_f zpnA`P!GNJ*cPoZNWGd?lTbO{V#uzn3hGw#$82M~C+Bz5xwzju-_jmTg<($-@jus`x zm=6kH#0!(s@;mvPpqd)P9{6q;}ELxc(lDe0aOAbTY1C) zO(f8L!u^NU4kFr=(zR;96;-g6T-rcum{L$a}*w5&1Hf)ztE#os>5*H(_i5r^|=c&k*#D-O|Q=t9xhV1J|J?lauI?|w)V;@K791-^UuEo0FC09%&ZE6RVhTJP1{Q94RHT#<|zI>xK!sydozSibM*qu+dmE$vxjIg+A7FJ@iavfciQ z*Yc*c-5%dXqtaC_nYm~=VX$%DjOse3DWWDV7k$Hg3Xa%Bp`EH*mSvV@-sM$Q4F)4{ zIk^E5*JU*x3?$S(&y*273xZi-W&~#Tsvsf`sqk6KHRZ_Oa6*|}%%A`6n=d~8#51$^ z$P`qNG=!Q6JQE|5T2j$0&ljOugnDvtkQbvEEi8g>;PE6PbzOV!d&D~{a?&|?E&(6f z+h%4lMiE2gG(<235=D{Sx_KQmIzl46a?!?~1x?k4X3oNE9MR6Y_i;h(pVr$A+N+?h zWh{O2Epvi551Bl^)YQH9wIs*Z!T}JGi9q@?y|M#kw#{pN08_ubcR zhPVPUdEI?LT+Ip?s9Igc7^6ioji}Zpivsj7I;r|I7ciJe&T5zyJ4#<1u?uB(1A5(qevjbb9*u<@2}R zf48bi0zjr1s$!H^vkDb5=aD&M4yudU1s9_m2RB6Z?Ck7pda-w~XR3hYy`RlyA~I|{ z1UAG7y5SSuUloB2Kut_FigOOhNvw?w(NyHY-8)}Ad}3%W0b2wGTN}1wfDAj>{>os7 zZv9!w0(GUgP8rs$b90`3!`CZqx&D_oMKi_J+$N5$$ZxiATvLT+4g$m&y=Mdqh)CE! zo1WOM4`}E(Pp_8mRq5Px>~JG#v#DnG-E@7$&q+xsUGB46HX0M+Tx$FB&Yzr|#t>2x z($q8xsDWsjYU+?;jLtcYVqgg&Q&klMqGNKb$~8cRin)(cI_JC77BB?@0(NeDYrIWv z;i<3|ERxVr6SMzO^|QXriU&Fl0+SeYfXLPow|Im5al7d0kn2*nG2g0-L_v z>r^6Hnuhj|006Qq1Aw{;07U5O+AhwfAPO2y1WmA=?vpaPDN)u%Z|V19u^0}AnWGqE z1S}@oUp{@tlL_W|07(#M^xlva5u7Wl>Z6Z7x^d%1jy!U1Xk4fbl$`3&=NHqnot-Vj zhK0pB2kd}dVhjb(NDdr<M*o z7?DE|iPnzCq&7}yqJnHoE_8*5*r&Lihud~0SK!x2+i_$rA^abEubYM@5e`FTxZC*@39kupRx zTK=@jpA8`<>=?T?^RSx{%%;ArY}p$EY-wJ2`zD?D>XhKMg=_833L@rtZi)anyDVS5 zJWb=NK$}6<-KMbY5nEZoE~hg902Ly@%<*LF$=T&eEj78pWFn?nkw-OSN8YJfWwL#^ zUknEG`P>;|5U68P&1qdOG+w)XGlGdJG7+UoYmP8O=ZU=%8#8!b#2P$C47+<!*}1=o{UWDEOTg*2JERSr*sf-GWz{Vhba!}n~c7X+E>o2JmH23Vj~So zUAlFdlzp8!T=_5BnuvCbfVJt4G~_BZF>JIuG=wPqcBamwSP4(B(%?;>=R1V0>#r*V zfd2j6)TQnyjqE}LC~8~vNW>h&qess!FJ~x#A|NrDf9e1upv#(f!YrGRa~HGAY*6I6 zHHi&Z5g%qyG`(? z_bn!WCGp?=b(^!?z>c##0xEIJ(+qZAuzBoJo zZ~mMALtV%1-M#s2A=ZtGS+T6$oc9>?@^V&(rf5*tbu$JS08r700Mnd2MM5A|-QM2b zKiK=~cVE8y&V&8k34tJhCq~4iJpJdm47*Xg>GO@{TxBe7gs}a2!ypU0;)P~Nn^ynZ z?BeoVsf&Qq?8#QP(g;owK{LW-HwiReghJ;|B%YM?SJdTCx|QGI1-(V%%FyDwFA-Pn zWc~j1G&y;|qtVa|e*LT8&Mqr322qnp+BIO9ftaNlxdIrNkSQa@s?PJg4q;XHJFjqAn1j^EoE-#i!|><;#} zm62Q%q>^JG0>U)5)!2*>JR3V8Cg6c9tc=gU{^tMufBZi^{OaMox8KW0qYi(TJfH3+ zBmz)oZ-(>vJk%1S#-K?jQ*^ZEjiiEIqf4S6y!+nM$B!=0&wl*lA9_dLC(swSc^+PU zrk2E@bAdLW6j%A!1|3;3HxaY zQn*s|ZM}uIE_mevvhqpORdB_~ux_nrej1a$t`%=yNjIdwAC0J)#b{rC`RI4Qdq~6* zRHIm`10-m+F2l#G=51&(9(87FHDibcl(5)&v1GXwnTttn2#b z^&4B0$K`H~tPT(3Pq} zn*z~)F>RbjSAVzA3-L{5+Or4|Q@4kBctDk@D$xAJDU4yE{ zU?!>p5)(w(tm&3C5V9uYTi3NAIOmU!jz;4m%NSGf&S&$=KKtg0+djCU!N2^gkDpyE z^2x3+BcdaYF}gfc!bmU+p$0IfDhd#%s#6l*#;<6)K-=yQL_%~5XU~tGeDN^OY7)G6 z``+&E?%VIY7gV|iiH`0n`SIO*GrPQ;wF(dtY$1e@IC|54H$xRjoDmIbh%C$L!Gk-q z>9kzTM8XFjyjRyXpbiFuj*lowf0LLYA_C45iI@V=ngH}4^qLp587-`R*uAH240lqc zo~-l|A)1n#?HND^Pt}wGAV30jhz@{MoI*h^10uD0R@HSdBp?<*F;F0Ecruog98-@N z82~k{K%MDsx+tj`$D1H`YEdmF4e5`RT+Wm1zfT=7V8nnB5h9^b@>S8qqJktSSo<5) zpes)&P747svS`haLr(+L{MSGK`e%RnxkZk3Sj^_60urHZRncZZGq3@ud1eg}yCHMz zPR`EuCc7^lJsP+;9Al+r^c0b%RXN$;fB5oP4{pizxBt_V^Z)Smi;^49-*fu!%ZKFib(TW+<;{Ld7}A3d%S@`Re@HXJ4H@eF0I-0Gu0bZ~d*`|Gk^H4kauQ zF$HJ@C?TSOBaU@Qb!z~+oX)4yDYmd55s+w}kW3Q>w2Owl_aahD6jO2(q@NF)3v1(108o!eEfcSZA(VUfN!TCSTWQC8M^-rNO5q z7r=TwWt-~3fAUZN0~i3Y zomauS7G?*C2`69;s+tTz6$})OARPrPwE!b?xhJrj2Z%| zNnK+M5Tl7SQ)-h=C01-iGiByYc=+ha>~i7rA}VBA zM#SUM5KI7KmStsGlJjPO#KhE-4b=>oJCI(Q^p(=94ZaEpFwGNUYSyqkh-BV{Pz7o0vSvgsrDu6romT+z z?A6da5`>^IoyKR+p1gccpI@6%0(#)pgB0M$occc<+m%sOx}~ z5ul22mK(%S)y}yTf4%$OTi-l+nh%TIXD^<;eDL6{vaXIVFY=sYKoKJ*$5{|Hu%akZ zDAHMBxXRaGky~9!`P(W9%BENB)-3(nZ@B8!431NSrsxlph}4rMZbr)`nlWbr2pI!k z&Z^HJK4kB<#*@ipw7auS1kMwCm$F_-@J*77mFn0C(2Sc;eCh%SX3-EpqoJaLv7ne@ zV#iItd#j!-8S4Q6zk3r8&qbs`&o#^$DM+x(S@rb!QB~n|R-RwZ zW@S}XmDU2v2)*H_KZ~`kaIoxs10q^1s;?eByngM*i|0po zZ{8UXX48wAXt=nzm|VZk%+u-A5Go>5SMg|a?|nIa`RVD=!O?D=etjN>&Xp4cIC+7fEOp(}U zxz96Gj%p7dKdxiQeIaJ5Sl9K?=Vm4n&9E%X@pv5L987`KqM=%m59f=^;gFqkAx3um zqaXj^XTSXH_N^OVef9L{`HOeoek*+O$?0r57>xrMBgZ=WVjzl5F}o4Y<@qne09#Kz z^#%QPp=|$8SFZrCTL;#*L^U96nqZI;60RAK)8HU9^DYZo0y;k+D$b_!4yY3wE^;5>j~GwTeSK_2aIXh7+`&jAH`Ti9~KX?LpKm=iJ^4*bpQ2lwyYaO~<3 zJvmV`X{MR?EryvXU^M>ft7p^8DB3^{C71+dK&b;tAd4ZCS}z;`BLs<{YAUEJeS--T z)u881h)B(fqWJXF&)@k+|KRd+Hk-}1w#Fx?r?teYyu4A|9c6TO`XcDNB>-i)s$A6d zaI%+e?bP$xZ%>Xs{qo5u&?`&N#F8-g*0z-+dXP zBp24_xu|;Yi+tFmeU|gs#SoAhCdezS^S9xp*W`Si(eBEEOjRYLHn0Z3GF#b9fHFM?gpF7rW=yW9v9*&9387*=*{`11LS1j0rqlDxVJbUURd8HnSr&p2SO`^JXQT1>ayo?|E@OdM*YgkFd+X!h ze0B5M&c)fu<=L^z-48$f{$Ks_m(CLc#h{$IU^*NQTUNDn^H!RDS8Or1(zxpGZ`OI& zoFe|O{`@c2zSHT-l`7G7fTsd!KZJk}-$tGAz?1lK^+4Gx+huf3UWL)G$7F2)!%U>2- zlhMxBi{qmkw{8)8@7O_Yv24Zv;}s%!;A_08v4rl)7=uTjNo+SRmNt zY<4-Dxh#M1)>}s}Um*ZHMkWQ^zjm1CIW^2thJ7?ze;N|B!7(VWbon+gh0cJYt^wTI z7@$+5*Wrr#QAmecHEX7trPPUnAf_CCN*5s^N(_$BBM@_zdySGXf^`T4sg%@Y%~Bw5 zZJA@u1!}@#ThVyJrqYzQP1~uFf&?Q&MI&o?D-4hg;IgifVOZp$iog8DZ!XSmz5l_3 z(J&XOQYa4qfQ;?*9RuCnn;@7;(7J{g$pAwXQIN)U`2+8viY6@kkFmB!K z>&^ms??nPTHt+xSU;Y&k9$w$~j;(o$#rQ5Bmm(OB-4BX*tOIr?V_ei zq0QRRs~;qa9U=+}Wz=XW#z!Y7^UFB`T8tJ2Vlb^iqDf^^qlyL9CXEF}uU;LUo}OiSzP-Dh z(&B*J4n{;mU_u6d^wkp$7RwS%Evm*E%$T&Q=3vSI8Y)85SR<$-u!bTN5!};Fv`f5_U+9 z)m}b+c=GJ&-Xy<$u)8a~ZP-0!_=ODH9ii z91%mP42>Q6%p0MG=qSwwii5&Wwk9ElC(oY`2E*BW4r+IA-@cq*Mm1LyJ9|5+CkDxo zmYf}kNG*~-)r}iwNJQ%SFIVJ1dzJX~A^+*0|HTy*)7PY&uw_B)ZAR?IuJwylazQxCM0&{qTCtedj-At z>dV8eZI48z&T|BrhnhIMcKa3<`Lvqv93Ft*2$PL^PaC$T?6PO(u0+vtt!Cgv`58S9$KUBA4W^5Eww_dpR^;5xTQ{eRc`+Fc$D^hKPi;5i(ha#HQ{P6+ozO28##(-w zHHV-7$v^$)>v_{v)b&~z&{qJ2zLGU*_%;SkFdYLkV2ox}P?r_QrxzDzQ&O~OD3EYs z7y%+!4Il;*Km&=O2&#fe@~TlINCb(X5hS7tO2WNI(B}8%4|dw3%Qp;W5@V=Ug^9qZ zs>1Q{*~!WI)?{ycdms@djamT!^ur=MdNFH-`~`IhcZT%7o;>Ae6NS+Z|^zJ()g#^7W^mj(oN?8lzd%z@B&a_HN$2 zds&rFUc9(*?`}32Ud|VTJY%Gsxtv}eJ$tslJ(&!0i_0QUEH?%%!p z$!~viKD|6VyjE3Jkq^i@1yc|NtIEZAJOV&4%!&+&h{*t$&_sxtnNr+WnL zwP`kohQr31Zb5DL)BUvH0@bvA^CJ;d5R|~wr1ANUBwQdeZ=*@*}f2GKkps3|e3h-Z51?FV0c`8yFCPsV1J6@@jJFGAB0>O3D1At?CF zsVNhHg7-eeSXFiAGa^zI=iH4O*AMp(&rVLNYB8@vP;sLI9XoOW%h0qR1h2U_eG%_V zXCLi`tKTv+{?mW@&o_}nZ%B#4hQCBy8g5GEXRvko92sG2EJRf!mx;j<^tBnDGO zQ?+1LqeZZY8W19wswt+7P~z%V1vAhz1Vz(-O(oIrrF45r6D7=2(~l;GVqgMkKdPV& znWltbDh>5+h#EzLcxDMAwLE|N^z8I(duw|?xu6FfB40#gxYOILYOUPMhuQ`-o00=WJQsA?-3X0=ihw($p`N|Ak$ctp4n%a#0bRE5Rjt? zGMTD#C>HWO-`d*#_~VbSUAq}oilRUy1qEo-CRA}S95TDvd`=FTU82lO1t3*1Yf6L? z!~WjRt(!N-qj6bRix`JHyJF8RpHl=>b!kGYC@Hd$2XIj3(Q0vDnJ8IG=5AjlqCCUxsjS>&Djp zz9BFWh?bX^pMCuCgWETTIg^1k6Clfk+5#l!Ge8s*Bx;mcbvPa~xv#$Z>e{s%>@xsh za;lQXDSBT+{( zvL<-YVu8AtYF%PC%y-8C-5DeP(?9u>I`E0s4IXOcjGmWOEk}_B*LJe`Xq(V|Ms41%mrltaBX+k5IfSQ4VYV+F!)LPni zP2WOO10^s6MO6b6ktPXal$H*as2T`OBp|3nF~GWtub!VCJwL(_&yOyC{hxk$c{+o- zfl-@kYCy;sEX=&kw=&Ibj#_dt6hky1q|_PI$UQYnaJR-1VvaJw>VNjrA6)lw>~w2y z?^mCER;pLXihOi@dRdv?xP5aGD+R5@zbsgBb(O^(6<`Tu{ zne)C5K@wcbh=>7{8NmX88T(h~v!iKM47UIjOgAuWt4>b)dkr$w_1Qwp;jkvsmUw~s zuT5ub9Z<1S(CN3RUjb1vNF)MCfS#Qv1;*{|N!#;Js1Yo!5tgP=qY0>KDxo&)g0c0q zEWIaFML^S(tZ&c{1_nwBZSlAFu3NjbSvycc5ga;TKudEpgb*|WdyfWWC=i}KeDd6nai+ z{~3}&f{ug`&dyH!wIVJSKY8!L?|tvx|Ig3A^jkxTHW+RZXY2hK}T6JyO{3Wyf&@pQIqvzBTF+uk4Oir5K?+K#Phh-F^i z+SZl@6N0w!h$#6;?e#LVp)vqOGYZLxXHD(fnGu^vfH^_*&PXGwIV1oLRlT3*@9u47 zL;LBi-GA_VKlpdQ`s}~|SATglzsyGah6Lp57*G?69aYsaqKSs+2YDUx|M08N{^-5C znWq>Q|M>6y;V(XaI1O{+qE^d&mWT?2m?0xjj3uH0QxsEk1P(PYXu+^JJ}PP%4?Wbi zvZc}OhNP-FDOx?;D$Fbx1f%W4{QydoOSJQ|^W)Pq?{PHrQdh`6ty|P`I`wfP0MN}J zNn+%)Y-g)DpJJ%zOjcGEW!?}X7>F?{lc?JCVm_Z$`v+S-BOr<)RHEKzscnD(B?d$k zim04c5JYG|{m>@jJFsRm<)w2&5Fk;xB*bP5?=mxJSKuVhOZfDk{MkS2YGbd9 zeQ_i6W2>=6_m>o+0G5yUR<1?T`)0{%7$jf?0}Ih zoIH6Hr)PH$cXO1S?A`mf-+Sxc#o5X6t5=!NL;|xTW{HsrGiEYyp4p(PDxVEcUcKBO zX74_@U)SZ<&Nk=8$DjOmJldX>)w>_OdwBg?DHS29IWRDbL~4mLAQBO)MF1%fs-vTw zMc5?yStO2=@MnO z^3+ohpQN!L&@%xbGl|9^S_heI?M5+ygn=bSFpH{6m@#MP7w4kN&Uwy=8!QzO1E~QL z`x^b%FQ=!apwB=P#AX#pvSH}@>G+18r(uj+7hv4*Xqq6nTOF<_o?Y1_ewB~Z3TJ}G z!LsDs^lAVRFY3Tq7D9aS{5cbWf{9?_8c~7N7twM}w+9gDM%%!$R;@k5PF?d_(><{4 zWou$|>-a+Zn<<#4f*14`ndYV^_Ddh`n=P{Py#EckkZ3wi~Oeb8 zTmr32e^+yCk}+unUyC+JT#1-_&OomY@F#!%7yU}Xn$=&67?$r>Ql+g*0klgN0yN~I zny_(*>5+#h0_51ecyUx!H6xouLPV9O(yuMVyBjzOJ!R;_02`NV8U1W7S=e%ww()!4 z3%p_|^t#TgHAK89Nz)u4D-cM=8fIryUV4a7SGmutV88zLZ|cS6jcbR4BKHJ8_~8Aw z-@0Ef<|jw5OohQ5SZW>g&KZz`c|t}TIQR0|qaVKiz&inxciwti6poKhKKkhUzTi66 z&UuZX5*;RRFsY`;X=X;I-cfn>yF{g4HS!+%PX>KFu@F%(J@MI@rH<_f9Ps z1kTRRV-%?>i`Cuh*9bIGkgeU)X0^wr({!l}?H^4PfoAi{Ilm~Y!FU`^5P*RVP&BBS z0t2~VihzV9QD*+(B_U3LW0=R%38c^^h5wmgIb&S?Hg>|#zZUxXoM*nWzez=VY_N#nqCQ(EPc07 zGz$VCn?pcDAv02Q24LnjY*YB-4>L4Sz?q7fDj_AB?I@BEMyP~nOeoXy;{1Gnkf&vh0HT4C%kzQO6`J@WUr2rT-FN(G zEJ%y0zL;JD;%s_8F8tx{4mV}2rYGB4EJ4>|n%3XGEK)LB3R#ht^Qw+|FwwEU-k{ugUrQ9lK=sQ}${;{LL*Vk%OaB~>>Rj3~8FrVbZo zSJ%;Lk5H}`*Z|IXk3@sDm_Kg{xcHlLPdHD4?~ z{p6F&%jx|)Hw(wHn!R=V`j5Z=!Om#lL57}oN5%G#cMErIJKrhXy=%MI_a?Wm?fk({ zey}|rg%Dz>bH+P24n4(}&z=>daS#iN&SeP#rhq|(nt{MbfJQ=PiN{B~g90tFKo|fB zaOQpPoWww$cu?GY>%Nc^!IRUADhd-`o}C+u&0|P-oQxtUPk&YL&aE9n4hAv=REpPSY zvu}di-yM4e;PQRzu&qnATa)81XS7xie#48}5mDMM3rU_FQB+CO`qE-eNUD-~ic%l! z@9ysHoE)DMvzZzh#AL{IgWDaJ!EyV407&!Ha9s&4l~?Slv}}^;l~2=7Y}vBdY9KcI zvI;;^5CE+~#u@;8^Yq29fBnh#_qKA3oP|I7;MPZPT|ZxZ^!3x{zxnN_&t4q;)z5zZ z?Af#b*)Pm?O1O;hmQA*+o7mNWo&Q zv+|v5+k0EXfA{$}esnGJt|*zQrPR1a0dd~|YtUJS?M ztjI;2XjRv>s$?#cs7g&%0b3lqAxPAScoySjH0K=vfEqfqmRKp(5L0d)dM&1~!p*a4 zlzTA%HHF}HsaPq5b%wU%Y1tHa+xV=r(9L~H^P3xLY)~K|0uw?Yq#(lVst}9e_~hj5 z0Kt$KSs^#8W{Q6pCX=dFDv95C| z^Pnk6A_GuWMhvDYpQ)-q=AF|Zjz}!ty>si~qsNJVkG-oy<%v++e(l8j1#QMAO=9dt zt{VY;E9lJtsWdcGn?9TN(ijjsvMpQETVOxY*0$X!r`b;_%haG4lv&UsWs4Yp`gi~M z{@d3>c@m|pt4N}pXD-tR*SFrjz5j62dCY9O#?&KH@)3>bCy+&~wqP9Uq1*E`2j~>DKV2$nlEP{ zP4n1ll;2w=mIoqBF-%upJ(DnE+TVmJfz8ADma!Zc!{Q&RtP^M^&iMhRi;aWJSKH>pb^HsH#~;R)cqx zd6(GUySPYJ+3<-u@xvv~IT1fL%LnP<(p;3UHOI0+<#9d zs96(}csGBy)cmw|R7P}2rV?8^K|~}&@2HYEDDpeEZ@hZ-g4jhtWC8_5UCOUnqe)jF zEv~xSCMwq6xvgA9Um47-O_{C3ys1TvqoGfYI@F>q3{g{eIf5JgzkmDn&%b&4x8Aw= zpZ)&#KDf1AtTZnM5wNTy5D$k#BWURB$Qe=uOwl2sf&~J!hQQVcKs6M( ztLmEBo6^=WAM;U=d1ZMpG7v%rBNJ6tB2?2L>aziiCP$~oTU!&(i_6RTaC?Vhg$7{J zv+IEMM4%cy7qv<5JTr$Xq`BhEpAnw;nxx;HccTHTD#lKZZT)$HRVA-3SZXXhB!<2=9q-__y z8Hh!x;)Hp{Oe0jYwq=iy{l$EPoje)HQ;&(2PF4-U3>4~f0cb8@6HI?sb5M^fk5F*S6B zNNOr#qEgq1gfoh05RIx)O*Apl0wJX~ZeI)^KYb>KkPWJ+X=yYCW)=xd1Wj}djyO!G z1@ZQ9ba8&FL|K;Q-i12Q(2sT|QIwg@U^<-+2Kjt?G4y=6w-aNaG{JgP`djHqE>Jfv zz!NsBwi+me%gZXnxstMX&KrWNjkYFr2+R%)RAOCK)641QVxfSU&z$o`F&b`dznI6P z>B6XCR|IO>=$eTXeM#sgG+UwA=n7~h1bZzqy={7hus`ipg0GAwSF%W5sIZZl??_8} z3V+ur-4$X($WHTMK62pAPYlo+E(010H`vW$owd1jA3Bj?$nV~?rPIzeuji78a| zvlp*My9c$X0jiiOICf?VB4`MRQPdGZ)M`H48x|7d`D{8Ij|S`&1adbR4=*mJldUZP znoiG)%+1fw4z{;O!$K_p8MMmZp?Zfz|77NYtTM_5m;>QX&Iz zMhM1^RU@KBiG+kic`-Dhqn9r}`{a{Hj~X(smU3ddRI z+jCDAKLHw>cZet=&T$k`v+c>``HQ0pTtr6n$WBdE#S3J5a-O1=; zemN)xL+_ZNgfQHiygWL(ed}fvtrl~Qp1RRvhP@NUsGG-DJrKmuTG=RXpfsfg5h;XK8{YMW0pjSxy_3aZCPFP}VmJiV9_ zb3Pp8!x8%|&Cp4_U)?*iM+%B zs)Ps%fMlAev;~ORRL)O#$Aei}=04lXazLm+{2)I&J>A~g!BC5^ejdlk4GWY z2sj)~f>;>@*|S46tiVN=S4M`c63om9i5UTze2X=1{Qge*DM?@oe|tht{n_vBqwWU) z$=o!4eAf@qnfboGe_i6`3a5EB1W!Ot0R=@uQbY!b22ENM(aaoS2(fU!GJNaqoktI! zR8>NNk{N-ea7+_+p*a)OHTiEQ++7vyZ?0xdSeu-yRYv*F(}OnO*Tys0vKBKW4QSd7 zESbO%7EY?1=tn0gMuJ%BuPq zKpjKoeN_iW8VoX#pd$CKU;F&&>2a82He5tg)hx>-hV-bLsiw?jjN98g<@w9wP%lge z$)>6n#Bnx*5Kmq{zx&oZgF$}$qI3X66oWFSJEPFRaH-c>(Im1NUBl}r;rZi7}PN77@joX(oNcZI-}fjZF44MXOS6h>ef2ghRvXc2~ZKR%ov5 zy@zG~rEknq2Lm;815%m?jELH~0*LI{`DZVm#~52?H83;BoVprPk`(|D(vaPxevJ%o zq;8j4sTQ`lj1yWw?aDT|x*!m7`{m@NAT|+wLuz7(ieM%lF(cG+adCQb`s!s}$3>`T zAzW7B)%oS`o*n(_i?9E~uYUURBPgh5-b)>w15BYIlxIGz#YF>;+=a*BTXM20QM=y`A9~>|OnEK3tHOYiFKi&-LYF%w+W>h89SC60N z#16<3)jK*QXRf#?L-3h#9vB5cqdKM{E6PQAaXuYSw$cu(vaV_|&T7M%DrQ*%pr;;g z!xq!lLfqF@^|hQ&|C5!(My~;NbK~^5UH{p?ZXI|{&Fi%#GwZf#amZ;7u^}mF8@+(4 z5;21T=&hTF_wL^MDe?dH^Di^hoOxI{W{!Y$)F3g6MpHy&K>g-8`}lX; zgW}G?!8>CC>so&Mj4N`(Xo^@Q*Mj7Gpj>=S62C*DJwmJGyeeeG$j2KJ3bIiNYKJ0F6u=VlX67#niWsi8xuo5umC@pBEp#|Mug@ zkL!6rZU`0BlHUoYfJTT4Mu;l}=zVSe*874jcF1hGXs&(*dpk^^z%*tw^))1)IHhHY zh*fnF!BGx*CXQyIJ_|yURNb*3K*r6jFmYgJdKAOSqvKB>9TooLk%xmV-rdS4qb)Pr z8jmwFAHwa!L#V0{0<`SJPIUTu54v$y~5&BOon#n;8PduQcrFq|wF3&u2# zsab8!Owpk)n93^FgYC(|tsC>Rvk0a{TsW;4j~_oC`kVk#3ZvZt1 zE_-ouL2h7}qt5^k$b~3kJPpC}fshv>L=rI*$(@fedY|v??3|vT9ltsn@9d(>6hIwC zfM9^GDX}FgZQoVg&B%HQ*}eo`CDv;S(3$@=@#z0|*$}gm2<%(mo`iJ?vQ37q=1#TT z(YY+Ta+|4JTwxU7bXRHlB>@x;i>K2@;9gK`mxXY^L0#oqAwyFd$f_EOF&J z+B~LVL%h*6HZ2?1mNyGqxYWvw@>Je%zyt(fNYtVs65@!^kkFBH3M7Dmz?jiHqh>5e zT0=}t4M0(W70D=5p9S^{q$%Jx)A`qDvrnF%y_m<*;cau{)644oqS~Gu#0VnbD2HGU z9H9$ks6t@J*AI4I9UYx7LN*wu`PGJ)93M18BvAlji1qdW-@11rREwe*kmFK9WDKVF z-@0E_RqpuO;l9+tL>#3`JakDu=-Mg(OcjX%xvJ%NkDdW#iz+JlTCfx?4NJfh83&_C zPLV`_xZyiNL=h!+&iO@I&K4#4f``MYNo3-zsAF8ZA%HHW3LEBqY+6v#_4V_6S1ACl zx^)|jFhl&fWW|l#)gs*K5SMCI?s#- zil!gF|NfK5FJ2y`|p394JNe`WrZjRHvK(j zES4rzOP=R3)<%fT52$<(mR1p$B}qksVWS4SrS z9Qi>N%Tka4>S(UWA|Ve3ky(roSv9bdbFNA#FNbK9=Xq4QsH*eXJkK&57GhS#I>8m8 zb$1id6JCYxNlyr0j}2S;x@`>C2xrfZH;aGo^45tV`pU3=fOK*_wduaQwv%?`x;Aet zP2i$6a36w#3YwzS+gs!J-+y;B8399@otieL78n4O8e$Rph=!%j)@~4M`{HzsOX+XF zyRmL8m)+hc%i)unCI$cjIzy_15RrGzAvg=pLXOdC$dMTs6-^+K^%4LRXksQ!)o>Hl zn6TMWSy;&R!&?kIpUy!s8V>gk&g!r*1BO~laj~SZu!=KhX7!?c@%Z_O`A2te#N+4V z%*9wMS~OK`8n4pjM2&goh{ynhpfZ?8Q^q=mc~v6f_V!i?6*DtqnrPGmhcAJ*ijdM@ zWsFA`(|l(iC%bO%&?Z|p*`l3Y9gS@?f?^nrL_tI|??VVNMq~g60Sl(en2*N5E)qq; z%1n@$Txtwxe$>oVUo#7%tC*}=v9!6Ic5gbD4>#iAFJ}c_utvx-gb_OsGA?0Ff@qND|KIC*RQ_L)eSl)XLCPmm4WsS zC^U>9meRTDTWOxHS(^V25^7Fa7)k0(h=|O{Y>1+1^mmh5?X(RQ9lD*#&b7VW^Rtud z*AB#Vx+ukEFdV;{&D4>hDJf)Bo7Sdk=*X9|`kT+ce)q=p>w{u`^dd(?69uzoI77Mw zGmTm15Dl3^RAfhv>ni4XKA&EWhK1CDF->zzbd7BltVN6)q?ni#4A{+UIh&Q@in&1W zKKOiw48!39AOOv)khne2KtjxYmKX;FENCLRHzgiz@8pxQFe5nt2q7e2pB2*hPHQoD zh`2Vrchk;p%Hiu|*fz3BDOtb#bR!~c5Y^Dy;69*oOcXG1_%nC2cb{a7c)Z zn1fN2;rH<{UXl~`X52$f7pfq)n|#UI){)+l0x0-#9f@(A8IQ(yx!VnvK*0U;7b zB0-9Pf}}{GNaj6c9-NuoxqbcOtN^W+s{uW01wg`Tk^!)6xtOO_e|i z1gwJ<0QAAeOq@S^{>l|2K{n0;aBXBRUqmDJh@6DPF(V|DUX#kxhO37WIRaW<&~S)( zo&Y~&M8+xINeKspV2+GXR#7eOnvTf_S$)V&!)C)r57;%+W7{czrRetR#;;MbHM@T0 z;&7!#b|+1SXhhc9el!L|Yib09)4 z_i^LZzl2SxbS`6)Tq&!9cTIv;6pCf!RQ!F(g6>0^%UZoSR`)meq9n*8WcQ z>iNKo6^K0&8KU<-hKkUrmBo}#b41=ztg8&!6N6fc*+kV4qiT{@Rb^%XkQj-G(3xSm z2p5;-pcrc+@j<7JS!*pwnh;@_E-?A4Jr5Z~L73G!B@SY$hGx`0PHw$SSj$vwnD*Dj zsBd_!8TY09ykYr(tDK4}k9}1ty~+JUZ$(a{+Zlk;%GUC|bo*3Qh*jq4qaS>DaJYkL z>PP!PI3TL5fKF;Ml?kON1lNRxP4OM zoI5`~E3(|X#P`;e($jLBKqAT2gf#3GQ5Bf7)03$Na9ogJO8YxOR3J4{KtX6ZokX=6 zk6xEjEAWtJTK zAkJ^K@mIb!^`Wl`>qj+UNW3!204~L%X&q<>x`V1ogjh`m*-w7-qro8WbN~>6$@)6b zoB+S>61r3BN9u35khQpCsg{^}RCq;6dbh4sh}1!*T{rF8Dx?y;BWp;iO(fpBb)ziH z^V5?bfAoV4xvD~P8>*_VLd3iXZt&#v0y$UJG{@V_5Lm$?nlb`_l(YK>dqr62*>R@o z5Fkd8Kt!mBMxjbLOH1Oe8ZR!+M&ki8LEHP1#JzEY5rG=N#j|TdL~utZ)4^ybM$;54 zM`5BSA+AX6LrgOdAt|640EuBx6eRE-vP=o1f@+$@y#8pqZlpI0-nR

    %P*@*+Aa~ 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 X(5F-yM}B~q00000NkvXXu0mjfg6`9M literal 0 HcmV?d00001 From 33a041549fe697e53d9277796c363d0da110f8af Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 16:13:05 +0800 Subject: [PATCH 05/43] fix: load page assets through static tags --- pages/proactive-chat/index.html | 41 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 32566a3..6c0c754 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -8,7 +8,7 @@ 主动消息管理端 - + @@ -17,6 +17,9 @@ + @@ -201,12 +204,10 @@

    - + + + + - + + + + + + + + + + + + From c461ce5953f67bc0937bb1324b065bb01da78660 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 16:19:46 +0800 Subject: [PATCH 06/43] fix: preserve page asset tokens in loader --- pages/proactive-chat/index.html | 61 ++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 6c0c754..1db0120 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -21,6 +21,24 @@ window.__PROACTIVE_AUTH_PENDING = true; + + + + + + + + + + + + + + + + + + - - - + - - - - - - - - - - - - + From 80ff7b1f78bb4c5f3594d117978fbef9b9d9a8ae Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 16:38:11 +0800 Subject: [PATCH 07/43] fix: bundle proactive pages webui statically --- pages/proactive-chat/app.js | 5344 +++++++++++++++++ pages/proactive-chat/index.html | 465 +- .../js/components/layout/Sidebar.jsx | 7 +- .../vendor/emotion-react.umd.min.js | 2 + .../vendor/emotion-styled.umd.min.js | 2 + pages/proactive-chat/vendor/marked.min.js | 6 + .../vendor/material-ui.production.min.js | 25 + pages/proactive-chat/vendor/mermaid.min.js | 2314 +++++++ pages/proactive-chat/vendor/purify.min.js | 3 + .../vendor/react-dom.production.min.js | 267 + .../vendor/react.production.min.js | 31 + tools/build_pages_bundle.mjs | 60 + 12 files changed, 8120 insertions(+), 406 deletions(-) create mode 100644 pages/proactive-chat/app.js create mode 100644 pages/proactive-chat/vendor/emotion-react.umd.min.js create mode 100644 pages/proactive-chat/vendor/emotion-styled.umd.min.js create mode 100644 pages/proactive-chat/vendor/marked.min.js create mode 100644 pages/proactive-chat/vendor/material-ui.production.min.js create mode 100644 pages/proactive-chat/vendor/mermaid.min.js create mode 100644 pages/proactive-chat/vendor/purify.min.js create mode 100644 pages/proactive-chat/vendor/react-dom.production.min.js create mode 100644 pages/proactive-chat/vendor/react.production.min.js create mode 100644 tools/build_pages_bundle.mjs diff --git a/pages/proactive-chat/app.js b/pages/proactive-chat/app.js new file mode 100644 index 0000000..aa7af96 --- /dev/null +++ b/pages/proactive-chat/app.js @@ -0,0 +1,5344 @@ +/* Generated by tools/build_pages_bundle.mjs. Do not edit by hand. */ +"use strict"; + +/* js/utils/auth.js */ +/** +* 文件职责:认证工具模块,负责 token 的读写清理与鉴权请求头拼装。 +*/ + +(function () { + // 单独定义 token key,避免在多个位置硬编码同一个 localStorage 键名。 + const TOKEN_KEY = 'proactive_admin_token'; + window.AuthUtil = { + getToken: function () { + try { + // 统一从 localStorage 读取访问令牌;读取失败时返回 null 让上层自行兜底。 + return localStorage.getItem(TOKEN_KEY); + } catch (e) { + // 某些受限环境下 localStorage 可能不可用,这里静默降级。 + return null; + } + }, + setToken: function (token) { + try { + // 登录成功后将 token 持久化,供后续页面刷新和 WebSocket 连接复用。 + localStorage.setItem(TOKEN_KEY, token); + } catch (e) { + // 存储失败不会阻止当前会话继续使用,只是刷新后需要重新登录。 + } + }, + clearToken: function () { + try { + // token 失效或用户主动退出时清空本地凭据。 + localStorage.removeItem(TOKEN_KEY); + } catch (e) { + // 删除失败时无需中断业务流程。 + } + }, + withAuthHeaders: function (headers) { + const token = window.AuthUtil.getToken(); + // 始终先复制一份 headers,避免调用方对象被原地修改。 + const base = Object.assign({}, headers || {}); + if (token && token !== 'no-auth') { + // 仅在真实鉴权场景下注入 Authorization;no-auth 是前后端协商用哨兵值。 + base.Authorization = 'Bearer ' + token; + } + return base; + } + }; +})(); + + +/* js/utils/http.js */ +/** +* 文件职责:HTTP 工具模块,负责统一请求封装、鉴权头注入与错误处理。 +*/ + +(function () { + const PLUGIN_NAME = 'astrbot_plugin_proactive_chat'; + function getPageBridge() { + return window.AstrBotPluginPage || null; + } + function isPageBridgeAvailable() { + const bridge = getPageBridge(); + return bridge && typeof bridge.apiGet === 'function' && typeof bridge.apiPost === 'function'; + } + async function ensureBridgeReady(bridge) { + if (bridge && typeof bridge.ready === 'function') { + await bridge.ready(); + } + } + function parseBody(body) { + if (!body) return {}; + if (typeof body === 'string') { + try { + return JSON.parse(body); + } catch (e) { + return {}; + } + } + return body; + } + function toBridgeEndpoint(url, method) { + const normalizedMethod = String(method || 'GET').toUpperCase(); + let endpoint = String(url || '').replace(/^\/api\/?/, ''); + if (normalizedMethod === 'DELETE') { + if (endpoint.startsWith('session-config/')) { + return { + endpoint: `session-config-delete/${endpoint.slice('session-config/'.length)}`, + method: 'POST' + }; + } + if (endpoint.startsWith('jobs/')) { + return { + endpoint: `jobs-cancel/${endpoint.slice('jobs/'.length)}`, + method: 'POST' + }; + } + } + return { + endpoint, + method: normalizedMethod + }; + } + async function bridgeRequest(url, options) { + const bridge = getPageBridge(); + await ensureBridgeReady(bridge); + const mapped = toBridgeEndpoint(url, options && options.method); + if (!mapped.endpoint || mapped.endpoint === '/api') { + throw new Error('无效的插件接口路径'); + } + if (mapped.method === 'GET') { + const payload = await bridge.apiGet(mapped.endpoint); + if (payload && payload.error) { + throw new Error(payload.error); + } + return payload; + } + const payload = await bridge.apiPost(mapped.endpoint, parseBody(options && options.body)); + if (payload && payload.error) { + throw new Error(payload.error); + } + return payload; + } + function buildHeaders(extra) { + // 所有请求默认发送 JSON;如调用方有额外头信息,再在此基础上合并。 + return window.AuthUtil.withAuthHeaders(Object.assign({ + 'Content-Type': 'application/json' + }, extra || {})); + } + async function request(url, options) { + if (isPageBridgeAvailable() && String(url || '').startsWith('/api/')) { + return bridgeRequest(url, options || {}); + } + + // 复制 options,避免上层传入对象在内部被意外修改。 + const opts = Object.assign({}, options || {}); + // 在统一入口补齐认证头与默认内容类型,减少各业务文件重复代码。 + opts.headers = buildHeaders(opts.headers || {}); + const response = await fetch(url, opts); + let payload = null; + try { + // 后端大多数接口都返回 JSON;若解析失败则容忍并回退为 null。 + payload = await response.json(); + } catch (e) { + payload = null; + } + if (!response.ok) { + // 优先透传后端明确返回的 error 字段,提升前端报错可读性。 + const message = payload && payload.error ? payload.error : '请求失败'; + throw new Error(message); + } + return payload; + } + window.HttpUtil = { + pluginName: PLUGIN_NAME, + get: function (url) { + return request(url, { + method: 'GET' + }); + }, + post: function (url, body) { + // POST 请求统一将 body 序列化为 JSON;空 body 则发送空对象保持接口风格一致。 + return request(url, { + method: 'POST', + body: JSON.stringify(body || {}) + }); + }, + del: function (url) { + return request(url, { + method: 'DELETE' + }); + } + }; +})(); + + +/* js/utils/formatters.js */ +/** +* 文件职责:格式化工具模块,负责日期时间解析、显示格式化与时长文本处理。 +*/ + +function parseDateish(value) { + // 统一接受 null / undefined / 空串 等空值输入,调用方可直接拿返回值做真假判断。 + if (value === null || value === undefined || value === '') return null; + if (value instanceof Date) { + // 对 Date 对象做一次防御性复制,避免外部修改原对象影响后续逻辑。 + return Number.isNaN(value.getTime()) ? null : new Date(value.getTime()); + } + if (typeof value === 'number') { + // 数字按时间戳处理;具体是秒还是毫秒由上层在传入前决定。 + const fromNumber = new Date(value); + return Number.isNaN(fromNumber.getTime()) ? null : fromNumber; + } + const raw = String(value).trim(); + if (!raw) return null; + + // 兼容 "YYYY-MM-DD HH:mm:ss" 这类非标准 ISO 文本,统一替换为空格 -> T。 + const normalized = raw.includes('T') ? raw : raw.replace(' ', 'T'); + const parsed = new Date(normalized); + if (!Number.isNaN(parsed.getTime())) { + return parsed; + } + return null; +} +function resolveTimeZone(timeZone = 'Asia/Shanghai') { + const fallback = 'Asia/Shanghai'; + const tz = String(timeZone || fallback).trim(); + if (!tz) return { + mode: 'iana', + value: fallback + }; + + // 兼容 UTC+8 / UTC-5.5 这类偏移写法,便于不支持 IANA 时区名时仍可工作。 + if (/^UTC[+-]\d+(?:\.\d+)?$/i.test(tz)) { + return { + mode: 'offset', + value: Number(tz.slice(3)) || 0 + }; + } + + // 默认按 IANA 时区名处理,如 Asia/Shanghai、UTC、America/New_York。 + return { + mode: 'iana', + value: tz + }; +} +function getZonedDateParts(date, timeZone = 'Asia/Shanghai', options = {}) { + const parsed = parseDateish(date); + if (!parsed) return null; + const tz = resolveTimeZone(timeZone); + const includeYear = options.includeYear !== false; + const includeSeconds = Boolean(options.includeSeconds); + if (tz.mode === 'offset') { + // 对纯 UTC 偏移模式,直接手动换算到目标时区,避免依赖 Intl 的 IANA 支持。 + const shifted = new Date(parsed.getTime() + tz.value * 3600000); + return { + year: String(shifted.getUTCFullYear()), + month: String(shifted.getUTCMonth() + 1).padStart(2, '0'), + day: String(shifted.getUTCDate()).padStart(2, '0'), + hour: String(shifted.getUTCHours()).padStart(2, '0'), + minute: String(shifted.getUTCMinutes()).padStart(2, '0'), + second: includeSeconds ? String(shifted.getUTCSeconds()).padStart(2, '0') : '00', + includeYear, + includeSeconds + }; + } + + // IANA 模式交给 Intl 处理,可正确覆盖夏令时等复杂时区规则。 + const formatter = new Intl.DateTimeFormat('zh-CN', { + year: includeYear ? 'numeric' : undefined, + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: includeSeconds ? '2-digit' : undefined, + hour12: false, + timeZone: tz.value + }); + const parts = formatter.formatToParts(parsed); + const mapped = {}; + parts.forEach(({ + type, + value + }) => { + mapped[type] = value; + }); + return { + year: mapped.year || '', + month: mapped.month || '00', + day: mapped.day || '00', + hour: mapped.hour || '00', + minute: mapped.minute || '00', + second: includeSeconds ? mapped.second || '00' : '00', + includeYear, + includeSeconds + }; +} +function formatDateTime(value, timeZone = 'Asia/Shanghai', options = {}) { + const parts = getZonedDateParts(value, timeZone, options); + if (!parts) return '--'; + const datePart = parts.includeYear ? `${parts.year}-${parts.month}-${parts.day}` : `${parts.month}-${parts.day}`; + const timePart = parts.includeSeconds ? `${parts.hour}:${parts.minute}:${parts.second}` : `${parts.hour}:${parts.minute}`; + + // 统一输出为易读的“日期 + 时间”文本,供状态页、任务页、头部时钟复用。 + // 日期与时间之间保留两个空格,增强卡片中时间文本的视觉层次。 + return `${datePart} ${timePart}`; +} +function formatFriendlyTime(value, timeZone = 'Asia/Shanghai') { + const date = parseDateish(value); + if (!date) return '--'; + + // 以当前时间为基准生成“几秒前 / 几分钟后”这类相对时间提示。 + const diffMs = date.getTime() - Date.now(); + const absMs = Math.abs(diffMs); + const absSeconds = Math.floor(absMs / 1000); + const absMinutes = Math.floor(absMs / 60000); + const absHours = Math.floor(absMs / 3600000); + if (diffMs < 0) { + if (absSeconds < 15) return '刚刚'; + if (absSeconds < 60) return `${absSeconds} 秒前`; + if (absMinutes < 60) return `${absMinutes} 分钟前`; + if (absHours < 24) return `${absHours} 小时前`; + // 超过一天时回退到绝对时间,避免相对时间过于模糊。 + return formatDateTime(date, timeZone, { + includeYear: true, + includeSeconds: true + }); + } + if (absSeconds < 15) return '即将到来'; + if (absSeconds < 60) return `${absSeconds} 秒后`; + if (absMinutes < 60) return `${absMinutes} 分钟后`; + if (absHours < 24) return `${absHours} 小时后`; + return formatDateTime(date, timeZone, { + includeYear: true, + includeSeconds: true + }); +} +function formatDuration(totalSeconds, options = {}) { + const value = Number(totalSeconds); + if (!Number.isFinite(value) || value <= 0) { + return options.compact ? '0秒' : '0 秒'; + } + const seconds = Math.max(0, Math.floor(value)); + const days = Math.floor(seconds / 86400); + const hours = Math.floor(seconds % 86400 / 3600); + const minutes = Math.floor(seconds % 3600 / 60); + const secs = seconds % 60; + const compact = Boolean(options.compact); + const padHours = Boolean(options.padHours); + const maxUnits = Number(options.maxUnits) || 4; + if (compact) { + // 紧凑模式更适合卡片内展示,可在有限宽度中保留更多信息。 + const tokens = []; + if (days > 0) tokens.push(`${days}天`); + if (hours > 0 || padHours && tokens.length) tokens.push(`${days > 0 || padHours ? String(hours).padStart(2, '0') : hours}小时`); + if (minutes > 0 || tokens.length) tokens.push(`${tokens.length ? String(minutes).padStart(2, '0') : minutes}分`); + tokens.push(`${tokens.length ? String(secs).padStart(2, '0') : secs}秒`); + return tokens.slice(0, maxUnits).join(''); + } + + // 常规模式更适合阅读型文本,如“1 天 2 小时 3 分钟”。 + const segments = []; + if (days > 0) segments.push(`${days} 天`); + if (hours > 0) segments.push(`${hours} 小时`); + if (minutes > 0) segments.push(`${minutes} 分钟`); + if (secs > 0 || !segments.length) segments.push(`${secs} 秒`); + return segments.slice(0, maxUnits).join(' '); +} +function resolveSourceModeLabel(sourceMode) { + const normalized = String(sourceMode || '').trim().toLowerCase(); + switch (normalized) { + case 'platform_message_history': + return '平台完整聊天流水'; + case 'hybrid': + return '混合模式'; + case 'conversation_history': + default: + return '当前 AstrBot LLM 对话历史'; + } +} +function formatUnansweredLabel(currentCount, maxCount) { + const current = Math.max(0, Number(currentCount) || 0); + const max = Math.max(0, Number(maxCount) || 0); + return max > 0 ? `未回复次数: ${current}/${max}` : `未回复: ${current}`; +} + +// 统一挂到 window,供各页面和组件直接调用,无需额外模块系统。 +window.parseDateish = parseDateish; +window.formatDateTime = formatDateTime; +window.formatFriendlyTime = formatFriendlyTime; +window.formatDuration = formatDuration; +window.resolveSourceModeLabel = resolveSourceModeLabel; +window.formatUnansweredLabel = formatUnansweredLabel; + + +/* js/utils/markdown.js */ +/** + * 文件职责:提供管理端通用的 Markdown 渲染与安全清洗能力,供多个视图复用。 + */ + +const MARKDOWN_CODE_LANGUAGE_LABELS = { + // 这里维护“代码块语言名 -> 展示标签”的映射,供代码块头部语言徽标使用。 + js: 'JavaScript', + jsx: 'JSX', + ts: 'TypeScript', + tsx: 'TSX', + json: 'JSON', + bash: 'Bash', + shell: 'Shell', + sh: 'Shell', + python: 'Python', + py: 'Python', + yaml: 'YAML', + yml: 'YAML', + html: 'HTML', + css: 'CSS', + md: 'Markdown', + markdown: 'Markdown', + mermaid: 'Mermaid', + text: 'Text', + plaintext: 'Text' +}; +const MARKDOWN_SANITIZE_OPTIONS = { + // 白名单只开放管理端实际需要的 Markdown 标签,减少攻击面。 + ALLOWED_TAGS: ['a', 'blockquote', 'br', 'code', 'del', 'details', 'div', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'img', 'li', 'ol', 'p', 'pre', 'span', 'strong', 'summary', 'table', 'tbody', 'td', 'th', 'thead', 'tr', 'ul'], + ALLOWED_ATTR: ['href', 'target', 'rel', 'class', 'data-language', 'data-mermaid-source', 'src', 'alt', 'title', 'width', 'height', 'align', 'open', 'loading', 'decoding', 'referrerpolicy'], + FORBID_TAGS: ['script', 'style', 'iframe', 'object', 'embed', 'form'], + FORBID_ATTR: ['style', 'onerror', 'onload', 'onclick', 'onmouseover', 'onfocus'], + RETURN_DOM_FRAGMENT: true +}; +function normalizeMarkdownContent(content) { + return String(content || '') + // 兼容真实换行与被序列化成字符串字面量的“\n”。 + .replace(/\r\n/g, '\n').replace(/\\n/g, '\n') + // 最后统一收敛为 LF,避免后续正则与分行逻辑在不同平台行为不一致。 + .replace(/\r\n?/g, '\n'); +} +function isProbablyMarkdown(content) { + const normalized = normalizeMarkdownContent(content); + // 这里不是严格 Markdown 语法解析,而是用启发式规则快速判断“是否值得进入 Markdown 渲染管线”。 + return /(^|\n)\s{0,3}(#{1,6}\s|>\s|[-*+]\s)|(\n|^)\s*\d+\.\s|(^|\n)\s*```|(^|\n)\|.+\|/m.test(normalized); +} +function escapeMarkdownHtml(text) { + return String(text || '') + // 所有 fallback 渲染路径都先做 HTML 转义,防止原始文本直接进入 innerHTML。 + .replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); +} +function normalizeMarkdownLanguageName(language) { + const normalized = String(language || '').trim().toLowerCase(); + if (!normalized) return 'text'; + // 限制语言名字符集,避免把奇怪 class 名直接拼进 DOM。 + return normalized.replace(/[^a-z0-9_-]/g, '') || 'text'; +} +function getMarkdownLanguageLabel(language) { + const normalized = normalizeMarkdownLanguageName(language); + // 优先使用预定义标签;若没有映射,则退化为大写原语言名。 + return MARKDOWN_CODE_LANGUAGE_LABELS[normalized] || normalized.toUpperCase() || 'Text'; +} +function getSafeMarkdownLinkHref(href) { + const value = String(href || '').trim(); + // 仅放行 http(s)、站内绝对路径和锚点链接,避免 javascript: 等危险协议。 + if (/^https?:\/\//i.test(value) || value.startsWith('/') || value.startsWith('#')) { + return value; + } + return '#'; +} +function getSafeMarkdownImageSrc(src) { + const value = String(src || '').trim(); + // 图片仅放行 http(s) 与站内相对路径,避免 data/javascript/blob 等协议带来的注入或追踪风险。 + if (/^https?:\/\//i.test(value) || value.startsWith('/') || value.startsWith('./') || value.startsWith('../')) { + return value; + } + return ''; +} +function highlightMarkdownCode(code, language) { + const escaped = escapeMarkdownHtml(code); + const normalizedLanguage = normalizeMarkdownLanguageName(language); + if (normalizedLanguage === 'json') { + // JSON 重点高亮 key / value / boolean / number,保持实现轻量而不引入大型高亮库。 + return escaped.replace(/("(?:[^"\\]|\\.)*")\s*:/g, '$1:').replace(/:\s*("(?:[^"\\]|\\.)*")/g, ': $1').replace(/\b(true|false|null)\b/g, '$1').replace(/\b(-?\d+(?:\.\d+)?)\b/g, '$1'); + } + if (['js', 'jsx', 'ts', 'tsx', 'javascript', 'typescript'].includes(normalizedLanguage)) { + // JS / TS 采用最常用语法成分的正则高亮,目标是“可读性增强”而非完整语义解析。 + return escaped.replace(/\b(function|const|let|var|return|if|else|new|throw|class|async|await|import|from|export|default|try|catch)\b/g, '$1').replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)/g, '$1').replace(/\b(true|false|null|undefined)\b/g, '$1').replace(/\b(\d+(?:\.\d+)?)\b/g, '$1').replace(/\b([A-Za-z_$][\w$]*)\s*(?=\()/g, '$1'); + } + if (['bash', 'shell', 'sh'].includes(normalizedLanguage)) { + // Shell 场景重点强化命令名、flag 和字符串,提升安装命令 / 运维命令的扫读效率。 + const lines = escaped.split('\n'); + return lines.map(line => { + const commandMatch = line.match(/^(\s*)([A-Za-z0-9_./:-]+)(.*)$/); + if (!commandMatch) return line; + const [, indent, command, rest] = commandMatch; + const highlightedRest = rest.replace(/\s(-{1,2}[A-Za-z0-9_-]+)/g, ' $1').replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g, '$1'); + return `${indent}${command}${highlightedRest}`; + }).join('\n'); + } + + // Mermaid 图表源码不做语法高亮,直接保留为纯文本,避免破坏图定义。 + if (normalizedLanguage === 'mermaid') { + return escaped; + } + + // 未识别语言时保持纯转义文本,至少保证安全与可读。 + return escaped; +} +function buildMarkdownMermaidBlockHtml(code) { + const normalizedCode = normalizeMarkdownContent(code).trim(); + const escapedCode = escapeMarkdownHtml(normalizedCode); + return ['
    ', '
    ', `${escapeMarkdownHtml(getMarkdownLanguageLabel('mermaid'))}`, '
    ', `
    ${escapedCode}
    `, '
    '].join(''); +} +function buildMarkdownCodeBlockHtml(code, language) { + const normalizedLanguage = normalizeMarkdownLanguageName(language); + if (normalizedLanguage === 'mermaid') { + return buildMarkdownMermaidBlockHtml(code); + } + const languageClass = normalizedLanguage !== 'text' ? ` language-${normalizedLanguage}` : ' language-text'; + const languageLabel = getMarkdownLanguageLabel(normalizedLanguage); + const highlightedCode = highlightMarkdownCode(code, normalizedLanguage); + return [ + // 代码块外层统一使用 notification-md 的样式体系,便于通知页和文档页复用同一套 CSS。 + `
    `, '
    ', `${escapeMarkdownHtml(languageLabel)}`, '
    ', `
    ${highlightedCode}
    `, '
    '].join(''); +} +function extractInlineCodePlaceholders(text) { + const placeholders = []; + let output = ''; + const source = String(text || ''); + let index = 0; + while (index < source.length) { + const char = source[index]; + const prevChar = index > 0 ? source[index - 1] : ''; + if (char !== '`' || prevChar === '\\') { + output += char; + index += 1; + continue; + } + let fenceLength = 1; + while (source[index + fenceLength] === '`') { + fenceLength += 1; + } + const fence = '`'.repeat(fenceLength); + const searchStart = index + fenceLength; + const closingIndex = source.indexOf(fence, searchStart); + if (closingIndex === -1) { + output += fence; + index = searchStart; + continue; + } + const code = source.slice(searchStart, closingIndex); + if (!code) { + output += fence + fence; + index = closingIndex + fenceLength; + continue; + } + + // 先把内联 code 提取成占位符,避免后续粗粒度正则误伤其中内容。 + const placeholderIndex = placeholders.push(`${escapeMarkdownHtml(code)}`) - 1; + output += `@@INLINE_CODE_${placeholderIndex}@@`; + index = closingIndex + fenceLength; + } + return { + output, + placeholders + }; +} +function restoreInlineCodePlaceholders(text, placeholders) { + return String(text || '').replace(/@@INLINE_CODE_(\d+)@@/g, (_, index) => placeholders[Number(index)] || ''); +} +function applyInlineMarkdownTokens(text) { + const extracted = extractInlineCodePlaceholders(text); + let output = extracted.output; + output = output.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, label, href) => { + const safeHref = getSafeMarkdownLinkHref(href); + return `
    ${label}`; + }); + // 这里按从“强语义到弱语义”的顺序处理,减少星号 / 下划线匹配互相影响。 + output = output.replace(/\*\*([^*]+)\*\*/g, '$1'); + output = output.replace(/__([^_]+)__/g, '$1'); + output = output.replace(/(^|[^*])\*([^*]+)\*(?!\*)/g, '$1$2'); + output = output.replace(/(^|[^_])_([^_]+)_(?!_)/g, '$1$2'); + output = output.replace(/~~([^~]+)~~/g, '$1'); + return restoreInlineCodePlaceholders(output, extracted.placeholders); +} +function renderInlineMarkdownText(text) { + return applyInlineMarkdownTokens(escapeMarkdownHtml(text)); +} +function splitMarkdownTableCells(line) { + const trimmed = String(line || '').trim().replace(/^\|/, '').replace(/\|$/, ''); + return trimmed.split('|').map(cell => cell.trim()); +} +function flushMarkdownParagraph(paragraphBuffer, htmlParts) { + if (!paragraphBuffer.length) return []; + const safeText = paragraphBuffer.map(line => renderInlineMarkdownText(line)).join('
    '); + htmlParts.push(`

    ${safeText}

    `); + return []; +} +function closeMarkdownList(listState, htmlParts) { + if (!listState) return null; + htmlParts.push(``); + return null; +} +function flushMarkdownBlockquote(blockquoteBuffer, htmlParts) { + if (!blockquoteBuffer.length) return []; + // 引用块递归复用同一渲染器,避免另外维护一套局部语法分支。 + const quoteHtml = fallbackRenderMarkdownHtml(blockquoteBuffer.join('\n')); + htmlParts.push(`
    ${quoteHtml}
    `); + return []; +} +function flushMarkdownTable(tableHeader, tableRows, htmlParts) { + if (!tableHeader) { + return { + tableHeader: null, + tableRows: [] + }; + } + const headCells = tableHeader.map(cell => `${renderInlineMarkdownText(cell)}`).join(''); + const bodyRows = tableRows.map(row => `${row.map(cell => `${renderInlineMarkdownText(cell)}`).join('')}`).join(''); + htmlParts.push(`
    ${headCells}${bodyRows}
    `); + return { + tableHeader: null, + tableRows: [] + }; +} +function fallbackRenderMarkdownHtml(md) { + const normalized = normalizeMarkdownContent(md); + const lines = normalized.split('\n'); + const htmlParts = []; + let paragraphBuffer = []; + let listState = null; + let blockquoteBuffer = []; + let codeFence = null; + let tableHeader = null; + let tableRows = []; + for (let index = 0; index < lines.length; index += 1) { + const rawLine = lines[index]; + const line = rawLine.trimEnd(); + const trimmed = line.trim(); + if (codeFence) { + // 进入 fenced code block 后,直到遇到下一个 ``` 才退出,并原样保留中间内容。 + if (/^```/.test(trimmed)) { + htmlParts.push(buildMarkdownCodeBlockHtml(codeFence.lines.join('\n'), codeFence.language)); + codeFence = null; + } else { + codeFence.lines.push(rawLine); + } + continue; + } + if (/^```/.test(trimmed)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + codeFence = { + // ``` 后方内容作为语言名,例如 ```js。 + language: trimmed.slice(3).trim(), + lines: [] + }; + continue; + } + const tableSeparator = /^\|?(\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\|?$/.test(trimmed); + if (tableHeader && !tableSeparator && trimmed.includes('|')) { + // 表头建立后,连续的“含竖线行”都会被视作表格正文。 + tableRows.push(splitMarkdownTableCells(trimmed)); + continue; + } + if (tableHeader && (!trimmed || !trimmed.includes('|'))) { + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + } + if (!trimmed) { + // 空行会触发段落 / 列表 / 引用 / 表格等块级结构的结算。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + continue; + } + const nextLine = String(lines[index + 1] || '').trim(); + if (!tableHeader && trimmed.includes('|') && /^\|?(\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\|?$/.test(nextLine)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + // 当前行认定为表头,下一行是分隔线,因此这里手动跳过一行。 + tableHeader = splitMarkdownTableCells(trimmed); + tableRows = []; + index += 1; + continue; + } + const heading = trimmed.match(/^(#{1,6})\s+(.+)$/); + if (heading) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + const level = heading[1].length; + htmlParts.push(`${renderInlineMarkdownText(heading[2])}`); + continue; + } + if (/^---+$/.test(trimmed) || /^\*\*\*+$/.test(trimmed)) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + htmlParts.push('
    '); + continue; + } + const quote = line.match(/^>\s?(.*)$/); + if (quote) { + // 相邻引用行会累积到同一 buffer,最终递归渲染为一个 blockquote。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + blockquoteBuffer.push(quote[1]); + continue; + } + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + const unorderedItem = trimmed.match(/^[-*+]\s+(.+)$/); + const orderedItem = trimmed.match(/^\d+\.\s+(.+)$/); + const listType = unorderedItem ? 'ul' : orderedItem ? 'ol' : null; + if (listType) { + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + if (listState && listState !== listType) { + listState = closeMarkdownList(listState, htmlParts); + } + if (!listState) { + htmlParts.push(`<${listType}>`); + listState = listType; + } + const listContent = unorderedItem ? unorderedItem[1] : orderedItem[1]; + htmlParts.push(`
  • ${renderInlineMarkdownText(listContent)}
  • `); + continue; + } + listState = closeMarkdownList(listState, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + // 兜底情况视为普通段落内容,延迟到 flushParagraph 时统一输出为

    。 + paragraphBuffer.push(line); + } + + // 文件结束后把剩余 buffer 全部结算,避免最后一段内容丢失。 + paragraphBuffer = flushMarkdownParagraph(paragraphBuffer, htmlParts); + listState = closeMarkdownList(listState, htmlParts); + blockquoteBuffer = flushMarkdownBlockquote(blockquoteBuffer, htmlParts); + ({ + tableHeader, + tableRows + } = flushMarkdownTable(tableHeader, tableRows, htmlParts)); + if (codeFence) { + // 若文档意外缺少结尾 ```,仍尽量把已收集内容渲染出来,而不是整体丢弃。 + htmlParts.push(buildMarkdownCodeBlockHtml(codeFence.lines.join('\n'), codeFence.language)); + } + return htmlParts.join(''); +} +const MARKDOWN_CALLOUT_META = { + note: { + label: 'Note', + icon: '📝' + }, + tip: { + label: 'Tip', + icon: '💡' + }, + important: { + label: 'Important', + icon: '❗' + }, + warning: { + label: 'Warning', + icon: '⚠️' + }, + caution: { + label: 'Caution', + icon: '🚨' + } +}; +function enhanceMarkdownCalloutBlockquotes(sanitizedFragment) { + sanitizedFragment.querySelectorAll('blockquote').forEach(blockquote => { + const firstChild = blockquote.firstElementChild; + if (!firstChild || firstChild.tagName !== 'P') { + return; + } + const firstTextNode = Array.from(firstChild.childNodes).find(node => node.nodeType === Node.TEXT_NODE && String(node.textContent || '').trim()); + if (!firstTextNode) { + return; + } + const originalText = String(firstTextNode.textContent || ''); + const match = originalText.match(/^\s*\[!([A-Z]+)\]\s*(.*)$/); + if (!match) { + return; + } + const calloutType = String(match[1] || '').trim().toLowerCase(); + const calloutMeta = MARKDOWN_CALLOUT_META[calloutType]; + if (!calloutMeta) { + return; + } + const inlineTitle = String(match[2] || '').trim(); + blockquote.classList.add('notification-md-callout', `is-${calloutType}`); + const header = document.createElement('div'); + header.className = 'notification-md-callout-header'; + const icon = document.createElement('span'); + icon.className = 'notification-md-callout-icon'; + icon.textContent = calloutMeta.icon; + header.appendChild(icon); + const title = document.createElement('span'); + title.className = 'notification-md-callout-title'; + title.textContent = inlineTitle || calloutMeta.label; + header.appendChild(title); + const nextText = originalText.replace(match[0], '').trimStart(); + if (nextText) { + firstTextNode.textContent = nextText; + } else { + firstTextNode.parentNode.removeChild(firstTextNode); + } + if (!firstChild.childNodes.length) { + firstChild.remove(); + } + blockquote.insertBefore(header, blockquote.firstChild || null); + }); +} +function enhanceMarkdownFragment(sanitizedFragment) { + sanitizedFragment.querySelectorAll('a[href]').forEach(link => { + const href = String(link.getAttribute('href') || '').trim(); + // 二次校验链接协议,即使 marked 解析出 ,也不允许危险 href 流入最终 DOM。 + if (!/^https?:\/\//i.test(href) && !href.startsWith('/') && !href.startsWith('#')) { + link.setAttribute('href', '#'); + } + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener noreferrer'); + }); + sanitizedFragment.querySelectorAll('img[src]').forEach(img => { + const safeSrc = getSafeMarkdownImageSrc(img.getAttribute('src')); + if (!safeSrc) { + img.remove(); + return; + } + img.setAttribute('src', safeSrc); + img.setAttribute('loading', 'lazy'); + img.setAttribute('decoding', 'async'); + img.setAttribute('referrerpolicy', 'no-referrer'); + }); + sanitizedFragment.querySelectorAll('table').forEach(table => { + // 自动为表格包一层横向滚动容器,避免窄屏下表格把布局撑爆。 + if (!table.parentElement || !table.parentElement.classList.contains('notification-md-table-wrap')) { + const wrapper = document.createElement('div'); + wrapper.className = 'notification-md-table-wrap'; + table.parentNode.insertBefore(wrapper, table); + wrapper.appendChild(table); + } + }); + enhanceMarkdownCalloutBlockquotes(sanitizedFragment); + sanitizedFragment.querySelectorAll('details').forEach(detailsEl => { + detailsEl.classList.add('notification-md-details'); + const firstSummary = Array.from(detailsEl.children).find(child => child.tagName === 'SUMMARY'); + if (firstSummary) { + firstSummary.classList.add('notification-md-summary'); + } else { + const summary = document.createElement('summary'); + summary.className = 'notification-md-summary'; + summary.textContent = '展开详情'; + detailsEl.insertBefore(summary, detailsEl.firstChild || null); + } + }); + sanitizedFragment.querySelectorAll('pre > code').forEach(codeEl => { + const originalClass = String(codeEl.getAttribute('class') || ''); + const languageMatch = originalClass.match(/language-([a-z0-9_-]+)/i); + const language = normalizeMarkdownLanguageName(languageMatch ? languageMatch[1] : 'text'); + const rawCodeText = codeEl.textContent || ''; + const pre = codeEl.parentElement; + if (language === 'mermaid') { + const mermaidWrapper = document.createElement('div'); + mermaidWrapper.innerHTML = buildMarkdownMermaidBlockHtml(rawCodeText); + pre.parentNode.replaceChild(mermaidWrapper.firstElementChild, pre); + return; + } + const wrapper = document.createElement('div'); + wrapper.className = `notification-md-code-block language-${language}`; + wrapper.setAttribute('data-language', language); + const header = document.createElement('div'); + header.className = 'notification-md-code-header'; + const langChip = document.createElement('span'); + langChip.className = 'notification-md-code-lang'; + langChip.textContent = getMarkdownLanguageLabel(language); + header.appendChild(langChip); + + // 把代码内容替换为轻量高亮结果,同时保留原本

     结构供样式复用。
    +    codeEl.className = `language-${language}`;
    +    codeEl.innerHTML = highlightMarkdownCode(rawCodeText, language);
    +    pre.parentNode.insertBefore(wrapper, pre);
    +    wrapper.appendChild(header);
    +    wrapper.appendChild(pre);
    +  });
    +}
    +function renderMarkdownToHtml(content) {
    +  const normalized = normalizeMarkdownContent(content);
    +  try {
    +    const marked = window.marked;
    +    const DOMPurify = window.DOMPurify;
    +    if (marked && DOMPurify) {
    +      const parseMarkdown = md => {
    +        // 优先适配 marked.parse 新接口,同时兼容老版本把 marked 作为函数调用的形式。
    +        if (typeof marked.parse === 'function') {
    +          return marked.parse(md, {
    +            gfm: true,
    +            breaks: true
    +          });
    +        }
    +        if (typeof marked === 'function') {
    +          return marked(md, {
    +            gfm: true,
    +            breaks: true
    +          });
    +        }
    +        throw new Error('marked parser unavailable');
    +      };
    +      const rawHtml = parseMarkdown(normalized);
    +      const sanitizedFragment = DOMPurify.sanitize(rawHtml, MARKDOWN_SANITIZE_OPTIONS);
    +      enhanceMarkdownFragment(sanitizedFragment);
    +      const container = document.createElement('div');
    +      container.appendChild(sanitizedFragment);
    +      return container.innerHTML;
    +    }
    +  } catch (e) {
    +    // 解析失败时回退到内置渲染器,保证页面仍然可读。
    +  }
    +  return fallbackRenderMarkdownHtml(normalized);
    +}
    +window.MarkdownRenderUtil = {
    +  // 暴露为全局工具对象,供通知页与文档页在无打包环境下直接复用。
    +  normalizeMarkdownContent,
    +  isProbablyMarkdown,
    +  renderMarkdownToHtml
    +};
    +
    +
    +/* js/context/AppContext.jsx */
    +/**
    +* 文件职责:全局状态上下文,集中维护管理端共享状态与 reducer 分发逻辑。
    +*/
    +
    +const {
    +  createContext,
    +  useContext,
    +  useReducer
    +} = React;
    +
    +// 管理端的全局状态树;由于项目未使用打包器,这里采用单文件 context 统一收口共享状态。
    +const initialState = {
    +  // 当前主内容区展示的视图 key。
    +  currentView: 'status',
    +  // 全局加载态,通常用于首屏或全量刷新。
    +  loading: false,
    +  // 最近一次操作失败信息,会显示在页面顶部错误卡片中。
    +  error: '',
    +  // 首页状态汇总数据,对应后端 /api/status。
    +  status: null,
    +  // 已知会话列表,可来自 HTTP 首载或 WebSocket 推送。
    +  sessions: [],
    +  // 当前生效的全局配置快照,对应后端 /api/config。
    +  config: null,
    +  // 调度任务列表,对应后端 /api/jobs。
    +  jobs: [],
    +  // 通知列表与元信息,对应后端 /api/notifications。
    +  notifications: [],
    +  notificationsMeta: {
    +    unread_count: 0,
    +    last_sync_at: '',
    +    total_count: 0
    +  },
    +  // Markdown 文档浏览页的文件目录、当前文档与选中路径。
    +  markdownFiles: [],
    +  markdownDocument: null,
    +  selectedMarkdownPath: '',
    +  // 会话详情页当前选中的会话 ID。
    +  selectedSession: '',
    +  // 当前选中会话的 base / override / effective 详情。
    +  sessionDetail: null,
    +  // 主题优先读取本地存储,确保刷新页面后仍能保持用户偏好。
    +  theme: localStorage.getItem('theme') || 'light'
    +};
    +function reducer(state, action) {
    +  // reducer 负责统一处理所有状态写入,避免各组件直接散写共享状态。
    +  switch (action.type) {
    +    case 'TOGGLE_THEME':
    +      // 主题切换时同步写入 localStorage,保证跨页面刷新可恢复。
    +      const newTheme = state.theme === 'light' ? 'dark' : 'light';
    +      localStorage.setItem('theme', newTheme);
    +      return {
    +        ...state,
    +        theme: newTheme
    +      };
    +    case 'SET_VIEW':
    +      return {
    +        ...state,
    +        currentView: action.payload
    +      };
    +    case 'SET_LOADING':
    +      return {
    +        ...state,
    +        loading: action.payload
    +      };
    +    case 'SET_ERROR':
    +      // 统一把 falsy 值收敛为空字符串,减少渲染层判断分支。
    +      return {
    +        ...state,
    +        error: action.payload || ''
    +      };
    +    case 'SET_STATUS':
    +      return {
    +        ...state,
    +        status: action.payload
    +      };
    +    case 'SET_SESSIONS':
    +      return {
    +        ...state,
    +        sessions: action.payload || []
    +      };
    +    case 'SET_CONFIG':
    +      return {
    +        ...state,
    +        config: action.payload || null
    +      };
    +    case 'SET_JOBS':
    +      return {
    +        ...state,
    +        jobs: action.payload || []
    +      };
    +    case 'SET_NOTIFICATIONS':
    +      return {
    +        ...state,
    +        notifications: action.payload || []
    +      };
    +    case 'SET_NOTIFICATIONS_META':
    +      return {
    +        ...state,
    +        notificationsMeta: action.payload || {
    +          unread_count: 0,
    +          last_sync_at: '',
    +          total_count: 0
    +        }
    +      };
    +    case 'SET_MARKDOWN_FILES':
    +      return {
    +        ...state,
    +        markdownFiles: action.payload || []
    +      };
    +    case 'SET_MARKDOWN_DOCUMENT':
    +      return {
    +        ...state,
    +        markdownDocument: action.payload || null
    +      };
    +    case 'SET_SELECTED_MARKDOWN_PATH':
    +      return {
    +        ...state,
    +        selectedMarkdownPath: action.payload || ''
    +      };
    +    case 'SET_SELECTED_SESSION':
    +      return {
    +        ...state,
    +        selectedSession: action.payload || ''
    +      };
    +    case 'SET_SESSION_DETAIL':
    +      return {
    +        ...state,
    +        sessionDetail: action.payload || null
    +      };
    +    default:
    +      // 未识别 action 时保持原状态,避免误 dispatch 导致页面崩溃。
    +      return state;
    +  }
    +}
    +
    +// 初始值为 null,强制消费方必须在 Provider 内部使用,避免静默使用默认值。
    +const AppContext = createContext(null);
    +function AppProvider({
    +  children
    +}) {
    +  const [state, dispatch] = useReducer(reducer, initialState);
    +  return /*#__PURE__*/React.createElement(AppContext.Provider, {
    +    value: {
    +      state,
    +      dispatch
    +    }
    +  }, children);
    +}
    +function useAppContext() {
    +  const ctx = useContext(AppContext);
    +  // 这里主动抛错,方便在开发阶段尽早发现 Provider 包裹缺失。
    +  if (!ctx) throw new Error('useAppContext must be used within AppProvider');
    +  return ctx;
    +}
    +
    +// 由于当前前端采用多文件 UMD / Babel 直接挂载方案,因此通过 window 暴露给其他脚本使用。
    +window.AppProvider = AppProvider;
    +window.useAppContext = useAppContext;
    +
    +
    +/* js/hooks/useApi.js */
    +/**
    +* 文件职责:API 访问 Hook,封装后端接口调用并提供稳定引用的方法集合。
    +*/
    +
    +function useApi() {
    +  // 将每个接口都包装成稳定引用的回调,避免依赖它们的 effect / memo 无谓重跑。
    +  const getStatus = React.useCallback(() => window.HttpUtil.get('/api/status'), []);
    +  const getConfig = React.useCallback(() => window.HttpUtil.get('/api/config'), []);
    +  const getConfigSchema = React.useCallback(() => window.HttpUtil.get('/api/config-schema'), []);
    +  const updateConfig = React.useCallback(
    +  // 全局配置保存接口,传入完整 payload 由后端进行白名单字段更新。
    +  payload => window.HttpUtil.post('/api/config', payload), []);
    +  const listSessions = React.useCallback(
    +  // 拉取所有已知会话及其覆写状态,用于会话差异配置页与主应用首载。
    +  () => window.HttpUtil.get('/api/session-config/sessions'), []);
    +  const getSessionConfig = React.useCallback(
    +  // 会话 ID 可能包含特殊字符,因此路径参数必须先进行 encodeURIComponent。
    +  session => window.HttpUtil.get(`/api/session-config/${encodeURIComponent(session)}`), []);
    +  const updateSessionConfig = React.useCallback(
    +  // 同一个接口同时支持 override 与 effective 两种保存模式,由 payload.mode 区分。
    +  (session, payload) => window.HttpUtil.post(`/api/session-config/${encodeURIComponent(session)}`, payload), []);
    +  const resetSessionConfig = React.useCallback(
    +  // 删除会话覆写后,该会话会重新完全继承全局配置。
    +  session => window.HttpUtil.del(`/api/session-config/${encodeURIComponent(session)}`), []);
    +  const listJobs = React.useCallback(() => window.HttpUtil.get('/api/jobs'), []);
    +  const listMarkdownFiles = React.useCallback(() => window.HttpUtil.get('/api/markdown-files'), []);
    +  const getMarkdownFile = React.useCallback(path => window.HttpUtil.get(`/api/markdown-files/${encodeURIComponent(path)}`), []);
    +  const getNotifications = React.useCallback(() => window.HttpUtil.get('/api/notifications'), []);
    +  const readNotification = React.useCallback(id => window.HttpUtil.post('/api/notifications/read', {
    +    id
    +  }), []);
    +  const readAllNotifications = React.useCallback(() => window.HttpUtil.post('/api/notifications/read-all', {}), []);
    +  const refreshNotifications = React.useCallback(() => window.HttpUtil.post('/api/notifications/refresh', {}), []);
    +  const triggerJob = React.useCallback(
    +  // “立即触发”接口本质上是一个无参 POST,因此 body 传空对象保持请求格式统一。
    +  session => window.HttpUtil.post(`/api/jobs/${encodeURIComponent(session)}/trigger`, {}), []);
    +  const cancelJob = React.useCallback(session => window.HttpUtil.del(`/api/jobs/${encodeURIComponent(session)}`), []);
    +  const rescheduleJob = React.useCallback(session => window.HttpUtil.post(`/api/jobs/${encodeURIComponent(session)}/reschedule`, {}), []);
    +  return React.useMemo(() => ({
    +    // 通过 useMemo 返回统一 API 对象,确保消费方在依赖比较时具备稳定引用。
    +    getStatus,
    +    getConfig,
    +    getConfigSchema,
    +    updateConfig,
    +    listSessions,
    +    getSessionConfig,
    +    updateSessionConfig,
    +    resetSessionConfig,
    +    listJobs,
    +    listMarkdownFiles,
    +    getMarkdownFile,
    +    getNotifications,
    +    readNotification,
    +    readAllNotifications,
    +    refreshNotifications,
    +    triggerJob,
    +    cancelJob,
    +    rescheduleJob
    +  }), [getStatus, getConfig, getConfigSchema, updateConfig, listSessions, getSessionConfig, updateSessionConfig, resetSessionConfig, listJobs, listMarkdownFiles, getMarkdownFile, getNotifications, readNotification, readAllNotifications, refreshNotifications, triggerJob, cancelJob, rescheduleJob]);
    +}
    +
    +// 暴露到全局,供未经过 ESModule 打包的其余 JSX 文件直接调用。
    +window.useApi = useApi;
    +
    +
    +/* js/hooks/useWebSocket.js */
    +/**
    +* 文件职责:WebSocket Hook,负责全局单例连接管理与实时消息分发。
    +*/
    +
    +// 管理端全局只维护一个 WebSocket 连接,避免多个组件重复建立相同连接。
    +let __globalWs = null;
    +// 所有订阅实时数据的回调统一挂到一个监听集合中,由单连接分发。
    +let __wsListeners = new Set();
    +// 重连定时器与退避参数:插件重载期间避免高频重连打满日志。
    +let __reconnectTimer = null;
    +const WS_RECONNECT_BASE_DELAY_MS = 1000;
    +const WS_RECONNECT_MAX_DELAY_MS = 10000;
    +let __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS;
    +function clearReconnectTimer() {
    +  if (!__reconnectTimer) return;
    +  clearTimeout(__reconnectTimer);
    +  __reconnectTimer = null;
    +}
    +function resetReconnectBackoff() {
    +  __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS;
    +  clearReconnectTimer();
    +}
    +function scheduleReconnect() {
    +  // 没有任何订阅者时不需要重连,避免后台空转。
    +  if (__wsListeners.size === 0) return;
    +  // 已有重连任务时直接复用,防止重复排队。
    +  if (__reconnectTimer) return;
    +  const delay = __nextReconnectDelayMs;
    +  __nextReconnectDelayMs = Math.min(__nextReconnectDelayMs * 2, WS_RECONNECT_MAX_DELAY_MS);
    +  __reconnectTimer = setTimeout(() => {
    +    __reconnectTimer = null;
    +    ensureGlobalWs();
    +  }, delay);
    +}
    +function ensureGlobalWs() {
    +  // 若连接已存在且仍处于“连接中 / 已连接”状态,则直接复用。
    +  if (__globalWs && (__globalWs.readyState === WebSocket.OPEN || __globalWs.readyState === WebSocket.CONNECTING)) {
    +    return;
    +  }
    +
    +  // 与 HTTP 保持相同的 token 来源,统一从 AuthUtil 中读取。
    +  const token = window.AuthUtil.getToken();
    +  const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
    +  // 开启鉴权时通过 query 传 token;无鉴权或 no-auth 场景则不附加参数。
    +  const tokenQuery = token && token !== 'no-auth' ? `?token=${encodeURIComponent(token)}` : '';
    +  const ws = new WebSocket(`${protocol}//${window.location.host}/ws${tokenQuery}`);
    +  __globalWs = ws;
    +  ws.onopen = function () {
    +    // 连接恢复后重置退避,后续若再次断开可从短延迟开始。
    +    if (__globalWs === ws) {
    +      resetReconnectBackoff();
    +    }
    +  };
    +  ws.onmessage = function (event) {
    +    try {
    +      const msg = JSON.parse(event.data);
    +      // 仅处理后端定义的两类数据推送消息,其余消息类型忽略。
    +      if (msg.type === 'full_update' || msg.type === 'update') {
    +        const data = msg.data || {};
    +        __wsListeners.forEach(listener => {
    +          try {
    +            // 将后端 payload 原样广播给所有订阅者,由页面组件自行决定如何消费。
    +            listener(data);
    +          } catch (e) {
    +            // 单个监听器报错不应影响其他订阅者继续接收消息。
    +          }
    +        });
    +      }
    +    } catch (e) {
    +      // 非 JSON 消息或异常格式直接忽略,避免污染控制台与中断连接。
    +    }
    +  };
    +  ws.onerror = function () {
    +    // 出错后主动触发 close 流程,统一走 onclose 的回收与重连路径。
    +    try {
    +      ws.close();
    +    } catch (e) {
    +      // 某些浏览器状态下 close 可能抛错,这里吞掉即可。
    +    }
    +  };
    +  ws.onclose = function () {
    +    // 仅处理当前活动连接的关闭事件,避免旧连接回调干扰新的连接状态。
    +    if (__globalWs !== ws) {
    +      return;
    +    }
    +    __globalWs = null;
    +    // 连接关闭后自动尝试重连,覆盖插件重载等短暂不可用场景。
    +    scheduleReconnect();
    +  };
    +}
    +function useWebSocket(onData) {
    +  React.useEffect(() => {
    +    if (window.AstrBotPluginPage) {
    +      // AstrBot Pages 运行在主 WebUI 的 iframe 中,无法直连独立 WebUI 的 /ws。
    +      // 入口应用已有轮询兜底,因此 Page 模式下保持纯 HTTP bridge。
    +      return undefined;
    +    }
    +    if (typeof onData === 'function') {
    +      __wsListeners.add(onData);
    +    }
    +
    +    // 只要有任意一个订阅者存在,就确保全局连接已建立。
    +    ensureGlobalWs();
    +    return () => {
    +      if (typeof onData === 'function') {
    +        __wsListeners.delete(onData);
    +      }
    +      // 最后一个订阅者离开时主动关闭连接,减少空闲资源占用。
    +      if (__wsListeners.size === 0) {
    +        clearReconnectTimer();
    +        __nextReconnectDelayMs = WS_RECONNECT_BASE_DELAY_MS;
    +        if (__globalWs) {
    +          try {
    +            __globalWs.close();
    +          } catch (e) {
    +            // 某些浏览器状态下 close 可能抛错,这里吞掉即可。
    +          }
    +        }
    +        __globalWs = null;
    +      }
    +    };
    +  }, [onData]);
    +}
    +
    +// 暴露为全局 Hook,供入口应用与各页面脚本直接调用。
    +window.useWebSocket = useWebSocket;
    +
    +
    +/* js/components/layout/Sidebar.jsx */
    +(() => {
    +  /**
    +   * 文件职责:侧边导航组件,负责视图切换、目录快捷操作与仓库信息入口展示。
    +   */
    +
    +  const {
    +    Box,
    +    Typography
    +  } = MaterialUI;
    +  function SidebarActionButton({
    +    icon,
    +    label,
    +    onClick,
    +    iconStyle
    +  }) {
    +    return /*#__PURE__*/React.createElement("button", {
    +      className: "btn sidebar-action-btn",
    +      onClick: onClick
    +    }, /*#__PURE__*/React.createElement("span", {
    +      style: iconStyle || {
    +        fontSize: '16px',
    +        marginLeft: '-6px'
    +      }
    +    }, icon), label);
    +  }
    +  function Sidebar({
    +    currentView,
    +    onChange
    +  }) {
    +    const {
    +      state
    +    } = useAppContext();
    +    // 版本号来自全局状态的 status 快照;未加载前先展示占位文本。
    +    const version = state.status?.version || '...';
    +    const unreadNotificationCount = Math.max(0, Number(state.notificationsMeta?.unread_count ?? 0));
    +    const [logoSrc, setLogoSrc] = React.useState('./logo.png');
    +    React.useEffect(() => {
    +      // 管理端可能被挂载在不同层级路径,依次尝试多个 logo 地址以提高兼容性。
    +      const candidates = ['./logo.png', 'logo.png', '../logo.png'];
    +      let cancelled = false;
    +      async function resolveLogo() {
    +        for (const candidate of candidates) {
    +          try {
    +            const response = await fetch(candidate, {
    +              method: 'HEAD'
    +            });
    +            if (response.ok) {
    +              if (!cancelled) setLogoSrc(candidate);
    +              return;
    +            }
    +          } catch (e) {
    +            // 某个候选地址失败并不代表整体失败,继续尝试下一个即可。
    +          }
    +        }
    +      }
    +      resolveLogo();
    +      return () => {
    +        cancelled = true;
    +      };
    +    }, []);
    +
    +    // 当前管理端开放的主导航项集中定义在这里,便于后续扩展新视图。
    +    const menus = [{
    +      key: 'status',
    +      label: '运行状态',
    +      icon: '📊'
    +    }, {
    +      key: 'tasks',
    +      label: '任务管理',
    +      icon: '📋'
    +    }, {
    +      key: 'notifications',
    +      label: '通知中心',
    +      icon: '🔔'
    +    }, {
    +      key: 'docs',
    +      label: '文档浏览',
    +      icon: '📚'
    +    }, {
    +      key: 'config',
    +      label: '配置管理',
    +      icon: '⚙️'
    +    }];
    +    const openDirectory = async path => {
    +      try {
    +        // 通过后端调用本机资源管理器打开目录,前端无需感知具体平台命令。
    +        const response = await window.HttpUtil.post('/api/open-directory', {
    +          path
    +        });
    +        if (!response || response.ok === false) {
    +          // 读取后端可能传回来的错误描述与详细 message
    +          const errorTitle = response?.error || '打开目录失败';
    +          const errorMsg = response?.message ? `\n详情: ${response.message}` : '';
    +          throw new Error(`${errorTitle}${errorMsg}`);
    +        }
    +
    +        // 可选:如果是 Docker 环境等虽然成功响应但并非打开了窗口的场景,给出提示
    +        if (response.message && response.message.includes('已在系统文件管理器中打开目录')) {
    +          // 正常打开,可以什么都不做,也可以给个轻提示
    +          console.log(response.message);
    +        }
    +      } catch (e) {
    +        const message = e?.message || '打开目录失败';
    +        window.alert(message);
    +      }
    +    };
    +    return /*#__PURE__*/React.createElement("div", {
    +      className: "sidebar"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "sidebar-header"
    +    }, /*#__PURE__*/React.createElement("img", {
    +      src: logoSrc,
    +      alt: "Logo",
    +      className: "sidebar-logo-img",
    +      onError: () => {
    +        // 图片加载失败时再尝试回退到上一级相对路径,兼容静态资源引用差异。
    +        if (logoSrc !== 'logo.png') setLogoSrc('logo.png');
    +      }
    +    }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 800,
    +        lineHeight: 1.2,
    +        letterSpacing: '-0.5px'
    +      }
    +    }, "\u4E3B\u52A8\u6D88\u606F"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      sx: {
    +        opacity: 0.6,
    +        display: 'block',
    +        mt: 0.5
    +      }
    +    }, "Admin Console"))), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        flex: 1,
    +        mt: 4
    +      }
    +    }, menus.map(item => {
    +      const showUnreadBadge = item.key === 'notifications' && unreadNotificationCount > 0;
    +      const unreadBadgeText = unreadNotificationCount > 99 ? '99+' : String(unreadNotificationCount);
    +      return /*#__PURE__*/React.createElement("div", {
    +        key: item.key,
    +        className: `nav-item ${currentView === item.key ? 'active' : ''}`
    +        // 导航只上抛目标视图 key,具体状态更新由父组件统一处理。
    +        ,
    +        onClick: () => onChange(item.key)
    +      }, /*#__PURE__*/React.createElement("span", {
    +        style: {
    +          fontSize: '18px'
    +        }
    +      }, item.icon), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        sx: {
    +          fontWeight: 500
    +        }
    +      }, item.label), showUnreadBadge ? /*#__PURE__*/React.createElement("span", {
    +        className: "sidebar-notification-badge",
    +        "aria-label": `未读通知 ${unreadNotificationCount} 条`
    +      }, unreadBadgeText) : null);
    +    })), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        px: 2,
    +        pt: 0,
    +        pb: 0
    +      }
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "sidebar-actions-panel"
    +    }, /*#__PURE__*/React.createElement(SidebarActionButton, {
    +      icon: "\uD83D\uDCC2",
    +      label: "\u6253\u5F00\u63D2\u4EF6\u6587\u4EF6\u76EE\u5F55",
    +      onClick: () => openDirectory('plugin')
    +    }), /*#__PURE__*/React.createElement(SidebarActionButton, {
    +      icon: "\uD83D\uDDC3\uFE0F",
    +      label: "\u6253\u5F00\u63D2\u4EF6\u6570\u636E\u76EE\u5F55",
    +      onClick: () => openDirectory('data'),
    +      iconStyle: {
    +        fontSize: '16px',
    +        marginLeft: '-4px'
    +      }
    +    })), /*#__PURE__*/React.createElement("a", {
    +      href: "https://github.com/DBJD-CR/astrbot_plugin_proactive_chat",
    +      target: "_blank",
    +      rel: "noopener noreferrer",
    +      className: "github-btn sidebar-github-card",
    +      style: {
    +        textDecoration: 'none'
    +      }
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "sidebar-github-inner"
    +    }, /*#__PURE__*/React.createElement("svg", {
    +      height: "28",
    +      width: "28",
    +      viewBox: "0 0 16 16"
    +      // GitHub 图标颜色随当前主题切换,保证深浅色模式下都具备良好对比度。
    +      ,
    +      fill: state.theme === 'dark' ? '#E6E1E5' : '#000000',
    +      style: {
    +        flexShrink: 0
    +      }
    +    }, /*#__PURE__*/React.createElement("path", {
    +      d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"
    +    })), /*#__PURE__*/React.createElement("div", {
    +      className: "sidebar-github-texts"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "sidebar-github-author"
    +    }, "@DBJD-CR"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "sidebar-github-meta"
    +    }, "\uD83D\uDD27 (\u4E3B\u52A8\u6D88\u606F) ", version)))), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      sx: {
    +        display: 'block',
    +        textAlign: 'center',
    +        mt: 1,
    +        opacity: 0.7,
    +        fontSize: '14px',
    +        fontWeight: 500
    +      }
    +    }, "\u70B9\u4E2A Star \u5427~ \u2B50")));
    +  }
    +
    +  // 暴露到全局,供入口应用直接使用侧边栏组件。
    +  window.Sidebar = Sidebar;
    +})();
    +
    +
    +/* js/components/layout/Header.jsx */
    +(() => {
    +  /**
    +   * 文件职责:顶部栏组件,负责标题展示、时钟显示、连接状态指示与主题切换入口。
    +   */
    +
    +  const {
    +    Box,
    +    Typography,
    +    IconButton
    +  } = MaterialUI;
    +  const {
    +    useState,
    +    useEffect
    +  } = React;
    +  function RealTimeClock({
    +    timeZone
    +  }) {
    +    const [timeStr, setTimeStr] = useState('');
    +    useEffect(() => {
    +      const updateTime = () => {
    +        // 头部时钟始终使用统一的格式化工具,确保与状态页、任务页时间显示风格一致。
    +        setTimeStr(formatDateTime(new Date(), timeZone || 'Asia/Shanghai', {
    +          includeYear: true,
    +          includeSeconds: true
    +        }));
    +      };
    +      updateTime();
    +      // 每秒刷新一次时钟文本;组件卸载时清理定时器,避免后台泄漏。
    +      const timer = setInterval(updateTime, 1000);
    +      return () => clearInterval(timer);
    +    }, [timeZone]);
    +
    +    // 初始尚未生成时间字符串时先不渲染,避免短暂出现占位空壳。
    +    if (!timeStr) return null;
    +    return /*#__PURE__*/React.createElement("div", {
    +      className: "header-clock-chip"
    +    }, /*#__PURE__*/React.createElement("span", {
    +      className: "header-clock-label"
    +    }, "\u5F53\u524D\u65F6\u95F4 \uD83D\uDD52"), /*#__PURE__*/React.createElement("span", {
    +      className: "header-clock-value"
    +    }, timeStr));
    +  }
    +  function Header({
    +    currentView
    +  }) {
    +    const {
    +      state,
    +      dispatch
    +    } = useAppContext();
    +    const {
    +      config,
    +      status
    +    } = state;
    +    // 若配置中未单独指定展示时区,则默认按插件主要使用场景的东八区展示。
    +    const displayTimezone = config?.displayTimezone || 'Asia/Shanghai';
    +    const toggleTheme = () => {
    +      dispatch({
    +        type: 'TOGGLE_THEME'
    +      });
    +    };
    +
    +    // 视图 key 到标题文案的映射集中维护,避免 JSX 中散落条件判断。
    +    const viewTitles = {
    +      status: '运行状态',
    +      tasks: '任务管理',
    +      notifications: '通知中心',
    +      docs: '文档浏览',
    +      config: '配置管理'
    +    };
    +
    +    // Header 不直接感知底层 socket 实例,只消费后端状态中的连接计数结果。
    +    const wsCount = Number(status?.ws_connections ?? 0);
    +    const wsConnected = wsCount > 0;
    +    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    +      className: "top-bar"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h5",
    +      sx: {
    +        fontWeight: 800,
    +        color: 'text.primary',
    +        letterSpacing: '-0.5px'
    +      }
    +    }, viewTitles[currentView] || viewTitles.status), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 2,
    +        flexWrap: 'wrap',
    +        justifyContent: 'flex-end'
    +      }
    +    }, /*#__PURE__*/React.createElement(RealTimeClock, {
    +      timeZone: displayTimezone
    +    }), /*#__PURE__*/React.createElement("div", {
    +      className: `connection-chip ${wsConnected ? 'is-connected' : 'is-disconnected'}`
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "connection-chip-dot"
    +    }), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "connection-chip-text"
    +    }, wsConnected ? '已连接' : '未连接')), /*#__PURE__*/React.createElement(IconButton, {
    +      onClick: toggleTheme,
    +      sx: {
    +        width: 44,
    +        height: 44,
    +        background: 'var(--md-sys-color-surface)',
    +        border: '1px solid var(--glass-border)',
    +        boxShadow: '0 2px 8px rgba(0,0,0,0.05)',
    +        '&:hover': {
    +          background: 'var(--md-sys-color-surface-variant)'
    +        }
    +      }
    +    }, /*#__PURE__*/React.createElement("span", {
    +      style: {
    +        fontSize: '18px'
    +      }
    +    }, state.theme === 'dark' ? '🌞' : '🌙')))));
    +  }
    +
    +  // 暴露到全局,供入口应用直接渲染 Header。
    +  window.Header = Header;
    +})();
    +
    +
    +/* js/views/StatusView.jsx */
    +(() => {
    +  /**
    +   * 文件职责:状态页视图,负责服务状态、计时器可视化与手动刷新交互展示。
    +   */
    +
    +  const {
    +    Box,
    +    Typography,
    +    Chip
    +  } = MaterialUI;
    +  function dedupeStatusTimerCards(cards) {
    +    const priorityMap = {
    +      // 同一会话若同时命中多类计时器,群沉默卡优先级更高,避免信息重复。
    +      group_silence: 3,
    +      auto_trigger: 2
    +    };
    +    const merged = new Map();
    +    cards.forEach(card => {
    +      const key = String(card.session_id || '');
    +      if (!key) return;
    +      const existing = merged.get(key);
    +      if (!existing) {
    +        merged.set(key, card);
    +        return;
    +      }
    +      const currentPriority = priorityMap[card.timer_kind] ?? 0;
    +      const existingPriority = priorityMap[existing.timer_kind] ?? 0;
    +      if (currentPriority > existingPriority) {
    +        merged.set(key, card);
    +        return;
    +      }
    +      if (currentPriority === existingPriority) {
    +        // 若类型优先级相同,则保留“更快触发”的那张卡,突出最紧迫状态。
    +        const currentRemaining = Number(card.remaining_seconds ?? Number.MAX_SAFE_INTEGER);
    +        const existingRemaining = Number(existing.remaining_seconds ?? Number.MAX_SAFE_INTEGER);
    +        if (currentRemaining < existingRemaining) {
    +          merged.set(key, card);
    +        }
    +      }
    +    });
    +    return Array.from(merged.values());
    +  }
    +  function StatusMetricRow({
    +    label,
    +    value,
    +    emphasize = false,
    +    status = ''
    +  }) {
    +    return /*#__PURE__*/React.createElement("div", {
    +      className: "status-metric-row"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "status-metric-label"
    +    }, label), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: `status-metric-value ${emphasize ? 'is-emphasize' : ''} ${status ? `is-${status}` : ''}`
    +    }, value));
    +  }
    +  function resolveStatusTimerCard(timer, nowMs, displayTimezone) {
    +    // 后端 target_time / started_at 以秒级时间戳返回,这里统一转为 Date 便于格式化和比较。
    +    const targetTime = parseDateish(timer.target_time ? Number(timer.target_time) * 1000 : null);
    +    const startedAt = parseDateish(timer.started_at ? Number(timer.started_at) * 1000 : null);
    +    const remainingSeconds = Number.isFinite(Number(timer.remaining_seconds)) ? Math.max(0, Number(timer.remaining_seconds)) : targetTime ? Math.max(0, Math.ceil((targetTime.getTime() - nowMs) / 1000)) : 0;
    +    const windowSeconds = Math.max(0, Number(timer.window_seconds ?? 0));
    +    // 若后端未给出 progress_percent,则前端基于总窗口时长与剩余秒数推导一个近似值。
    +    const fallbackProgress = windowSeconds > 0 ? Math.max(0, Math.min(100, Math.round((windowSeconds - remainingSeconds) / windowSeconds * 100))) : 0;
    +    const progressPercent = Math.max(0, Math.min(100, Math.round(Number(timer.progress_percent ?? fallbackProgress) || 0)));
    +
    +    // 根据剩余时间给卡片打上状态标签,供颜色、文案和动画统一使用。
    +    let status = 'future';
    +    let statusLabel = '稳定运行';
    +    if (!targetTime) {
    +      status = 'unknown';
    +      statusLabel = '待确认';
    +    } else if (remainingSeconds <= 0) {
    +      status = 'expired';
    +      statusLabel = '待刷新';
    +    } else if (remainingSeconds <= 300) {
    +      status = 'urgent';
    +      statusLabel = '即将结束';
    +    } else if (remainingSeconds <= 1800) {
    +      status = 'soon';
    +      statusLabel = '正常计时';
    +    }
    +    const isGroupSession = timer.session_category === 'group';
    +    const isGroupSilence = timer.timer_kind === 'group_silence';
    +    const categoryLabel = isGroupSession ? '群会话' : '私聊会话';
    +    const sectionKey = isGroupSilence ? 'group_silence' : 'auto_trigger';
    +    const sectionTitle = isGroupSilence ? '群沉默倒计时' : '自动触发检测';
    +    const accentClass = isGroupSilence ? 'accent-group-silence' : isGroupSession ? 'accent-auto-group' : 'accent-auto-friend';
    +    const kindBadgeLabel = isGroupSilence ? '沉默重置型' : isGroupSession ? '群自动触发' : '私聊自动触发';
    +    const sourceModeLabel = resolveSourceModeLabel(timer.source_mode);
    +    const countdownText = targetTime ? remainingSeconds > 0 ? `${formatDuration(remainingSeconds, {
    +      compact: true,
    +      maxUnits: 3
    +    })} 后到期` : '等待下一轮刷新确认' : '暂无有效目标时间';
    +    const sessionIdText = String(timer.session_id || '');
    +    const sessionDisplayName = String(timer.session_display_name || timer.session_name || sessionIdText || '--');
    +    const hasAlias = Boolean(sessionDisplayName && sessionIdText && sessionDisplayName !== sessionIdText);
    +    const sessionSubText = hasAlias ? sessionIdText : '';
    +    return {
    +      ...timer,
    +      startedAt,
    +      targetTime,
    +      remainingSeconds,
    +      progressPercent,
    +      status,
    +      statusLabel,
    +      categoryLabel,
    +      // 这些派生文案与样式字段统一在这里计算,减少渲染层的模板噪声。
    +      sectionKey,
    +      sectionTitle,
    +      accentClass,
    +      kindBadgeLabel,
    +      sourceModeLabel,
    +      unansweredLabel: formatUnansweredLabel(timer.unanswered_count, timer.max_unanswered_times),
    +      countdownText,
    +      sessionDisplayName,
    +      sessionSubText,
    +      hasAlias,
    +      targetText: targetTime ? formatDateTime(targetTime, displayTimezone, {
    +        includeYear: true,
    +        includeSeconds: true
    +      }) : '--'
    +    };
    +  }
    +  function StatusTimerCard({
    +    timer,
    +    displayTimezone,
    +    nowMs,
    +    resetHint
    +  }) {
    +    const meta = resolveStatusTimerCard(timer, nowMs, displayTimezone);
    +    // 未回复次数大于 0 时用 warning 色,帮助管理员快速定位“机器人已被晾着”的会话。
    +    const chipColor = Number(meta.unanswered_count ?? 0) > 0 ? 'warning' : 'default';
    +    return /*#__PURE__*/React.createElement("div", {
    +      className: `card status-timer-card ${meta.accentClass} ${meta.status === 'urgent' ? 'is-urgent' : ''} ${meta.status === 'expired' ? 'is-expired' : ''} ${resetHint ? 'is-resetting' : ''}`
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-card-top"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-title-block"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "subtitle2",
    +      className: "status-timer-kicker"
    +    }, meta.sectionTitle), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      className: `status-timer-session ${meta.hasAlias ? 'is-primary' : 'mono'}`
    +    }, meta.sessionDisplayName), meta.sessionSubText ? /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "status-timer-session-sub mono"
    +    }, `UMO · ${meta.sessionSubText}`) : null), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-chip-stack"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: `status-timer-kind-badge ${meta.accentClass}`
    +    }, meta.kindBadgeLabel), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-kind-badge"
    +    }, meta.sourceModeLabel), /*#__PURE__*/React.createElement(Chip, {
    +      label: meta.unansweredLabel,
    +      size: "small",
    +      color: chipColor,
    +      variant: Number(meta.unanswered_count ?? 0) > 0 ? 'filled' : 'outlined'
    +    }))), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-meta-row"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: `task-status-pill is-${meta.status}`
    +    }, meta.statusLabel), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-category-pill"
    +    }, meta.categoryLabel)), resetHint ?
    +    /*#__PURE__*/
    +    // 群聊出现新消息导致目标时间明显后移时,短暂显示“已重置”提示,帮助理解状态变化原因。
    +    React.createElement("div", {
    +      className: "status-timer-reset-hint"
    +    }, /*#__PURE__*/React.createElement("span", {
    +      className: "status-timer-reset-dot"
    +    }), "\u7FA4\u804A\u521A\u521A\u6709\u65B0\u6D88\u606F\uFF0C\u6C89\u9ED8\u8BA1\u65F6\u5668\u5DF2\u91CD\u65B0\u5F00\u59CB\u8BA1\u65F6") : null, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-panel"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-primary-row"
    +    }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "status-timer-label"
    +    }, "\u5012\u8BA1\u65F6"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "status-timer-countdown"
    +    }, meta.countdownText)), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-progress-value"
    +    }, meta.progressPercent, "%")), /*#__PURE__*/React.createElement("div", {
    +      className: "task-progress-track"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: `task-progress-bar is-${meta.status}`,
    +      style: {
    +        width: `${meta.progressPercent}%`
    +      }
    +    }))), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-info-grid"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-info-item"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "status-timer-info-label"
    +    }, "\u76EE\u6807\u65F6\u95F4"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "status-timer-info-value"
    +    }, meta.targetText)), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-info-item"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      className: "status-timer-info-label"
    +    }, "\u8BA1\u65F6\u7A97\u53E3"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "status-timer-info-value"
    +    }, meta.window_seconds ? formatDuration(meta.window_seconds, {
    +      compact: true,
    +      maxUnits: 2
    +    }) : '--'))));
    +  }
    +  function StatusView({
    +    onRefresh
    +  }) {
    +    const {
    +      state
    +    } = useAppContext();
    +    const status = state.status || {};
    +    // nowMs 每秒更新一次,用于驱动倒计时与相对时间文本实时刷新。
    +    const [nowMs, setNowMs] = React.useState(Date.now());
    +    // resetHintMap 记录哪些群沉默卡片当前需要显示“刚刚被重置”的短暂提示。
    +    const [resetHintMap, setResetHintMap] = React.useState({});
    +    // 手动刷新按钮的视觉反馈状态机:idle -> loading -> success / error。
    +    const [manualRefreshState, setManualRefreshState] = React.useState({
    +      phase: 'idle',
    +      finishedAt: 0
    +    });
    +    const previousTimerSnapshotRef = React.useRef({});
    +    const resetHintTimersRef = React.useRef({});
    +    const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai';
    +    React.useEffect(() => {
    +      const timer = setInterval(() => {
    +        setNowMs(Date.now());
    +      }, 1000);
    +      return () => clearInterval(timer);
    +    }, []);
    +    React.useEffect(() => {
    +      return () => {
    +        // 组件卸载时清理所有“重置提示”的超时器,避免状态在卸载后回写。
    +        Object.values(resetHintTimersRef.current).forEach(timerId => {
    +          clearTimeout(timerId);
    +        });
    +      };
    +    }, []);
    +
    +    // 统一把后端状态字段规整为前端友好的基础数字类型。
    +    const uptimeSeconds = Number(status.uptime_seconds ?? 0);
    +    const jobsCount = Number(status.jobs_count ?? 0);
    +    const sessionsCount = Number(status.sessions_count ?? 0);
    +    const autoTriggerTimers = Number(status.auto_trigger_timers ?? 0);
    +    const groupTimers = Number(status.group_timers ?? 0);
    +    const schedulerRunning = Boolean(status.scheduler_running);
    +    const pluginRunning = Boolean(status.running);
    +    const autoTriggerCards = Array.isArray(status.auto_trigger_cards) ? status.auto_trigger_cards : [];
    +    const groupTimerCards = Array.isArray(status.group_timer_cards) ? status.group_timer_cards : [];
    +    // 合并并去重所有会话计时器,保证一个会话最多出现一张最关键卡片。
    +    const timerCards = dedupeStatusTimerCards([...groupTimerCards, ...autoTriggerCards]);
    +    const timerSections = [{
    +      key: 'group_silence',
    +      title: '群沉默计时器',
    +      description: '群内一旦有新消息就会重新计时,适合观察沉默窗口是否被活跃消息重置。',
    +      emptyText: '当前没有正在运行的群沉默计时器。',
    +      cards: timerCards.filter(timer => timer.timer_kind === 'group_silence')
    +    }, {
    +      key: 'auto_trigger',
    +      title: '自动触发计时器',
    +      description: '用于观察会话的自动触发状况,并按群聊 / 私聊显示不同标签。通常情况下,插件运行一段时间后,这里将不会出现新的卡片。',
    +      emptyText: '当前没有正在运行的自动触发计时器。',
    +      cards: timerCards.filter(timer => timer.timer_kind === 'auto_trigger')
    +    }];
    +    React.useEffect(() => {
    +      const nextSnapshot = {};
    +      const nextHints = {};
    +      const activeKeys = new Set();
    +      timerCards.forEach(timer => {
    +        const key = `${timer.timer_kind}-${timer.session_id}`;
    +        const currentRemaining = Math.max(0, Number(timer.remaining_seconds ?? 0));
    +        const currentTarget = Number(timer.target_time ?? 0);
    +        const currentStatus = String(timer.status || '');
    +        const previous = previousTimerSnapshotRef.current[key] || null;
    +        activeKeys.add(key);
    +        nextSnapshot[key] = {
    +          remainingSeconds: currentRemaining,
    +          targetTime: currentTarget,
    +          status: currentStatus
    +        };
    +
    +        // 真正的“被重置”应表现为:同一张群沉默卡片的剩余时间突然回升,且当前仍处于有效运行态。
    +        const isGroupReset = timer.timer_kind === 'group_silence' && previous && currentStatus !== 'expired' && currentStatus !== 'unknown' && currentRemaining - Number(previous.remainingSeconds ?? 0) > 3;
    +        if (isGroupReset) {
    +          nextHints[key] = true;
    +          if (resetHintTimersRef.current[key]) {
    +            clearTimeout(resetHintTimersRef.current[key]);
    +          }
    +          resetHintTimersRef.current[key] = setTimeout(() => {
    +            setResetHintMap(current => {
    +              const updated = {
    +                ...current
    +              };
    +              delete updated[key];
    +              return updated;
    +            });
    +            delete resetHintTimersRef.current[key];
    +          }, 4200);
    +        }
    +      });
    +      Object.keys(resetHintTimersRef.current).forEach(key => {
    +        if (!activeKeys.has(key)) {
    +          clearTimeout(resetHintTimersRef.current[key]);
    +          delete resetHintTimersRef.current[key];
    +        }
    +      });
    +      previousTimerSnapshotRef.current = nextSnapshot;
    +      setResetHintMap(current => {
    +        const filtered = Object.fromEntries(Object.entries(current).filter(([key]) => activeKeys.has(key)));
    +        return Object.keys(nextHints).length > 0 ? {
    +          ...filtered,
    +          ...nextHints
    +        } : filtered;
    +      });
    +    }, [timerCards]);
    +    const handleManualRefresh = async () => {
    +      if (manualRefreshState.phase === 'loading') return;
    +      setManualRefreshState(current => ({
    +        ...current,
    +        phase: 'loading'
    +      }));
    +      try {
    +        // 手动刷新会回到入口层执行一次完整 loadAll,确保状态、会话、配置、任务全部同步。
    +        await onRefresh();
    +        setManualRefreshState({
    +          phase: 'success',
    +          finishedAt: Date.now()
    +        });
    +      } catch (e) {
    +        setManualRefreshState({
    +          phase: 'error',
    +          finishedAt: Date.now()
    +        });
    +      }
    +    };
    +    const refreshButtonLabel = manualRefreshState.phase === 'loading' ? '正在刷新控制台数据...' : manualRefreshState.phase === 'success' ? '刷新完成' : manualRefreshState.phase === 'error' ? '刷新失败,请重试' : '刷新控制台数据';
    +    const refreshNoteText = manualRefreshState.phase === 'loading' ? '正在重新拉取运行状态、会话列表、配置与任务列表。' : manualRefreshState.phase === 'success' ? `已完成手动刷新 · ${formatFriendlyTime(manualRefreshState.finishedAt, displayTimezone)}` : manualRefreshState.phase === 'error' ? '本次手动刷新失败,请检查服务连接或稍后重试。' : '手动刷新会重新拉取运行状态、会话列表、配置与任务列表。';
    +    return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement("div", {
    +      className: "dashboard-grid proactive-status-grid"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "span-4"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card status-panel-card status-panel-card-primary"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.5,
    +        mb: 3
    +      }
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-panel-icon status-panel-icon-blue"
    +    }, "\u26A1"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700
    +      }
    +    }, "\u670D\u52A1\u72B6\u6001")), /*#__PURE__*/React.createElement("div", {
    +      className: "status-metric-list"
    +    }, /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u63D2\u4EF6\u72B6\u6001",
    +      value: pluginRunning ? '运行中' : '已停止',
    +      emphasize: true,
    +      status: pluginRunning ? 'success' : 'error'
    +    }), /*#__PURE__*/React.createElement("div", {
    +      className: "status-divider"
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u8FD0\u884C\u65F6\u957F",
    +      value: formatDuration(uptimeSeconds, {
    +        compact: true,
    +        maxUnits: 4
    +      }),
    +      emphasize: true
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u5DF2\u8FDE\u63A5 WebSocket",
    +      value: `${Number(status.ws_connections ?? 0)} 个`
    +    })))), /*#__PURE__*/React.createElement("div", {
    +      className: "span-4"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card status-panel-card"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.5,
    +        mb: 3
    +      }
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-panel-icon status-panel-icon-purple"
    +    }, "\u23F1\uFE0F"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700
    +      }
    +    }, "\u8C03\u5EA6\u6982\u89C8")), /*#__PURE__*/React.createElement("div", {
    +      className: "status-metric-list"
    +    }, /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u8C03\u5EA6\u5668",
    +      value: schedulerRunning ? '已启动' : '未启动',
    +      emphasize: true,
    +      status: schedulerRunning ? 'success' : 'error'
    +    }), /*#__PURE__*/React.createElement("div", {
    +      className: "status-divider"
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u5F53\u524D\u4EFB\u52A1\u603B\u6570",
    +      value: `${jobsCount} 个`,
    +      emphasize: true
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u4F1A\u8BDD\u6570\u636E\u91CF",
    +      value: `${sessionsCount} 个`
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u81EA\u52A8\u89E6\u53D1\u8BA1\u65F6\u5668",
    +      value: `${autoTriggerTimers} 个`
    +    }), /*#__PURE__*/React.createElement(StatusMetricRow, {
    +      label: "\u7FA4\u6C89\u9ED8\u8BA1\u65F6\u5668",
    +      value: `${groupTimers} 个`
    +    })))), /*#__PURE__*/React.createElement("div", {
    +      className: "span-4"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card status-panel-card"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.5,
    +        mb: 3
    +      }
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-panel-icon status-panel-icon-pink"
    +    }, "\uD83D\uDE80"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700
    +      }
    +    }, "\u5FEB\u6377\u64CD\u4F5C")), /*#__PURE__*/React.createElement("div", {
    +      className: "status-actions-list"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-action-tooltip-wrap"
    +    }, /*#__PURE__*/React.createElement("button", {
    +      className: "btn btn-action",
    +      onClick: handleManualRefresh,
    +      disabled: manualRefreshState.phase === 'loading',
    +      "aria-describedby": "status-refresh-tooltip",
    +      style: {
    +        opacity: manualRefreshState.phase === 'loading' ? 0.82 : 1,
    +        cursor: manualRefreshState.phase === 'loading' ? 'wait' : 'pointer'
    +      }
    +    }, /*#__PURE__*/React.createElement("span", {
    +      style: {
    +        fontSize: '18px'
    +      }
    +    }, manualRefreshState.phase === 'loading' ? '⏳' : manualRefreshState.phase === 'success' ? '✅' : manualRefreshState.phase === 'error' ? '⚠️' : '🔄'), refreshButtonLabel), /*#__PURE__*/React.createElement("div", {
    +      className: "status-action-tooltip-bubble",
    +      role: "note",
    +      id: "status-refresh-tooltip"
    +    }, refreshNoteText))))), /*#__PURE__*/React.createElement("div", {
    +      className: "span-12"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timers-section"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      className: "status-timers-header-row"
    +    }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 0.5
    +      }
    +    }, `会话计时器可视化 (当前共 ${timerCards.length} 个计时器)`), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "tasks-header-subtitle"
    +    }, "\u5B9E\u65F6\u5C55\u793A\u81EA\u52A8\u89E6\u53D1\u68C0\u6D4B\u4E0E\u7FA4\u6C89\u9ED8\u68C0\u6D4B\u7684\u5012\u8BA1\u65F6\u3001\u8FDB\u5EA6\u548C\u4F1A\u8BDD\u72B6\u6001\u3002\u6B64\u5904\u5361\u7247\u7684\u5012\u8BA1\u65F6\u7ED3\u675F\u540E\u4F1A\u8FDB\u5165\u4EFB\u52A1\u7BA1\u7406\u9875\u9762")), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timers-summary-pills",
    +      "aria-hidden": "true"
    +    }, timerSections.map(section => /*#__PURE__*/React.createElement("div", {
    +      className: "status-timers-summary-pill",
    +      key: `summary-${section.key}`
    +    }, /*#__PURE__*/React.createElement("span", {
    +      className: "status-timers-summary-pill-label"
    +    }, section.title), /*#__PURE__*/React.createElement("span", {
    +      className: "status-timers-summary-pill-count"
    +    }, section.cards.length))))), timerCards.length === 0 ? /*#__PURE__*/React.createElement("div", {
    +      className: "card status-timers-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\uD83E\uDEE7"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u6682\u65E0\u8FD0\u884C\u4E2D\u7684\u4F1A\u8BDD\u8BA1\u65F6\u5668"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      color: "text.secondary"
    +    }, "\u5F53\u524D\u6CA1\u6709\u6B63\u5728\u8BA1\u65F6\u7684\u81EA\u52A8\u89E6\u53D1\u6216\u7FA4\u6C89\u9ED8\u4F1A\u8BDD\u3002\u7B49\u63D2\u4EF6\u8FDB\u5165\u4E0B\u4E00\u8F6E\u4F1A\u8BDD\u8C03\u5EA6\u540E\uFF0C\u8FD9\u91CC\u4F1A\u81EA\u52A8\u51FA\u73B0\u5BF9\u5E94\u5361\u7247\u3002")) : /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-sections"
    +    }, timerSections.map(section => /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-block",
    +      key: section.key
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-head"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-head-main"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "subtitle1",
    +      className: "status-timer-section-title"
    +    }, section.title), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "status-timer-section-desc"
    +    }, section.description)), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-count"
    +    }, section.cards.length, " \u5F20")), /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-body"
    +    }, section.cards.length === 0 ? /*#__PURE__*/React.createElement("div", {
    +      className: "status-timer-section-empty"
    +    }, section.emptyText) : /*#__PURE__*/React.createElement("div", {
    +      className: "status-timers-grid"
    +    }, section.cards.map(timer => /*#__PURE__*/React.createElement(StatusTimerCard, {
    +      key: `${timer.timer_kind}-${timer.session_id}`,
    +      timer: timer,
    +      displayTimezone: displayTimezone,
    +      nowMs: nowMs,
    +      resetHint: Boolean(resetHintMap[`${timer.timer_kind}-${timer.session_id}`])
    +    })))))))))));
    +  }
    +
    +  // 暴露为全局视图组件,供应用入口按当前路由态切换展示。
    +  window.StatusView = StatusView;
    +})();
    +
    +
    +/* js/components/config/ConfigRenderer.jsx */
    +(() => {
    +  /**
    +   * 文件职责:配置渲染核心组件,基于 Schema 动态生成表单并处理保存/会话差异配置逻辑。
    +   */
    +
    +  const {
    +    Box,
    +    TextField,
    +    Switch,
    +    Typography,
    +    Button,
    +    Accordion,
    +    AccordionSummary,
    +    AccordionDetails,
    +    Paper,
    +    Chip,
    +    Slider,
    +    MenuItem,
    +    ToggleButton,
    +    ToggleButtonGroup
    +  } = MaterialUI;
    +  const {
    +    useState,
    +    useEffect,
    +    useRef,
    +    useLayoutEffect
    +  } = React;
    +
    +  // 递归扫描 Schema 中所有 object 节点,生成“全部展开 / 收起”功能需要的路径列表。
    +  const getAllExpandablePaths = (schema, prefix = '') => {
    +    let paths = [];
    +    Object.entries(schema).forEach(([key, value]) => {
    +      const currentPath = prefix ? `${prefix}.${key}` : key;
    +      if (value.type === 'object' && value.items) {
    +        paths.push(currentPath);
    +        paths = paths.concat(getAllExpandablePaths(value.items, currentPath));
    +      }
    +    });
    +    return paths;
    +  };
    +
    +  // 为常见配置组与字段定义 emoji 图标,提升配置页的可扫读性。
    +  const CONFIG_ICONS = {
    +    friend_settings: '👤',
    +    group_settings: '👥',
    +    web_admin: '🌐',
    +    auto_trigger_settings: '🤖',
    +    schedule_settings: '🕒',
    +    tts_settings: '🔊',
    +    segmented_reply_settings: '🔪',
    +    enable: '✅',
    +    session_list: '📋',
    +    proactive_prompt: '🧠',
    +    group_idle_trigger_minutes: '⏳',
    +    enable_auto_trigger: '✅',
    +    auto_trigger_after_minutes: '⏱️',
    +    min_interval_minutes: '⏱️',
    +    max_interval_minutes: '⏱️',
    +    quiet_hours: '🌙',
    +    max_unanswered_times: '🛑',
    +    enable_tts: '💬',
    +    always_send_text: '🔤',
    +    words_count_threshold: '📏',
    +    split_mode: 'Ⓜ️',
    +    regex: '🧩',
    +    split_words: '📝',
    +    interval_method: '⏱️',
    +    interval: '🎲',
    +    log_base: '📈',
    +    enabled: '✅',
    +    host: '📡',
    +    port: '🔌',
    +    password: '🔑',
    +    session_name: '🏷️'
    +  };
    +
    +  // 某些 Schema 描述文本自身已带 emoji;这里剥离前缀,避免界面上图标重复出现。
    +  const LEADING_EMOJI_REGEX = /^\s*(?:\p{Extended_Pictographic}(?:\uFE0F|\u200D\p{Extended_Pictographic})*)\s*/u;
    +  const stripLeadingEmoji = text => {
    +    if (typeof text !== 'string') return text;
    +    return text.replace(LEADING_EMOJI_REGEX, '').trimStart();
    +  };
    +
    +  /**
    +   * 配置字段渲染组件
    +   * 根据后端返回的 Schema 动态渲染不同类型的输入控件
    +   */
    +  function ConfigField({
    +    fieldKey,
    +    schema,
    +    value,
    +    onChange,
    +    depth = 0,
    +    path = '',
    +    expandedKeys = [],
    +    onToggleExpand = () => {}
    +  }) {
    +    // hidden 字段完全不渲染,通常用于后端保留字段或不希望前端直接编辑的项。
    +    if (schema.hidden) return null;
    +
    +    // 对输入控件使用一层本地态,便于处理 Slider / 文本输入中的过渡值。
    +    const [localValue, setLocalValue] = useState(value);
    +    useEffect(() => {
    +      // 当外部配置值变化(如切换会话 / 回滚 / 重新加载)时,同步重置局部编辑态。
    +      setLocalValue(value);
    +    }, [value]);
    +    const handleChange = newValue => {
    +      // 所有字段都通过统一出口把最新值同时写入本地态与父级配置对象。
    +      setLocalValue(newValue);
    +      onChange(newValue);
    +    };
    +    const rawTitle = schema.description || fieldKey;
    +    const titleText = stripLeadingEmoji(rawTitle) || rawTitle;
    +    const icon = CONFIG_ICONS[fieldKey] || '⚙️';
    +    const currentPath = path ? `${path}.${fieldKey}` : fieldKey;
    +
    +    // object + items 表示一个可折叠的配置分组,内部再递归渲染子字段。
    +    if (schema.type === 'object' && schema.items) {
    +      const isExpanded = expandedKeys.includes(currentPath);
    +      return /*#__PURE__*/React.createElement(Paper, {
    +        elevation: depth === 0 ? 2 : 0,
    +        sx: {
    +          my: depth === 0 ? 1 : 0.75,
    +          overflow: 'hidden',
    +          border: depth === 0 ? 1.5 : 1,
    +          borderColor: depth === 0 ? 'primary.main' : 'primary.light',
    +          borderRadius: 2,
    +          background: depth === 0 ? 'linear-gradient(135deg, rgba(0, 90, 193, 0.04) 0%, rgba(0, 90, 193, 0.01) 100%)' : 'transparent'
    +        }
    +      }, /*#__PURE__*/React.createElement(Accordion, {
    +        expanded: isExpanded,
    +        onChange: () => onToggleExpand(currentPath),
    +        elevation: 0,
    +        sx: {
    +          '&:before': {
    +            display: 'none'
    +          },
    +          bgcolor: 'transparent'
    +        }
    +      }, /*#__PURE__*/React.createElement(AccordionSummary, {
    +        expandIcon: /*#__PURE__*/React.createElement(Box, {
    +          sx: {
    +            fontSize: '14px',
    +            lineHeight: 1
    +          }
    +        }, isExpanded ? '▲' : '▼'),
    +        sx: {
    +          px: 2,
    +          py: 1,
    +          minHeight: '48px !important',
    +          bgcolor: depth === 0 ? 'rgba(0, 90, 193, 0.06)' : depth === 1 ? 'rgba(0, 90, 193, 0.02)' : 'transparent',
    +          '&:hover': {
    +            bgcolor: depth === 0 ? 'rgba(0, 90, 193, 0.1)' : 'rgba(0, 90, 193, 0.05)'
    +          },
    +          transition: 'all 0.2s ease',
    +          '& .MuiAccordionSummary-expandIconWrapper': {
    +            transform: 'none !important'
    +          },
    +          '& .MuiAccordionSummary-expandIconWrapper.Mui-expanded': {
    +            transform: 'none !important'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          alignItems: 'center',
    +          gap: 1.5,
    +          flex: 1
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          fontSize: depth === 0 ? '20px' : '16px'
    +        }
    +      }, icon), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          flex: 1
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "subtitle2",
    +        sx: {
    +          fontWeight: 700,
    +          color: depth === 0 ? 'primary.main' : depth > 0 ? 'primary.dark' : 'text.primary',
    +          fontSize: depth === 0 ? '0.95rem' : '0.875rem'
    +        }
    +      }, titleText), schema.hint && depth === 0 && /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        color: "text.secondary",
    +        sx: {
    +          display: 'block',
    +          mt: 0.25
    +        }
    +      }, schema.hint)), depth === 0 && /*#__PURE__*/React.createElement(Chip, {
    +        label: `${Object.keys(schema.items).length}项`,
    +        size: "small",
    +        color: "primary",
    +        variant: "outlined",
    +        sx: {
    +          height: 22,
    +          fontSize: '0.7rem'
    +        }
    +      }), depth > 0 && /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        sx: {
    +          color: 'primary.main',
    +          fontWeight: 600,
    +          mr: 0.5
    +        }
    +      }, isExpanded ? '收起' : '展开'))), /*#__PURE__*/React.createElement(AccordionDetails, {
    +        sx: {
    +          px: 3,
    +          py: 0,
    +          bgcolor: 'background.default'
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          flexDirection: 'column'
    +        }
    +      }, Object.entries(schema.items).map(([key, subSchema]) => /*#__PURE__*/React.createElement(ConfigField, {
    +        key: key,
    +        fieldKey: key,
    +        schema: subSchema,
    +        value: localValue?.[key],
    +        onChange: newValue => handleChange({
    +          ...localValue,
    +          [key]: newValue
    +        }),
    +        depth: depth + 1,
    +        path: currentPath,
    +        expandedKeys: expandedKeys,
    +        onToggleExpand: onToggleExpand
    +      }))))));
    +    }
    +
    +    // 通用左侧描述区,统一标题与 hint 的排版逻辑,减少各字段类型重复 JSX。
    +    const DescriptionSection = ({
    +      flex = 8
    +    }) => /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        flex: flex,
    +        pr: 2,
    +        display: 'flex',
    +        flexDirection: 'column',
    +        justifyContent: 'center'
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "subtitle2",
    +      sx: {
    +        fontWeight: 700,
    +        color: 'text.primary',
    +        fontSize: '0.9rem',
    +        lineHeight: 1.3
    +      }
    +    }, schema.description || fieldKey), schema.hint && /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      color: "text.secondary",
    +      sx: {
    +        display: 'block',
    +        mt: 0.5,
    +        lineHeight: 1.3
    +      }
    +    }, schema.hint));
    +
    +    // 布尔配置映射为开关组件,适合表示 enable / always_send_text 这类 on-off 项。
    +    if (schema.type === 'bool' || schema.type === 'boolean') {
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          alignItems: 'center',
    +          justifyContent: 'space-between',
    +          py: 1.5,
    +          borderBottom: depth === 0 ? 'none' : '1px solid',
    +          borderColor: 'divider',
    +          '&:last-child': {
    +            borderBottom: 'none'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(DescriptionSection, {
    +        flex: 8
    +      }), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          flex: 2,
    +          display: 'flex',
    +          justifyContent: 'flex-end',
    +          alignItems: 'center'
    +        }
    +      }, /*#__PURE__*/React.createElement(Switch, {
    +        checked: localValue !== undefined ? localValue : schema.default || false,
    +        onChange: e => handleChange(e.target.checked),
    +        sx: {
    +          width: 52,
    +          height: 32,
    +          padding: 0,
    +          '& .MuiSwitch-switchBase': {
    +            padding: 0,
    +            margin: '4px',
    +            transitionDuration: '300ms',
    +            '&.Mui-checked': {
    +              transform: 'translateX(20px)',
    +              color: '#fff',
    +              '& + .MuiSwitch-track': {
    +                backgroundColor: 'primary.main',
    +                opacity: 1,
    +                border: 0
    +              }
    +            }
    +          },
    +          '& .MuiSwitch-thumb': {
    +            boxSizing: 'border-box',
    +            width: 24,
    +            height: 24,
    +            boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'
    +          },
    +          '& .MuiSwitch-track': {
    +            borderRadius: 16,
    +            backgroundColor: 'rgba(0, 0, 0, 0.12)',
    +            opacity: 1,
    +            transition: 'background-color 300ms'
    +          }
    +        }
    +      })));
    +    }
    +
    +    // 数值字段支持“滑杆 + 数字输入框”的双通道编辑,兼顾直观性与精确输入。
    +    if (['integer', 'int', 'number', 'float', 'double'].includes(schema.type)) {
    +      const sliderConfig = schema.slider;
    +      const hasRange = sliderConfig !== undefined;
    +      // 如果有范围,展示 Slider,布局 5:3:2;否则回退到 8:2
    +      const descFlex = hasRange ? 5 : 8;
    +      const min = sliderConfig?.min ?? schema.minimum;
    +      const max = sliderConfig?.max ?? schema.maximum;
    +      const step = sliderConfig?.step ?? (schema.type === 'integer' || schema.type === 'int' ? 1 : 0.1);
    +      const fallbackNumber = schema.default ?? min ?? 0;
    +      const parsedLocalNumber = Number(localValue);
    +      const sliderValueRaw = Number.isFinite(parsedLocalNumber) ? parsedLocalNumber : Number(fallbackNumber);
    +      const sliderValue = Math.min(max ?? sliderValueRaw, Math.max(min ?? sliderValueRaw, sliderValueRaw));
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          alignItems: 'center',
    +          justifyContent: 'space-between',
    +          py: 1.5,
    +          borderBottom: depth === 0 ? 'none' : '1px solid',
    +          borderColor: 'divider',
    +          '&:last-child': {
    +            borderBottom: 'none'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(DescriptionSection, {
    +        flex: descFlex
    +      }), hasRange && /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          flex: 3,
    +          px: 2,
    +          display: 'flex',
    +          alignItems: 'center'
    +        }
    +      }, /*#__PURE__*/React.createElement(Slider, {
    +        value: sliderValue,
    +        onChange: (e, newValue) => setLocalValue(newValue),
    +        onChangeCommitted: (e, newValue) => handleChange(newValue),
    +        min: min,
    +        max: max,
    +        step: step,
    +        size: "small",
    +        valueLabelDisplay: "auto",
    +        sx: {
    +          color: 'primary.main'
    +        }
    +      })), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          flex: 2,
    +          display: 'flex',
    +          justifyContent: 'flex-end'
    +        }
    +      }, /*#__PURE__*/React.createElement(TextField, {
    +        fullWidth: true,
    +        size: "small",
    +        type: "number",
    +        value: localValue !== undefined ? localValue : schema.default || 0,
    +        onChange: e => {
    +          const v = e.target.value;
    +          // 允许输入空值或负号
    +          if (v === '' || v === '-') {
    +            setLocalValue(v);
    +            return;
    +          }
    +          const num = schema.type === 'integer' || schema.type === 'int' ? parseInt(v) : parseFloat(v);
    +          handleChange(isNaN(num) ? 0 : num);
    +        },
    +        inputProps: {
    +          min: min,
    +          max: max,
    +          step: step
    +        },
    +        variant: "outlined",
    +        sx: {
    +          '& .MuiOutlinedInput-root': {
    +            borderRadius: 1.5,
    +            bgcolor: 'background.paper',
    +            '&.Mui-focused > fieldset': {
    +              borderColor: 'primary.main'
    +            }
    +          }
    +        }
    +      })));
    +    }
    +
    +    // 列表字段使用“每行一项”的多行文本输入,适合编辑 session_list / split_words 等数组数据。
    +    if (schema.type === 'list' || schema.type === 'array') {
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          py: 1.5,
    +          borderBottom: depth === 0 ? 'none' : '1px solid',
    +          borderColor: 'divider',
    +          '&:last-child': {
    +            borderBottom: 'none'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          mb: 1
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "subtitle2",
    +        sx: {
    +          fontWeight: 700,
    +          color: 'text.primary',
    +          fontSize: '0.9rem'
    +        }
    +      }, schema.description || fieldKey), schema.hint && /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        color: "text.secondary",
    +        sx: {
    +          display: 'block',
    +          mt: 0.5
    +        }
    +      }, schema.hint)), /*#__PURE__*/React.createElement(TextField, {
    +        fullWidth: true,
    +        multiline: true,
    +        rows: 3,
    +        size: "small",
    +        value: Array.isArray(localValue) ? localValue.join('\n') : '',
    +        onChange: e => handleChange(e.target.value.split('\n')),
    +        placeholder: "\u6BCF\u884C\u4E00\u9879",
    +        variant: "outlined",
    +        sx: {
    +          '& .MuiOutlinedInput-root': {
    +            borderRadius: 1.5,
    +            bgcolor: 'background.paper',
    +            '&.Mui-focused > fieldset': {
    +              borderColor: 'primary.main'
    +            }
    +          }
    +        }
    +      }));
    +    }
    +
    +    // 若 Schema 给出了 options,则优先渲染为下拉选择框,而不是自由文本输入。
    +    if (schema.options && Array.isArray(schema.options)) {
    +      const optionLabels = Array.isArray(schema.labels) ? schema.labels : [];
    +      const optionLabelMap = new Map(schema.options.map((option, index) => [option, optionLabels[index] || option]));
    +      const currentValue = localValue !== undefined ? localValue : schema.default || '';
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          alignItems: 'center',
    +          justifyContent: 'space-between',
    +          py: 1.5,
    +          borderBottom: depth === 0 ? 'none' : '1px solid',
    +          borderColor: 'divider',
    +          '&:last-child': {
    +            borderBottom: 'none'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(DescriptionSection, {
    +        flex: 8
    +      }), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          flex: 2,
    +          display: 'flex',
    +          justifyContent: 'flex-end'
    +        }
    +      }, /*#__PURE__*/React.createElement(TextField, {
    +        select: true,
    +        fullWidth: true,
    +        size: "small",
    +        value: currentValue,
    +        onChange: e => handleChange(e.target.value),
    +        variant: "outlined",
    +        SelectProps: {
    +          renderValue: selected => optionLabelMap.get(selected) || selected,
    +          MenuProps: {
    +            PaperProps: {
    +              sx: {
    +                borderRadius: 1.5,
    +                mt: 0.5,
    +                boxShadow: '0 4px 16px rgba(0,0,0,0.1)'
    +              }
    +            }
    +          }
    +        },
    +        sx: {
    +          '& .MuiOutlinedInput-root': {
    +            borderRadius: 1.5,
    +            bgcolor: 'background.paper',
    +            '&.Mui-focused > fieldset': {
    +              borderColor: 'primary.main'
    +            }
    +          },
    +          '& .MuiSelect-select': {
    +            textAlign: 'center',
    +            pr: '32px !important' // 给箭头图标留出空间,确保视觉居中
    +          }
    +        }
    +      }, schema.options.map(option => /*#__PURE__*/React.createElement(MenuItem, {
    +        key: option,
    +        value: option,
    +        sx: {
    +          justifyContent: 'center'
    +        }
    +      }, optionLabelMap.get(option) || option)))));
    +    }
    +
    +    // 其余情况按字符串处理,并依据字段语义决定是否切换为多行文本框。
    +    const shouldBeMultiline = schema.type === 'text' || schema.hint && schema.hint.length > 100 || fieldKey.includes('prompt') || fieldKey.includes('format') || fieldKey.includes('template') || fieldKey.includes('pattern') || fieldKey.includes('message') || fieldKey.includes('body') || fieldKey.includes('content');
    +    const multilineRows = fieldKey.includes('prompt') || schema.type === 'text' ? 8 : 4;
    +
    +    // 如果是长文本,保持上下布局;否则使用 8:2 布局
    +    if (shouldBeMultiline) {
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          py: 1.75,
    +          borderBottom: depth === 0 ? 'none' : '1px solid',
    +          borderColor: 'divider',
    +          '&:last-child': {
    +            borderBottom: 'none'
    +          }
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          mb: 1.25
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "subtitle2",
    +        sx: {
    +          fontWeight: 700,
    +          color: 'text.primary',
    +          fontSize: '0.95rem',
    +          lineHeight: 1.35
    +        }
    +      }, schema.description || fieldKey), schema.hint && /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        color: "text.secondary",
    +        sx: {
    +          display: 'block',
    +          mt: 0.5,
    +          lineHeight: 1.5
    +        }
    +      }, schema.hint)), /*#__PURE__*/React.createElement(TextField, {
    +        fullWidth: true,
    +        multiline: true,
    +        minRows: multilineRows,
    +        maxRows: fieldKey.includes('prompt') || schema.type === 'text' ? 18 : 10,
    +        value: localValue !== undefined ? localValue : schema.default || '',
    +        onChange: e => handleChange(e.target.value),
    +        placeholder: fieldKey.includes('prompt') ? '请输入该会话/全局场景下的 Prompt 内容…' : '',
    +        variant: "outlined",
    +        sx: {
    +          '& .MuiOutlinedInput-root': {
    +            alignItems: 'flex-start',
    +            borderRadius: 2,
    +            bgcolor: 'background.paper',
    +            fontFamily: 'inherit',
    +            lineHeight: 1.65,
    +            '& textarea': {
    +              lineHeight: 1.7,
    +              fontSize: '0.95rem',
    +              resize: 'vertical'
    +            },
    +            '&.Mui-focused > fieldset': {
    +              borderColor: 'primary.main'
    +            }
    +          }
    +        }
    +      }));
    +    }
    +    return /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        justifyContent: 'space-between',
    +        py: 1.5,
    +        borderBottom: depth === 0 ? 'none' : '1px solid',
    +        borderColor: 'divider',
    +        '&:last-child': {
    +          borderBottom: 'none'
    +        }
    +      }
    +    }, /*#__PURE__*/React.createElement(DescriptionSection, {
    +      flex: 8
    +    }), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        flex: 2,
    +        display: 'flex',
    +        justifyContent: 'flex-end'
    +      }
    +    }, /*#__PURE__*/React.createElement(TextField, {
    +      fullWidth: true,
    +      size: "small",
    +      value: localValue !== undefined ? localValue : schema.default || '',
    +      onChange: e => handleChange(e.target.value),
    +      variant: "outlined",
    +      sx: {
    +        '& .MuiOutlinedInput-root': {
    +          borderRadius: 1.5,
    +          bgcolor: 'background.paper',
    +          '&.Mui-focused > fieldset': {
    +            borderColor: 'primary.main'
    +          }
    +        }
    +      }
    +    })));
    +  }
    +
    +  // 根据会话 ID 的消息类型片段判断是私聊还是群聊,用于筛选对应的配置 Schema。
    +  function detectSessionType(sessionId) {
    +    const raw = String(sessionId || '');
    +    if (raw.includes(':GroupMessage:') || raw.includes(':GuildMessage:')) return 'group';
    +    if (raw.includes(':FriendMessage:') || raw.includes(':PrivateMessage:')) return 'friend';
    +    return 'friend';
    +  }
    +
    +  // 会话差异配置页并不暴露完整全局 Schema,而是按会话类型抽取可编辑字段子集。
    +  // 因此像 web_admin、notification_settings 这类纯全局配置块不会出现在会话差异编辑视图中。
    +  function getSessionSchemaEntries(schema, sessionType) {
    +    const rootKey = sessionType === 'group' ? 'group_settings' : 'friend_settings';
    +    const rootItems = schema?.[rootKey]?.items || {};
    +    const orderedKeys = ['auto_trigger_settings', 'group_idle_trigger_minutes', 'proactive_prompt', 'context_settings', 'schedule_settings', 'tts_settings', 'segmented_reply_settings'];
    +    const hiddenKeys = new Set(['enable', 'session_list']);
    +    const entries = [];
    +    const sessionNameSchema = rootItems.session_name || {
    +      type: 'string',
    +      default: '',
    +      description: '会话备注名',
    +      hint: '用于日志和管理端展示。为空时将回退显示 UMO。'
    +    };
    +    entries.push(['session_name', sessionNameSchema]);
    +    orderedKeys.filter(key => !hiddenKeys.has(key) && rootItems[key]).forEach(key => {
    +      entries.push([key, rootItems[key]]);
    +    });
    +    return entries;
    +  }
    +
    +  /**
    +   * 主配置渲染器组件
    +   * 负责加载、显示和保存插件的完整配置
    +   * 包含了配置的获取、状态管理和保存逻辑
    +   */
    +  function ConfigRenderer() {
    +    const {
    +      state
    +    } = useAppContext(); // 获取全局状态
    +    // schema: 后端返回的配置结构定义;config: 当前正在编辑的配置草稿。
    +    const [schema, setSchema] = useState(null);
    +    const [config, setConfig] = useState(null);
    +    const [expandedKeys, setExpandedKeys] = useState([]);
    +    const [loading, setLoading] = useState(true);
    +    const [saving, setSaving] = useState(false);
    +    const [saveFeedback, setSaveFeedback] = useState({
    +      type: '',
    +      text: ''
    +    });
    +
    +    // 多会话模式相关状态:global 表示编辑全局配置,session 表示编辑单会话差异配置。
    +    const [mode, setMode] = useState('global'); // global | session
    +    const [sessions, setSessions] = useState([]);
    +    const [selectedSession, setSelectedSession] = useState('');
    +    const [sessionLoading, setSessionLoading] = useState(false);
    +    const [sessionConfigState, setSessionConfigState] = useState({
    +      baseAvailable: true,
    +      message: ''
    +    });
    +    const api = useApi();
    +    const scrollContainerRef = useRef(null);
    +    const loadConfigSeqRef = useRef(0);
    +    const isDirtyRef = useRef(false); // 标记用户是否有未保存的修改
    +
    +    // 动态缓存 key:不同模式 / 不同会话使用不同 localStorage 键,避免草稿串线。
    +    const getDraftKey = (currentMode = mode, currentSession = selectedSession) => {
    +      if (currentMode === 'session' && currentSession) {
    +        return `astrbot_plugin_proactive_draft_config_session_${currentSession}`;
    +      }
    +      return 'astrbot_plugin_proactive_draft_config_global';
    +    };
    +    const getExpandedKey = (currentMode = mode, currentSession = selectedSession) => {
    +      if (currentMode === 'session' && currentSession) {
    +        return `astrbot_plugin_proactive_expanded_keys_session_${currentSession}`;
    +      }
    +      return 'astrbot_plugin_proactive_expanded_keys_global';
    +    };
    +    const getScrollKey = (currentMode = mode, currentSession = selectedSession) => {
    +      if (currentMode === 'session' && currentSession) {
    +        return `astrbot_scroll_config_list_session_${currentSession}`;
    +      }
    +      return 'astrbot_scroll_config_list_global';
    +    };
    +    useEffect(() => {
    +      // 首次进入页面时只初始化一次:加载 Schema,并准备会话列表。
    +      initializePage();
    +    }, []);
    +    useEffect(() => {
    +      if (!schema) return;
    +      // 切换模式或切换会话时,需要重新从服务端拉取当前上下文下的配置快照。
    +      setSaveFeedback({
    +        type: '',
    +        text: ''
    +      });
    +      loadConfig(mode, selectedSession);
    +    }, [mode, selectedSession]);
    +
    +    // 使用 useLayoutEffect 恢复滚动位置,尽量让用户在绘制完成前回到上次浏览位置。
    +    useLayoutEffect(() => {
    +      if (!loading && scrollContainerRef.current) {
    +        const savedPos = localStorage.getItem(getScrollKey());
    +        if (savedPos) {
    +          // 尝试恢复
    +          const pos = parseInt(savedPos, 10);
    +          if (pos > 0) {
    +            scrollContainerRef.current.scrollTop = pos;
    +            // 双重保障
    +            requestAnimationFrame(() => {
    +              if (scrollContainerRef.current) {
    +                scrollContainerRef.current.scrollTop = pos;
    +              }
    +            });
    +          }
    +        }
    +      }
    +    }, [loading, mode, selectedSession]);
    +
    +    // 监听滚动并节流写入 localStorage,便于大配置表单下次打开时恢复阅读位置。
    +    useEffect(() => {
    +      const el = scrollContainerRef.current;
    +      if (!el || loading) return;
    +      const handleScroll = () => {
    +        localStorage.setItem(getScrollKey(), el.scrollTop);
    +      };
    +      let timeout;
    +      const debouncedScroll = () => {
    +        clearTimeout(timeout);
    +        timeout = setTimeout(handleScroll, 100);
    +      };
    +      el.addEventListener('scroll', debouncedScroll);
    +      return () => {
    +        el.removeEventListener('scroll', debouncedScroll);
    +        clearTimeout(timeout);
    +      };
    +    }, [loading, mode, selectedSession]);
    +
    +    // 自动保存草稿,但只有发生本地修改时才写入,避免把服务端新值反向覆盖成本地草稿。
    +    useEffect(() => {
    +      if (config && isDirtyRef.current) {
    +        localStorage.setItem(getDraftKey(), JSON.stringify(config));
    +      }
    +    }, [config, mode, selectedSession]);
    +
    +    // 记忆折叠 / 展开状态,让用户在大型 Schema 中保持稳定的浏览结构。
    +    useEffect(() => {
    +      if (schema) {
    +        // 确保 schema 加载后再保存,避免初始化时的空状态覆盖
    +        localStorage.setItem(getExpandedKey(), JSON.stringify(expandedKeys));
    +      }
    +    }, [expandedKeys, schema, mode, selectedSession]);
    +    const initializePage = async () => {
    +      setLoading(true);
    +      try {
    +        // 初始化时优先拿 Schema;没有 Schema 就无法安全地动态构建表单。
    +        const schemaData = await api.getConfigSchema();
    +        setSchema(schemaData);
    +        await loadSessions();
    +      } catch (e) {
    +        console.error('初始化配置页失败', e);
    +        // showToast('初始化配置页失败,请检查控制台', 'error');
    +      } finally {
    +        setLoading(false);
    +      }
    +    };
    +    const loadSessions = async () => {
    +      try {
    +        // 会话列表用于会话差异配置模式下的下拉框、状态提示与覆写标记展示。
    +        const result = await api.listSessions();
    +        const sessionList = result?.sessions || [];
    +
    +        // 确保 sessionList 中的每一项都是包含 session, has_override 的对象形式
    +        const normalizedSessions = sessionList.map(item => typeof item === 'string' ? {
    +          session: item,
    +          has_override: false
    +        } : item);
    +        setSessions(normalizedSessions);
    +
    +        // 默认选中第一个会话
    +        if (!selectedSession && normalizedSessions.length > 0) {
    +          setSelectedSession(normalizedSessions[0].session);
    +        }
    +      } catch (e) {
    +        console.error('加载会话列表失败', e);
    +        // showToast('加载会话列表失败,请检查控制台', 'error');
    +      }
    +    };
    +    const loadConfig = async (currentMode = mode, currentSession = selectedSession) => {
    +      // 所有配置加载都以当前 Schema 为前提,避免出现“无结构定义的盲编辑”。
    +      if (!schema) return;
    +
    +      // 递增请求序号,防止快速切换会话时后返回的旧请求覆盖新状态。
    +      const requestSeq = ++loadConfigSeqRef.current;
    +      setLoading(true);
    +      try {
    +        let configData = null;
    +        if (currentMode === 'session') {
    +          if (!currentSession) {
    +            if (requestSeq === loadConfigSeqRef.current) {
    +              setConfig(null);
    +              setSessionConfigState({
    +                baseAvailable: false,
    +                message: '请先选择一个会话'
    +              });
    +            }
    +            return;
    +          }
    +          setSessionLoading(true);
    +          const sessionData = await api.getSessionConfig(currentSession);
    +          const hasBaseConfig = Boolean(sessionData?.base);
    +          setSessionConfigState(hasBaseConfig ? {
    +            baseAvailable: true,
    +            message: ''
    +          } : {
    +            baseAvailable: false,
    +            message: '该会话尚未命中对应类型的全局 session_list,因此暂时无法保存会话差异配置。请先在对应的全局配置中加入该会话。'
    +          });
    +          configData = sessionData?.effective || sessionData?.override || {};
    +        } else {
    +          setSessionConfigState({
    +            baseAvailable: true,
    +            message: ''
    +          });
    +          configData = await api.getConfig();
    +        }
    +
    +        // 如果不是最新请求,丢弃过期响应,避免会话串改
    +        if (requestSeq !== loadConfigSeqRef.current) {
    +          return;
    +        }
    +
    +        // 1. 配置加载以服务端返回值为准
    +        // 旧版本这里会无条件恢复本地草稿,导致真实已保存配置被默认草稿覆盖
    +        // 因此改为始终优先使用服务端配置;草稿仅在当前编辑会话中用于暂存,不参与初始化覆盖
    +        const finalConfig = configData;
    +        isDirtyRef.current = false;
    +
    +        // 2. 处理展开状态记忆
    +        const cachedExpandedStr = localStorage.getItem(getExpandedKey(currentMode, currentSession));
    +        let finalExpandedKeys = [];
    +        if (cachedExpandedStr) {
    +          try {
    +            finalExpandedKeys = JSON.parse(cachedExpandedStr);
    +          } catch (e) {
    +            console.error('解析展开状态失败', e);
    +          }
    +        } else {
    +          // 默认全展开
    +          finalExpandedKeys = getAllExpandablePaths(schema);
    +        }
    +        setConfig(finalConfig);
    +        setExpandedKeys(finalExpandedKeys);
    +      } catch (e) {
    +        if (requestSeq === loadConfigSeqRef.current) {
    +          console.error('加载配置失败', e);
    +          // showToast('加载配置失败,请检查控制台', 'error');
    +          setConfig(null);
    +        }
    +      } finally {
    +        if (requestSeq === loadConfigSeqRef.current) {
    +          setSessionLoading(false);
    +          setLoading(false);
    +        }
    +      }
    +    };
    +    const handleToggleExpand = path => {
    +      // 单个折叠面板的展开态切换逻辑集中处理,便于后续扩展批量控制。
    +      setExpandedKeys(prev => {
    +        if (prev.includes(path)) {
    +          return prev.filter(p => p !== path);
    +        } else {
    +          return [...prev, path];
    +        }
    +      });
    +    };
    +    const handleToggleAll = () => {
    +      // 会话模式只对会话可编辑字段做“全部展开”,不污染全局 Schema 的路径集合。
    +      const expandableSchema = mode === 'session' ? Object.fromEntries(sessionSchemaEntries) : schema;
    +      if (expandedKeys.length > 0) {
    +        setExpandedKeys([]); // 全部收起
    +      } else {
    +        setExpandedKeys(getAllExpandablePaths(expandableSchema)); // 全部展开
    +      }
    +    };
    +    const cleanConfig = obj => {
    +      // 保存前递归清理配置:数组中的字符串去首尾空白,并去掉空项,减小脏数据概率。
    +      if (Array.isArray(obj)) {
    +        return obj.map(item => typeof item === 'string' ? item.trim() : item).filter(item => item !== '');
    +      }
    +      if (obj && typeof obj === 'object') {
    +        const newObj = {};
    +        for (const key in obj) {
    +          newObj[key] = cleanConfig(obj[key]);
    +        }
    +        return newObj;
    +      }
    +      return obj;
    +    };
    +    const handleSave = async () => {
    +      // 保存逻辑按 mode 分叉:全局配置直接写配置块,会话模式则保存差异配置。
    +      setSaving(true);
    +      try {
    +        const cleanedConfig = cleanConfig(config);
    +        const currentMode = mode;
    +        const currentSession = selectedSession;
    +        if (currentMode === 'session') {
    +          if (!currentSession) {
    +            // showToast('请先选择会话', 'warning');
    +            return;
    +          }
    +          const response = await api.updateSessionConfig(currentSession, {
    +            mode: 'effective',
    +            effective: cleanedConfig
    +          });
    +          isDirtyRef.current = false;
    +          localStorage.removeItem(getDraftKey(currentMode, currentSession));
    +          setConfig(response?.effective || cleanedConfig);
    +          setSaveFeedback({
    +            type: 'success',
    +            text: '会话差异配置已保存'
    +          });
    +          await loadSessions();
    +          // 会话模式保存后强制回读服务端 effective,确保会话隔离与覆写状态显示正确
    +          await loadConfig(currentMode, currentSession);
    +        } else {
    +          const payload = {
    +            friend_settings: cleanedConfig.friend_settings,
    +            group_settings: cleanedConfig.group_settings,
    +            web_admin: cleanedConfig.web_admin
    +          };
    +          await api.updateConfig(payload);
    +          isDirtyRef.current = false;
    +          setConfig(cleanedConfig); // 全局模式可直接更新界面
    +          localStorage.removeItem(getDraftKey(currentMode, currentSession)); // 已保存,清除草稿
    +          setSaveFeedback({
    +            type: 'success',
    +            text: '全局配置已保存'
    +          });
    +        }
    +      } catch (e) {
    +        console.error('保存配置失败', e);
    +        setSaveFeedback({
    +          type: 'error',
    +          text: e?.message || '保存配置失败,请检查后端返回信息'
    +        });
    +        window.alert(e?.message || '保存配置失败,请检查后端返回信息');
    +      } finally {
    +        setSaving(false);
    +      }
    +    };
    +    const handleResetOverride = async () => {
    +      // 仅会话模式下可用:清空后该会话重新完全继承全局配置。
    +      if (!selectedSession) {
    +        // showToast('请先选择会话', 'warning');
    +        return;
    +      }
    +      const ok = confirm('确定要清空该会话的差异配置吗?\n\n清空后将完全继承全局默认配置。');
    +      if (!ok) return;
    +      setSaving(true);
    +      try {
    +        await api.resetSessionConfig(selectedSession);
    +        localStorage.removeItem(getDraftKey(mode, selectedSession));
    +        setSaveFeedback({
    +          type: 'success',
    +          text: '会话差异配置已清空'
    +        });
    +        await loadSessions();
    +        await loadConfig(mode, selectedSession);
    +      } catch (e) {
    +        console.error('清空会话差异配置失败', e);
    +        setSaveFeedback({
    +          type: 'error',
    +          text: e?.message || '清空会话差异配置失败'
    +        });
    +        window.alert(e?.message || '清空会话差异配置失败');
    +      } finally {
    +        setSaving(false);
    +      }
    +    };
    +    if (loading) {
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          textAlign: 'center',
    +          py: 6
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          fontSize: '36px',
    +          mb: 1.5
    +        }
    +      }, "\u2699\uFE0F"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body1",
    +        color: "text.secondary"
    +      }, "\u52A0\u8F7D\u914D\u7F6E\u4E2D..."));
    +    }
    +    if (!schema || !config) {
    +      return /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          textAlign: 'center',
    +          py: 6
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          fontSize: '36px',
    +          mb: 1.5
    +        }
    +      }, "\u274C"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body1",
    +        color: "error"
    +      }, "\u65E0\u6CD5\u52A0\u8F7D\u914D\u7F6E"));
    +    }
    +
    +    // 以下派生变量统一在渲染前计算,避免 JSX 中出现过多内联判断,降低维护复杂度。
    +    const selectedSessionMeta = sessions.find(s => (s.session || s) === selectedSession);
    +    const hasOverride = selectedSessionMeta?.has_override;
    +    const currentSessionType = detectSessionType(selectedSession);
    +    const sessionSchemaEntries = mode === 'session' ? getSessionSchemaEntries(schema, currentSessionType) : [];
    +    const schemaEntries = mode === 'session' ? sessionSchemaEntries : Object.entries(schema);
    +    const sessionEnabled = mode === 'session' ? Boolean(config?.enable) : false;
    +    const sessionTypeLabel = currentSessionType === 'group' ? '群聊' : '私聊';
    +    const canSaveSessionConfig = mode !== 'session' || sessionConfigState.baseAvailable;
    +    return /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        flexDirection: 'column',
    +        flex: 1,
    +        overflow: 'hidden'
    +      }
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        px: 3,
    +        pt: 2,
    +        pb: 1,
    +        display: 'flex',
    +        flexDirection: 'column',
    +        gap: 1.5
    +      }
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.5,
    +        flexWrap: 'wrap'
    +      }
    +    }, /*#__PURE__*/React.createElement(ToggleButtonGroup, {
    +      exclusive: true,
    +      size: "small",
    +      value: mode,
    +      onChange: (e, val) => {
    +        if (!val) return;
    +        setMode(val);
    +      }
    +    }, /*#__PURE__*/React.createElement(ToggleButton, {
    +      value: "global"
    +    }, "\u5168\u5C40\u914D\u7F6E"), /*#__PURE__*/React.createElement(ToggleButton, {
    +      value: "session"
    +    }, "\u4F1A\u8BDD\u5DEE\u5F02\u914D\u7F6E")), mode === 'session' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextField, {
    +      select: true,
    +      size: "small",
    +      label: "\u76EE\u6807\u4F1A\u8BDD",
    +      value: selectedSession,
    +      onChange: e => setSelectedSession(e.target.value),
    +      sx: {
    +        minWidth: 420,
    +        maxWidth: '100%'
    +      }
    +    }, sessions.map(item => {
    +      const displayName = item.session_display_name || item.session_name || item.session;
    +      const hasAlias = Boolean(item.session_name && item.session_name.trim());
    +      const optionText = hasAlias ? `${displayName}(${item.session})` : displayName;
    +      return /*#__PURE__*/React.createElement(MenuItem, {
    +        key: item.session,
    +        value: item.session
    +      }, optionText);
    +    })), hasOverride && /*#__PURE__*/React.createElement(Chip, {
    +      size: "small",
    +      color: "primary",
    +      label: "\u5DF2\u5B58\u5728\u5DEE\u5F02\u8986\u5199"
    +    }), sessionLoading && /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      color: "text.secondary"
    +    }, "\u4F1A\u8BDD\u914D\u7F6E\u52A0\u8F7D\u4E2D..."))), mode === 'session' && selectedSessionMeta && /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      color: "text.secondary"
    +    }, "\u5F53\u524D\u4F1A\u8BDD\uFF1A", selectedSessionMeta.session_display_name || selectedSessionMeta.session_name || selectedSessionMeta.session || selectedSessionMeta, selectedSessionMeta.session_name ? ` | UMO:${selectedSessionMeta.session}` : '', ' | ', "\u672A\u56DE\u590D\u6B21\u6570\uFF1A", selectedSessionMeta.unanswered_count ?? 0), mode === 'session' && !sessionConfigState.baseAvailable && sessionConfigState.message && /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        px: 1.5,
    +        py: 1,
    +        borderRadius: 2,
    +        border: '1px solid',
    +        borderColor: 'rgba(245, 124, 0, 0.24)',
    +        background: 'rgba(245, 124, 0, 0.08)'
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      sx: {
    +        display: 'block',
    +        fontWeight: 600,
    +        color: '#ED6C02',
    +        lineHeight: 1.6
    +      }
    +    }, sessionConfigState.message)), saveFeedback.text && /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        px: 1.5,
    +        py: 1,
    +        borderRadius: 2,
    +        border: '1px solid',
    +        borderColor: saveFeedback.type === 'success' ? 'rgba(46, 125, 50, 0.22)' : 'rgba(211, 47, 47, 0.22)',
    +        background: saveFeedback.type === 'success' ? 'rgba(46, 125, 50, 0.08)' : 'rgba(211, 47, 47, 0.08)'
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      sx: {
    +        display: 'block',
    +        fontWeight: 600,
    +        color: saveFeedback.type === 'success' ? '#2E7D32' : '#D32F2F'
    +      }
    +    }, saveFeedback.text))), /*#__PURE__*/React.createElement(Box, {
    +      ref: scrollContainerRef,
    +      sx: {
    +        flex: 1,
    +        overflowY: 'auto',
    +        px: 3,
    +        py: 2,
    +        '&::-webkit-scrollbar': {
    +          width: '6px'
    +        },
    +        '&::-webkit-scrollbar-track': {
    +          bgcolor: 'background.default',
    +          borderRadius: 3
    +        },
    +        '&::-webkit-scrollbar-thumb': {
    +          bgcolor: 'primary.main',
    +          borderRadius: 3,
    +          '&:hover': {
    +            bgcolor: 'primary.dark'
    +          }
    +        }
    +      }
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        flexDirection: 'column',
    +        gap: 1
    +      }
    +    }, mode === 'session' && config && /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        pb: 0.5
    +      }
    +    }, /*#__PURE__*/React.createElement(Paper, {
    +      elevation: 0,
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        justifyContent: 'space-between',
    +        gap: 2,
    +        px: 2.5,
    +        py: 1.75,
    +        borderRadius: 2.5,
    +        border: '1px solid',
    +        borderColor: sessionEnabled ? 'rgba(103, 80, 164, 0.22)' : 'rgba(244, 67, 54, 0.18)',
    +        background: sessionEnabled ? 'linear-gradient(135deg, rgba(103, 80, 164, 0.08) 0%, rgba(103, 80, 164, 0.03) 100%)' : 'linear-gradient(135deg, rgba(244, 67, 54, 0.08) 0%, rgba(244, 67, 54, 0.03) 100%)'
    +      }
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        minWidth: 0
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "subtitle1",
    +      sx: {
    +        fontWeight: 800,
    +        color: 'text.primary',
    +        mb: 0.25
    +      }
    +    }, sessionTypeLabel, "\u4F1A\u8BDD\u542F\u7528\u72B6\u6001"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      color: "text.secondary",
    +      sx: {
    +        lineHeight: 1.5
    +      }
    +    }, "\u8FD9\u662F\u5F53\u524D\u4F1A\u8BDD\u7684\u72EC\u7ACB\u5F00\u5173\u3002\u5173\u95ED\u540E\uFF0C\u8BE5\u4F1A\u8BDD\u4F1A\u6682\u505C\u4E3B\u52A8\u6D88\u606F\uFF0C\u4F46\u4E0D\u4F1A\u5F71\u54CD\u540C\u7C7B\u578B\u7684\u5168\u5C40\u914D\u7F6E\u4E0E\u5176\u4ED6\u4F1A\u8BDD\u3002")), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.25,
    +        flexShrink: 0
    +      }
    +    }, /*#__PURE__*/React.createElement(Chip, {
    +      size: "small",
    +      color: sessionEnabled ? 'success' : 'default',
    +      label: sessionEnabled ? '已启用' : '已暂停',
    +      variant: sessionEnabled ? 'filled' : 'outlined'
    +    }), /*#__PURE__*/React.createElement(Switch, {
    +      checked: sessionEnabled,
    +      onChange: e => {
    +        isDirtyRef.current = true;
    +        setConfig({
    +          ...config,
    +          enable: e.target.checked
    +        });
    +      }
    +    })))), schemaEntries.map(([key, subSchema]) => /*#__PURE__*/React.createElement(Box, {
    +      key: key,
    +      sx: {
    +        width: '100%'
    +      }
    +    }, /*#__PURE__*/React.createElement(ConfigField, {
    +      fieldKey: key,
    +      schema: subSchema,
    +      value: config[key],
    +      onChange: newValue => {
    +        isDirtyRef.current = true;
    +        setConfig({
    +          ...config,
    +          [key]: newValue
    +        });
    +      },
    +      path: "",
    +      expandedKeys: expandedKeys,
    +      onToggleExpand: handleToggleExpand
    +    }))))), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        flexShrink: 0,
    +        bgcolor: 'var(--md-sys-color-surface)',
    +        // 使用主题表面色
    +        backdropFilter: 'blur(8px)',
    +        borderTop: '1px solid',
    +        borderColor: 'divider',
    +        px: 3,
    +        py: 2,
    +        display: 'flex',
    +        justifyContent: 'space-between',
    +        alignItems: 'center',
    +        boxShadow: '0 -4px 20px rgba(0, 0, 0, 0.05)',
    +        zIndex: 10
    +      }
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "caption",
    +      color: "text.secondary",
    +      sx: {
    +        fontWeight: 500
    +      }
    +    }, schemaEntries.length, " \u4E2A\u914D\u7F6E\u7EC4"), /*#__PURE__*/React.createElement(Button, {
    +      onClick: handleToggleAll,
    +      size: "small",
    +      variant: "text",
    +      sx: {
    +        minWidth: 'auto',
    +        px: 1
    +      }
    +    }, expandedKeys.length > 0 ? '全部收起' : '全部展开')), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        gap: 1.5
    +      }
    +    }, /*#__PURE__*/React.createElement(Button, {
    +      onClick: () => {
    +        if (confirm('⚠️ 确定要恢复出厂设置吗?\n\n这将覆盖当前所有配置项为默认值(需要点击“保存配置”才能生效)。')) {
    +          const generateDefaults = s => {
    +            const c = {};
    +            Object.entries(s).forEach(([k, v]) => {
    +              if (v.type === 'object' && v.items) {
    +                c[k] = generateDefaults(v.items);
    +              } else {
    +                c[k] = v.default !== undefined ? v.default : null;
    +              }
    +            });
    +            return c;
    +          };
    +          if (mode === 'session') {
    +            const sessionDefaults = {
    +              enable: true
    +            };
    +            schemaEntries.forEach(([k, v]) => {
    +              if (v.type === 'object' && v.items) {
    +                sessionDefaults[k] = generateDefaults(v.items);
    +              } else {
    +                sessionDefaults[k] = v.default !== undefined ? v.default : null;
    +              }
    +            });
    +            isDirtyRef.current = true;
    +            setConfig(sessionDefaults);
    +          } else {
    +            const defaults = generateDefaults(schema);
    +            isDirtyRef.current = true;
    +            setConfig(defaults);
    +          }
    +          localStorage.removeItem(getDraftKey());
    +        }
    +      },
    +      disabled: saving,
    +      variant: "outlined",
    +      color: "error",
    +      size: "medium",
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\uD83D\uDDD1\uFE0F"),
    +      sx: {
    +        minWidth: 100,
    +        borderRadius: 2,
    +        borderWidth: 1.5,
    +        fontSize: '0.875rem',
    +        '&:hover': {
    +          borderWidth: 1.5
    +        }
    +      }
    +    }, "\u6062\u590D\u9ED8\u8BA4"), /*#__PURE__*/React.createElement(Button, {
    +      onClick: () => {
    +        if (confirm('确定要撤销所有未保存的更改吗?\n\n这将重新加载服务器上已保存的配置。')) {
    +          localStorage.removeItem(getDraftKey());
    +          loadConfig();
    +        }
    +      },
    +      disabled: saving,
    +      variant: "outlined",
    +      size: "medium",
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\u21A9\uFE0F"),
    +      sx: {
    +        minWidth: 100,
    +        borderRadius: 2,
    +        borderWidth: 1.5,
    +        fontSize: '0.875rem',
    +        '&:hover': {
    +          borderWidth: 1.5
    +        }
    +      }
    +    }, "\u64A4\u9500\u66F4\u6539"), mode === 'session' && /*#__PURE__*/React.createElement(Button, {
    +      onClick: handleResetOverride,
    +      disabled: saving || !selectedSession,
    +      variant: "outlined",
    +      color: "warning",
    +      size: "medium",
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\u267B\uFE0F"),
    +      sx: {
    +        minWidth: 130,
    +        borderRadius: 2,
    +        borderWidth: 1.5,
    +        fontSize: '0.875rem',
    +        '&:hover': {
    +          borderWidth: 1.5
    +        }
    +      }
    +    }, "\u6E05\u7A7A\u4F1A\u8BDD\u8986\u5199"), /*#__PURE__*/React.createElement(Button, {
    +      variant: "contained",
    +      onClick: handleSave,
    +      disabled: saving || !canSaveSessionConfig,
    +      size: "medium",
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\uD83D\uDCBE"),
    +      sx: {
    +        minWidth: 120,
    +        borderRadius: 2,
    +        fontSize: '0.875rem',
    +        boxShadow: '0 2px 8px rgba(0, 90, 193, 0.3)',
    +        '&:hover': {
    +          boxShadow: '0 4px 12px rgba(0, 90, 193, 0.4)'
    +        }
    +      }
    +    }, saving ? '保存中...' : !canSaveSessionConfig && mode === 'session' ? '当前会话不可保存' : mode === 'session' ? '保存会话配置' : '保存配置'))));
    +  }
    +  window.ConfigRenderer = ConfigRenderer;
    +})();
    +
    +
    +/* js/views/ConfigView.jsx */
    +(() => {
    +  /**
    +   * 文件职责:配置页视图容器,负责承载配置页头部结构并挂载 ConfigRenderer。
    +   */
    +
    +  const {
    +    Box,
    +    Typography
    +  } = MaterialUI;
    +  function ConfigView() {
    +    return (
    +      /*#__PURE__*/
    +      // 该视图本身只负责提供页面容器与标题,真正的配置编辑逻辑全部下沉到 ConfigRenderer。
    +      React.createElement(Box, {
    +        sx: {
    +          height: '100%'
    +        }
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "card config-card"
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "config-header"
    +      }, /*#__PURE__*/React.createElement("div", {
    +        style: {
    +          display: 'flex',
    +          alignItems: 'center',
    +          gap: '12px'
    +        }
    +      }, /*#__PURE__*/React.createElement("div", {
    +        style: {
    +          width: '4px',
    +          height: '24px',
    +          background: 'var(--md-sys-color-primary)',
    +          borderRadius: '2px'
    +        }
    +      }), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "h6",
    +        sx: {
    +          fontWeight: 800,
    +          letterSpacing: '-0.5px'
    +        }
    +      }, "\u914D\u7F6E\u7BA1\u7406"))), /*#__PURE__*/React.createElement(ConfigRenderer, null)))
    +    );
    +  }
    +
    +  // 暴露为全局视图组件,供应用入口按 currentView 渲染。
    +  window.ConfigView = ConfigView;
    +})();
    +
    +
    +/* js/views/TasksView.jsx */
    +(() => {
    +  /**
    +   * 文件职责:任务页视图,负责调度任务列表、倒计时进度与任务操作入口展示。
    +   */
    +
    +  const {
    +    Box,
    +    Typography,
    +    Button,
    +    Chip
    +  } = MaterialUI;
    +  function normalizeTimestampValue(value) {
    +    // 兼容后端可能返回“秒级”或“毫秒级”时间戳;统一规整为毫秒再交给 Date 处理。
    +    if (value === null || value === undefined || value === '') return null;
    +    if (typeof value === 'number') {
    +      return value < 1000000000000 ? value * 1000 : value;
    +    }
    +    return value;
    +  }
    +  function resolveTaskProgress(job, nowMs) {
    +    const nextRun = parseDateish(job.next_run_time);
    +    const nextTrigger = parseDateish(normalizeTimestampValue(job.next_trigger_time));
    +    const scheduledAtMs = normalizeTimestampValue(job.last_scheduled_at);
    +    const randomIntervalSeconds = Number(job.last_schedule_random_interval_seconds);
    +    const minIntervalSeconds = Number(job.last_schedule_min_interval_seconds);
    +    const maxIntervalSeconds = Number(job.last_schedule_max_interval_seconds);
    +    if (!nextRun) {
    +      // 若调度器未给出下一次执行时间,则返回一组可安全渲染的默认元信息。
    +      return {
    +        nextRun: null,
    +        nextTrigger,
    +        remainingSeconds: 0,
    +        remainingText: '--',
    +        countdownText: '暂无有效执行时间',
    +        friendlyText: '--',
    +        status: 'unknown',
    +        statusLabel: '待确认',
    +        progressPercent: 0
    +      };
    +    }
    +
    +    // remainingSeconds 驱动任务卡片的倒计时、状态颜色与进度条表现。
    +    const remainingSeconds = Math.max(0, Math.ceil((nextRun.getTime() - nowMs) / 1000));
    +    const friendlyText = formatFriendlyTime(nextRun, 'Asia/Shanghai');
    +    const remainingText = remainingSeconds > 0 ? formatDuration(remainingSeconds, {
    +      compact: true,
    +      maxUnits: 3
    +    }) : '已到触发时间';
    +    let status = 'future';
    +    let statusLabel = '正常排队';
    +    if (remainingSeconds <= 0) {
    +      status = 'expired';
    +      statusLabel = '待刷新';
    +    } else if (remainingSeconds <= 300) {
    +      status = 'urgent';
    +      statusLabel = '即将触发';
    +    } else if (remainingSeconds <= 1800) {
    +      status = 'soon';
    +      statusLabel = '等待触发';
    +    }
    +
    +    // 优先使用更明确的随机调度窗口;若缺失,再尝试用 nextTrigger / max / min 区间推导。
    +    const candidateWindowSeconds = [randomIntervalSeconds, nextTrigger ? Math.max(0, Math.round((nextTrigger.getTime() - nowMs) / 1000)) : 0, maxIntervalSeconds, minIntervalSeconds].filter(value => Number.isFinite(value) && value > 0);
    +    const windowSeconds = candidateWindowSeconds.length > 0 ? candidateWindowSeconds[0] : 0;
    +    let progressPercent = remainingSeconds <= 0 ? 100 : 0;
    +    if (windowSeconds > 0) {
    +      let elapsedSeconds = 0;
    +      if (scheduledAtMs) {
    +        // 若保存了调度创建时刻,则以真实经历时长计算进度更准确。
    +        elapsedSeconds = Math.max(0, (nowMs - scheduledAtMs) / 1000);
    +      } else {
    +        // 否则退化为“总窗口 - 剩余时间”的近似值。
    +        elapsedSeconds = Math.max(0, windowSeconds - remainingSeconds);
    +      }
    +      progressPercent = Math.max(0, Math.min(100, Math.round(elapsedSeconds / windowSeconds * 100)));
    +    }
    +    return {
    +      nextRun,
    +      nextTrigger,
    +      remainingSeconds,
    +      remainingText,
    +      countdownText: remainingSeconds > 0 ? `${remainingText} 后执行` : '等待下一轮刷新确认',
    +      friendlyText,
    +      status,
    +      statusLabel,
    +      progressPercent
    +    };
    +  }
    +  function formatQuietHoursText(value) {
    +    const raw = String(value || '').trim();
    +    if (!raw) return '未配置';
    +    const matched = raw.match(/^(\d{1,2})\s*-\s*(\d{1,2})$/);
    +    if (!matched) return raw;
    +    const startHour = Number(matched[1]);
    +    const endHour = Number(matched[2]);
    +    if (!Number.isInteger(startHour) || !Number.isInteger(endHour)) return raw;
    +    if (startHour < 0 || startHour > 23 || endHour < 0 || endHour > 23) return raw;
    +    return `${String(startHour).padStart(2, '0')}:00 - ${String(endHour).padStart(2, '0')}:00`;
    +  }
    +  function formatScheduleIntervalText(minMinutes, maxMinutes) {
    +    const minValue = Number(minMinutes);
    +    const maxValue = Number(maxMinutes);
    +    const hasMin = Number.isFinite(minValue) && minValue > 0;
    +    const hasMax = Number.isFinite(maxValue) && maxValue > 0;
    +    if (!hasMin && !hasMax) return '未配置';
    +    if (hasMin && hasMax) {
    +      if (minValue > maxValue) {
    +        return `配置异常:${minValue} > ${maxValue} 分钟`;
    +      }
    +      return `${minValue} - ${maxValue} 分钟`;
    +    }
    +    if (hasMin) return `${minValue} 分钟`;
    +    return `${maxValue} 分钟`;
    +  }
    +  function TasksView({
    +    onRefresh
    +  }) {
    +    const {
    +      state,
    +      dispatch
    +    } = useAppContext();
    +    const api = useApi();
    +    // 每秒刷新当前时间,驱动任务卡片上的倒计时与进度条更新。
    +    const [nowMs, setNowMs] = React.useState(Date.now());
    +    const [triggerFeedbackMap, setTriggerFeedbackMap] = React.useState({});
    +    const [rescheduleFeedbackMap, setRescheduleFeedbackMap] = React.useState({});
    +    const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai';
    +    React.useEffect(() => {
    +      const timer = setInterval(() => {
    +        setNowMs(Date.now());
    +      }, 1000);
    +      return () => clearInterval(timer);
    +    }, []);
    +    const triggerNow = async session => {
    +      setTriggerFeedbackMap(prev => ({
    +        ...prev,
    +        [session]: {
    +          status: 'pending',
    +          text: '正在触发,等待 LLM 回复完成…'
    +        }
    +      }));
    +      try {
    +        // 手动触发后会重新走一次父级全量刷新,确保状态页与任务页同步更新。
    +        const result = await api.triggerJob(session);
    +        setTriggerFeedbackMap(prev => ({
    +          ...prev,
    +          [session]: {
    +            status: 'pending',
    +            text: result?.message || '已开始立即触发,正在等待 LLM 回复完成…'
    +          }
    +        }));
    +        await onRefresh();
    +      } catch (e) {
    +        setTriggerFeedbackMap(prev => ({
    +          ...prev,
    +          [session]: {
    +            status: 'error',
    +            text: e.message || '触发任务失败,请稍后重试'
    +          }
    +        }));
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '触发任务失败'
    +        });
    +      }
    +    };
    +    const cancelJob = async session => {
    +      try {
    +        await api.cancelJob(session);
    +        await onRefresh();
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '取消任务失败'
    +        });
    +      }
    +    };
    +    const rescheduleJob = async session => {
    +      setRescheduleFeedbackMap(prev => ({
    +        ...prev,
    +        [session]: {
    +          status: 'pending',
    +          text: '正在重新调度下一次主动消息时间…'
    +        }
    +      }));
    +      try {
    +        const result = await api.rescheduleJob(session);
    +        setRescheduleFeedbackMap(prev => ({
    +          ...prev,
    +          [session]: {
    +            status: 'success',
    +            text: result?.message || '已重新调度下一次主动消息时间'
    +          }
    +        }));
    +        await onRefresh();
    +      } catch (e) {
    +        setRescheduleFeedbackMap(prev => ({
    +          ...prev,
    +          [session]: {
    +            status: 'error',
    +            text: e.message || '重新调度失败,请稍后重试'
    +          }
    +        }));
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '重新调度失败'
    +        });
    +      }
    +    };
    +    const jobs = state.jobs || [];
    +    React.useEffect(() => {
    +      setTriggerFeedbackMap(prev => {
    +        let changed = false;
    +        const next = {
    +          ...prev
    +        };
    +        jobs.forEach(job => {
    +          if (job.manual_trigger_in_progress) {
    +            const current = next[job.id];
    +            const expectedText = '正在触发,等待 LLM 回复完成…';
    +            if (!current || current.status !== 'pending' || current.text !== expectedText) {
    +              next[job.id] = {
    +                status: 'pending',
    +                text: expectedText
    +              };
    +              changed = true;
    +            }
    +            return;
    +          }
    +          if (next[job.id]?.status === 'pending') {
    +            next[job.id] = {
    +              status: 'success',
    +              text: '本次立即触发已完成,按钮已恢复可用'
    +            };
    +            changed = true;
    +          }
    +        });
    +        return changed ? next : prev;
    +      });
    +    }, [jobs]);
    +    React.useEffect(() => {
    +      const successEntries = Object.entries(triggerFeedbackMap).filter(([, value]) => value?.status === 'success');
    +      if (successEntries.length === 0) {
    +        return undefined;
    +      }
    +      const timers = successEntries.map(([sessionId]) => setTimeout(() => {
    +        setTriggerFeedbackMap(prev => {
    +          const current = prev[sessionId];
    +          if (!current || current.status !== 'success') {
    +            return prev;
    +          }
    +          const next = {
    +            ...prev
    +          };
    +          delete next[sessionId];
    +          return next;
    +        });
    +      }, 3000));
    +      return () => {
    +        timers.forEach(timer => clearTimeout(timer));
    +      };
    +    }, [triggerFeedbackMap]);
    +    React.useEffect(() => {
    +      const successEntries = Object.entries(rescheduleFeedbackMap).filter(([, value]) => value?.status === 'success');
    +      if (successEntries.length === 0) {
    +        return undefined;
    +      }
    +      const timers = successEntries.map(([sessionId]) => setTimeout(() => {
    +        setRescheduleFeedbackMap(prev => {
    +          const current = prev[sessionId];
    +          if (!current || current.status !== 'success') {
    +            return prev;
    +          }
    +          const next = {
    +            ...prev
    +          };
    +          delete next[sessionId];
    +          return next;
    +        });
    +      }, 3000));
    +      return () => {
    +        timers.forEach(timer => clearTimeout(timer));
    +      };
    +    }, [rescheduleFeedbackMap]);
    +    return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Box, {
    +      className: "tasks-header-row"
    +    }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 0.5
    +      }
    +    }, `调度任务 (当前共 ${jobs.length} 个调度任务)`)), /*#__PURE__*/React.createElement(Button, {
    +      variant: "contained",
    +      onClick: onRefresh,
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\uD83D\uDD04"),
    +      sx: {
    +        borderRadius: 3,
    +        boxShadow: 'none',
    +        px: 2.25
    +      }
    +    }, "\u5237\u65B0\u4EFB\u52A1")), jobs.length === 0 ? /*#__PURE__*/React.createElement("div", {
    +      className: "card tasks-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\uD83E\uDE84"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u6682\u65E0\u8C03\u5EA6\u4EFB\u52A1"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      color: "text.secondary"
    +    }, "\u5F53\u524D\u6CA1\u6709\u5F85\u6267\u884C\u7684\u4E3B\u52A8\u6D88\u606F\u4EFB\u52A1\u3002\u5F53\u4F1A\u8BDD\u6EE1\u8DB3\u8C03\u5EA6\u6761\u4EF6\u540E\uFF0C\u8FD9\u91CC\u4F1A\u81EA\u52A8\u5C55\u793A\u4EFB\u52A1\u5361\u7247\u4E0E\u5012\u8BA1\u65F6\u4FE1\u606F\u3002")) : /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-grid-enhanced"
    +    }, jobs.map(job => {
    +      // 每张任务卡在渲染前先推导出倒计时、状态与进度等派生信息。
    +      const task = resolveTaskProgress(job, nowMs);
    +      const chipColor = job.unanswered_count > 0 ? 'warning' : 'default';
    +      const sessionIdText = String(job.id || '');
    +      const sessionDisplayName = String(job.session_display_name || job.session_name || sessionIdText || '--');
    +      const hasAlias = Boolean(sessionDisplayName && sessionIdText && sessionDisplayName !== sessionIdText);
    +      const sessionSubText = hasAlias ? sessionIdText : '';
    +      const sourceModeLabel = resolveSourceModeLabel(job.source_mode);
    +      const unansweredLabel = formatUnansweredLabel(job.unanswered_count, job.max_unanswered_times);
    +      const isTriggerRunning = Boolean(job.manual_trigger_in_progress);
    +      const triggerFeedback = triggerFeedbackMap[job.id];
    +      const rescheduleFeedback = rescheduleFeedbackMap[job.id];
    +      const isRescheduling = rescheduleFeedback?.status === 'pending';
    +      const triggerButtonLabel = isTriggerRunning ? '触发中…' : '立即触发';
    +      const triggerHelperText = isTriggerRunning ? triggerFeedback?.text || '正在触发,等待 LLM 回复完成…' : triggerFeedback?.text;
    +      const rescheduleHelperText = rescheduleFeedback?.text;
    +      const scheduleIntervalText = formatScheduleIntervalText(job.schedule_min_interval_minutes, job.schedule_max_interval_minutes);
    +      const quietHoursText = formatQuietHoursText(job.quiet_hours);
    +      return /*#__PURE__*/React.createElement("div", {
    +        className: `card task-card-enhanced ${task.status === 'urgent' ? 'is-urgent' : ''} ${task.status === 'expired' ? 'is-expired' : ''}`,
    +        key: job.id
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "task-card-top",
    +        style: {
    +          overflow: 'visible'
    +        }
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "task-card-title-block",
    +        style: {
    +          overflow: 'visible'
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "subtitle2",
    +        className: "task-card-kicker"
    +      }, "\u4F1A\u8BDD"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body1",
    +        className: `task-card-session ${hasAlias ? 'is-primary' : 'mono'}`
    +      }, sessionDisplayName)), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          flexDirection: 'column',
    +          alignItems: 'flex-end',
    +          gap: 1,
    +          flexShrink: 0
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'inline-flex',
    +          alignItems: 'center',
    +          justifyContent: 'center',
    +          px: 1.25,
    +          py: 0.5,
    +          borderRadius: '999px',
    +          fontSize: 11,
    +          fontWeight: 800,
    +          whiteSpace: 'nowrap',
    +          border: '1px solid rgba(103, 80, 164, 0.18)',
    +          background: 'rgba(103, 80, 164, 0.08)',
    +          color: 'var(--md-sys-color-primary)',
    +          lineHeight: 1.2
    +        }
    +      }, sourceModeLabel), /*#__PURE__*/React.createElement(Chip, {
    +        label: unansweredLabel,
    +        size: "small",
    +        color: chipColor,
    +        variant: job.unanswered_count > 0 ? 'filled' : 'outlined'
    +      }))), sessionSubText ? /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        className: "task-card-session-sub mono",
    +        sx: {
    +          display: 'block',
    +          width: '100%',
    +          mt: -0.5,
    +          mb: 0.5,
    +          overflow: 'visible',
    +          whiteSpace: 'nowrap'
    +        }
    +      }, `UMO · ${sessionSubText}`) : null, /*#__PURE__*/React.createElement("div", {
    +        className: "task-next-run-panel"
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "task-next-run-primary-row"
    +      }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        className: "task-next-run-label"
    +      }, "\u4E0B\u4E00\u6B21\u6267\u884C\u65F6\u95F4"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        className: "task-next-run-time"
    +      }, task.nextRun ? formatDateTime(task.nextRun, displayTimezone, {
    +        includeYear: true,
    +        includeSeconds: true
    +      }) : '--')), /*#__PURE__*/React.createElement("div", {
    +        className: `task-status-pill is-${task.status}`
    +      }, task.statusLabel)), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        className: "task-countdown-text"
    +      }, task.countdownText), /*#__PURE__*/React.createElement("div", {
    +        className: "task-progress-track"
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: `task-progress-bar is-${task.status}`,
    +        style: {
    +          width: `${task.progressPercent}%`
    +        }
    +      }))), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          mt: 1.5,
    +          display: 'grid',
    +          gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',
    +          gap: 1.25
    +        }
    +      }, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          px: 1.5,
    +          py: 1.25,
    +          borderRadius: 2.5,
    +          border: '1px solid rgba(103, 80, 164, 0.12)',
    +          background: 'rgba(103, 80, 164, 0.04)',
    +          minWidth: 0
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        sx: {
    +          color: 'text.secondary',
    +          display: 'block',
    +          mb: 0.4
    +        }
    +      }, "\u8C03\u5EA6\u95F4\u9694"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        sx: {
    +          fontWeight: 600,
    +          color: 'text.primary'
    +        }
    +      }, scheduleIntervalText)), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          px: 1.5,
    +          py: 1.25,
    +          borderRadius: 2.5,
    +          border: '1px solid rgba(103, 80, 164, 0.12)',
    +          background: 'rgba(103, 80, 164, 0.04)',
    +          minWidth: 0
    +        }
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        sx: {
    +          color: 'text.secondary',
    +          display: 'block',
    +          mb: 0.4
    +        }
    +      }, "\u514D\u6253\u6270\u65F6\u6BB5"), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        sx: {
    +          fontWeight: 600,
    +          color: 'text.primary'
    +        }
    +      }, quietHoursText))), /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          flexDirection: 'column',
    +          gap: 1,
    +          mt: 'auto',
    +          pt: 1.5
    +        }
    +      }, triggerHelperText ? /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        sx: {
    +          minHeight: 20,
    +          color: triggerFeedback?.status === 'error' ? 'error.main' : triggerFeedback?.status === 'success' ? 'success.main' : 'text.secondary'
    +        }
    +      }, triggerHelperText) : null, rescheduleHelperText ? /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        sx: {
    +          minHeight: 20,
    +          color: rescheduleFeedback?.status === 'error' ? 'error.main' : rescheduleFeedback?.status === 'success' ? 'success.main' : 'text.secondary'
    +        }
    +      }, rescheduleHelperText) : null, /*#__PURE__*/React.createElement(Box, {
    +        sx: {
    +          display: 'flex',
    +          gap: 1
    +        }
    +      }, /*#__PURE__*/React.createElement(Button, {
    +        variant: "outlined",
    +        size: "small",
    +        fullWidth: true,
    +        disabled: isTriggerRunning || isRescheduling,
    +        onClick: () => triggerNow(job.id),
    +        sx: {
    +          borderRadius: 2.5
    +        }
    +      }, triggerButtonLabel), /*#__PURE__*/React.createElement(Button, {
    +        variant: "outlined",
    +        size: "small",
    +        fullWidth: true,
    +        disabled: isTriggerRunning || isRescheduling,
    +        onClick: () => rescheduleJob(job.id),
    +        sx: {
    +          borderRadius: 2.5
    +        }
    +      }, isRescheduling ? '重新调度中…' : '重新调度'), /*#__PURE__*/React.createElement(Button, {
    +        variant: "outlined",
    +        color: "error",
    +        size: "small",
    +        fullWidth: true,
    +        disabled: isRescheduling,
    +        onClick: () => cancelJob(job.id),
    +        sx: {
    +          borderRadius: 2.5
    +        }
    +      }, "\u53D6\u6D88\u4EFB\u52A1"))));
    +    })));
    +  }
    +
    +  // 暴露为全局视图组件,供应用入口按 currentView 切换。
    +  window.TasksView = TasksView;
    +})();
    +
    +
    +/* js/views/NotificationsView.jsx */
    +(() => {
    +  /**
    +   * 文件职责:通知中心视图,负责通知列表展示、已读状态操作与手动刷新交互。
    +   */
    +
    +  const {
    +    Box,
    +    Typography,
    +    Button,
    +    Chip
    +  } = MaterialUI;
    +  const NOTIFICATION_TYPE_META = {
    +    // 不同类型通知映射到不同的 UI 标签与颜色语义,便于用户快速区分内容性质。
    +    UPDATE: {
    +      label: '更新通知',
    +      color: 'info'
    +    },
    +    BUGFIX: {
    +      label: '修复通知',
    +      color: 'success'
    +    },
    +    NOTICE: {
    +      label: '公告通知',
    +      color: 'warning'
    +    },
    +    SECURITY: {
    +      label: '安全通知',
    +      color: 'error'
    +    },
    +    TEST: {
    +      label: '测试通知',
    +      color: 'default'
    +    }
    +  };
    +  const NOTIFICATION_TYPE_ALIASES = {
    +    // 兼容后端可能输出的别名类型,统一归并后再进入主映射表。
    +    INFO: 'NOTICE'
    +  };
    +  function resolveNotificationTypeMeta(type) {
    +    const normalizedType = String(type || '').trim().toUpperCase();
    +    const canonicalType = NOTIFICATION_TYPE_ALIASES[normalizedType] || normalizedType;
    +    // 即使类型未知,也返回兜底标签,避免前端因为类型缺失出现空白 chip。
    +    return NOTIFICATION_TYPE_META[canonicalType] || {
    +      label: '其他通知',
    +      color: 'default'
    +    };
    +  }
    +  function renderNotificationContent(item) {
    +    // 通知正文无论来自纯文本还是 Markdown,都先走统一内容规范化,避免换行格式不一致。
    +    const content = window.MarkdownRenderUtil.normalizeMarkdownContent(item?.content || '--');
    +    const format = String(item?.content_format || 'text').trim().toLowerCase();
    +    const shouldRenderMarkdown = format === 'markdown' || window.MarkdownRenderUtil.isProbablyMarkdown(content);
    +    if (!shouldRenderMarkdown) {
    +      return /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body2",
    +        className: "task-countdown-text notification-feed-content-text notification-feed-content-text-plain",
    +        sx: {
    +          whiteSpace: 'pre-wrap',
    +          lineHeight: 1.85
    +        }
    +      }, content);
    +    }
    +    return /*#__PURE__*/React.createElement(Box, {
    +      className: "task-countdown-text notification-feed-content-text notification-md"
    +      // Markdown HTML 已在公共工具中做过 sanitize,这里只负责挂载结果。
    +      ,
    +      dangerouslySetInnerHTML: {
    +        __html: window.MarkdownRenderUtil.renderMarkdownToHtml(content)
    +      }
    +    });
    +  }
    +  function NotificationsView({
    +    onRefresh
    +  }) {
    +    const {
    +      state,
    +      dispatch
    +    } = useAppContext();
    +    const api = useApi();
    +    // 兜底保证渲染层始终拿到数组,避免 map 时出现空值异常。
    +    const notifications = Array.isArray(state.notifications) ? state.notifications : [];
    +    const notificationsMeta = state.notificationsMeta || {
    +      unread_count: 0,
    +      last_sync_at: '',
    +      total_count: 0
    +    };
    +    const displayTimezone = state.config?.displayTimezone || 'Asia/Shanghai';
    +    // busyAction 用单字符串标记当前进行中的动作,便于按钮粒度控制禁用状态。
    +    const [busyAction, setBusyAction] = React.useState('');
    +    const refreshFromServer = async () => {
    +      setBusyAction('refresh');
    +      try {
    +        const payload = await api.refreshNotifications();
    +        // 先写回刷新接口直接返回的最新通知快照,再触发上层全量刷新补齐其它区域状态。
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS',
    +          payload: payload.items || []
    +        });
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS_META',
    +          payload: payload.meta || null
    +        });
    +        await onRefresh();
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '刷新通知失败'
    +        });
    +      } finally {
    +        setBusyAction('');
    +      }
    +    };
    +    const markOneAsRead = async id => {
    +      setBusyAction(`read-${id}`);
    +      try {
    +        const payload = await api.readNotification(id);
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS_META',
    +          payload: payload.meta || null
    +        });
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS',
    +          // 单条已读时直接在本地列表上做映射更新,避免为了一个按钮再整页重载。
    +          payload: notifications.map(item => Number(item.id) === Number(id) ? {
    +            ...item,
    +            _read: true
    +          } : item)
    +        });
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '标记已读失败'
    +        });
    +      } finally {
    +        setBusyAction('');
    +      }
    +    };
    +    const markAllAsRead = async () => {
    +      setBusyAction('read-all');
    +      try {
    +        const payload = await api.readAllNotifications();
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS_META',
    +          payload: payload.meta || null
    +        });
    +        dispatch({
    +          type: 'SET_NOTIFICATIONS',
    +          // 全部已读时直接把当前列表统一标成已读,保证交互即时反馈。
    +          payload: notifications.map(item => ({
    +            ...item,
    +            _read: true
    +          }))
    +        });
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '全部已读失败'
    +        });
    +      } finally {
    +        setBusyAction('');
    +      }
    +    };
    +    return /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-view"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card notifications-hero-card"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      className: "tasks-header-row notifications-header-row"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-header-main"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-title-row"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.25,
    +        flexWrap: 'wrap'
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 800
    +      }
    +    }, `通知中心 (当前共 ${notificationsMeta.total_count || notifications.length} 条通知)`), /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'inline-flex',
    +        alignItems: 'center',
    +        gap: 0.75,
    +        px: 1.25,
    +        py: 0.6,
    +        borderRadius: 999,
    +        fontSize: '0.82rem',
    +        fontWeight: 700,
    +        lineHeight: 1,
    +        border: '1px solid',
    +        // 未读状态通过暖色强调,全部已读则回落到绿色提示“状态良好”。
    +        borderColor: Number(notificationsMeta.unread_count ?? 0) > 0 ? 'rgba(245, 158, 11, 0.28)' : 'rgba(46, 125, 50, 0.18)',
    +        background: Number(notificationsMeta.unread_count ?? 0) > 0 ? 'rgba(245, 158, 11, 0.12)' : 'rgba(46, 125, 50, 0.08)',
    +        color: Number(notificationsMeta.unread_count ?? 0) > 0 ? '#B45309' : '#2E7D32'
    +      }
    +    }, Number(notificationsMeta.unread_count ?? 0) > 0 ? `未读 ${Number(notificationsMeta.unread_count ?? 0)} 条` : '全部已读')), /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-inline-meta"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-inline-meta-item is-pill"
    +    }, /*#__PURE__*/React.createElement("span", {
    +      className: "notifications-inline-meta-label"
    +    }, "\u672A\u8BFB\u901A\u77E5"), /*#__PURE__*/React.createElement("strong", null, Number(notificationsMeta.unread_count ?? 0))), /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-inline-meta-item is-pill"
    +    }, /*#__PURE__*/React.createElement("span", {
    +      className: "notifications-inline-meta-label"
    +    }, "\u4E0A\u6B21\u540C\u6B65"), /*#__PURE__*/React.createElement("strong", null, notificationsMeta.last_sync_at ? formatDateTime(notificationsMeta.last_sync_at, displayTimezone, {
    +      includeYear: true,
    +      includeSeconds: true
    +    }) : '--')))), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "tasks-header-subtitle"
    +    }, "\u7528\u4E8E\u63A5\u6536\u63D2\u4EF6\u66F4\u65B0\u3001\u4FEE\u590D\u8BF4\u660E\u3001\u6CE8\u610F\u4E8B\u9879\u7B49\u5B98\u65B9\u901A\u77E5\u3002")), /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-actions-row"
    +    }, /*#__PURE__*/React.createElement(Button, {
    +      variant: "outlined",
    +      onClick: markAllAsRead,
    +      disabled: busyAction === 'read-all' || notifications.length === 0,
    +      sx: {
    +        borderRadius: 3
    +      }
    +    }, "\u5168\u90E8\u5DF2\u8BFB"), /*#__PURE__*/React.createElement(Button, {
    +      variant: "contained",
    +      onClick: refreshFromServer,
    +      disabled: busyAction === 'refresh',
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\uD83D\uDD04"),
    +      sx: {
    +        borderRadius: 3,
    +        boxShadow: 'none',
    +        px: 2.25
    +      }
    +    }, "\u7ACB\u5373\u540C\u6B65")))), notifications.length === 0 ? /*#__PURE__*/React.createElement("div", {
    +      className: "card tasks-empty-card notifications-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\uD83D\uDD14"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u6682\u65E0\u901A\u77E5"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      color: "text.secondary"
    +    }, "\u5F53\u524D\u8FD8\u6CA1\u6709\u53EF\u5C55\u793A\u7684\u7CFB\u7EDF\u901A\u77E5\uFF0C\u540E\u7EED\u82E5\u6709\u63D2\u4EF6\u66F4\u65B0\u3001\u4FEE\u590D\u8BF4\u660E\u6216\u6CE8\u610F\u4E8B\u9879\uFF0C\u8FD9\u91CC\u4F1A\u81EA\u52A8\u51FA\u73B0\u3002")) : /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-feed-list"
    +    }, notifications.map(item => {
    +      const meta = resolveNotificationTypeMeta(item.type);
    +      const isRead = Boolean(item._read) || false;
    +      return /*#__PURE__*/React.createElement("div", {
    +        className: `card task-card-enhanced notification-feed-card ${isRead ? 'is-read' : 'is-urgent'}`,
    +        key: item.id
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "task-card-top notification-feed-card-top"
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "notification-feed-heading-group"
    +      }, /*#__PURE__*/React.createElement(Typography, {
    +        variant: "body1",
    +        className: "task-card-session is-primary notification-feed-title"
    +      }, item.title || '--'), /*#__PURE__*/React.createElement(Chip, {
    +        className: "notification-feed-type-chip",
    +        label: meta.label,
    +        size: "small",
    +        color: meta.color,
    +        variant: "outlined"
    +      })), /*#__PURE__*/React.createElement("div", {
    +        className: "notification-feed-side notification-feed-meta-inline"
    +      }, /*#__PURE__*/React.createElement("span", {
    +        className: `notification-feed-status-pill ${isRead ? 'is-read' : 'is-unread'}`
    +      }, isRead ? '已读' : '未读'), /*#__PURE__*/React.createElement(Typography, {
    +        variant: "caption",
    +        className: "task-card-session-sub mono notification-feed-time"
    +      }, formatDateTime(item.created_at, displayTimezone, {
    +        includeYear: true,
    +        includeSeconds: true
    +      })))), /*#__PURE__*/React.createElement("div", {
    +        className: "task-next-run-panel notification-feed-content-panel"
    +      }, renderNotificationContent(item), /*#__PURE__*/React.createElement(Box, {
    +        className: "notification-feed-actions notification-feed-actions-inside"
    +      }, /*#__PURE__*/React.createElement(Button, {
    +        variant: "outlined",
    +        size: "small",
    +        disabled: isRead || busyAction === `read-${item.id}`,
    +        onClick: () => markOneAsRead(item.id),
    +        sx: {
    +          borderRadius: 999,
    +          minWidth: 112,
    +          boxShadow: 'none'
    +        }
    +      }, isRead ? '已读' : '确认已读'))));
    +    })));
    +  }
    +  window.NotificationsView = NotificationsView;
    +})();
    +
    +
    +/* js/views/MarkdownDocsView.jsx */
    +(() => {
    +  /**
    +   * 文件职责:Markdown 文档浏览视图,负责文档目录展示、内容加载与原生 Markdown 阅读体验。
    +   */
    +
    +  const {
    +    Box,
    +    Typography,
    +    Button,
    +    Chip
    +  } = MaterialUI;
    +  function MarkdownDocsView() {
    +    const {
    +      state,
    +      dispatch
    +    } = useAppContext();
    +    const api = useApi();
    +    const articleRef = React.useRef(null);
    +    // 从全局状态读取文档目录与当前选中文档,便于视图切换后仍能保留上下文。
    +    const markdownFiles = Array.isArray(state.markdownFiles) ? state.markdownFiles : [];
    +    const markdownDocument = state.markdownDocument || null;
    +    const selectedMarkdownPath = String(state.selectedMarkdownPath || '');
    +    // 文档目录和正文分别维护加载状态,这样可以实现更细粒度的按钮禁用与空态反馈。
    +    const [loadingList, setLoadingList] = React.useState(false);
    +    const [loadingDocument, setLoadingDocument] = React.useState(false);
    +    const loadMarkdownFiles = React.useCallback(async () => {
    +      setLoadingList(true);
    +      try {
    +        const payload = await api.listMarkdownFiles();
    +        const items = Array.isArray(payload?.items) ? payload.items : [];
    +        dispatch({
    +          type: 'SET_MARKDOWN_FILES',
    +          payload: items
    +        });
    +        if (!selectedMarkdownPath && items.length > 0) {
    +          // 首次进入文档页时自动选中第一篇文档,避免右侧区域出现长时间空白。
    +          dispatch({
    +            type: 'SET_SELECTED_MARKDOWN_PATH',
    +            payload: items[0].path || ''
    +          });
    +        }
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '加载 Markdown 文档列表失败'
    +        });
    +      } finally {
    +        setLoadingList(false);
    +      }
    +    }, [api, dispatch, selectedMarkdownPath]);
    +    const loadMarkdownDocument = React.useCallback(async path => {
    +      const normalizedPath = String(path || '').trim();
    +      if (!normalizedPath) {
    +        // 空路径时直接清空当前文档,避免请求出错后残留旧内容误导用户。
    +        dispatch({
    +          type: 'SET_MARKDOWN_DOCUMENT',
    +          payload: null
    +        });
    +        return;
    +      }
    +      setLoadingDocument(true);
    +      try {
    +        const payload = await api.getMarkdownFile(normalizedPath);
    +        dispatch({
    +          type: 'SET_MARKDOWN_DOCUMENT',
    +          payload: payload || null
    +        });
    +        dispatch({
    +          type: 'SET_SELECTED_MARKDOWN_PATH',
    +          payload: normalizedPath
    +        });
    +      } catch (e) {
    +        dispatch({
    +          type: 'SET_ERROR',
    +          payload: e.message || '加载 Markdown 文档失败'
    +        });
    +      } finally {
    +        setLoadingDocument(false);
    +      }
    +    }, [api, dispatch]);
    +    React.useEffect(() => {
    +      if (markdownFiles.length === 0) {
    +        // 仅在目录为空时自动拉取,避免每次渲染都重复请求列表。
    +        loadMarkdownFiles();
    +      }
    +    }, [loadMarkdownFiles, markdownFiles.length]);
    +    React.useEffect(() => {
    +      if (!selectedMarkdownPath && markdownFiles.length > 0) {
    +        // 若当前尚未有选中文档,则默认加载目录中的第一项。
    +        loadMarkdownDocument(markdownFiles[0].path || '');
    +        return;
    +      }
    +      if (selectedMarkdownPath && (!markdownDocument || String(markdownDocument.path || '') !== selectedMarkdownPath)) {
    +        // 当选中路径变化,但正文尚未同步时,再补拉一次内容,保证左右两栏状态一致。
    +        loadMarkdownDocument(selectedMarkdownPath);
    +      }
    +    }, [loadMarkdownDocument, markdownDocument, markdownFiles, selectedMarkdownPath]);
    +    const handleRefreshCurrent = async () => {
    +      // 刷新当前文档时先刷新目录,再刷新正文,避免文件列表已经变化但正文仍指向旧路径。
    +      await loadMarkdownFiles();
    +      if (selectedMarkdownPath) {
    +        await loadMarkdownDocument(selectedMarkdownPath);
    +      }
    +    };
    +    const currentDocumentTitle = markdownDocument?.title || markdownFiles.find(item => item.path === selectedMarkdownPath)?.title || 'Markdown 文档';
    +    const currentDocumentPath = markdownDocument?.path || selectedMarkdownPath;
    +    const renderedHtml = markdownDocument?.content
    +    // 文档正文和通知正文共用同一套 MarkdownRenderUtil,确保渲染风格一致。
    +    ? window.MarkdownRenderUtil.renderMarkdownToHtml(markdownDocument.content) : '';
    +    React.useEffect(() => {
    +      const articleEl = articleRef.current;
    +      const mermaid = window.mermaid;
    +      if (!articleEl) return;
    +      const mermaidBlocks = articleEl.querySelectorAll('.notification-md-mermaid[data-mermaid-source]');
    +      if (!mermaidBlocks.length) return;
    +      if (!mermaid || typeof mermaid.render !== 'function') {
    +        mermaidBlocks.forEach(block => {
    +          block.classList.add('is-error');
    +        });
    +        return;
    +      }
    +      if (!window.__PROACTIVE_MERMAID_INITIALIZED && typeof mermaid.initialize === 'function') {
    +        mermaid.initialize({
    +          startOnLoad: false,
    +          securityLevel: 'strict',
    +          theme: state.theme === 'dark' ? 'dark' : 'default'
    +        });
    +        window.__PROACTIVE_MERMAID_INITIALIZED = true;
    +      }
    +      let disposed = false;
    +      const cleanupFns = [];
    +      const attachMermaidViewportControls = block => {
    +        const svg = block.querySelector('svg');
    +        if (!svg) return;
    +        const currentSvg = svg;
    +        const svgViewBox = currentSvg.viewBox?.baseVal;
    +        const fallbackWidth = Number(currentSvg.getAttribute('width')) || currentSvg.clientWidth || 1200;
    +        const fallbackHeight = Number(currentSvg.getAttribute('height')) || currentSvg.clientHeight || 800;
    +        const intrinsicWidth = svgViewBox && svgViewBox.width ? svgViewBox.width : fallbackWidth;
    +        const intrinsicHeight = svgViewBox && svgViewBox.height ? svgViewBox.height : fallbackHeight;
    +        currentSvg.removeAttribute('width');
    +        currentSvg.removeAttribute('height');
    +        currentSvg.style.width = `${intrinsicWidth}px`;
    +        currentSvg.style.height = `${intrinsicHeight}px`;
    +        currentSvg.style.maxWidth = 'none';
    +        currentSvg.style.maxHeight = 'none';
    +        const existingViewport = block.querySelector('.notification-md-mermaid-viewport');
    +        if (existingViewport) {
    +          existingViewport.remove();
    +        }
    +        const existingToolbar = block.parentElement?.querySelector('.notification-md-mermaid-toolbar');
    +        if (existingToolbar) {
    +          existingToolbar.remove();
    +        }
    +        const viewport = document.createElement('div');
    +        viewport.className = 'notification-md-mermaid-viewport';
    +        const canvas = document.createElement('div');
    +        canvas.className = 'notification-md-mermaid-canvas';
    +        canvas.style.width = `${intrinsicWidth}px`;
    +        canvas.style.height = `${intrinsicHeight}px`;
    +        canvas.appendChild(currentSvg);
    +        viewport.appendChild(canvas);
    +        block.appendChild(viewport);
    +        const toolbar = document.createElement('div');
    +        toolbar.className = 'notification-md-mermaid-toolbar';
    +        toolbar.innerHTML = ['', '', ''].join('');
    +        block.parentElement.insertBefore(toolbar, block);
    +        const stateRef = {
    +          scale: 1,
    +          dragging: false,
    +          pointerId: null,
    +          startX: 0,
    +          startY: 0,
    +          startScrollLeft: 0,
    +          startScrollTop: 0
    +        };
    +        const clampScale = value => Math.min(12, Math.max(0.35, value));
    +        const getFitScale = () => {
    +          const viewportWidth = viewport.clientWidth || intrinsicWidth;
    +          const viewportHeight = viewport.clientHeight || intrinsicHeight;
    +          if (!viewportWidth || !viewportHeight || !intrinsicWidth || !intrinsicHeight) {
    +            return 1;
    +          }
    +          const fitScale = Math.min(viewportWidth / intrinsicWidth, viewportHeight / intrinsicHeight, 1);
    +          return clampScale(Number(fitScale.toFixed(3)));
    +        };
    +        const applyScale = () => {
    +          canvas.style.width = `${intrinsicWidth * stateRef.scale}px`;
    +          canvas.style.height = `${intrinsicHeight * stateRef.scale}px`;
    +          currentSvg.style.width = '100%';
    +          currentSvg.style.height = '100%';
    +          requestAnimationFrame(() => {
    +            const canPanX = viewport.scrollWidth - viewport.clientWidth > 2;
    +            const canPanY = viewport.scrollHeight - viewport.clientHeight > 2;
    +            viewport.classList.toggle('is-pannable', canPanX || canPanY);
    +          });
    +        };
    +        const centerViewport = () => {
    +          const targetScrollLeft = Math.max((viewport.scrollWidth - viewport.clientWidth) / 2, 0);
    +          const targetScrollTop = Math.max((viewport.scrollHeight - viewport.clientHeight) / 2, 0);
    +          viewport.scrollLeft = targetScrollLeft;
    +          viewport.scrollTop = targetScrollTop;
    +        };
    +        const resetTransform = () => {
    +          stateRef.scale = getFitScale();
    +          applyScale();
    +          requestAnimationFrame(() => {
    +            centerViewport();
    +          });
    +        };
    +        const zoomBy = (delta, originX = null, originY = null) => {
    +          const prevScale = stateRef.scale;
    +          const nextScale = clampScale(Number((prevScale + delta).toFixed(3)));
    +          if (nextScale === prevScale) return;
    +          const viewportRect = viewport.getBoundingClientRect();
    +          const anchorClientX = originX === null ? viewportRect.left + viewportRect.width / 2 : originX;
    +          const anchorClientY = originY === null ? viewportRect.top + viewportRect.height / 2 : originY;
    +          const localX = anchorClientX - viewportRect.left;
    +          const localY = anchorClientY - viewportRect.top;
    +          const contentX = (viewport.scrollLeft + localX) / prevScale;
    +          const contentY = (viewport.scrollTop + localY) / prevScale;
    +          stateRef.scale = nextScale;
    +          applyScale();
    +          const nextScrollLeft = contentX * nextScale - localX;
    +          const nextScrollTop = contentY * nextScale - localY;
    +          viewport.scrollLeft = Math.max(0, nextScrollLeft);
    +          viewport.scrollTop = Math.max(0, nextScrollTop);
    +          if (stateRef.scale <= 1.001) {
    +            centerViewport();
    +          }
    +        };
    +        const onToolbarClick = event => {
    +          const action = event.target?.getAttribute('data-action');
    +          if (!action) return;
    +          if (action === 'zoom-in') zoomBy(0.35);
    +          if (action === 'zoom-out') zoomBy(-0.35);
    +          if (action === 'reset') resetTransform();
    +        };
    +        const onWheel = event => {
    +          if (!(event.ctrlKey || event.metaKey)) return;
    +          event.preventDefault();
    +          zoomBy(event.deltaY < 0 ? 0.28 : -0.28, event.clientX, event.clientY);
    +        };
    +        const onPointerDown = event => {
    +          const canPanX = viewport.scrollWidth - viewport.clientWidth > 2;
    +          const canPanY = viewport.scrollHeight - viewport.clientHeight > 2;
    +          if (!canPanX && !canPanY) return;
    +          stateRef.dragging = true;
    +          stateRef.pointerId = event.pointerId;
    +          stateRef.startX = event.clientX;
    +          stateRef.startY = event.clientY;
    +          stateRef.startScrollLeft = viewport.scrollLeft;
    +          stateRef.startScrollTop = viewport.scrollTop;
    +          viewport.classList.add('is-dragging');
    +          if (typeof viewport.setPointerCapture === 'function') {
    +            viewport.setPointerCapture(event.pointerId);
    +          }
    +        };
    +        const onPointerMove = event => {
    +          if (!stateRef.dragging || stateRef.pointerId !== event.pointerId) return;
    +          viewport.scrollLeft = stateRef.startScrollLeft - (event.clientX - stateRef.startX);
    +          viewport.scrollTop = stateRef.startScrollTop - (event.clientY - stateRef.startY);
    +        };
    +        const endDrag = event => {
    +          if (event && stateRef.pointerId !== event.pointerId) return;
    +          stateRef.dragging = false;
    +          viewport.classList.remove('is-dragging');
    +          if (event && typeof viewport.releasePointerCapture === 'function') {
    +            try {
    +              viewport.releasePointerCapture(event.pointerId);
    +            } catch (e) {
    +              // 某些浏览器在 pointer capture 状态不一致时会抛错,这里静默忽略。
    +            }
    +          }
    +          stateRef.pointerId = null;
    +        };
    +        toolbar.addEventListener('click', onToolbarClick);
    +        viewport.addEventListener('wheel', onWheel, {
    +          passive: false
    +        });
    +        viewport.addEventListener('pointerdown', onPointerDown);
    +        viewport.addEventListener('pointermove', onPointerMove);
    +        viewport.addEventListener('pointerup', endDrag);
    +        viewport.addEventListener('pointercancel', endDrag);
    +        cleanupFns.push(() => {
    +          toolbar.removeEventListener('click', onToolbarClick);
    +          viewport.removeEventListener('wheel', onWheel);
    +          viewport.removeEventListener('pointerdown', onPointerDown);
    +          viewport.removeEventListener('pointermove', onPointerMove);
    +          viewport.removeEventListener('pointerup', endDrag);
    +          viewport.removeEventListener('pointercancel', endDrag);
    +        });
    +        stateRef.scale = getFitScale();
    +        applyScale();
    +        requestAnimationFrame(() => {
    +          centerViewport();
    +        });
    +      };
    +      const renderAllMermaidBlocks = async () => {
    +        for (let index = 0; index < mermaidBlocks.length; index += 1) {
    +          if (disposed) return;
    +          const block = mermaidBlocks[index];
    +          const source = String(block.getAttribute('data-mermaid-source') || '').trim();
    +          if (!source) continue;
    +          const renderId = `proactive-mermaid-${currentDocumentPath || 'doc'}-${index}-${Date.now()}`.replace(/[^a-zA-Z0-9_-]/g, '-');
    +          try {
    +            block.classList.remove('is-error');
    +            if (typeof mermaid.parse === 'function') {
    +              await mermaid.parse(source, {
    +                suppressErrors: true
    +              });
    +            }
    +            const renderResult = await mermaid.render(renderId, source);
    +            if (disposed) return;
    +            block.innerHTML = renderResult?.svg || '';
    +            attachMermaidViewportControls(block);
    +          } catch (error) {
    +            if (disposed) return;
    +            block.classList.add('is-error');
    +            block.textContent = source;
    +          }
    +        }
    +      };
    +      renderAllMermaidBlocks();
    +      return () => {
    +        disposed = true;
    +        cleanupFns.forEach(cleanup => {
    +          try {
    +            cleanup();
    +          } catch (e) {
    +            // 组件卸载阶段的清理错误不影响主流程。
    +          }
    +        });
    +      };
    +    }, [currentDocumentPath, renderedHtml, state.theme]);
    +    return /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-view markdown-docs-view"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card notifications-hero-card markdown-docs-hero-card"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      className: "tasks-header-row notifications-header-row"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "notifications-header-main"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-title-row"
    +    }, /*#__PURE__*/React.createElement(Box, {
    +      sx: {
    +        display: 'flex',
    +        alignItems: 'center',
    +        gap: 1.25,
    +        flexWrap: 'wrap'
    +      }
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 800
    +      }
    +    }, `文档浏览 (当前共 ${markdownFiles.length} 份文档)`), /*#__PURE__*/React.createElement(Chip, {
    +      label: currentDocumentPath ? `当前:${currentDocumentTitle}` : '请选择文档',
    +      size: "small",
    +      color: "primary",
    +      variant: "outlined"
    +    }))), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "tasks-header-subtitle"
    +    }, "\u5728\u63D2\u4EF6\u524D\u7AEF\u4E2D\u76F4\u63A5\u9605\u8BFB\u539F\u751F Markdown \u6587\u4EF6\uFF0C\u4F8B\u5982 README\u3001CHANGELOG \u4E0E docs \u76EE\u5F55\u6587\u6863\u3002")), /*#__PURE__*/React.createElement(Box, {
    +      className: "notifications-actions-row"
    +    }, /*#__PURE__*/React.createElement(Button, {
    +      variant: "outlined",
    +      onClick: loadMarkdownFiles,
    +      disabled: loadingList,
    +      sx: {
    +        borderRadius: 3
    +      }
    +    }, "\u5237\u65B0\u76EE\u5F55"), /*#__PURE__*/React.createElement(Button, {
    +      variant: "contained",
    +      onClick: handleRefreshCurrent,
    +      disabled: loadingList || loadingDocument || !currentDocumentPath,
    +      startIcon: /*#__PURE__*/React.createElement("span", null, "\uD83D\uDCD8"),
    +      sx: {
    +        borderRadius: 3,
    +        boxShadow: 'none',
    +        px: 2.25
    +      }
    +    }, "\u5237\u65B0\u6587\u6863")))), /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-shell"
    +    }, /*#__PURE__*/React.createElement("aside", {
    +      className: "markdown-docs-aside-column"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-aside-sticky"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card markdown-docs-sidebar-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-sidebar-head"
    +    }, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "subtitle1",
    +      sx: {
    +        fontWeight: 700
    +      }
    +    }, "\u6587\u6863\u76EE\u5F55"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      color: "text.secondary"
    +    }, "\u4EC5\u5C55\u793A\u63D2\u4EF6\u76EE\u5F55\u5185\u5141\u8BB8\u6D4F\u89C8\u7684 Markdown \u6587\u4EF6\u3002")), markdownFiles.length === 0 ? /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-card markdown-docs-empty-side-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\uD83D\uDCDA"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, loadingList ? '正在加载文档列表…' : '暂无可浏览文档')) : /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-file-list"
    +    }, markdownFiles.map(item => {
    +      const isActive = item.path === currentDocumentPath;
    +      return /*#__PURE__*/React.createElement("button", {
    +        key: item.path,
    +        className: `markdown-docs-file-item ${isActive ? 'is-active' : ''}`,
    +        onClick: () => {
    +          if (isActive) {
    +            return;
    +          }
    +          loadMarkdownDocument(item.path);
    +        }
    +      }, /*#__PURE__*/React.createElement("div", {
    +        className: "markdown-docs-file-item-top"
    +      }, /*#__PURE__*/React.createElement("span", {
    +        className: "markdown-docs-file-icon"
    +      }, "\uD83D\uDCDD"), /*#__PURE__*/React.createElement("span", {
    +        className: "markdown-docs-file-title"
    +      }, item.title || item.filename || item.path)), /*#__PURE__*/React.createElement("div", {
    +        className: "markdown-docs-file-path mono"
    +      }, item.path));
    +    }))))), /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-content-column"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "card markdown-docs-content-card"
    +    }, !currentDocumentPath ? /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-card markdown-docs-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\uD83D\uDCC4"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u8BF7\u9009\u62E9\u5DE6\u4FA7\u6587\u6863"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      color: "text.secondary"
    +    }, "\u9009\u62E9\u540E\u5373\u53EF\u5728\u5F53\u524D\u7BA1\u7406\u7AEF\u4E2D\u76F4\u63A5\u9605\u8BFB Markdown \u6587\u6863\u5185\u5BB9\u3002")) : loadingDocument && !markdownDocument ? /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-card markdown-docs-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\u23F3"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u6B63\u5728\u52A0\u8F7D\u6587\u6863\u5185\u5BB9\u2026")) : markdownDocument ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    +      className: "markdown-docs-article-head"
    +    }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h5",
    +      sx: {
    +        fontWeight: 800,
    +        mb: 0.5
    +      }
    +    }, currentDocumentTitle), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body2",
    +      className: "task-card-session-sub mono"
    +    }, currentDocumentPath))), /*#__PURE__*/React.createElement(Box, {
    +      ref: articleRef,
    +      className: "task-countdown-text notification-feed-content-text notification-md markdown-docs-article"
    +      // 这里直接挂载已经渲染好的 HTML,正文样式由 notification-md 体系统一承接。
    +      ,
    +      dangerouslySetInnerHTML: {
    +        __html: renderedHtml
    +      }
    +    })) : /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-card markdown-docs-empty-card"
    +    }, /*#__PURE__*/React.createElement("div", {
    +      className: "tasks-empty-icon"
    +    }, "\u26A0\uFE0F"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "h6",
    +      sx: {
    +        fontWeight: 700,
    +        mb: 1
    +      }
    +    }, "\u6587\u6863\u6682\u65F6\u4E0D\u53EF\u7528"), /*#__PURE__*/React.createElement(Typography, {
    +      variant: "body1",
    +      color: "text.secondary"
    +    }, "\u5F53\u524D\u6587\u6863\u672A\u80FD\u6210\u529F\u52A0\u8F7D\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002"))))));
    +  }
    +  window.MarkdownDocsView = MarkdownDocsView;
    +})();
    +
    +
    +/* js/app.jsx */
    +/**
    +* 文件职责:前端应用入口,负责首屏数据加载、实时同步、视图装配与根节点挂载。
    +*/
    +
    +function App() {
    +  const {
    +    state,
    +    dispatch
    +  } = useAppContext();
    +  const api = useApi();
    +  const themeInitializedRef = React.useRef(false);
    +  const mainContentRef = React.useRef(null);
    +  const isRestoringRef = React.useRef(false);
    +  const getScrollKey = React.useCallback((view = state.currentView) => `astrbot_scroll_${view}`, [state.currentView]);
    +  const loadAll = React.useCallback(async () => {
    +    // 首次进入页面或手动全量刷新时,统一拉取首页所需的全部关键数据。
    +    dispatch({
    +      type: 'SET_LOADING',
    +      payload: true
    +    });
    +    dispatch({
    +      type: 'SET_ERROR',
    +      payload: ''
    +    });
    +    try {
    +      // 并发请求状态、会话、配置、任务与通知,减少首屏等待时间。
    +      const [statusRes, sessionsRes, configRes, jobsRes, notificationsRes] = await Promise.all([api.getStatus(), api.listSessions(), api.getConfig(), api.listJobs(), api.getNotifications()]);
    +      dispatch({
    +        type: 'SET_STATUS',
    +        payload: statusRes
    +      });
    +      dispatch({
    +        type: 'SET_SESSIONS',
    +        payload: sessionsRes.sessions || []
    +      });
    +      dispatch({
    +        type: 'SET_CONFIG',
    +        payload: configRes || null
    +      });
    +      dispatch({
    +        type: 'SET_JOBS',
    +        payload: jobsRes.jobs || []
    +      });
    +      dispatch({
    +        type: 'SET_NOTIFICATIONS',
    +        payload: notificationsRes.items || []
    +      });
    +      dispatch({
    +        type: 'SET_NOTIFICATIONS_META',
    +        payload: notificationsRes.meta || null
    +      });
    +    } catch (e) {
    +      // 将后端错误或网络错误统一透传到顶部错误卡片中展示。
    +      dispatch({
    +        type: 'SET_ERROR',
    +        payload: e.message || '加载失败'
    +      });
    +    } finally {
    +      dispatch({
    +        type: 'SET_LOADING',
    +        payload: false
    +      });
    +    }
    +  }, [api, dispatch]);
    +  const loadRealtime = React.useCallback(async () => {
    +    try {
    +      // 轻量轮询只更新变化频率最高的状态与任务列表,避免每秒都重载完整配置。
    +      const [statusRes, jobsRes] = await Promise.all([api.getStatus(), api.listJobs()]);
    +      dispatch({
    +        type: 'SET_STATUS',
    +        payload: statusRes
    +      });
    +      dispatch({
    +        type: 'SET_JOBS',
    +        payload: jobsRes.jobs || []
    +      });
    +    } catch (e) {
    +      // 兜底轮询失败不打断主界面;实时信息短暂过期比整页报错更友好。
    +    }
    +  }, [api, dispatch]);
    +  React.useEffect(() => {
    +    // 若入口页仍在等待鉴权预检查,则挂起首次加载,等 auth-ready 事件触发后再开始。
    +    if (window.__PROACTIVE_AUTH_PENDING) {
    +      const onReady = () => loadAll();
    +      window.addEventListener('auth-ready', onReady);
    +      return () => window.removeEventListener('auth-ready', onReady);
    +    }
    +    loadAll();
    +  }, [loadAll]);
    +  useWebSocket(React.useCallback(data => {
    +    // WebSocket 推送只负责把增量/全量快照写回全局状态,不在这里做业务判断。
    +    if (data.status) dispatch({
    +      type: 'SET_STATUS',
    +      payload: data.status
    +    });
    +    if (Array.isArray(data.jobs)) dispatch({
    +      type: 'SET_JOBS',
    +      payload: data.jobs
    +    });
    +    if (data.notifications) {
    +      dispatch({
    +        type: 'SET_NOTIFICATIONS',
    +        payload: data.notifications.items || []
    +      });
    +      dispatch({
    +        type: 'SET_NOTIFICATIONS_META',
    +        payload: data.notifications.meta || null
    +      });
    +    }
    +    if (data.notificationsMeta) {
    +      dispatch({
    +        type: 'SET_NOTIFICATIONS_META',
    +        payload: data.notificationsMeta || null
    +      });
    +    }
    +    if (Array.isArray(data.sessions)) {
    +      // 后端可能返回字符串数组,也可能返回对象数组,这里统一标准化结构。
    +      const mapped = data.sessions.map(s => typeof s === 'string' ? {
    +        session: s,
    +        has_override: false
    +      } : s);
    +      dispatch({
    +        type: 'SET_SESSIONS',
    +        payload: mapped
    +      });
    +    }
    +  }, [dispatch]));
    +  React.useEffect(() => {
    +    if (window.__PROACTIVE_AUTH_PENDING) return;
    +    let disposed = false;
    +    const tick = async () => {
    +      if (disposed) return;
    +      // 页面隐藏时暂停轮询,减少后台标签页的无意义请求。
    +      if (document.visibilityState === 'hidden') return;
    +      await loadRealtime();
    +    };
    +
    +    // 每秒一次兜底轮询;即便 WebSocket 短暂断开,界面也能维持基本新鲜度。
    +    const timer = setInterval(tick, 1000);
    +    return () => {
    +      disposed = true;
    +      clearInterval(timer);
    +    };
    +  }, [loadRealtime]);
    +  React.useEffect(() => {
    +    if (window.__PROACTIVE_AUTH_PENDING) return;
    +    // 兼容旧版启动节点:一旦状态已返回,就主动隐藏遗留的 boot 元素。
    +    const boot = document.getElementById('boot');
    +    if (boot) boot.style.display = 'none';
    +  }, [state.status]);
    +
    +  // 切换主视图时恢复对应滚动位置。
    +  React.useLayoutEffect(() => {
    +    const el = mainContentRef.current;
    +    if (!el) return;
    +    const key = getScrollKey();
    +    const savedPos = parseInt(localStorage.getItem(key) || '0', 10);
    +    if (savedPos > 0) {
    +      isRestoringRef.current = true;
    +      const applyRestore = () => {
    +        if (!mainContentRef.current) return;
    +        const maxScrollTop = Math.max(mainContentRef.current.scrollHeight - mainContentRef.current.clientHeight, 0);
    +        mainContentRef.current.scrollTop = Math.min(savedPos, maxScrollTop);
    +      };
    +      applyRestore();
    +      requestAnimationFrame(() => {
    +        if (!isRestoringRef.current) return;
    +        applyRestore();
    +      });
    +      const timer = window.setTimeout(() => {
    +        isRestoringRef.current = false;
    +      }, 320);
    +      return () => {
    +        window.clearTimeout(timer);
    +        isRestoringRef.current = false;
    +      };
    +    }
    +    el.scrollTop = 0;
    +    isRestoringRef.current = false;
    +  }, [state.currentView]);
    +
    +  // 记录主内容区滚动位置,并在用户主动交互时终止恢复锁。
    +  React.useEffect(() => {
    +    const el = mainContentRef.current;
    +    if (!el) return;
    +    const stopRestoring = () => {
    +      isRestoringRef.current = false;
    +    };
    +    let timeout = 0;
    +    const handleScroll = () => {
    +      if (isRestoringRef.current) {
    +        const key = getScrollKey();
    +        const savedPos = parseInt(localStorage.getItem(key) || '0', 10);
    +        if (savedPos > 0 && Math.abs(el.scrollTop - savedPos) > 100) {
    +          isRestoringRef.current = false;
    +        }
    +      }
    +      window.clearTimeout(timeout);
    +      timeout = window.setTimeout(() => {
    +        const key = getScrollKey();
    +        localStorage.setItem(key, String(el.scrollTop));
    +      }, 120);
    +    };
    +    el.addEventListener('scroll', handleScroll);
    +    el.addEventListener('wheel', stopRestoring, {
    +      passive: true
    +    });
    +    el.addEventListener('touchstart', stopRestoring, {
    +      passive: true
    +    });
    +    el.addEventListener('mousedown', stopRestoring);
    +    return () => {
    +      el.removeEventListener('scroll', handleScroll);
    +      el.removeEventListener('wheel', stopRestoring);
    +      el.removeEventListener('touchstart', stopRestoring);
    +      el.removeEventListener('mousedown', stopRestoring);
    +      window.clearTimeout(timeout);
    +    };
    +  }, [getScrollKey, state.currentView]);
    +  const renderView = () => {
    +    // 当前仅暴露三个主视图;未识别视图时回退到状态页,避免出现空白主区域。
    +    switch (state.currentView) {
    +      case 'status':
    +        return /*#__PURE__*/React.createElement(StatusView, {
    +          onRefresh: loadAll
    +        });
    +      case 'config':
    +        return /*#__PURE__*/React.createElement(ConfigView, {
    +          onRefresh: loadAll
    +        });
    +      case 'tasks':
    +        return /*#__PURE__*/React.createElement(TasksView, {
    +          onRefresh: loadAll
    +        });
    +      case 'notifications':
    +        return /*#__PURE__*/React.createElement(NotificationsView, {
    +          onRefresh: loadAll
    +        });
    +      case 'docs':
    +        return /*#__PURE__*/React.createElement(MarkdownDocsView, null);
    +      default:
    +        return /*#__PURE__*/React.createElement(StatusView, {
    +          onRefresh: loadAll
    +        });
    +    }
    +  };
    +  React.useEffect(() => {
    +    // 将暗色模式类名直接挂载到 html / body,便于纯 CSS 全局变量一起切换。
    +    const root = document.documentElement;
    +    const body = document.body;
    +    if (state.theme === 'dark') {
    +      root.classList.add('theme-dark');
    +      body.classList.add('dark-theme');
    +    } else {
    +      root.classList.remove('theme-dark');
    +      body.classList.remove('dark-theme');
    +    }
    +
    +    // 首次挂载不加过渡,避免首屏闪动;后续主题切换时才短暂打开统一过渡。
    +    if (!themeInitializedRef.current) {
    +      themeInitializedRef.current = true;
    +      return;
    +    }
    +    root.classList.add('theme-transitioning');
    +    const computedStyle = window.getComputedStyle(root);
    +    const themeTransitionVar = computedStyle.getPropertyValue('--theme-transition-duration').trim();
    +    const interactiveTransitionVar = computedStyle.getPropertyValue('--interactive-transition-duration').trim();
    +    let themeTransitionDuration = Number.parseFloat(themeTransitionVar);
    +    let interactiveTransitionDuration = Number.parseFloat(interactiveTransitionVar);
    +    if (Number.isNaN(themeTransitionDuration)) {
    +      themeTransitionDuration = 220;
    +    }
    +    if (Number.isNaN(interactiveTransitionDuration)) {
    +      interactiveTransitionDuration = themeTransitionDuration;
    +    }
    +    const transitionDuration = Math.max(themeTransitionDuration, interactiveTransitionDuration);
    +    const timer = window.setTimeout(() => {
    +      root.classList.remove('theme-transitioning');
    +    }, transitionDuration);
    +    return () => {
    +      window.clearTimeout(timer);
    +      root.classList.remove('theme-transitioning');
    +    };
    +  }, [state.theme]);
    +  return /*#__PURE__*/React.createElement("div", {
    +    className: "app"
    +  }, /*#__PURE__*/React.createElement(Sidebar, {
    +    currentView: state.currentView
    +    // 侧边栏只负责发出“切换视图”的意图,真正状态写入仍走 reducer。
    +    ,
    +    onChange: view => dispatch({
    +      type: 'SET_VIEW',
    +      payload: view
    +    })
    +  }), /*#__PURE__*/React.createElement("div", {
    +    className: "main-wrapper"
    +  }, /*#__PURE__*/React.createElement(Header, {
    +    currentView: state.currentView
    +  }), /*#__PURE__*/React.createElement("div", {
    +    className: "main-content",
    +    ref: mainContentRef
    +  }, state.error ? /*#__PURE__*/React.createElement("div", {
    +    className: "card",
    +    style: {
    +      marginBottom: 16,
    +      color: '#B3261E',
    +      background: 'rgba(179, 38, 30, 0.08)'
    +    }
    +  }, "\u9519\u8BEF\uFF1A", state.error) : null, renderView())));
    +}
    +function ThemedAppShell() {
    +  const {
    +    state
    +  } = useAppContext();
    +  const muiTheme = React.useMemo(() => {
    +    const isDark = state.theme === 'dark';
    +    return MaterialUI.createTheme({
    +      palette: isDark ? {
    +        mode: 'dark',
    +        primary: {
    +          main: '#D0BCFF'
    +        },
    +        secondary: {
    +          main: '#CCC2DC'
    +        },
    +        background: {
    +          default: '#141218',
    +          paper: '#1C1B1F'
    +        },
    +        text: {
    +          primary: '#E6E1E5',
    +          secondary: '#CAC4D0'
    +        },
    +        divider: 'rgba(208, 188, 255, 0.16)'
    +      } : {
    +        mode: 'light',
    +        primary: {
    +          main: '#6750A4'
    +        },
    +        secondary: {
    +          main: '#625B71'
    +        },
    +        background: {
    +          default: '#FEF7FF',
    +          paper: '#FFFFFF'
    +        },
    +        text: {
    +          primary: '#1C1B1F',
    +          secondary: '#49454F'
    +        },
    +        divider: 'rgba(103, 80, 164, 0.16)'
    +      },
    +      typography: {
    +        fontFamily: '"Roboto", "Noto Sans SC", "Helvetica", "Arial", sans-serif'
    +      }
    +    });
    +  }, [state.theme]);
    +  return /*#__PURE__*/React.createElement(MaterialUI.ThemeProvider, {
    +    theme: muiTheme
    +  }, /*#__PURE__*/React.createElement(App, null));
    +}
    +function AuthWrapper() {
    +  // ready 初值根据启动页鉴权状态决定,避免无鉴权场景下多等一次事件。
    +  const [ready, setReady] = React.useState(() => !window.__PROACTIVE_AUTH_PENDING);
    +  React.useEffect(() => {
    +    if (ready) return;
    +    // 等待入口页完成鉴权预检查后,再真正挂载 React 应用。
    +    const onReady = () => setReady(true);
    +    window.addEventListener('auth-ready', onReady);
    +    return () => window.removeEventListener('auth-ready', onReady);
    +  }, [ready]);
    +  if (!ready) return null;
    +  return /*#__PURE__*/React.createElement(AppProvider, null, /*#__PURE__*/React.createElement(ThemedAppShell, null));
    +}
    +if (!window.__PROACTIVE_WEBUI_INITIALIZED) {
    +  // 防止脚本重复执行时反复 createRoot,避免 React 在同一节点重复挂载。
    +  window.__PROACTIVE_WEBUI_INITIALIZED = true;
    +  const root = ReactDOM.createRoot(document.getElementById('root'));
    +  root.render(/*#__PURE__*/React.createElement(AuthWrapper, null));
    +}
    diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html
    index 1db0120..ba2bbc7 100644
    --- a/pages/proactive-chat/index.html
    +++ b/pages/proactive-chat/index.html
    @@ -1,437 +1,98 @@
    -
    +
     
     
     
         
    -    
         
         主动消息管理端
    -
    -    
    -    
    -
    -    
    -    
    -    
    -
    -    
    -    
    +    
    +    
    +    
    +    
         
         
    -
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -
    -    
    -    
     
     
     
    -    
         
    主动消息管理端
    正在初始化...
    -
    -
    - + + + + + + + + + - - - - - diff --git a/pages/proactive-chat/js/components/layout/Sidebar.jsx b/pages/proactive-chat/js/components/layout/Sidebar.jsx index bb494e1..cec9b8e 100644 --- a/pages/proactive-chat/js/components/layout/Sidebar.jsx +++ b/pages/proactive-chat/js/components/layout/Sidebar.jsx @@ -20,11 +20,11 @@ function Sidebar({ currentView, onChange }) { // 版本号来自全局状态的 status 快照;未加载前先展示占位文本。 const version = state.status?.version || '...'; const unreadNotificationCount = Math.max(0, Number(state.notificationsMeta?.unread_count ?? 0)); - const [logoSrc, setLogoSrc] = React.useState('/logo.png'); + const [logoSrc, setLogoSrc] = React.useState('./logo.png'); React.useEffect(() => { // 管理端可能被挂载在不同层级路径,依次尝试多个 logo 地址以提高兼容性。 - const candidates = ['/logo.png', '../logo.png', 'logo.png']; + const candidates = ['./logo.png', 'logo.png', '../logo.png']; let cancelled = false; async function resolveLogo() { @@ -87,7 +87,7 @@ function Sidebar({ currentView, onChange }) { className="sidebar-logo-img" onError={() => { // 图片加载失败时再尝试回退到上一级相对路径,兼容静态资源引用差异。 - if (logoSrc !== '../logo.png') setLogoSrc('../logo.png'); + if (logoSrc !== 'logo.png') setLogoSrc('logo.png'); }} />
    @@ -180,4 +180,3 @@ function Sidebar({ currentView, onChange }) { // 暴露到全局,供入口应用直接使用侧边栏组件。 window.Sidebar = Sidebar; })(); - diff --git a/pages/proactive-chat/vendor/emotion-react.umd.min.js b/pages/proactive-chat/vendor/emotion-react.umd.min.js new file mode 100644 index 0000000..8234e38 --- /dev/null +++ b/pages/proactive-chat/vendor/emotion-react.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).emotionReact={},e.React)}(this,(function(e,t){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(t);var a=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?g(_,--O):0,k--,10===E&&(k=1,C--),E}function T(){return E=O2||z(E)>3?"":" "}function L(e,t){for(;--t&&T()&&!(E<48||E>102||E>57&&E<65||E>70&&E<97););return R(e,M()+(t<6&&32==N()&&32==T()))}function W(e){for(;T();)switch(E){case e:return O;case 34:case 39:34!==e&&39!==e&&W(E);break;case 40:41===e&&W(e);break;case 92:T()}return O}function q(e,t){for(;T()&&e+E!==57&&(e+E!==84||47!==N()););return"/*"+R(t,O-1)+"*"+d(47===e?e:T())}function H(e){for(;!z(N());)T();return R(e,O)}function B(e){return D(U("",null,null,null,[""],e=F(e),0,[0],e))}function U(e,t,r,n,a,o,c,s,i){for(var u=0,f=0,l=c,p=0,h=0,y=0,b=1,x=1,C=1,k=0,S="",O=a,E=o,_=n,A=S;x;)switch(y=k,k=T()){case 40:if(108!=y&&58==g(A,l-1)){-1!=v(A+=m(I(k),"&","&\f"),"&\f")&&(C=-1);break}case 34:case 39:case 91:A+=I(k);break;case 9:case 10:case 13:case 32:A+=G(y);break;case 92:A+=L(M()-1,7);continue;case 47:switch(N()){case 42:case 47:$(Y(q(T(),M()),t,r),i);break;default:A+="/"}break;case 123*b:s[u++]=w(A)*C;case 125*b:case 59:case 0:switch(k){case 0:case 125:x=0;case 59+f:-1==C&&(A=m(A,/\f/g,"")),h>0&&w(A)-l&&$(h>32?Z(A+";",n,r,l-1):Z(m(A," ","")+";",n,r,l-2),i);break;case 59:A+=";";default:if($(_=V(A,t,r,u,f,a,s,S,O=[],E=[],l),o),123===k)if(0===f)U(A,t,_,_,O,o,l,s,E);else switch(99===p&&110===g(A,3)?100:p){case 100:case 108:case 109:case 115:U(e,_,_,n&&$(V(e,_,_,0,0,a,s,S,a,O=[],l),E),a,E,l,s,n?O:E);break;default:U(A,_,_,_,[""],E,0,s,E)}}u=f=h=0,b=C=1,S=A="",l=c;break;case 58:l=1+w(A),h=y;default:if(b<1)if(123==k)--b;else if(125==k&&0==b++&&125==j())continue;switch(A+=d(k),k*b){case 38:C=f>0?1:(A+="\f",-1);break;case 44:s[u++]=(w(A)-1)*C,C=1;break;case 64:45===N()&&(A+=I(T())),p=N(),f=l=w(S=A+=H(M())),k++;break;case 45:45===y&&2==w(A)&&(b=0)}}return o}function V(e,t,r,n,a,o,c,s,i,f,l){for(var d=a-1,h=0===a?o:[""],v=x(h),g=0,w=0,$=0;g0?h[C]+" "+k:m(k,/&\f/g,h[C])))&&(i[$++]=S);return A(e,t,r,0===a?u:s,i,f,l)}function Y(e,t,r){return A(e,t,r,i,d(E),b(e,2,-2),0)}function Z(e,t,r,n){return A(e,t,r,f,b(e,0,n),b(e,n+1,-1),n)}function J(e,t){for(var r="",n=x(e),a=0;a6)switch(g(e,t+1)){case 109:if(45!==g(e,t+4))break;case 102:return m(e,/(.+:)(.+)-([^]+)/,"$1"+s+"$2-$3$1"+c+(108==g(e,t+3)?"$3":"$2-$3"))+e;case 115:return~v(e,"stretch")?oe(m(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==g(e,t+1))break;case 6444:switch(g(e,w(e)-3-(~v(e,"!important")&&10))){case 107:return m(e,":",":"+s)+e;case 101:return m(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+s+(45===g(e,14)?"inline-":"")+"box$3$1"+s+"$2$3$1"+o+"$2box$3")+e}break;case 5936:switch(g(e,t+11)){case 114:return s+e+o+m(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return s+e+o+m(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return s+e+o+m(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return s+e+o+e+e}return e}var ce=[function(e,t,r,n){if(e.length>-1&&!e.return)switch(e.type){case f:e.return=oe(e.value,e.length);break;case l:return J([P(e,{value:m(e.value,"@","@"+s)})],n);case u:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([P(e,{props:[m(t,/:(read-\w+)/,":"+c+"$1")]})],n);case"::placeholder":return J([P(e,{props:[m(t,/:(plac\w+)/,":"+s+"input-$1")]}),P(e,{props:[m(t,/:(plac\w+)/,":"+c+"$1")]}),P(e,{props:[m(t,/:(plac\w+)/,o+"input-$1")]})],n)}return""}))}}],se=function(e){var t=e.key;if("css"===t){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var n,o,c=e.stylisPlugins||ce,s={},i=[];n=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r=4;++n,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(a){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}(a)+i;return{name:u,styles:a,next:He}}var Ve=!!n.useInsertionEffect&&n.useInsertionEffect,Ye=Ve||function(e){return e()},Ze=Ve||n.useLayoutEffect,Je="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Ke=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return je(t,r,n),Ye((function(){return Te(t,r,n)})),null},Qe=fe((function(e,t,r){var a=e.css;"string"==typeof a&&void 0!==t.registered[a]&&(a=t.registered[a]);var o=e[Je],c=[a],s="";"string"==typeof e.className?s=Pe(t.registered,c,e.className):null!=e.className&&(s=e.className+" ");var i=Ue(c,void 0,n.useContext(_e));s+=t.key+"-"+i.name;var u={};for(var f in e)Ne.call(e,f)&&"css"!==f&&f!==Je&&(u[f]=e[f]);return u.className=s,r&&(u.ref=r),n.createElement(n.Fragment,null,n.createElement(Ke,{cache:t,serialized:i,isStringTag:"string"==typeof o}),n.createElement(o,u))})),Xe=function(e,t){var r=arguments;if(null==t||!Ne.call(t,"css"))return n.createElement.apply(void 0,r);var a=r.length,o=new Array(a);o[0]=Qe,o[1]=function(e,t){var r={};for(var n in t)Ne.call(t,n)&&(r[n]=t[n]);return r[Je]=e,r}(e,t);for(var c=2;c96?l:s},d=function(e,t,r){var n;if(t){var o=t.shouldForwardProp;n=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof n&&r&&(n=e.__emotion_forwardProp),n};var u=function(e,t,r){var n=e.key+"-"+t.name;!1===r&&void 0===e.registered[n]&&(e.registered[n]=t.styles)};var p={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},f=!1,m=/[A-Z]|^ms/g,h=/_EMO_([^_]+?)_([^]*?)_EMO_/g,g=function(e){return 45===e.charCodeAt(1)},y=function(e){return null!=e&&"boolean"!=typeof e},v=i((function(e){return g(e)?e:e.replace(m,"-$&").toLowerCase()})),b=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(h,(function(e,t,r){return w={name:t,styles:r,next:w},t}))}return 1===p[e]||g(e)||"number"!=typeof t||0===t?t:t+"px"},k="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function x(e,t,r){if(null==r)return"";var n=r;if(void 0!==n.__emotion_styles)return n;switch(typeof r){case"boolean":return"";case"object":var o=r;if(1===o.anim)return w={name:o.name,styles:o.styles,next:w},o.name;var i=r;if(void 0!==i.styles){var a=i.next;if(void 0!==a)for(;void 0!==a;)w={name:a.name,styles:a.styles,next:w},a=a.next;return i.styles+";"}return function(e,t,r){var n="";if(Array.isArray(r))for(var o=0;o=4;++n,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(o){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}(o)+s;return{name:c,styles:o,next:w}}(g.concat(v),r.registered,b);y+=r.key+"-"+_.name,void 0!==l&&(y+=" "+l);var O=m&&void 0===p?c(h):f,A={};for(var P in e)m&&"as"===P||O(P)&&(A[P]=e[P]);return A.className=y,o&&(A.ref=o),n.createElement(n.Fragment,null,n.createElement(S,{cache:r,serialized:_,isStringTag:"string"==typeof h}),n.createElement(h,A))}));return b.displayName=void 0!==a?a:"Styled("+("string"==typeof u?u:u.displayName||u.name||"Component")+")",b.defaultProps=r.defaultProps,b.__emotion_real=b,b.__emotion_base=u,b.__emotion_styles=g,b.__emotion_forwardProp=p,Object.defineProperty(b,"toString",{value:function(){return"."+l}}),b.withComponent=function(t,r){return e(t,o({},i,r,{shouldForwardProp:d(b,r,!0)})).apply(void 0,g)},b}}.bind();return["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){O[e]=O(e)})),O})); +//# sourceMappingURL=emotion-styled.umd.min.js.map diff --git a/pages/proactive-chat/vendor/marked.min.js b/pages/proactive-chat/vendor/marked.min.js new file mode 100644 index 0000000..f724cc4 --- /dev/null +++ b/pages/proactive-chat/vendor/marked.min.js @@ -0,0 +1,6 @@ +/** + * marked v14.1.2 - a markdown parser + * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).marked={})}(this,(function(e){"use strict";function t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function n(t){e.defaults=t}e.defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};const s=/[&<>"']/,r=new RegExp(s.source,"g"),i=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,l=new RegExp(i.source,"g"),o={"&":"&","<":"<",">":">",'"':""","'":"'"},a=e=>o[e];function c(e,t){if(t){if(s.test(e))return e.replace(r,a)}else if(i.test(e))return e.replace(l,a);return e}const h=/(^|[^\[])\^/g;function p(e,t){let n="string"==typeof e?e:e.source;t=t||"";const s={replace:(e,t)=>{let r="string"==typeof t?t:t.source;return r=r.replace(h,"$1"),n=n.replace(e,r),s},getRegex:()=>new RegExp(n,t)};return s}function u(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const k={exec:()=>null};function g(e,t){const n=e.replace(/\|/g,((e,t,n)=>{let s=!1,r=t;for(;--r>=0&&"\\"===n[r];)s=!s;return s?"|":" |"})).split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^(?: {1,4}| {0,3}\t)/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:f(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t){const n=e.match(/^(\s+)(?:```)/);if(null===n)return t;const s=n[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[n]=t;return n.length>=s.length?e.slice(s.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=f(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:f(t[0],"\n")}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let e=f(t[0],"\n").split("\n"),n="",s="";const r=[];for(;e.length>0;){let t=!1;const i=[];let l;for(l=0;l/.test(e[l]))i.push(e[l]),t=!0;else{if(t)break;i.push(e[l])}e=e.slice(l);const o=i.join("\n"),a=o.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,"\n $1").replace(/^ {0,3}>[ \t]?/gm,"");n=n?`${n}\n${o}`:o,s=s?`${s}\n${a}`:a;const c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(a,r,!0),this.lexer.state.top=c,0===e.length)break;const h=r[r.length-1];if("code"===h?.type)break;if("blockquote"===h?.type){const t=h,i=t.raw+"\n"+e.join("\n"),l=this.blockquote(i);r[r.length-1]=l,n=n.substring(0,n.length-t.raw.length)+l.raw,s=s.substring(0,s.length-t.text.length)+l.text;break}if("list"!==h?.type);else{const t=h,i=t.raw+"\n"+e.join("\n"),l=this.list(i);r[r.length-1]=l,n=n.substring(0,n.length-h.raw.length)+l.raw,s=s.substring(0,s.length-t.raw.length)+l.raw,e=i.substring(r[r.length-1].raw.length).split("\n")}}return{type:"blockquote",raw:n,tokens:r,text:s}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim();const s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");const i=new RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`);let l=!1;for(;e;){let n=!1,s="",o="";if(!(t=i.exec(e)))break;if(this.rules.block.hr.test(e))break;s=t[0],e=e.substring(s.length);let a=t[2].split("\n",1)[0].replace(/^\t+/,(e=>" ".repeat(3*e.length))),c=e.split("\n",1)[0],h=!a.trim(),p=0;if(this.options.pedantic?(p=2,o=a.trimStart()):h?p=t[1].length+1:(p=t[2].search(/[^ ]/),p=p>4?1:p,o=a.slice(p),p+=t[1].length),h&&/^[ \t]*$/.test(c)&&(s+=c+"\n",e=e.substring(c.length+1),n=!0),!n){const t=new RegExp(`^ {0,${Math.min(3,p-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),n=new RegExp(`^ {0,${Math.min(3,p-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),r=new RegExp(`^ {0,${Math.min(3,p-1)}}(?:\`\`\`|~~~)`),i=new RegExp(`^ {0,${Math.min(3,p-1)}}#`),l=new RegExp(`^ {0,${Math.min(3,p-1)}}<[a-z].*>`,"i");for(;e;){const u=e.split("\n",1)[0];let k;if(c=u,this.options.pedantic?(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," "),k=c):k=c.replace(/\t/g," "),r.test(c))break;if(i.test(c))break;if(l.test(c))break;if(t.test(c))break;if(n.test(c))break;if(k.search(/[^ ]/)>=p||!c.trim())o+="\n"+k.slice(p);else{if(h)break;if(a.replace(/\t/g," ").search(/[^ ]/)>=4)break;if(r.test(a))break;if(i.test(a))break;if(n.test(a))break;o+="\n"+c}h||c.trim()||(h=!0),s+=u+"\n",e=e.substring(u.length+1),a=k.slice(p)}}r.loose||(l?r.loose=!0:/\n[ \t]*\n[ \t]*$/.test(s)&&(l=!0));let u,k=null;this.options.gfm&&(k=/^\[[ xX]\] /.exec(o),k&&(u="[ ] "!==k[0],o=o.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:s,task:!!k,checked:u,loose:!1,text:o,tokens:[]}),r.raw+=s}r.items[r.items.length-1].raw=r.items[r.items.length-1].raw.trimEnd(),r.items[r.items.length-1].text=r.items[r.items.length-1].text.trimEnd(),r.raw=r.raw.trimEnd();for(let e=0;e"space"===e.type)),n=t.length>0&&t.some((e=>/\n.*\n/.test(e.raw)));r.loose=n}if(r.loose)for(let e=0;e$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:n,title:s}}}table(e){const t=this.rules.block.table.exec(e);if(!t)return;if(!/[:|]/.test(t[2]))return;const n=g(t[1]),s=t[2].replace(/^\||\| *$/g,"").split("|"),r=t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===s.length){for(const e of s)/^ *-+: *$/.test(e)?i.align.push("right"):/^ *:-+: *$/.test(e)?i.align.push("center"):/^ *:-+ *$/.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]}))));return i}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){const t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:c(t[1])}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=f(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let s=0;s-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],s="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],s=e[3])}else s=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^$/.test(e)?n.slice(1):n.slice(1,-1)),d(t,{href:n?n.replace(this.rules.inline.anyPunctuation,"$1"):n,title:s?s.replace(this.rules.inline.anyPunctuation,"$1"):s},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){const e=t[(n[2]||n[1]).replace(/\s+/g," ").toLowerCase()];if(!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return d(n,e,n[0],this.lexer)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s)return;if(s[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(s[1]||s[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const n=[...s[0]].length-1;let r,i,l=n,o=0;const a="*"===s[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(a.lastIndex=0,t=t.slice(-1*e.length+n);null!=(s=a.exec(t));){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r)continue;if(i=[...r].length,s[3]||s[4]){l+=i;continue}if((s[5]||s[6])&&n%3&&!((n+i)%3)){o+=i;continue}if(l-=i,l>0)continue;i=Math.min(i,i+l+o);const t=[...s[0]][0].length,a=e.slice(0,n+s.index+t+i);if(Math.min(n,i)%2){const e=a.slice(1,-1);return{type:"em",raw:a,text:e,tokens:this.lexer.inlineTokens(e)}}const c=a.slice(2,-2);return{type:"strong",raw:a,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const n=/[^ ]/.test(e),s=/^ /.test(e)&&/ $/.test(e);return n&&s&&(e=e.substring(1,e.length-1)),e=c(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=c(t[1]),n="mailto:"+e):(e=c(t[1]),n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=c(t[0]),n="mailto:"+e;else{let s;do{s=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(s!==t[0]);e=c(t[0]),n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){let e;return e=this.lexer.state.inRawBlock?t[0]:c(t[0]),{type:"text",raw:t[0],text:e}}}}const b=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,w=/(?:[*+-]|\d{1,9}[.)])/,m=p(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,w).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),y=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,$=/(?!\s*\])(?:\\.|[^\[\]\\])+/,z=p(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",$).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),T=p(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,w).getRegex(),R="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",_=/|$))/,A=p("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",_).replace("tag",R).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),S=p(y).replace("hr",b).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex(),I={blockquote:p(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",S).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:z,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:b,html:A,lheading:m,list:T,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:S,table:k,text:/^[^\n]+/},E=p("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",b).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex(),q={...I,table:E,paragraph:p(y).replace("hr",b).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",E).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex()},Z={...I,html:p("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",_).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:k,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:p(y).replace("hr",b).replace("heading"," *#{1,6} *[^\n]").replace("lheading",m).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},P=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,L=/^( {2,}|\\)\n(?!\s*$)/,v="\\p{P}\\p{S}",Q=p(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,v).getRegex(),B=p(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,v).getRegex(),M=p("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,v).getRegex(),O=p("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,v).getRegex(),j=p(/\\([punct])/,"gu").replace(/punct/g,v).getRegex(),D=p(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),C=p(_).replace("(?:--\x3e|$)","--\x3e").getRegex(),H=p("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",C).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),U=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,X=p(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",U).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),F=p(/^!?\[(label)\]\[(ref)\]/).replace("label",U).replace("ref",$).getRegex(),N=p(/^!?\[(ref)\](?:\[\])?/).replace("ref",$).getRegex(),G={_backpedal:k,anyPunctuation:j,autolink:D,blockSkip:/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,br:L,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:k,emStrongLDelim:B,emStrongRDelimAst:M,emStrongRDelimUnd:O,escape:P,link:X,nolink:N,punctuation:Q,reflink:F,reflinkSearch:p("reflink|nolink(?!\\()","g").replace("reflink",F).replace("nolink",N).getRegex(),tag:H,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\!!(s=n.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0)))))if(s=this.tokenizer.space(e))e=e.substring(s.raw.length),1===s.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(s);else if(s=this.tokenizer.code(e))e=e.substring(s.raw.length),r=t[t.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?t.push(s):(r.raw+="\n"+s.raw,r.text+="\n"+s.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(s=this.tokenizer.fences(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.heading(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.hr(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.blockquote(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.list(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.html(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.def(e))e=e.substring(s.raw.length),r=t[t.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title}):(r.raw+="\n"+s.raw,r.text+="\n"+s.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(s=this.tokenizer.table(e))e=e.substring(s.raw.length),t.push(s);else if(s=this.tokenizer.lheading(e))e=e.substring(s.raw.length),t.push(s);else{if(i=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startBlock.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i)))r=t[t.length-1],n&&"paragraph"===r?.type?(r.raw+="\n"+s.raw,r.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(s),n=i.length!==e.length,e=e.substring(s.raw.length);else if(s=this.tokenizer.text(e))e=e.substring(s.raw.length),r=t[t.length-1],r&&"text"===r.type?(r.raw+="\n"+s.raw,r.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(s);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,s,r,i,l,o,a=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(i=this.tokenizer.rules.inline.reflinkSearch.exec(a));)e.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(i=this.tokenizer.rules.inline.blockSkip.exec(a));)a=a.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(i=this.tokenizer.rules.inline.anyPunctuation.exec(a));)a=a.slice(0,i.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(l||(o=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((s=>!!(n=s.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,a,o))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e))){if(r=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startInline.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(r))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),l=!0,s=t[t.length-1],s&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(n.raw.length),t.push(n);return t}}class te{options;parser;constructor(t){this.options=t||e.defaults}space(e){return""}code({text:e,lang:t,escaped:n}){const s=(t||"").match(/^\S*/)?.[0],r=e.replace(/\n$/,"")+"\n";return s?'
    '+(n?r:c(r,!0))+"
    \n":"
    "+(n?r:c(r,!0))+"
    \n"}blockquote({tokens:e}){return`
    \n${this.parser.parse(e)}
    \n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)}\n`}hr(e){return"
    \n"}list(e){const t=e.ordered,n=e.start;let s="";for(let t=0;t\n"+s+"\n"}listitem(e){let t="";if(e.task){const n=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&"paragraph"===e.tokens[0].type?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=n+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • \n`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    \n`}table(e){let t="",n="";for(let t=0;t${s}`),"\n\n"+t+"\n"+s+"
    \n"}tablerow({text:e}){return`\n${e}\n`}tablecell(e){const t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`\n`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${e}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){const s=this.parser.parseInline(n),r=u(e);if(null===r)return s;let i='
    ",i}image({href:e,title:t,text:n}){const s=u(e);if(null===s)return n;let r=`${n}{const r=e[s].flat(1/0);n=n.concat(this.walkTokens(r,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){const t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach((e=>{const n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if("renderer"in e){const n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let s=e.renderer.apply(this,t);return!1===s&&(s=n.apply(this,t)),s}:e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");const n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)})),n.extensions=t),e.renderer){const t=this.defaults.renderer||new te(this.defaults);for(const n in e.renderer){if(!(n in t))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;const s=n,r=e.renderer[s],i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){const t=this.defaults.tokenizer||new x(this.defaults);for(const n in e.tokenizer){if(!(n in t))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;const s=n,r=e.tokenizer[s],i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){const t=this.defaults.hooks||new re;for(const n in e.hooks){if(!(n in t))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;const s=n,r=e.hooks[s],i=t[s];re.passThroughHooks.has(n)?t[s]=e=>{if(this.defaults.async)return Promise.resolve(r.call(t,e)).then((e=>i.call(t,e)));const n=r.call(t,e);return i.call(t,n)}:t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){const t=this.defaults.walkTokens,s=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(s.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ee.lex(e,t??this.defaults)}parser(e,t){return se.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{const s={...n},r={...this.defaults,...s},i=this.onError(!!r.silent,!!r.async);if(!0===this.defaults.async&&!1===s.async)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(null==t)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));r.hooks&&(r.hooks.options=r,r.hooks.block=e);const l=r.hooks?r.hooks.provideLexer():e?ee.lex:ee.lexInline,o=r.hooks?r.hooks.provideParser():e?se.parse:se.parseInline;if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(t):t).then((e=>l(e,r))).then((e=>r.hooks?r.hooks.processAllTokens(e):e)).then((e=>r.walkTokens?Promise.all(this.walkTokens(e,r.walkTokens)).then((()=>e)):e)).then((e=>o(e,r))).then((e=>r.hooks?r.hooks.postprocess(e):e)).catch(i);try{r.hooks&&(t=r.hooks.preprocess(t));let e=l(t,r);r.hooks&&(e=r.hooks.processAllTokens(e)),r.walkTokens&&this.walkTokens(e,r.walkTokens);let n=o(e,r);return r.hooks&&(n=r.hooks.postprocess(n)),n}catch(e){return i(e)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){const e="

    An error occurred:

    "+c(n.message+"",!0)+"
    ";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}}const le=new ie;function oe(e,t){return le.parse(e,t)}oe.options=oe.setOptions=function(e){return le.setOptions(e),oe.defaults=le.defaults,n(oe.defaults),oe},oe.getDefaults=t,oe.defaults=e.defaults,oe.use=function(...e){return le.use(...e),oe.defaults=le.defaults,n(oe.defaults),oe},oe.walkTokens=function(e,t){return le.walkTokens(e,t)},oe.parseInline=le.parseInline,oe.Parser=se,oe.parser=se.parse,oe.Renderer=te,oe.TextRenderer=ne,oe.Lexer=ee,oe.lexer=ee.lex,oe.Tokenizer=x,oe.Hooks=re,oe.parse=oe;const ae=oe.options,ce=oe.setOptions,he=oe.use,pe=oe.walkTokens,ue=oe.parseInline,ke=oe,ge=se.parse,fe=ee.lex;e.Hooks=re,e.Lexer=ee,e.Marked=ie,e.Parser=se,e.Renderer=te,e.TextRenderer=ne,e.Tokenizer=x,e.getDefaults=t,e.lexer=fe,e.marked=oe,e.options=ae,e.parse=ke,e.parseInline=ue,e.parser=ge,e.setOptions=ce,e.use=he,e.walkTokens=pe})); diff --git a/pages/proactive-chat/vendor/material-ui.production.min.js b/pages/proactive-chat/vendor/material-ui.production.min.js new file mode 100644 index 0000000..37dbfa4 --- /dev/null +++ b/pages/proactive-chat/vendor/material-ui.production.min.js @@ -0,0 +1,25 @@ +/** + * @mui/material v5.16.7 + * + * @license MIT + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MaterialUI={},e.React,e.ReactDOM)}(this,(function(e,t,n){"use strict";function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=o(t),a=o(n),i={black:"#000",white:"#fff"},l={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},s={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},c={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},u={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"},d={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},p={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},f={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},v={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},m={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"},h={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},g={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"},b={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"},y={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"},x={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},w={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},S={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"},C={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"},k={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},R={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"},M=Object.freeze({__proto__:null,amber:x,blue:p,blueGrey:R,brown:C,common:i,cyan:v,deepOrange:S,deepPurple:u,green:h,grey:k,indigo:d,lightBlue:f,lightGreen:g,lime:b,orange:w,pink:s,purple:c,red:l,teal:m,yellow:y}),P=("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}).performance||{};function I(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n=0||(r[n]=e[n]);return r}function B(e,t){if(null==e)return{};var n,o,r=N(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function z(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var F=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,D=z((function(e){return F.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}));var W=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t2||he(se)>3?"":" "}function we(e,t){for(;--t&&pe()&&!(se<48||se>102||se>57&&se<65||se>70&&se<97););return me(e,ve()+(t<6&&32==fe()&&32==pe()))}function Se(e){for(;pe();)switch(se){case e:return le;case 34:case 39:34!==e&&39!==e&&Se(se);break;case 40:41===e&&Se(e);break;case 92:pe()}return le}function Ce(e,t){for(;pe()&&e+se!==57&&(e+se!==84||47!==fe()););return"/*"+me(t,le-1)+"*"+$(47===e?e:pe())}function ke(e){for(;!he(fe());)pe();return me(e,le)}function Re(e){return be(Me("",null,null,null,[""],e=ge(e),0,[0],e))}function Me(e,t,n,o,r,a,i,l,s){for(var c=0,u=0,d=i,p=0,f=0,v=0,m=1,h=1,g=1,b=0,y="",x=r,w=a,S=o,C=y;h;)switch(v=b,b=pe()){case 40:if(108!=v&&58==Q(C,d-1)){-1!=J(C+=Z(ye(b),"&","&\f"),"&\f")&&(g=-1);break}case 34:case 39:case 91:C+=ye(b);break;case 9:case 10:case 13:case 32:C+=xe(v);break;case 92:C+=we(ve()-1,7);continue;case 47:switch(fe()){case 42:case 47:oe(Ie(Ce(pe(),ve()),t,n),s);break;default:C+="/"}break;case 123*m:l[c++]=te(C)*g;case 125*m:case 59:case 0:switch(b){case 0:case 125:h=0;case 59+u:-1==g&&(C=Z(C,/\f/g,"")),f>0&&te(C)-d&&oe(f>32?Te(C+";",o,n,d-1):Te(Z(C," ","")+";",o,n,d-2),s);break;case 59:C+=";";default:if(oe(S=Pe(C,t,n,c,u,r,l,y,x=[],w=[],d),a),123===b)if(0===u)Me(C,t,S,S,x,a,d,l,w);else switch(99===p&&110===Q(C,3)?100:p){case 100:case 108:case 109:case 115:Me(e,S,S,o&&oe(Pe(e,S,S,0,0,r,l,y,r,x=[],d),w),r,w,d,l,o?x:w);break;default:Me(C,S,S,S,[""],w,0,l,w)}}c=u=f=0,m=g=1,y=C="",d=i;break;case 58:d=1+te(C),f=v;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==(se=le>0?Q(ce,--le):0,ae--,10===se&&(ae=1,re--),se))continue;switch(C+=$(b),b*m){case 38:g=u>0?1:(C+="\f",-1);break;case 44:l[c++]=(te(C)-1)*g,g=1;break;case 64:45===fe()&&(C+=ye(pe())),p=fe(),u=d=te(y=C+=ke(ve())),b++;break;case 45:45===v&&2==te(C)&&(m=0)}}return a}function Pe(e,t,n,o,r,a,i,l,s,c,u){for(var d=r-1,p=0===r?a:[""],f=ne(p),v=0,m=0,h=0;v0?p[g]+" "+b:Z(b,/&\f/g,p[g])))&&(s[h++]=y);return ue(e,t,n,0===r?G:l,s,c,u)}function Ie(e,t,n){return ue(e,t,n,U,$(se),ee(e,2,-2),0)}function Te(e,t,n,o){return ue(e,t,n,_,ee(e,0,o),ee(e,o+1,-1),o)}function Ae(e,t){for(var n="",o=ne(e),r=0;r6)switch(Q(e,t+1)){case 109:if(45!==Q(e,t+4))break;case 102:return Z(e,/(.+:)(.+)-([^]+)/,"$1"+j+"$2-$3$1"+V+(108==Q(e,t+3)?"$3":"$2-$3"))+e;case 115:return~J(e,"stretch")?We(Z(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Q(e,t+1))break;case 6444:switch(Q(e,te(e)-3-(~J(e,"!important")&&10))){case 107:return Z(e,":",":"+j)+e;case 101:return Z(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+j+(45===Q(e,14)?"inline-":"")+"box$3$1"+j+"$2$3$1"+H+"$2box$3")+e}break;case 5936:switch(Q(e,t+11)){case 114:return j+e+H+Z(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return j+e+H+Z(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return j+e+H+Z(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return j+e+H+e+e}return e}var He="undefined"!=typeof document,Ve=He?void 0:function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var o=e(n);return t.set(n,o),o}}((function(){return z((function(){var e={};return function(t){return e[t]}}))})),je=[function(e,t,n,o){if(e.length>-1&&!e.return)switch(e.type){case _:e.return=We(e.value,e.length);break;case q:return Ae([de(e,{value:Z(e.value,"@","@"+j)})],o);case G:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ae([de(e,{props:[Z(t,/:(read-\w+)/,":-moz-$1")]})],o);case"::placeholder":return Ae([de(e,{props:[Z(t,/:(plac\w+)/,":"+j+"input-$1")]}),de(e,{props:[Z(t,/:(plac\w+)/,":-moz-$1")]}),de(e,{props:[Z(t,/:(plac\w+)/,H+"input-$1")]})],o)}return""}))}}],Ue=function(e){var t=e.key;if(He&&"css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,r,a=e.stylisPlugins||je,i={},l=[];He&&(o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++o,r-=4)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(r){case 3:n^=(255&e.charCodeAt(o+2))<<16;case 2:n^=(255&e.charCodeAt(o+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(o)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(r)+s;return{name:c,styles:r,next:Pt}},At="undefined"!=typeof document,Ot=function(e){return e()},Et=!!r.useInsertionEffect&&r.useInsertionEffect,Lt=At&&Et||Ot,Nt=Et||r.useLayoutEffect,Bt="undefined"!=typeof document,zt=r.createContext("undefined"!=typeof HTMLElement?Ue({key:"css"}):null),Ft=zt.Provider,Dt=function(e){return t.forwardRef((function(n,o){var r=t.useContext(zt);return e(n,r,o)}))};Bt||(Dt=function(e){return function(n){var o=t.useContext(zt);return null===o?(o=Ue({key:"css"}),r.createElement(zt.Provider,{value:o},e(n,o))):e(n,o)}});var Wt=r.createContext({}),Ht=Ge((function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t96?Gt:_t},Kt=function(e,t,n){var o;if(t){var r=t.shouldForwardProp;o=e.__emotion_forwardProp&&r?function(t){return e.__emotion_forwardProp(t)&&r(t)}:r}return"function"!=typeof o&&n&&(o=e.__emotion_forwardProp),o},$t="undefined"!=typeof document,Xt=function(e){var t=e.cache,n=e.serialized,o=e.isStringTag;gt(t,n,o);var a=Lt((function(){return bt(t,n,o)}));if(!$t&&void 0!==a){for(var i,l=n.name,s=n.next;void 0!==s;)l+=" "+s.name,s=s.next;return r.createElement("style",((i={})["data-emotion"]=t.key+" "+l,i.dangerouslySetInnerHTML={__html:a},i.nonce=t.sheet.nonce,i))}return null},Yt=function e(t,n){var o,a,i=t.__emotion_real===t,l=i&&t.__emotion_base||t;void 0!==n&&(o=n.label,a=n.target);var s=Kt(t,n,i),c=s||qt(l),u=!c("as");return function(){var d=arguments,p=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==o&&p.push("label:"+o+";"),null==d[0]||void 0===d[0].raw)p.push.apply(p,d);else{p.push(d[0][0]);for(var f=d.length,v=1;v2&&void 0!==arguments[2]?arguments[2]:{clone:!0},o=n.clone?L({},e):e;return pn(e)&&pn(t)&&Object.keys(t).forEach((function(r){pn(t[r])&&Object.prototype.hasOwnProperty.call(e,r)&&pn(e[r])?o[r]=vn(e[r],t[r],n):n.clone?o[r]=pn(t[r])?fn(t[r]):t[r]:o[r]=t[r]})),o}var mn=function(e){var t=Object.keys(e).map((function(t){return{key:t,val:e[t]}}))||[];return t.sort((function(e,t){return e.val-t.val})),t.reduce((function(e,t){return L({},e,E({},t.key,t.val))}),{})};function hn(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:900,lg:1200,xl:1536}:t,o=e.unit,r=void 0===o?"px":o,a=e.step,i=void 0===a?5:a,l=B(e,["values","unit","step"]),s=mn(n),c=Object.keys(s);function u(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(r,")")}function d(e){var t="number"==typeof n[e]?n[e]:e;return"@media (max-width:".concat(t-i/100).concat(r,")")}function p(e,t){var o=c.indexOf(t);return"@media (min-width:".concat("number"==typeof n[e]?n[e]:e).concat(r,") and ")+"(max-width:".concat((-1!==o&&"number"==typeof n[c[o]]?n[c[o]]:t)-i/100).concat(r,")")}return L({keys:c,values:s,up:u,down:d,between:p,only:function(e){return c.indexOf(e)+1e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return(null==(e=t.keys)?void 0:e.reduce((function(e,n){return e[t.up(n)]={},e}),{}))||{}}function An(e,t){return e.reduce((function(e,t){var n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}function On(e){var t,n=e.values,o=e.breakpoints,r=e.base||function(e,t){if("object"!==A(e))return{};var n={},o=Object.keys(t);return Array.isArray(e)?o.forEach((function(t,o){o2&&void 0!==arguments[2])||arguments[2];if(!t||"string"!=typeof t)return null;if(e&&e.vars&&n){var o="vars.".concat(t).split(".").reduce((function(e,t){return e&&e[t]?e[t]:null}),e);if(null!=o)return o}return t.split(".").reduce((function(e,t){return e&&null!=e[t]?e[t]:null}),e)}function Nn(e,t,n){var o,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;return o="function"==typeof e?e(n):Array.isArray(e)?e[n]||r:Ln(e,n)||r,t&&(o=t(o,r,e)),o}function Bn(e){var t=e.prop,n=e.cssProperty,o=void 0===n?e.prop:n,r=e.themeKey,a=e.transform,i=function(e){if(null==e[t])return null;var n=e[t],i=Ln(e.theme,r)||{};return In(e,n,(function(e){var n=Nn(i,a,e);return e===n&&"string"==typeof e&&(n=Nn(i,a,"".concat(t).concat("default"===e?"":En(e)),e)),!1===o?n:E({},o,n)}))};return i.propTypes={},i.filterProps=[t],i}var zn={m:"margin",p:"padding"},Fn={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Dn={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},Wn=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){if(e.length>2){if(!Dn[e])return[e];e=Dn[e]}var t=Sn(e.split(""),2),n=t[0],o=t[1],r=zn[n],a=Fn[o]||"";return Array.isArray(a)?a.map((function(e){return r+e})):[r+a]})),Hn=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Vn=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];function jn(e,t,n,o){var r,a=null!=(r=Ln(e,t,!1))?r:n;return"number"==typeof a?function(e){return"string"==typeof e?e:a*e}:Array.isArray(a)?function(e){return"string"==typeof e?e:a[e]}:"function"==typeof a?a:function(){}}function Un(e){return jn(e,"spacing",8)}function Gn(e,t){if("string"==typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"==typeof n?-n:"-".concat(n)}function _n(e,t,n,o){if(-1===t.indexOf(n))return null;var r=function(e,t){return function(n){return e.reduce((function(e,o){return e[o]=Gn(t,n),e}),{})}}(Wn(n),o);return In(e,e[n],r)}function qn(e,t){var n=Un(e.theme);return Object.keys(e).map((function(o){return _n(e,t,o,n)})).reduce(Rn,{})}function Kn(e){return qn(e,Hn)}function $n(e){return qn(e,Vn)}function Xn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=Un({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,o=e.palette,r=void 0===o?{}:o,a=e.spacing,i=e.shape,l=void 0===i?{}:i,s=B(e,["breakpoints","palette","spacing","shape"]),c=hn(n),u=Xn(a),d=vn({breakpoints:c,direction:"ltr",components:{},palette:L({mode:"light"},r),spacing:u,shape:L({},gn,l)},s);d.applyStyles=Po;for(var p=arguments.length,f=new Array(p>1?p-1:0),v=1;v0&&void 0!==arguments[0]?arguments[0]:null,n=r.useContext(Wt);return n&&(e=n,0!==Object.keys(e).length)?n:t}var Ao=Io();function Oo(){return To(arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ao)}function Eo(e){var t=e.styles,n=e.themeId,o=e.defaultTheme,r=Oo(void 0===o?{}:o),a="function"==typeof t?t(n&&r[n]||r):t;return sn(un,{styles:a})}var Lo=function(e){var t,n,o={systemProps:{},otherProps:{}},r=null!=(t=null==e||null==(n=e.theme)?void 0:n.unstable_sxConfig)?t:ko;return Object.keys(e).forEach((function(t){r[t]?o.systemProps[t]=e[t]:o.otherProps[t]=e[t]})),o};function No(e){var t,n=e.sx,o=B(e,["sx"]),r=Lo(o),a=r.systemProps,i=r.otherProps;return t=Array.isArray(n)?[a].concat(kn(n)):"function"==typeof n?function(){var e=n.apply(void 0,arguments);return pn(e)?L({},a,e):a}:L({},a,n),L({},i,{sx:t})}var Bo,zo=function(e){return e},Fo=(Bo=zo,{configure:function(e){Bo=e},generate:function(e){return Bo(e)},reset:function(){Bo=zo}});function Do(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var r=e.length;for(t=0;t2&&void 0!==arguments[2]?arguments[2]:"Mui",o=Ho[t];return o?"".concat(n,"-").concat(o):"".concat(Fo.generate(e),"-").concat(t)}function jo(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",o={};return t.forEach((function(t){o[t]=Vo(e,t,n)})),o} +/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Uo,Go=Symbol.for("react.element"),_o=Symbol.for("react.portal"),qo=Symbol.for("react.fragment"),Ko=Symbol.for("react.strict_mode"),$o=Symbol.for("react.profiler"),Xo=Symbol.for("react.provider"),Yo=Symbol.for("react.context"),Zo=Symbol.for("react.server_context"),Jo=Symbol.for("react.forward_ref"),Qo=Symbol.for("react.suspense"),er=Symbol.for("react.suspense_list"),tr=Symbol.for("react.memo"),nr=Symbol.for("react.lazy"),or=Symbol.for("react.offscreen");function rr(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Go:switch(e=e.type){case qo:case $o:case Ko:case Qo:case er:return e;default:switch(e=e&&e.$$typeof){case Zo:case Yo:case Jo:case nr:case tr:case Xo:return e;default:return t}}case _o:return t}}}Uo=Symbol.for("react.module.reference");var ar={ContextConsumer:Yo,ContextProvider:Xo,Element:Go,ForwardRef:Jo,Fragment:qo,Lazy:nr,Memo:tr,Portal:_o,Profiler:$o,StrictMode:Ko,Suspense:Qo,SuspenseList:er,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return rr(e)===Yo},isContextProvider:function(e){return rr(e)===Xo},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Go},isForwardRef:function(e){return rr(e)===Jo},isFragment:function(e){return rr(e)===qo},isLazy:function(e){return rr(e)===nr},isMemo:function(e){return rr(e)===tr},isPortal:function(e){return rr(e)===_o},isProfiler:function(e){return rr(e)===$o},isStrictMode:function(e){return rr(e)===Ko},isSuspense:function(e){return rr(e)===Qo},isSuspenseList:function(e){return rr(e)===er},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===qo||e===$o||e===Ko||e===Qo||e===er||e===or||"object"==typeof e&&null!==e&&(e.$$typeof===nr||e.$$typeof===tr||e.$$typeof===Xo||e.$$typeof===Yo||e.$$typeof===Jo||e.$$typeof===Uo||void 0!==e.getModuleId)},typeOf:rr},ir=Ge((function(e,t){}));ir.ContextConsumer,ir.ContextProvider,ir.Element,ir.ForwardRef,ir.Fragment,ir.Lazy,ir.Memo,ir.Portal,ir.Profiler,ir.StrictMode,ir.Suspense,ir.SuspenseList,ir.isAsyncMode,ir.isConcurrentMode,ir.isContextConsumer,ir.isContextProvider,ir.isElement,ir.isForwardRef,ir.isFragment,ir.isLazy,ir.isMemo,ir.isPortal,ir.isProfiler,ir.isStrictMode,ir.isSuspense,ir.isSuspenseList,ir.isValidElementType,ir.typeOf;var lr=Ge((function(e){e.exports=ar}));function sr(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}lr.ForwardRef,lr.isFragment,lr.isLazy,lr.isMemo,lr.Memo,lr.isValidElementType;var cr=Io();function ur(e){var t,n=e.defaultTheme,o=e.theme,r=e.themeId;return t=o,0===Object.keys(t).length?n:o[r]||o}function dr(e,t){var n=t.ownerState,o=B(t,["ownerState"]),r="function"==typeof e?e(L({ownerState:n},o)):e;if(Array.isArray(r))return r.flatMap((function(e){return dr(e,L({ownerState:n},o))}));if(r&&"object"===A(r)&&Array.isArray(r.variants)){var a=r.variants,i=void 0===a?[]:a,l=B(r,["variants"]);return i.forEach((function(e){var t=!0;"function"==typeof e.props?t=e.props(L({ownerState:n},o,n)):Object.keys(e.props).forEach((function(r){(null==n?void 0:n[r])!==e.props[r]&&o[r]!==e.props[r]&&(t=!1)})),t&&(Array.isArray(l)||(l=[l]),l.push("function"==typeof e.style?e.style(L({ownerState:n},o,n)):e.style))})),l}return r}function pr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,o=void 0===n?cr:n,r=e.rootShouldForwardProp,a=void 0===r?sr:r,i=e.slotShouldForwardProp,l=void 0===i?sr:i,s=function(e){return Mo(L({},e,{theme:ur(L({},e,{defaultTheme:o,themeId:t}))}))};return s.__mui_systemSx=!0,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}(e,(function(e){return e.filter((function(e){return!(null!=e&&e.__mui_systemSx)}))}));var r,i,c=n.name,u=n.slot,d=n.skipVariantsResolver,p=n.skipSx,f=n.overridesResolver,v=void 0===f?(r=(i=u)?i.charAt(0).toLowerCase()+i.slice(1):i)?function(e,t){return t[r]}:null:f,m=B(n,["name","slot","skipVariantsResolver","skipSx","overridesResolver"]),h=void 0!==d?d:u&&"Root"!==u&&"root"!==u||!1,g=p||!1,b=sr;"Root"===u||"root"===u?b=a:u?b=l:function(e){return"string"==typeof e&&e.charCodeAt(0)>96}(e)&&(b=void 0);var y=dn(e,L({shouldForwardProp:b,label:undefined},m)),x=function(e){return"function"==typeof e&&e.__emotion_real!==e||pn(e)?function(n){return dr(e,L({},n,{theme:ur({theme:n.theme,defaultTheme:o,themeId:t})}))}:e},w=function(n){for(var r=x(n),a=arguments.length,i=new Array(a>1?a-1:0),l=1;l0){var p=new Array(d).fill("");(r=[].concat(kn(n),kn(p))).raw=[].concat(kn(n.raw),kn(p))}var f=y.apply(void 0,[r].concat(kn(u)));return e.muiName&&(f.muiName=e.muiName),f};return y.withConfig&&(w.withConfig=y.withConfig),w}}var fr=pr();function vr(e,t){var n=L({},t);return Object.keys(e).forEach((function(o){if(o.toString().match(/^(components|slots)$/))n[o]=L({},e[o],n[o]);else if(o.toString().match(/^(componentsProps|slotProps)$/)){var r=e[o]||{},a=t[o];n[o]={},a&&Object.keys(a)?r&&Object.keys(r)?(n[o]=L({},a),Object.keys(r).forEach((function(e){n[o][e]=vr(r[e],a[e])}))):n[o]=a:n[o]=r}else void 0===n[o]&&(n[o]=e[o])})),n}function mr(e){var t=e.theme,n=e.name,o=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?vr(t.components[n].defaultProps,o):o}function hr(e){var t=e.props,n=e.name,o=e.defaultTheme,r=e.themeId,a=Oo(o);return r&&(a=a[r]||a),mr({theme:a,name:n,props:t})}var gr="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function br(e,t,n,o,a){var i=r.useState((function(){return a&&n?n(e).matches:o?o(e).matches:t})),l=i[0],s=i[1];return gr((function(){var t=!0;if(n){var o=n(e),r=function(){t&&s(o.matches)};return r(),o.addListener(r),function(){t=!1,o.removeListener(r)}}}),[e,n]),l}var yr=r.useSyncExternalStore;function xr(e,t,n,o,a){var i=r.useCallback((function(){return t}),[t]),l=r.useMemo((function(){if(a&&n)return function(){return n(e).matches};if(null!==o){var t=o(e).matches;return function(){return t}}return i}),[i,e,o,a,n]),s=Sn(r.useMemo((function(){if(null===n)return[i,function(){return function(){}}];var t=n(e);return[function(){return t.matches},function(e){return t.addListener(e),function(){t.removeListener(e)}}]}),[i,n,e]),2),c=s[0],u=s[1];return yr(u,c,l)}function wr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=To(),o="undefined"!=typeof window&&void 0!==window.matchMedia,r=mr({name:"MuiUseMediaQuery",props:t,theme:n}),a=r.defaultMatches,i=void 0!==a&&a,l=r.matchMedia,s=void 0===l?o?window.matchMedia:null:l,c=r.ssrMatchMedia,u=void 0===c?null:c,d=r.noSsr,p=void 0!==d&&d,f="function"==typeof e?e(n):e;return f=f.replace(/^@media( ?)/m,""),(void 0!==yr?xr:br)(f,i,s,u,p)}function Sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MIN_SAFE_INTEGER,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_SAFE_INTEGER;return Math.max(t,Math.min(e,n))}function Cr(e){return Sr(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1)}function kr(e){e=e.slice(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}function Rr(e){if(e.type)return e;if("#"===e.charAt(0))return Rr(kr(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error(I(9,e));var o,r=e.substring(t+1,e.length-1);if("color"===n){if(o=(r=r.split(" ")).shift(),4===r.length&&"/"===r[3].charAt(0)&&(r[3]=r[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o))throw new Error(I(10,o))}else r=r.split(",");return{type:n,values:r=r.map((function(e){return parseFloat(e)})),colorSpace:o}}var Mr=function(e,t){try{return function(e){var t=Rr(e);return t.values.slice(0,3).map((function(e,n){return-1!==t.type.indexOf("hsl")&&0!==n?"".concat(e,"%"):e})).join(" ")}(e)}catch(t){return e}};function Pr(e){var t=e.type,n=e.colorSpace,o=e.values;return-1!==t.indexOf("rgb")?o=o.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(o[1]="".concat(o[1],"%"),o[2]="".concat(o[2],"%")),o=-1!==t.indexOf("color")?"".concat(n," ").concat(o.join(" ")):"".concat(o.join(", ")),"".concat(t,"(").concat(o,")")}function Ir(e){var t=(e=Rr(e)).values,n=t[0],o=t[1]/100,r=t[2]/100,a=o*Math.min(r,1-r),i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return r-a*Math.max(Math.min(t-3,9-t,1),-1)},l="rgb",s=[Math.round(255*i(0)),Math.round(255*i(8)),Math.round(255*i(4))];return"hsla"===e.type&&(l+="a",s.push(t[3])),Pr({type:l,values:s})}function Tr(e){var t="hsl"===(e=Rr(e)).type||"hsla"===e.type?Rr(Ir(e)).values:e.values;return t=t.map((function(t){return"color"!==e.type&&(t/=255),t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function Ar(e,t){var n=Tr(e),o=Tr(t);return(Math.max(n,o)+.05)/(Math.min(n,o)+.05)}function Or(e,t){return e=Rr(e),t=Cr(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]="/".concat(t):e.values[3]=t,Pr(e)}function Er(e,t,n){try{return Or(e,t)}catch(t){return e}}function Lr(e,t){if(e=Rr(e),t=Cr(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return Pr(e)}function Nr(e,t,n){try{return Lr(e,t)}catch(t){return e}}function Br(e,t){if(e=Rr(e),t=Cr(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(var o=0;o<3;o+=1)e.values[o]+=(1-e.values[o])*t;return Pr(e)}function zr(e,t,n){try{return Br(e,t)}catch(t){return e}}function Fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return Tr(e)>.5?Lr(e,t):Br(e,t)}function Dr(e,t,n){try{return Fr(e,t)}catch(t){return e}}function Wr(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:166;function o(){for(var o=this,r=arguments.length,a=new Array(r),i=0;i0?ra="default":(e.scrollLeft=1,0===e.scrollLeft&&(ra="negative")),document.body.removeChild(e),ra}function ha(e,t){var n=e.scrollLeft;if("rtl"!==t)return n;switch(ma()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}var ga=function(e){var t=r.useRef({});return r.useEffect((function(){t.current=e})),t.current};function ba(e){return r.Children.toArray(e).filter((function(e){return r.isValidElement(e)}))}var ya={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};function xa(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o={};return Object.keys(e).forEach((function(r){o[r]=e[r].reduce((function(e,o){if(o){var r=t(o);""!==r&&e.push(r),n&&n[o]&&e.push(n[o])}return e}),[]).join(" ")})),o}function wa(e){return"string"==typeof e}function Sa(e,t,n){return void 0===e||wa(e)?t:L({},t,{ownerState:L({},t.ownerState,n)})}function Ca(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(void 0===e)return{};var n={};return Object.keys(e).filter((function(n){return n.match(/^on[A-Z]/)&&"function"==typeof e[n]&&!t.includes(n)})).forEach((function(t){n[t]=e[t]})),n}function ka(e){if(void 0===e)return{};var t={};return Object.keys(e).filter((function(t){return!(t.match(/^on[A-Z]/)&&"function"==typeof e[t])})).forEach((function(n){t[n]=e[n]})),t}function Ra(e){var t=e.getSlotProps,n=e.additionalProps,o=e.externalSlotProps,r=e.externalForwardedProps,a=e.className;if(!t){var i=Wo(null==n?void 0:n.className,a,null==r?void 0:r.className,null==o?void 0:o.className),l=L({},null==n?void 0:n.style,null==r?void 0:r.style,null==o?void 0:o.style),s=L({},n,r,o);return i.length>0&&(s.className=i),Object.keys(l).length>0&&(s.style=l),{props:s,internalRef:void 0}}var c=Ca(L({},r,o)),u=ka(o),d=ka(r),p=t(c),f=Wo(null==p?void 0:p.className,null==n?void 0:n.className,a,null==r?void 0:r.className,null==o?void 0:o.className),v=L({},null==p?void 0:p.style,null==n?void 0:n.style,null==r?void 0:r.style,null==o?void 0:o.style),m=L({},p,n,d,u);return f.length>0&&(m.className=f),Object.keys(v).length>0&&(m.style=v),{props:m,internalRef:p.ref}}function Ma(e,t,n){return"function"==typeof e?e(t,n):e}function Pa(e){var t,n=e.elementType,o=e.externalSlotProps,r=e.ownerState,a=e.skipResolvingSlotProps,i=void 0!==a&&a,l=B(e,["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"]),s=i?{}:Ma(o,r),c=Ra(L({},l,{externalSlotProps:s}));return Sa(n,L({},c.props,{ref:Yr(c.internalRef,null==s?void 0:s.ref,null==(t=e.additionalProps)?void 0:t.ref)}),r)}var Ia=r.createContext(null);function Ta(){return r.useContext(Ia)}var Aa="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__";function Oa(e){var t=e.children,n=e.theme,o=Ta(),a=r.useMemo((function(){var e=null===o?n:function(e,t){return"function"==typeof t?t(e):L({},e,t)}(o,n);return null!=e&&(e[Aa]=null!==o),e}),[n,o]);return sn(Ia.Provider,{value:a,children:t})}var Ea=r.createContext();function La(e){var t=e.value,n=B(e,["value"]);return sn(Ea.Provider,L({value:null==t||t},n))}var Na=function(){var e=r.useContext(Ea);return null!=e&&e},Ba=r.createContext(void 0);function za(e){var t=e.value,n=e.children;return sn(Ba.Provider,{value:t,children:n})}function Fa(e){return function(e){var t=e.theme,n=e.name,o=e.props;if(!t||!t.components||!t.components[n])return o;var r=t.components[n];return r.defaultProps?vr(r.defaultProps,o):r.styleOverrides||r.variants?o:vr(r,o)}({props:e.props,name:e.name,theme:{components:r.useContext(Ba)}})}var Da={};function Wa(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return r.useMemo((function(){var r=e&&t[e]||t;if("function"==typeof n){var a=n(r),i=e?L({},t,E({},e,a)):a;return o?function(){return i}:i}return L({},t,e?E({},e,n):n)}),[e,t,n,o])}function Ha(e){var t=e.children,n=e.theme,o=e.themeId,r=To(Da),a=Ta()||Da,i=Wa(o,r,n),l=Wa(o,a,n,!0),s="rtl"===i.direction;return sn(Oa,{theme:l,children:sn(Wt.Provider,{value:i,children:sn(La,{value:s,children:sn(za,{value:null==i?void 0:i.components,children:t})})})})}var Va="mode",ja="color-scheme",Ua="data-color-scheme";function Ga(e){if("undefined"!=typeof window&&"system"===e)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function _a(e,t){return"light"===e.mode||"system"===e.mode&&"light"===e.systemMode?t("light"):"dark"===e.mode||"system"===e.mode&&"dark"===e.systemMode?t("dark"):void 0}function qa(e,t){if("undefined"!=typeof window){var n;try{(n=localStorage.getItem(e)||void 0)||localStorage.setItem(e,t)}catch(e){}return n||t}}function Ka(e){var t=e.defaultMode,n=void 0===t?"light":t,o=e.defaultLightColorScheme,a=e.defaultDarkColorScheme,i=e.supportedColorSchemes,l=void 0===i?[]:i,s=e.modeStorageKey,c=void 0===s?Va:s,u=e.colorSchemeStorageKey,d=void 0===u?ja:u,p=e.storageWindow,f=void 0===p?"undefined"==typeof window?void 0:window:p,v=l.join(","),m=r.useState((function(){var e=qa(c,n),t=qa("".concat(d,"-light"),o),r=qa("".concat(d,"-dark"),a);return{mode:e,systemMode:Ga(e),lightColorScheme:t,darkColorScheme:r}})),h=m[0],g=m[1],b=function(e){return _a(e,(function(t){return"light"===t?e.lightColorScheme:"dark"===t?e.darkColorScheme:void 0}))}(h),y=r.useCallback((function(e){g((function(t){if(e===t.mode)return t;var o=null!=e?e:n;try{localStorage.setItem(c,o)}catch(e){}return L({},t,{mode:o,systemMode:Ga(o)})}))}),[c,n]),x=r.useCallback((function(e){e?"string"==typeof e?e&&!v.includes(e)?console.error("`".concat(e,"` does not exist in `theme.colorSchemes`.")):g((function(t){var n=L({},t);return _a(t,(function(t){try{localStorage.setItem("".concat(d,"-").concat(t),e)}catch(e){}"light"===t&&(n.lightColorScheme=e),"dark"===t&&(n.darkColorScheme=e)})),n})):g((function(t){var n=L({},t),r=null===e.light?o:e.light,i=null===e.dark?a:e.dark;if(r)if(v.includes(r)){n.lightColorScheme=r;try{localStorage.setItem("".concat(d,"-light"),r)}catch(e){}}else console.error("`".concat(r,"` does not exist in `theme.colorSchemes`."));if(i)if(v.includes(i)){n.darkColorScheme=i;try{localStorage.setItem("".concat(d,"-dark"),i)}catch(e){}}else console.error("`".concat(i,"` does not exist in `theme.colorSchemes`."));return n})):g((function(e){try{localStorage.setItem("".concat(d,"-light"),o),localStorage.setItem("".concat(d,"-dark"),a)}catch(e){}return L({},e,{lightColorScheme:o,darkColorScheme:a})}))}),[v,d,o,a]),w=r.useCallback((function(e){"system"===h.mode&&g((function(t){var n=null!=e&&e.matches?"dark":"light";return t.systemMode===n?t:L({},t,{systemMode:n})}))}),[h.mode]),S=r.useRef(w);return S.current=w,r.useEffect((function(){var e=function(){return S.current.apply(S,arguments)},t=window.matchMedia("(prefers-color-scheme: dark)");return t.addListener(e),e(t),function(){t.removeListener(e)}}),[]),r.useEffect((function(){if(f){var e=function(e){var t=e.newValue;"string"!=typeof e.key||!e.key.startsWith(d)||t&&!v.match(t)||(e.key.endsWith("light")&&x({light:t}),e.key.endsWith("dark")&&x({dark:t})),e.key!==c||t&&!["light","dark","system"].includes(t)||y(t||n)};return f.addEventListener("storage",e),function(){f.removeEventListener("storage",e)}}}),[x,y,c,d,v,n,f]),L({},h,{colorScheme:b,setMode:y,setColorScheme:x})}function $a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";function t(){for(var n=arguments.length,o=new Array(n),r=0;r1?o-1:0),a=1;a3&&void 0!==arguments[3]?arguments[3]:[],r=e;t.forEach((function(e,a){a===t.length-1?Array.isArray(r)?r[Number(e)]=n:r&&"object"===A(r)&&(r[e]=n):r&&"object"===A(r)&&(r[e]||(r[e]=o.includes(e)?[]:{}),r=r[e])}))},Ya=function(e,t,n){!function e(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];Object.entries(o).forEach((function(o){var i=Sn(o,2),l=i[0],s=i[1];(!n||n&&!n([].concat(kn(r),[l])))&&null!=s&&("object"===A(s)&&Object.keys(s).length>0?e(s,[].concat(kn(r),[l]),Array.isArray(s)?[].concat(kn(a),[l]):a):t([].concat(kn(r),[l]),s,a))}))}(e)},Za=function(e,t){return"number"==typeof t?["lineHeight","fontWeight","opacity","zIndex"].some((function(t){return e.includes(t)}))||e[e.length-1].toLowerCase().indexOf("opacity")>=0?t:"".concat(t,"px"):t};function Ja(e,t){var n=t||{},o=n.prefix,r=n.shouldSkipGeneratingVar,a={},i={},l={};return Ya(e,(function(e,t,n){if(!("string"!=typeof t&&"number"!=typeof t||r&&r(e,t))){var s="--".concat(o?"".concat(o,"-"):"").concat(e.join("-"));Object.assign(a,E({},s,Za(e,t))),Xa(i,e,"var(".concat(s,")"),n),Xa(l,e,"var(".concat(s,", ").concat(t,")"),n)}}),(function(e){return"vars"===e[0]})),{css:a,vars:i,varsWithDefaults:l}}var Qa=Io(),ei=fr("div",{name:"MuiContainer",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["maxWidth".concat(En(String(n.maxWidth)))],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),ti=function(e){return hr({props:e,name:"MuiContainer",defaultTheme:Qa})};var ni=function(e,t,n){var o,r,a=e.keys[0];if(Array.isArray(t))t.forEach((function(t,o){n((function(t,n){o<=e.keys.length-1&&(0===o?Object.assign(t,n):t[e.up(e.keys[o])]=n)}),t)}));else if(t&&"object"===A(t)){(Object.keys(t).length>e.keys.length?e.keys:(o=e.keys,r=Object.keys(t),o.filter((function(e){return r.includes(e)})))).forEach((function(o){if(-1!==e.keys.indexOf(o)){var r=t[o];void 0!==r&&n((function(t,n){a===o?Object.assign(t,n):t[e.up(o)]=n}),r)}}))}else"number"!=typeof t&&"string"!=typeof t||n((function(e,t){Object.assign(e,t)}),t)};function oi(e){return e?"Level".concat(e):""}function ri(e){return e.unstable_level>0&&e.container}function ai(e){return function(t){return"var(--Grid-".concat(t,"Spacing").concat(oi(e.unstable_level),")")}}function ii(e){return function(t){return 0===e.unstable_level?"var(--Grid-".concat(t,"Spacing)"):"var(--Grid-".concat(t,"Spacing").concat(oi(e.unstable_level-1),")")}}function li(e){return 0===e.unstable_level?"var(--Grid-columns)":"var(--Grid-columns".concat(oi(e.unstable_level-1),")")}var si=function(e){var t=e.theme,n=e.ownerState,o=ai(n),r={};return ni(t.breakpoints,n.gridSize,(function(e,t){var a={};!0===t&&(a={flexBasis:0,flexGrow:1,maxWidth:"100%"}),"auto"===t&&(a={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),"number"==typeof t&&(a={flexGrow:0,flexBasis:"auto",width:"calc(100% * ".concat(t," / ").concat(li(n)).concat(ri(n)?" + ".concat(o("column")):"",")")}),e(r,a)})),r},ci=function(e){var t=e.theme,n=e.ownerState,o={};return ni(t.breakpoints,n.gridOffset,(function(e,t){var r={};"auto"===t&&(r={marginLeft:"auto"}),"number"==typeof t&&(r={marginLeft:0===t?"0px":"calc(100% * ".concat(t," / ").concat(li(n),")")}),e(o,r)})),o},ui=function(e){var t=e.theme,n=e.ownerState;if(!n.container)return{};var o=ri(n)?E({},"--Grid-columns".concat(oi(n.unstable_level)),li(n)):{"--Grid-columns":12};return ni(t.breakpoints,n.columns,(function(e,t){e(o,E({},"--Grid-columns".concat(oi(n.unstable_level)),t))})),o},di=function(e){var t=e.theme,n=e.ownerState;if(!n.container)return{};var o=ii(n),r=ri(n)?E({},"--Grid-rowSpacing".concat(oi(n.unstable_level)),o("row")):{};return ni(t.breakpoints,n.rowSpacing,(function(e,o){var a;e(r,E({},"--Grid-rowSpacing".concat(oi(n.unstable_level)),"string"==typeof o?o:null==(a=t.spacing)?void 0:a.call(t,o)))})),r},pi=function(e){var t=e.theme,n=e.ownerState;if(!n.container)return{};var o=ii(n),r=ri(n)?E({},"--Grid-columnSpacing".concat(oi(n.unstable_level)),o("column")):{};return ni(t.breakpoints,n.columnSpacing,(function(e,o){var a;e(r,E({},"--Grid-columnSpacing".concat(oi(n.unstable_level)),"string"==typeof o?o:null==(a=t.spacing)?void 0:a.call(t,o)))})),r},fi=function(e){var t=e.theme,n=e.ownerState;if(!n.container)return{};var o={};return ni(t.breakpoints,n.direction,(function(e,t){e(o,{flexDirection:t})})),o},vi=function(e){var t=e.ownerState,n=ai(t),o=ii(t);return L({minWidth:0,boxSizing:"border-box"},t.container&&L({display:"flex",flexWrap:"wrap"},t.wrap&&"wrap"!==t.wrap&&{flexWrap:t.wrap},{margin:"calc(".concat(n("row")," / -2) calc(").concat(n("column")," / -2)")},t.disableEqualOverflow&&{margin:"calc(".concat(n("row")," * -1) 0px 0px calc(").concat(n("column")," * -1)")}),(!t.container||ri(t))&&L({padding:"calc(".concat(o("row")," / 2) calc(").concat(o("column")," / 2)")},(t.disableEqualOverflow||t.parentDisableEqualOverflow)&&{padding:"".concat(o("row")," 0px 0px ").concat(o("column"))}))},mi=function(e){var t=[];return Object.entries(e).forEach((function(e){var n=Sn(e,2),o=n[0],r=n[1];!1!==r&&void 0!==r&&t.push("grid-".concat(o,"-").concat(String(r)))})),t},hi=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"xs";function n(e){return void 0!==e&&("string"==typeof e&&!Number.isNaN(Number(e))||"number"==typeof e&&e>0)}if(n(e))return["spacing-".concat(t,"-").concat(String(e))];if("object"===A(e)&&!Array.isArray(e)){var o=[];return Object.entries(e).forEach((function(e){var t=Sn(e,2),r=t[0],a=t[1];n(a)&&o.push("spacing-".concat(r,"-").concat(String(a)))})),o}return[]},gi=function(e){return void 0===e?[]:"object"===A(e)?Object.entries(e).map((function(e){var t=Sn(e,2),n=t[0],o=t[1];return"direction-".concat(n,"-").concat(o)})):["direction-xs-".concat(String(e))]},bi=Io(),yi=fr("div",{name:"MuiGrid",slot:"Root",overridesResolver:function(e,t){return t.root}});function xi(e){return hr({props:e,name:"MuiGrid",defaultTheme:bi})}var wi=Io(),Si=fr("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,t){return t.root}});function Ci(e){return hr({props:e,name:"MuiStack",defaultTheme:wi})}function ki(e,t){var n=r.Children.toArray(e).filter(Boolean);return n.reduce((function(e,o,a){return e.push(o),a0?i[n[t-1]]:"column";i[e]=o}}));o=vn(o,In({theme:n},l,(function(e,n){return t.useFlexGap?{gap:Gn(r,e)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":E({},"margin".concat((o=n?i[n]:t.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[o])),Gn(r,e))};var o})))}return o=function(e){for(var t=Tn(e),n=arguments.length,o=new Array(n>1?n-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:"light")?{main:p[200],light:p[50],dark:p[400]}:{main:p[700],light:p[400],dark:p[800]}}(n),v=e.secondary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:c[200],light:c[50],dark:c[400]}:{main:c[500],light:c[300],dark:c[700]}}(n),m=e.error||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:l[500],light:l[300],dark:l[700]}:{main:l[700],light:l[400],dark:l[800]}}(n),g=e.info||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:f[400],light:f[300],dark:f[700]}:{main:f[700],light:f[500],dark:f[900]}}(n),b=e.success||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:h[400],light:h[300],dark:h[700]}:{main:h[800],light:h[500],dark:h[900]}}(n),y=e.warning||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:w[400],light:w[300],dark:w[700]}:{main:"#ed6c02",light:w[500],dark:w[900]}}(n);function x(e){return Ar(e,Ii.text.primary)>=r?Ii.text.primary:Pi.text.primary}var S=function(e){var t=e.color,n=e.name,o=e.mainShade,r=void 0===o?500:o,a=e.lightShade,i=void 0===a?300:a,l=e.darkShade,c=void 0===l?700:l;if(!(t=L({},t)).main&&t[r]&&(t.main=t[r]),!t.hasOwnProperty("main"))throw new Error(I(11,n?" (".concat(n,")"):"",r));if("string"!=typeof t.main)throw new Error(I(12,n?" (".concat(n,")"):"",JSON.stringify(t.main)));return Ti(t,"light",i,s),Ti(t,"dark",c,s),t.contrastText||(t.contrastText=x(t.main)),t},C={dark:Ii,light:Pi};return vn(L({common:L({},i),mode:n,primary:S({color:d,name:"primary"}),secondary:S({color:v,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:S({color:m,name:"error"}),warning:S({color:y,name:"warning"}),info:S({color:g,name:"info"}),success:S({color:b,name:"success"}),grey:k,contrastThreshold:r,getContrastText:x,augmentColor:S,tonalOffset:s},C[n]),u)}var Oi={textTransform:"uppercase"},Ei='"Roboto", "Helvetica", "Arial", sans-serif';function Li(e,t){var n="function"==typeof t?t(e):t,o=n.fontFamily,r=void 0===o?Ei:o,a=n.fontSize,i=void 0===a?14:a,l=n.fontWeightLight,s=void 0===l?300:l,c=n.fontWeightRegular,u=void 0===c?400:c,d=n.fontWeightMedium,p=void 0===d?500:d,f=n.fontWeightBold,v=void 0===f?700:f,m=n.htmlFontSize,h=void 0===m?16:m,g=n.allVariants,b=n.pxToRem,y=B(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]),x=i/14,w=b||function(e){return"".concat(e/h*x,"rem")},S=function(e,t,n,o,a){return L({fontFamily:r,fontWeight:e,fontSize:w(t),lineHeight:n},r===Ei?{letterSpacing:"".concat((i=o/t,Math.round(1e5*i)/1e5),"em")}:{},a,g);var i},C={h1:S(s,96,1.167,-1.5),h2:S(s,60,1.2,-.5),h3:S(u,48,1.167,0),h4:S(u,34,1.235,.25),h5:S(u,24,1.334,0),h6:S(p,20,1.6,.15),subtitle1:S(u,16,1.75,.15),subtitle2:S(p,14,1.57,.1),body1:S(u,16,1.5,.15),body2:S(u,14,1.43,.15),button:S(p,14,1.75,.4,Oi),caption:S(u,12,1.66,.4),overline:S(u,12,2.66,1,Oi),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return vn(L({htmlFontSize:h,pxToRem:w,fontFamily:r,fontSize:i,fontWeightLight:s,fontWeightRegular:u,fontWeightMedium:p,fontWeightBold:v},C),y,{clone:!1})}function Ni(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var Bi=["none",Ni(0,2,1,-1,0,1,1,0,0,1,3,0),Ni(0,3,1,-2,0,2,2,0,0,1,5,0),Ni(0,3,3,-2,0,3,4,0,0,1,8,0),Ni(0,2,4,-1,0,4,5,0,0,1,10,0),Ni(0,3,5,-1,0,5,8,0,0,1,14,0),Ni(0,3,5,-1,0,6,10,0,0,1,18,0),Ni(0,4,5,-2,0,7,10,1,0,2,16,1),Ni(0,5,5,-3,0,8,10,1,0,3,14,2),Ni(0,5,6,-3,0,9,12,1,0,3,16,2),Ni(0,6,6,-3,0,10,14,1,0,4,18,3),Ni(0,6,7,-4,0,11,15,1,0,4,20,3),Ni(0,7,8,-4,0,12,17,2,0,5,22,4),Ni(0,7,8,-4,0,13,19,2,0,5,24,4),Ni(0,7,9,-4,0,14,21,2,0,5,26,4),Ni(0,8,9,-5,0,15,22,2,0,6,28,5),Ni(0,8,10,-5,0,16,24,2,0,6,30,5),Ni(0,8,11,-5,0,17,26,2,0,6,32,5),Ni(0,9,11,-5,0,18,28,2,0,7,34,6),Ni(0,9,12,-6,0,19,29,2,0,7,36,6),Ni(0,10,13,-6,0,20,31,3,0,8,38,7),Ni(0,10,13,-6,0,21,33,3,0,8,40,7),Ni(0,10,14,-6,0,22,35,3,0,8,42,7),Ni(0,11,14,-7,0,23,36,3,0,9,44,8),Ni(0,11,15,-7,0,24,38,3,0,9,46,8)],zi={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Fi={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Di(e){return"".concat(Math.round(e),"ms")}function Wi(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}var Hi={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function Vi(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.breakpoints;var t=e.mixins,n=void 0===t?{}:t;e.spacing;var o=e.palette,r=void 0===o?{}:o,a=e.transitions,i=void 0===a?{}:a,l=e.typography,s=void 0===l?{}:l;e.shape;var c=B(e,["breakpoints","mixins","spacing","palette","transitions","typography","shape"]);if(e.vars)throw new Error(I(18));var u,d,p,f=Ai(r),v=Io(e),m=vn(v,{mixins:Mi(v.breakpoints,n),palette:f,shadows:Bi.slice(),typography:Li(f,s),transitions:(u=i,d=L({},zi,u.easing),p=L({},Fi,u.duration),L({getAutoHeightDuration:Wi,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,o=void 0===n?p.standard:n,r=t.easing,a=void 0===r?d.easeInOut:r,i=t.delay,l=void 0===i?0:i;return B(t,["duration","easing","delay"]),(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"==typeof o?o:Di(o)," ").concat(a," ").concat("string"==typeof l?l:Di(l))})).join(",")}},u,{easing:d,duration:p})),zIndex:L({},Hi)});m=vn(m,c);for(var h=arguments.length,g=new Array(h>1?h-1:0),b=1;b0&&void 0!==arguments[0]?arguments[0]:{},l=i.colorSchemes,s=void 0===l?{}:l,c=i.cssVarPrefix,u=void 0===c?"mui":c,d=i.shouldSkipGeneratingVar,p=void 0===d?Ji:d,f=B(i,["colorSchemes","cssVarPrefix","shouldSkipGeneratingVar"]),v=function(){return $a(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mui")}(u),m=Vi(L({},f,s.light&&{palette:null==(e=s.light)?void 0:e.palette})),h=m.palette,g=B(m,["palette"]),b=Vi({palette:L({mode:"dark"},null==(t=s.dark)?void 0:t.palette)}).palette,y=L({},g,{cssVarPrefix:u,getCssVar:v,colorSchemes:L({},s,{light:L({},s.light,{palette:h,opacity:L({inputPlaceholder:.42,inputUnderline:.42,switchTrackDisabled:.12,switchTrack:.38},null==(n=s.light)?void 0:n.opacity),overlays:(null==(o=s.light)?void 0:o.overlays)||[]}),dark:L({},s.dark,{palette:b,opacity:L({inputPlaceholder:.5,inputUnderline:.7,switchTrackDisabled:.2,switchTrack:.3},null==(r=s.dark)?void 0:r.opacity),overlays:(null==(a=s.dark)?void 0:a.overlays)||el})})});Object.keys(y.colorSchemes).forEach((function(e){var t,n=y.colorSchemes[e].palette,o=function(e){var t=e.split("-"),o=t[1],r=t[2];return v(e,n[o][r])};if("light"===e?(tl(n.common,"background","#fff"),tl(n.common,"onBackground","#000")):(tl(n.common,"background","#000"),tl(n.common,"onBackground","#fff")),t=n,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"].forEach((function(e){t[e]||(t[e]={})})),"light"===e){tl(n.Alert,"errorColor",Nr(n.error.light,.6)),tl(n.Alert,"infoColor",Nr(n.info.light,.6)),tl(n.Alert,"successColor",Nr(n.success.light,.6)),tl(n.Alert,"warningColor",Nr(n.warning.light,.6)),tl(n.Alert,"errorFilledBg",o("palette-error-main")),tl(n.Alert,"infoFilledBg",o("palette-info-main")),tl(n.Alert,"successFilledBg",o("palette-success-main")),tl(n.Alert,"warningFilledBg",o("palette-warning-main")),tl(n.Alert,"errorFilledColor",rl((function(){return h.getContrastText(n.error.main)}))),tl(n.Alert,"infoFilledColor",rl((function(){return h.getContrastText(n.info.main)}))),tl(n.Alert,"successFilledColor",rl((function(){return h.getContrastText(n.success.main)}))),tl(n.Alert,"warningFilledColor",rl((function(){return h.getContrastText(n.warning.main)}))),tl(n.Alert,"errorStandardBg",zr(n.error.light,.9)),tl(n.Alert,"infoStandardBg",zr(n.info.light,.9)),tl(n.Alert,"successStandardBg",zr(n.success.light,.9)),tl(n.Alert,"warningStandardBg",zr(n.warning.light,.9)),tl(n.Alert,"errorIconColor",o("palette-error-main")),tl(n.Alert,"infoIconColor",o("palette-info-main")),tl(n.Alert,"successIconColor",o("palette-success-main")),tl(n.Alert,"warningIconColor",o("palette-warning-main")),tl(n.AppBar,"defaultBg",o("palette-grey-100")),tl(n.Avatar,"defaultBg",o("palette-grey-400")),tl(n.Button,"inheritContainedBg",o("palette-grey-300")),tl(n.Button,"inheritContainedHoverBg",o("palette-grey-A100")),tl(n.Chip,"defaultBorder",o("palette-grey-400")),tl(n.Chip,"defaultAvatarColor",o("palette-grey-700")),tl(n.Chip,"defaultIconColor",o("palette-grey-700")),tl(n.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),tl(n.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),tl(n.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),tl(n.LinearProgress,"primaryBg",zr(n.primary.main,.62)),tl(n.LinearProgress,"secondaryBg",zr(n.secondary.main,.62)),tl(n.LinearProgress,"errorBg",zr(n.error.main,.62)),tl(n.LinearProgress,"infoBg",zr(n.info.main,.62)),tl(n.LinearProgress,"successBg",zr(n.success.main,.62)),tl(n.LinearProgress,"warningBg",zr(n.warning.main,.62)),tl(n.Skeleton,"bg","rgba(".concat(o("palette-text-primaryChannel")," / 0.11)")),tl(n.Slider,"primaryTrack",zr(n.primary.main,.62)),tl(n.Slider,"secondaryTrack",zr(n.secondary.main,.62)),tl(n.Slider,"errorTrack",zr(n.error.main,.62)),tl(n.Slider,"infoTrack",zr(n.info.main,.62)),tl(n.Slider,"successTrack",zr(n.success.main,.62)),tl(n.Slider,"warningTrack",zr(n.warning.main,.62));var r=Dr(n.background.default,.8);tl(n.SnackbarContent,"bg",r),tl(n.SnackbarContent,"color",rl((function(){return h.getContrastText(r)}))),tl(n.SpeedDialAction,"fabHoverBg",Dr(n.background.paper,.15)),tl(n.StepConnector,"border",o("palette-grey-400")),tl(n.StepContent,"border",o("palette-grey-400")),tl(n.Switch,"defaultColor",o("palette-common-white")),tl(n.Switch,"defaultDisabledColor",o("palette-grey-100")),tl(n.Switch,"primaryDisabledColor",zr(n.primary.main,.62)),tl(n.Switch,"secondaryDisabledColor",zr(n.secondary.main,.62)),tl(n.Switch,"errorDisabledColor",zr(n.error.main,.62)),tl(n.Switch,"infoDisabledColor",zr(n.info.main,.62)),tl(n.Switch,"successDisabledColor",zr(n.success.main,.62)),tl(n.Switch,"warningDisabledColor",zr(n.warning.main,.62)),tl(n.TableCell,"border",zr(Er(n.divider,1),.88)),tl(n.Tooltip,"bg",Er(n.grey[700],.92))}else{tl(n.Alert,"errorColor",zr(n.error.light,.6)),tl(n.Alert,"infoColor",zr(n.info.light,.6)),tl(n.Alert,"successColor",zr(n.success.light,.6)),tl(n.Alert,"warningColor",zr(n.warning.light,.6)),tl(n.Alert,"errorFilledBg",o("palette-error-dark")),tl(n.Alert,"infoFilledBg",o("palette-info-dark")),tl(n.Alert,"successFilledBg",o("palette-success-dark")),tl(n.Alert,"warningFilledBg",o("palette-warning-dark")),tl(n.Alert,"errorFilledColor",rl((function(){return b.getContrastText(n.error.dark)}))),tl(n.Alert,"infoFilledColor",rl((function(){return b.getContrastText(n.info.dark)}))),tl(n.Alert,"successFilledColor",rl((function(){return b.getContrastText(n.success.dark)}))),tl(n.Alert,"warningFilledColor",rl((function(){return b.getContrastText(n.warning.dark)}))),tl(n.Alert,"errorStandardBg",Nr(n.error.light,.9)),tl(n.Alert,"infoStandardBg",Nr(n.info.light,.9)),tl(n.Alert,"successStandardBg",Nr(n.success.light,.9)),tl(n.Alert,"warningStandardBg",Nr(n.warning.light,.9)),tl(n.Alert,"errorIconColor",o("palette-error-main")),tl(n.Alert,"infoIconColor",o("palette-info-main")),tl(n.Alert,"successIconColor",o("palette-success-main")),tl(n.Alert,"warningIconColor",o("palette-warning-main")),tl(n.AppBar,"defaultBg",o("palette-grey-900")),tl(n.AppBar,"darkBg",o("palette-background-paper")),tl(n.AppBar,"darkColor",o("palette-text-primary")),tl(n.Avatar,"defaultBg",o("palette-grey-600")),tl(n.Button,"inheritContainedBg",o("palette-grey-800")),tl(n.Button,"inheritContainedHoverBg",o("palette-grey-700")),tl(n.Chip,"defaultBorder",o("palette-grey-700")),tl(n.Chip,"defaultAvatarColor",o("palette-grey-300")),tl(n.Chip,"defaultIconColor",o("palette-grey-300")),tl(n.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),tl(n.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),tl(n.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),tl(n.LinearProgress,"primaryBg",Nr(n.primary.main,.5)),tl(n.LinearProgress,"secondaryBg",Nr(n.secondary.main,.5)),tl(n.LinearProgress,"errorBg",Nr(n.error.main,.5)),tl(n.LinearProgress,"infoBg",Nr(n.info.main,.5)),tl(n.LinearProgress,"successBg",Nr(n.success.main,.5)),tl(n.LinearProgress,"warningBg",Nr(n.warning.main,.5)),tl(n.Skeleton,"bg","rgba(".concat(o("palette-text-primaryChannel")," / 0.13)")),tl(n.Slider,"primaryTrack",Nr(n.primary.main,.5)),tl(n.Slider,"secondaryTrack",Nr(n.secondary.main,.5)),tl(n.Slider,"errorTrack",Nr(n.error.main,.5)),tl(n.Slider,"infoTrack",Nr(n.info.main,.5)),tl(n.Slider,"successTrack",Nr(n.success.main,.5)),tl(n.Slider,"warningTrack",Nr(n.warning.main,.5));var a=Dr(n.background.default,.98);tl(n.SnackbarContent,"bg",a),tl(n.SnackbarContent,"color",rl((function(){return b.getContrastText(a)}))),tl(n.SpeedDialAction,"fabHoverBg",Dr(n.background.paper,.15)),tl(n.StepConnector,"border",o("palette-grey-600")),tl(n.StepContent,"border",o("palette-grey-600")),tl(n.Switch,"defaultColor",o("palette-grey-300")),tl(n.Switch,"defaultDisabledColor",o("palette-grey-600")),tl(n.Switch,"primaryDisabledColor",Nr(n.primary.main,.55)),tl(n.Switch,"secondaryDisabledColor",Nr(n.secondary.main,.55)),tl(n.Switch,"errorDisabledColor",Nr(n.error.main,.55)),tl(n.Switch,"infoDisabledColor",Nr(n.info.main,.55)),tl(n.Switch,"successDisabledColor",Nr(n.success.main,.55)),tl(n.Switch,"warningDisabledColor",Nr(n.warning.main,.55)),tl(n.TableCell,"border",Nr(Er(n.divider,1),.68)),tl(n.Tooltip,"bg",Er(n.grey[700],.92))}ol(n.background,"default"),ol(n.background,"paper"),ol(n.common,"background"),ol(n.common,"onBackground"),ol(n,"divider"),Object.keys(n).forEach((function(e){var t=n[e];t&&"object"===A(t)&&(t.main&&tl(n[e],"mainChannel",Mr(nl(t.main))),t.light&&tl(n[e],"lightChannel",Mr(nl(t.light))),t.dark&&tl(n[e],"darkChannel",Mr(nl(t.dark))),t.contrastText&&tl(n[e],"contrastTextChannel",Mr(nl(t.contrastText))),"text"===e&&(ol(n[e],"primary"),ol(n[e],"secondary")),"action"===e&&(t.active&&ol(n[e],"active"),t.selected&&ol(n[e],"selected")))}))}));for(var x=arguments.length,w=new Array(x>1?x-1:0),S=1;S :not(style) ~ :not(style)":{marginLeft:8}}}]}),ds=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAccordionActions"}),o=n.className,r=n.disableSpacing,a=void 0!==r&&r,i=B(n,["className","disableSpacing"]),l=L({},n,{disableSpacing:a}),s=function(e){var t=e.classes;return xa({root:["root",!e.disableSpacing&&"spacing"]},ss,t)}(l);return sn(us,L({className:Wo(s.root,o),ref:t,ownerState:l},i))}));function ps(e){return Vo("MuiAccordionDetails",e)}var fs=jo("MuiAccordionDetails",["root"]),vs=Zi("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(1,2,2)}})),ms=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAccordionDetails"}),o=n.className,r=B(n,["className"]),a=n,i=function(e){return xa({root:["root"]},ps,e.classes)}(a);return sn(vs,L({className:Wo(i.root,o),ref:t,ownerState:a},r))}));function hs(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var gs,bs,ys,xs,ws=jo("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),Ss=Ut(gs||(gs=hs(["\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n"]))),Cs=Ut(bs||(bs=hs(["\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n"]))),ks=Ut(ys||(ys=hs(["\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n"]))),Rs=Zi("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),Ms=Zi((function(e){var t=e.className,n=e.classes,o=e.pulsate,a=void 0!==o&&o,i=e.rippleX,l=e.rippleY,s=e.rippleSize,c=e.in,u=e.onExited,d=e.timeout,p=r.useState(!1),f=p[0],v=p[1],m=Wo(t,n.ripple,n.rippleVisible,a&&n.ripplePulsate),h={width:s,height:s,top:-s/2+l,left:-s/2+i},g=Wo(n.child,f&&n.childLeaving,a&&n.childPulsate);return c||f||v(!0),r.useEffect((function(){if(!c&&null!=u){var e=setTimeout(u,d);return function(){clearTimeout(e)}}}),[u,c,d]),sn("span",{className:m,style:h,children:sn("span",{className:g})})}),{name:"MuiTouchRipple",slot:"Ripple"})(xs||(xs=hs(["\n opacity: 0;\n position: absolute;\n\n &."," {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ",";\n animation-duration: ","ms;\n animation-timing-function: ",";\n }\n\n &."," {\n animation-duration: ","ms;\n }\n\n & ."," {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & ."," {\n opacity: 0;\n animation-name: ",";\n animation-duration: ","ms;\n animation-timing-function: ",";\n }\n\n & ."," {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ",";\n animation-duration: 2500ms;\n animation-timing-function: ",";\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n"])),ws.rippleVisible,Ss,550,(function(e){return e.theme.transitions.easing.easeInOut}),ws.ripplePulsate,(function(e){return e.theme.transitions.duration.shorter}),ws.child,ws.childLeaving,Cs,550,(function(e){return e.theme.transitions.easing.easeInOut}),ws.childPulsate,ks,(function(e){return e.theme.transitions.easing.easeInOut})),Ps=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTouchRipple"}),o=n.center,a=void 0!==o&&o,i=n.classes,l=void 0===i?{}:i,s=n.className,c=B(n,["center","classes","className"]),u=r.useState([]),d=u[0],p=u[1],f=r.useRef(0),v=r.useRef(null);r.useEffect((function(){v.current&&(v.current(),v.current=null)}),[d]);var m=r.useRef(!1),h=oa(),g=r.useRef(null),b=r.useRef(null),y=r.useCallback((function(e){var t=e.pulsate,n=e.rippleX,o=e.rippleY,r=e.rippleSize,a=e.cb;p((function(e){return[].concat(kn(e),[sn(Ms,{classes:{ripple:Wo(l.ripple,ws.ripple),rippleVisible:Wo(l.rippleVisible,ws.rippleVisible),ripplePulsate:Wo(l.ripplePulsate,ws.ripplePulsate),child:Wo(l.child,ws.child),childLeaving:Wo(l.childLeaving,ws.childLeaving),childPulsate:Wo(l.childPulsate,ws.childPulsate)},timeout:550,pulsate:t,rippleX:n,rippleY:o,rippleSize:r},f.current)])})),f.current+=1,v.current=a}),[l]),x=r.useCallback((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=t.pulsate,r=void 0!==o&&o,i=t.center,l=void 0===i?a||t.pulsate:i,s=t.fakeElement,c=void 0!==s&&s;if("mousedown"===(null==e?void 0:e.type)&&m.current)m.current=!1;else{"touchstart"===(null==e?void 0:e.type)&&(m.current=!0);var u,d,p,f=c?null:b.current,v=f?f.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(l||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)u=Math.round(v.width/2),d=Math.round(v.height/2);else{var x=e.touches&&e.touches.length>0?e.touches[0]:e,w=x.clientX,S=x.clientY;u=Math.round(w-v.left),d=Math.round(S-v.top)}if(l)(p=Math.sqrt((2*Math.pow(v.width,2)+Math.pow(v.height,2))/3))%2==0&&(p+=1);else{var C=2*Math.max(Math.abs((f?f.clientWidth:0)-u),u)+2,k=2*Math.max(Math.abs((f?f.clientHeight:0)-d),d)+2;p=Math.sqrt(Math.pow(C,2)+Math.pow(k,2))}null!=e&&e.touches?null===g.current&&(g.current=function(){y({pulsate:r,rippleX:u,rippleY:d,rippleSize:p,cb:n})},h.start(80,(function(){g.current&&(g.current(),g.current=null)}))):y({pulsate:r,rippleX:u,rippleY:d,rippleSize:p,cb:n})}}),[a,y,h]),w=r.useCallback((function(){x({},{pulsate:!0})}),[x]),S=r.useCallback((function(e,t){if(h.clear(),"touchend"===(null==e?void 0:e.type)&&g.current)return g.current(),g.current=null,void h.start(0,(function(){S(e,t)}));g.current=null,p((function(e){return e.length>0?e.slice(1):e})),v.current=t}),[h]);return r.useImperativeHandle(t,(function(){return{pulsate:w,start:x,stop:S}}),[w,x,S]),sn(Rs,L({className:Wo(ws.root,l.root,s),ref:b},c,{children:sn(jl,{component:null,exit:!0,children:d})}))})),Is=Ps;function Ts(e){return Vo("MuiButtonBase",e)}var As=jo("MuiButtonBase",["root","disabled","focusVisible"]),Os=Zi("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:function(e,t){return t.root}})(E(E({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(As.disabled),{pointerEvents:"none",cursor:"default"}),"@media print",{colorAdjust:"exact"})),Es=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiButtonBase"}),o=n.action,a=n.centerRipple,i=void 0!==a&&a,l=n.children,s=n.className,c=n.component,u=void 0===c?"button":c,d=n.disabled,p=void 0!==d&&d,f=n.disableRipple,v=void 0!==f&&f,m=n.disableTouchRipple,h=void 0!==m&&m,g=n.focusRipple,b=void 0!==g&&g;n.focusVisibleClassName;var y=n.LinkComponent,x=void 0===y?"a":y,w=n.onBlur,S=n.onClick,C=n.onContextMenu,k=n.onDragLeave,R=n.onFocus,M=n.onFocusVisible,P=n.onKeyDown,I=n.onKeyUp,T=n.onMouseDown,A=n.onMouseLeave,O=n.onMouseUp,E=n.onTouchEnd,N=n.onTouchMove,z=n.onTouchStart,F=n.tabIndex,D=void 0===F?0:F,W=n.TouchRippleProps,H=n.touchRippleRef,V=n.type,j=B(n,["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"]),U=r.useRef(null),G=r.useRef(null),_=Yr(G,H),q=fa(),K=q.isFocusVisibleRef,$=q.onFocus,X=q.onBlur,Y=q.ref,Z=r.useState(!1),J=Z[0],Q=Z[1];p&&J&&Q(!1),r.useImperativeHandle(o,(function(){return{focusVisible:function(){Q(!0),U.current.focus()}}}),[]);var ee=r.useState(!1),te=ee[0],ne=ee[1];r.useEffect((function(){ne(!0)}),[]);var oe=te&&!v&&!p;function re(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h;return Xr((function(o){return t&&t(o),!n&&G.current&&G.current[e](o),!0}))}r.useEffect((function(){J&&b&&!v&&te&&G.current.pulsate()}),[v,b,J,te]);var ae=re("start",T),ie=re("stop",C),le=re("stop",k),se=re("stop",O),ce=re("stop",(function(e){J&&e.preventDefault(),A&&A(e)})),ue=re("start",z),de=re("stop",E),pe=re("stop",N),fe=re("stop",(function(e){X(e),!1===K.current&&Q(!1),w&&w(e)}),!1),ve=Xr((function(e){U.current||(U.current=e.currentTarget),$(e),!0===K.current&&(Q(!0),M&&M(e)),R&&R(e)})),me=function(){var e=U.current;return u&&"button"!==u&&!("A"===e.tagName&&e.href)},he=r.useRef(!1),ge=Xr((function(e){b&&!he.current&&J&&G.current&&" "===e.key&&(he.current=!0,G.current.stop(e,(function(){G.current.start(e)}))),e.target===e.currentTarget&&me()&&" "===e.key&&e.preventDefault(),P&&P(e),e.target===e.currentTarget&&me()&&"Enter"===e.key&&!p&&(e.preventDefault(),S&&S(e))})),be=Xr((function(e){b&&" "===e.key&&G.current&&J&&!e.defaultPrevented&&(he.current=!1,G.current.stop(e,(function(){G.current.pulsate(e)}))),I&&I(e),S&&e.target===e.currentTarget&&me()&&" "===e.key&&!e.defaultPrevented&&S(e)})),ye=u;"button"===ye&&(j.href||j.to)&&(ye=x);var xe={};"button"===ye?(xe.type=void 0===V?"button":V,xe.disabled=p):(j.href||j.to||(xe.role="button"),p&&(xe["aria-disabled"]=p));var we=Yr(t,Y,U),Se=L({},n,{centerRipple:i,component:u,disabled:p,disableRipple:v,disableTouchRipple:h,focusRipple:b,tabIndex:D,focusVisible:J}),Ce=function(e){var t=e.disabled,n=e.focusVisible,o=e.focusVisibleClassName,r=xa({root:["root",t&&"disabled",n&&"focusVisible"]},Ts,e.classes);return n&&o&&(r.root+=" ".concat(o)),r}(Se);return cn(Os,L({as:ye,className:Wo(Ce.root,s),ownerState:Se,onBlur:fe,onClick:S,onContextMenu:ie,onFocus:ve,onKeyDown:ge,onKeyUp:be,onMouseDown:ae,onMouseLeave:ce,onMouseUp:se,onDragLeave:le,onTouchEnd:de,onTouchMove:pe,onTouchStart:ue,ref:we,tabIndex:p?-1:D,type:V},xe,j,{children:[l,oe?sn(Is,L({ref:_,center:i},W)):null]}))})),Ls=Es;function Ns(e){return Vo("MuiAccordionSummary",e)}var Bs=jo("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),zs=Zi(Ls,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n={duration:t.transitions.duration.shortest};return E(E(E(E({display:"flex",minHeight:48,padding:t.spacing(0,2),transition:t.transitions.create(["min-height","background-color"],n)},"&.".concat(Bs.focusVisible),{backgroundColor:(t.vars||t).palette.action.focus}),"&.".concat(Bs.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"&:hover:not(.".concat(Bs.disabled,")"),{cursor:"pointer"}),"variants",[{props:function(e){return!e.disableGutters},style:E({},"&.".concat(Bs.expanded),{minHeight:64})}])})),Fs=Zi("div",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:function(e,t){return t.content}})((function(e){var t=e.theme;return{display:"flex",flexGrow:1,margin:"12px 0",variants:[{props:function(e){return!e.disableGutters},style:E({transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest})},"&.".concat(Bs.expanded),{margin:"20px 0"})}]}})),Ds=Zi("div",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:function(e,t){return t.expandIconWrapper}})((function(e){var t=e.theme;return E({display:"flex",color:(t.vars||t).palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest})},"&.".concat(Bs.expanded),{transform:"rotate(180deg)"})})),Ws=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAccordionSummary"}),o=n.children,a=n.className,i=n.expandIcon,l=n.focusVisibleClassName,s=n.onClick,c=B(n,["children","className","expandIcon","focusVisibleClassName","onClick"]),u=r.useContext(ns),d=u.disabled,p=void 0!==d&&d,f=u.disableGutters,v=u.expanded,m=u.toggle,h=L({},n,{expanded:v,disabled:p,disableGutters:f}),g=function(e){var t=e.classes,n=e.expanded,o=e.disabled,r=e.disableGutters;return xa({root:["root",n&&"expanded",o&&"disabled",!r&&"gutters"],focusVisible:["focusVisible"],content:["content",n&&"expanded",!r&&"contentGutters"],expandIconWrapper:["expandIconWrapper",n&&"expanded"]},Ns,t)}(h);return cn(zs,L({focusRipple:!1,disableRipple:!0,disabled:p,component:"div","aria-expanded":v,className:Wo(g.root,a),focusVisibleClassName:Wo(g.focusVisible,l),onClick:function(e){m&&m(e),s&&s(e)},ref:t,ownerState:h},c,{children:[sn(Fs,{className:g.content,ownerState:h,children:o}),i&&sn(Ds,{className:g.expandIconWrapper,ownerState:h,children:i})]}))}));function Hs(e){return Vo("MuiAlert",e)}var Vs=jo("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function js(e){return Vo("MuiIconButton",e)}var Us=jo("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),Gs=Zi(Ls,{name:"MuiIconButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"default"!==n.color&&t["color".concat(En(n.color))],n.edge&&t["edge".concat(En(n.edge))],t["size".concat(En(n.size))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(t.vars||t).palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest})},!n.disableRipple&&{"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.activeChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):Or(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===n.edge&&{marginLeft:"small"===n.size?-3:-12},"end"===n.edge&&{marginRight:"small"===n.size?-3:-12})}),(function(e){var t,n=e.theme,o=e.ownerState,r=null==(t=(n.vars||n).palette)?void 0:t[o.color];return L({},"inherit"===o.color&&{color:"inherit"},"inherit"!==o.color&&"default"!==o.color&&L({color:null==r?void 0:r.main},!o.disableRipple&&{"&:hover":L({},r&&{backgroundColor:n.vars?"rgba(".concat(r.mainChannel," / ").concat(n.vars.palette.action.hoverOpacity,")"):Or(r.main,n.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===o.size&&{padding:5,fontSize:n.typography.pxToRem(18)},"large"===o.size&&{padding:12,fontSize:n.typography.pxToRem(28)},E({},"&.".concat(Us.disabled),{backgroundColor:"transparent",color:(n.vars||n).palette.action.disabled}))})),_s=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiIconButton"}),o=n.edge,r=void 0!==o&&o,a=n.children,i=n.className,l=n.color,s=void 0===l?"default":l,c=n.disabled,u=void 0!==c&&c,d=n.disableFocusRipple,p=void 0!==d&&d,f=n.size,v=void 0===f?"medium":f,m=B(n,["edge","children","className","color","disabled","disableFocusRipple","size"]),h=L({},n,{edge:r,color:s,disabled:u,disableFocusRipple:p,size:v}),g=function(e){var t=e.classes,n=e.disabled,o=e.color,r=e.edge,a=e.size;return xa({root:["root",n&&"disabled","default"!==o&&"color".concat(En(o)),r&&"edge".concat(En(r)),"size".concat(En(a))]},js,t)}(h);return sn(Gs,L({className:Wo(g.root,i),centerRipple:!0,focusRipple:!p,disabled:u,ref:t},m,{ownerState:h,children:a}))})),qs=_s,Ks=Cl(sn("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),$s=Cl(sn("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),Xs=Cl(sn("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),Ys=Cl(sn("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),Zs=Cl(sn("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Js=Zi(ts,{name:"MuiAlert",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["".concat(n.variant).concat(En(n.color||n.severity))]]}})((function(e){var t=e.theme,n="light"===t.palette.mode?Lr:Br,o="light"===t.palette.mode?Br:Lr;return L({},t.typography.body2,{backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[].concat(kn(Object.entries(t.palette).filter((function(e){var t=Sn(e,2)[1];return t.main&&t.light})).map((function(e){var r=Sn(e,1)[0];return{props:{colorSeverity:r,variant:"standard"},style:E({color:t.vars?t.vars.palette.Alert["".concat(r,"Color")]:n(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert["".concat(r,"StandardBg")]:o(t.palette[r].light,.9)},"& .".concat(Vs.icon),t.vars?{color:t.vars.palette.Alert["".concat(r,"IconColor")]}:{color:t.palette[r].main})}}))),kn(Object.entries(t.palette).filter((function(e){var t=Sn(e,2)[1];return t.main&&t.light})).map((function(e){var o=Sn(e,1)[0];return{props:{colorSeverity:o,variant:"outlined"},style:E({color:t.vars?t.vars.palette.Alert["".concat(o,"Color")]:n(t.palette[o].light,.6),border:"1px solid ".concat((t.vars||t).palette[o].light)},"& .".concat(Vs.icon),t.vars?{color:t.vars.palette.Alert["".concat(o,"IconColor")]}:{color:t.palette[o].main})}}))),kn(Object.entries(t.palette).filter((function(e){var t=Sn(e,2)[1];return t.main&&t.dark})).map((function(e){var n=Sn(e,1)[0];return{props:{colorSeverity:n,variant:"filled"},style:L({fontWeight:t.typography.fontWeightMedium},t.vars?{color:t.vars.palette.Alert["".concat(n,"FilledColor")],backgroundColor:t.vars.palette.Alert["".concat(n,"FilledBg")]}:{backgroundColor:"dark"===t.palette.mode?t.palette[n].dark:t.palette[n].main,color:t.palette.getContrastText(t.palette[n].main)})}}))))})})),Qs=Zi("div",{name:"MuiAlert",slot:"Icon",overridesResolver:function(e,t){return t.icon}})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),ec=Zi("div",{name:"MuiAlert",slot:"Message",overridesResolver:function(e,t){return t.message}})({padding:"8px 0",minWidth:0,overflow:"auto"}),tc=Zi("div",{name:"MuiAlert",slot:"Action",overridesResolver:function(e,t){return t.action}})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),nc={success:sn(Ks,{fontSize:"inherit"}),warning:sn($s,{fontSize:"inherit"}),error:sn(Xs,{fontSize:"inherit"}),info:sn(Ys,{fontSize:"inherit"})},oc=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAlert"}),o=n.action,r=n.children,a=n.className,i=n.closeText,l=void 0===i?"Close":i,s=n.color,c=n.components,u=void 0===c?{}:c,d=n.componentsProps,p=void 0===d?{}:d,f=n.icon,v=n.iconMapping,m=void 0===v?nc:v,h=n.onClose,g=n.role,b=void 0===g?"alert":g,y=n.severity,x=void 0===y?"success":y,w=n.slotProps,S=void 0===w?{}:w,C=n.slots,k=void 0===C?{}:C,R=n.variant,M=void 0===R?"standard":R,P=B(n,["action","children","className","closeText","color","components","componentsProps","icon","iconMapping","onClose","role","severity","slotProps","slots","variant"]),I=L({},n,{color:s,severity:x,variant:M,colorSeverity:s||x}),T=function(e){var t=e.variant,n=e.color,o=e.severity,r=e.classes;return xa({root:["root","color".concat(En(n||o)),"".concat(t).concat(En(n||o)),"".concat(t)],icon:["icon"],message:["message"],action:["action"]},Hs,r)}(I),A={slots:L({closeButton:u.CloseButton,closeIcon:u.CloseIcon},k),slotProps:L({},p,S)},O=Sn(os("closeButton",{elementType:qs,externalForwardedProps:A,ownerState:I}),2),E=O[0],N=O[1],z=Sn(os("closeIcon",{elementType:Zs,externalForwardedProps:A,ownerState:I}),2),F=z[0],D=z[1];return cn(Js,L({role:b,elevation:0,ownerState:I,className:Wo(T.root,a),ref:t},P,{children:[!1!==f?sn(Qs,{ownerState:I,className:T.icon,children:f||m[x]||nc[x]}):null,sn(ec,{ownerState:I,className:T.message,children:r}),null!=o?sn(tc,{ownerState:I,className:T.action,children:o}):null,null==o&&h?sn(tc,{ownerState:I,className:T.action,children:sn(E,L({size:"small","aria-label":l,title:l,color:"inherit",onClick:h},N,{children:sn(F,L({fontSize:"small"},D))}))}):null]}))})),rc=oc;function ac(e){return Vo("MuiTypography",e)}var ic=jo("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]),lc=Zi("span",{name:"MuiTypography",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.variant&&t[n.variant],"inherit"!==n.align&&t["align".concat(En(n.align))],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})((function(e){var t=e.theme,n=e.ownerState;return L({margin:0},"inherit"===n.variant&&{font:"inherit"},"inherit"!==n.variant&&t.typography[n.variant],"inherit"!==n.align&&{textAlign:n.align},n.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},n.gutterBottom&&{marginBottom:"0.35em"},n.paragraph&&{marginBottom:16})})),sc={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},cc={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},uc=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTypography"}),o=function(e){return cc[e]||e}(n.color),r=No(L({},n,{color:o})),a=r.align,i=void 0===a?"inherit":a,l=r.className,s=r.component,c=r.gutterBottom,u=void 0!==c&&c,d=r.noWrap,p=void 0!==d&&d,f=r.paragraph,v=void 0!==f&&f,m=r.variant,h=void 0===m?"body1":m,g=r.variantMapping,b=void 0===g?sc:g,y=B(r,["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"]),x=L({},r,{align:i,color:o,className:l,component:s,gutterBottom:u,noWrap:p,paragraph:v,variant:h,variantMapping:b}),w=s||(v?"p":b[h]||sc[h])||"span",S=function(e){var t=e.align,n=e.gutterBottom,o=e.noWrap,r=e.paragraph,a=e.variant,i=e.classes;return xa({root:["root",a,"inherit"!==e.align&&"align".concat(En(t)),n&&"gutterBottom",o&&"noWrap",r&&"paragraph"]},ac,i)}(x);return sn(lc,L({as:w,ref:t,ownerState:x,className:Wo(S.root,l)},y))})),dc=uc;function pc(e){return Vo("MuiAlertTitle",e)}var fc=jo("MuiAlertTitle",["root"]),vc=Zi(dc,{name:"MuiAlertTitle",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{fontWeight:e.theme.typography.fontWeightMedium,marginTop:-2}})),mc=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAlertTitle"}),o=n.className,r=B(n,["className"]),a=n,i=function(e){return xa({root:["root"]},pc,e.classes)}(a);return sn(vc,L({gutterBottom:!0,component:"div",ownerState:a,ref:t,className:Wo(i.root,o)},r))}));function hc(e){return Vo("MuiAppBar",e)}var gc=jo("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]),bc=function(e,t){return e?"".concat(null==e?void 0:e.replace(")",""),", ").concat(t,")"):t},yc=Zi(ts,{name:"MuiAppBar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat(En(n.position))],t["color".concat(En(n.color))]]}})((function(e){var t=e.theme,n=e.ownerState,o="light"===t.palette.mode?t.palette.grey[100]:t.palette.grey[900];return L({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0},"fixed"===n.position&&{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}},"absolute"===n.position&&{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0},"sticky"===n.position&&{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0},"static"===n.position&&{position:"static"},"relative"===n.position&&{position:"relative"},!t.vars&&L({},"default"===n.color&&{backgroundColor:o,color:t.palette.getContrastText(o)},n.color&&"default"!==n.color&&"inherit"!==n.color&&"transparent"!==n.color&&{backgroundColor:t.palette[n.color].main,color:t.palette[n.color].contrastText},"inherit"===n.color&&{color:"inherit"},"dark"===t.palette.mode&&!n.enableColorOnDark&&{backgroundColor:null,color:null},"transparent"===n.color&&L({backgroundColor:"transparent",color:"inherit"},"dark"===t.palette.mode&&{backgroundImage:"none"})),t.vars&&L({},"default"===n.color&&{"--AppBar-background":n.enableColorOnDark?t.vars.palette.AppBar.defaultBg:bc(t.vars.palette.AppBar.darkBg,t.vars.palette.AppBar.defaultBg),"--AppBar-color":n.enableColorOnDark?t.vars.palette.text.primary:bc(t.vars.palette.AppBar.darkColor,t.vars.palette.text.primary)},n.color&&!n.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":n.enableColorOnDark?t.vars.palette[n.color].main:bc(t.vars.palette.AppBar.darkBg,t.vars.palette[n.color].main),"--AppBar-color":n.enableColorOnDark?t.vars.palette[n.color].contrastText:bc(t.vars.palette.AppBar.darkColor,t.vars.palette[n.color].contrastText)},!["inherit","transparent"].includes(n.color)&&{backgroundColor:"var(--AppBar-background)"},{color:"inherit"===n.color?"inherit":"var(--AppBar-color)"},"transparent"===n.color&&{backgroundImage:"none",backgroundColor:"transparent",color:"inherit"}))})),xc=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAppBar"}),o=n.className,r=n.color,a=void 0===r?"primary":r,i=n.enableColorOnDark,l=void 0!==i&&i,s=n.position,c=void 0===s?"fixed":s,u=B(n,["className","color","enableColorOnDark","position"]),d=L({},n,{color:a,position:c,enableColorOnDark:l}),p=function(e){var t=e.color,n=e.position,o=e.classes;return xa({root:["root","color".concat(En(t)),"position".concat(En(n))]},hc,o)}(d);return sn(yc,L({square:!0,component:"header",ownerState:d,elevation:4,className:Wo(p.root,o,"fixed"===c&&"mui-fixed"),ref:t},u))})),wc=xc;function Sc(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function Cc(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ignoreAccents,n=void 0===t||t,o=e.ignoreCase,r=void 0===o||o,a=e.limit,i=e.matchFrom,l=void 0===i?"any":i,s=e.stringify,c=e.trim,u=void 0!==c&&c;return function(e,t){var o=t.inputValue,i=t.getOptionLabel,c=u?o.trim():o;r&&(c=c.toLowerCase()),n&&(c=Sc(c));var d=c?e.filter((function(e){var t=(s||i)(e);return r&&(t=t.toLowerCase()),n&&(t=Sc(t)),"start"===l?0===t.indexOf(c):t.indexOf(c)>-1})):e;return"number"==typeof a?d.slice(0,a):d}}function kc(e,t){for(var n=0;n0&&!ue,$e=Xr((function(e){-1===e?ge.current.focus():xe.querySelector('[data-tag-index="'.concat(e,'"]')).focus()}));r.useEffect((function(){Q&&Ce>Ie.length-1&&(ke(-1),$e(-1))}),[Ie,Q,Ce,$e]);var Xe=Xr((function(e){var t=e.event,n=e.index,o=e.reason,r=void 0===o?"auto":o;if(Me.current=n,-1===n?ge.current.removeAttribute("aria-activedescendant"):ge.current.setAttribute("aria-activedescendant","".concat(ve,"-option-").concat(n)),ne&&ne(t,-1===n?null:_e[n],r),be.current){var a=be.current.querySelector('[role="option"].'.concat(i,"-focused"));a&&(a.classList.remove("".concat(i,"-focused")),a.classList.remove("".concat(i,"-focusVisible")));var l=be.current;if("listbox"!==be.current.getAttribute("role")&&(l=be.current.parentElement.querySelector('[role="listbox"]')),l)if(-1!==n){var s=be.current.querySelector('[data-option-index="'.concat(n,'"]'));if(s&&(s.classList.add("".concat(i,"-focused")),"keyboard"===r&&s.classList.add("".concat(i,"-focusVisible")),l.scrollHeight>l.clientHeight&&"mouse"!==r&&"touch"!==r)){var c=s,u=l.clientHeight+l.scrollTop,d=c.offsetTop+c.offsetHeight;d>u?l.scrollTop=d-l.clientHeight:c.offsetTop-c.offsetHeight*(U?1.3:0)=_e.length)return-1;for(var n=e;;){var o=be.current.querySelector('[data-option-index="'.concat(n,'"]')),r=!T&&(!o||o.disabled||"true"===o.getAttribute("aria-disabled"));if(o&&o.hasAttribute("tabindex")&&!r)return n;if((n="next"===t?(n+1)%_e.length:(n-1+_e.length)%_e.length)===e)return-1}}(function(){var e=_e.length-1;if("reset"===o)return Re;if("start"===o)return 0;if("end"===o)return e;var t=Me.current+o;return t<0?-1===t&&$?-1:O&&-1!==Me.current||Math.abs(o)>1?0:e:t>e?t===e+1&&$?-1:O||Math.abs(o)>1?e:0:t}(),a);if(Xe({index:c,reason:l,event:n}),s&&"reset"!==o)if(-1===c)ge.current.value=Oe;else{var u=t(_e[c]);ge.current.value=u,0===u.toLowerCase().indexOf(Oe.toLowerCase())&&Oe.length>0&&ge.current.setSelectionRange(Oe.length,u.length)}}})),Ze=r.useCallback((function(){if(Ge){var e=function(){var e,n;if(-1!==Me.current&&qe.filteredOptions&&qe.filteredOptions.length!==_e.length&&qe.inputValue===Oe&&(Q?Ie.length===qe.value.length&&qe.value.every((function(e,n){return t(Ie[n])===t(e)})):(e=qe.value,n=Ie,(e?t(e):"")===(n?t(n):"")))){var o=qe.filteredOptions[Me.current];if(o)return kc(_e,(function(e){return t(e)===t(o)}))}return-1}();if(-1===e){var n=Q?Ie[0]:Ie;if(0!==_e.length&&null!=n){if(be.current)if(null==n)Me.current>=_e.length-1?Xe({index:_e.length-1}):Xe({index:Me.current});else{var o=_e[Me.current];if(Q&&o&&-1!==kc(Ie,(function(e){return Z(o,e)})))return;var r=kc(_e,(function(e){return Z(e,n)}));-1===r?Ye({diff:"reset"}):Xe({index:r})}}else Ye({diff:"reset"})}else Me.current=e}}),[_e.length,!Q&&Ie,z,Ye,Xe,Ge,Oe,Q]),Je=Xr((function(e){Gr(be,e),e&&Ze()}));r.useEffect((function(){Ze()}),[Ze]);var Qe=function(e){De||(We(!0),je(!0),re&&re(e))},et=function(e,t){De&&(We(!1),te&&te(e,t))},tt=function(e,t,n,o){if(Q){if(Ie.length===t.length&&Ie.every((function(e,n){return e===t[n]})))return}else if(Ie===t)return;ee&&ee(e,t,n,o),Te(t)},nt=r.useRef(!1),ot=function(e,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"options",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"selectOption",r=t;if(Q){var a=kc(r=Array.isArray(Ie)?Ie.slice():[],(function(e){return Z(t,e)}));-1===a?r.push(t):"freeSolo"!==n&&(r.splice(a,1),o="removeOption")}ze(e,r),tt(e,r,o,{option:t}),M||e&&(e.ctrlKey||e.metaKey)||et(e,o),(!0===v||"touch"===v&&nt.current||"mouse"===v&&!nt.current)&&ge.current.blur()};var rt=function(e,t){if(Q){""===Oe&&et(e,"toggleInput");var n=Ce;-1===Ce?""===Oe&&"previous"===t&&(n=Ie.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===Ie.length&&(n=-1)),n=function(e,t){if(-1===e)return-1;for(var n=e;;){if("next"===t&&n===Ie.length||"previous"===t&&-1===n)return-1;var o=xe.querySelector('[data-tag-index="'.concat(n,'"]'));if(o&&o.hasAttribute("tabindex")&&!o.disabled&&"true"!==o.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t),ke(n),$e(n)}},at=function(e){me.current=!0,Ee(""),oe&&oe(e,"","clear"),tt(e,Q?[]:null,"clear")},it=function(e){return function(t){if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==Ce&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(ke(-1),$e(-1)),229!==t.which))switch(t.key){case"Home":Ge&&_&&(t.preventDefault(),Ye({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":Ge&&_&&(t.preventDefault(),Ye({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),Ye({diff:-5,direction:"previous",reason:"keyboard",event:t}),Qe(t);break;case"PageDown":t.preventDefault(),Ye({diff:5,direction:"next",reason:"keyboard",event:t}),Qe(t);break;case"ArrowDown":t.preventDefault(),Ye({diff:1,direction:"next",reason:"keyboard",event:t}),Qe(t);break;case"ArrowUp":t.preventDefault(),Ye({diff:-1,direction:"previous",reason:"keyboard",event:t}),Qe(t);break;case"ArrowLeft":rt(t,"previous");break;case"ArrowRight":rt(t,"next");break;case"Enter":if(-1!==Me.current&&Ge){var n=_e[Me.current],o=!!W&&W(n);if(t.preventDefault(),o)return;ot(t,n,"selectOption"),s&&ge.current.setSelectionRange(ge.current.value.length,ge.current.value.length)}else D&&""!==Oe&&!1===Ue&&(Q&&t.preventDefault(),ot(t,Oe,"createOption","freeSolo"));break;case"Escape":Ge?(t.preventDefault(),t.stopPropagation(),et(t,"escape")):b&&(""!==Oe||Q&&Ie.length>0)&&(t.preventDefault(),t.stopPropagation(),at(t));break;case"Backspace":if(Q&&!ue&&""===Oe&&Ie.length>0){var r=-1===Ce?Ie.length-1:Ce,a=Ie.slice();a.splice(r,1),tt(t,a,"removeOption",{option:Ie[r]})}break;case"Delete":if(Q&&!ue&&""===Oe&&Ie.length>0&&-1!==Ce){var i=Ce,l=Ie.slice();l.splice(i,1),tt(t,l,"removeOption",{option:Ie[i]})}}}},lt=function(e){Be(!0),le&&!me.current&&Qe(e)},st=function(e){o(be)?ge.current.focus():(Be(!1),he.current=!0,me.current=!1,p&&-1!==Me.current&&Ge?ot(e,_e[Me.current],"blur"):p&&D&&""!==Oe?ot(e,Oe,"blur","freeSolo"):h&&ze(e,Ie),et(e,"blur"))},ct=function(e){var t=e.target.value;Oe!==t&&(Ee(t),je(!1),oe&&oe(e,t,"input")),""===t?k||Q||tt(e,null,"clear"):Qe(e)},ut=function(e){var t=Number(e.currentTarget.getAttribute("data-option-index"));Me.current!==t&&Xe({event:e,index:t,reason:"mouse"})},dt=function(e){Xe({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),nt.current=!0},pt=function(e){var t=Number(e.currentTarget.getAttribute("data-option-index"));ot(e,_e[t],"selectOption"),nt.current=!1},ft=function(e){return function(t){var n=Ie.slice();n.splice(e,1),tt(t,n,"removeOption",{option:Ie[e]})}},vt=function(e){De?et(e,"toggleInput"):Qe(e)},mt=function(e){e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==ve&&e.preventDefault()},ht=function(e){e.currentTarget.contains(e.target)&&(ge.current.focus(),pe&&he.current&&ge.current.selectionEnd-ge.current.selectionStart==0&&ge.current.select(),he.current=!1)},gt=function(e){P||""!==Oe&&De||vt(e)},bt=D&&Oe.length>0;bt=bt||(Q?Ie.length>0:null!==Ie);var yt=_e;return U&&(yt=_e.reduce((function(e,t,n){var o=U(t);return e.length>0&&e[e.length-1].group===o?e[e.length-1].options.push(t):e.push({key:n,index:n,group:o,options:[t]}),e}),[])),P&&Ne&&st(),{getRootProps:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return L({"aria-owns":Ke?"".concat(ve,"-listbox"):null},e,{onKeyDown:it(e),onMouseDown:mt,onClick:ht})},getInputLabelProps:function(){return{id:"".concat(ve,"-label"),htmlFor:ve}},getInputProps:function(){return{id:ve,value:Oe,onBlur:st,onFocus:lt,onChange:ct,onMouseDown:gt,"aria-activedescendant":Ge?"":null,"aria-autocomplete":s?"both":"list","aria-controls":Ke?"".concat(ve,"-listbox"):void 0,"aria-expanded":Ke,autoComplete:"off",ref:ge,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:P}},getClearProps:function(){return{tabIndex:-1,type:"button",onClick:at}},getPopupIndicatorProps:function(){return{tabIndex:-1,type:"button",onClick:vt}},getTagProps:function(e){var t=e.index;return L({key:t,"data-tag-index":t,tabIndex:-1},!ue&&{onDelete:ft(t)})},getListboxProps:function(){return{role:"listbox",id:"".concat(ve,"-listbox"),"aria-labelledby":"".concat(ve,"-label"),ref:Je,onMouseDown:function(e){e.preventDefault()}}},getOptionProps:function(e){var n,o=e.index,r=e.option,a=(Q?Ie:[Ie]).some((function(e){return null!=e&&Z(r,e)})),i=!!W&&W(r);return{key:null!=(n=null==H?void 0:H(r))?n:t(r),tabIndex:-1,role:"option",id:"".concat(ve,"-option-").concat(o),onMouseMove:ut,onClick:pt,onTouchStart:dt,"data-option-index":o,"aria-disabled":i,"aria-selected":a}},id:ve,inputValue:Oe,value:Ie,dirty:bt,expanded:Ge&&xe,popupOpen:Ge,focused:Ne||-1!==Ce,anchorEl:xe,setAnchorEl:we,focusedTag:Ce,groupedOptions:yt}}var Ic="top",Tc="bottom",Ac="right",Oc="left",Ec="auto",Lc=[Ic,Tc,Ac,Oc],Nc="start",Bc="end",zc="clippingParents",Fc="viewport",Dc="popper",Wc="reference",Hc=Lc.reduce((function(e,t){return e.concat([t+"-"+Nc,t+"-"+Bc])}),[]),Vc=[].concat(Lc,[Ec]).reduce((function(e,t){return e.concat([t,t+"-"+Nc,t+"-"+Bc])}),[]),jc=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Uc(e){return e?(e.nodeName||"").toLowerCase():null}function Gc(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function _c(e){return e instanceof Gc(e).Element||e instanceof Element}function qc(e){return e instanceof Gc(e).HTMLElement||e instanceof HTMLElement}function Kc(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Gc(e).ShadowRoot||e instanceof ShadowRoot)}var $c={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];qc(r)&&Uc(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});qc(o)&&Uc(o)&&(Object.assign(o.style,a),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function Xc(e){return e.split("-")[0]}var Yc=Math.max,Zc=Math.min,Jc=Math.round;function Qc(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function eu(){return!/^((?!chrome|android).)*safari/i.test(Qc())}function tu(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),r=1,a=1;t&&qc(e)&&(r=e.offsetWidth>0&&Jc(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Jc(o.height)/e.offsetHeight||1);var i=(_c(e)?Gc(e):window).visualViewport,l=!eu()&&n,s=(o.left+(l&&i?i.offsetLeft:0))/r,c=(o.top+(l&&i?i.offsetTop:0))/a,u=o.width/r,d=o.height/a;return{width:u,height:d,top:c,right:s+u,bottom:c+d,left:s,x:s,y:c}}function nu(e){var t=tu(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function ou(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Kc(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ru(e){return Gc(e).getComputedStyle(e)}function au(e){return["table","td","th"].indexOf(Uc(e))>=0}function iu(e){return((_c(e)?e.ownerDocument:e.document)||window.document).documentElement}function lu(e){return"html"===Uc(e)?e:e.assignedSlot||e.parentNode||(Kc(e)?e.host:null)||iu(e)}function su(e){return qc(e)&&"fixed"!==ru(e).position?e.offsetParent:null}function cu(e){for(var t=Gc(e),n=su(e);n&&au(n)&&"static"===ru(n).position;)n=su(n);return n&&("html"===Uc(n)||"body"===Uc(n)&&"static"===ru(n).position)?t:n||function(e){var t=/firefox/i.test(Qc());if(/Trident/i.test(Qc())&&qc(e)&&"fixed"===ru(e).position)return null;var n=lu(e);for(Kc(n)&&(n=n.host);qc(n)&&["html","body"].indexOf(Uc(n))<0;){var o=ru(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function uu(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function du(e,t,n){return Yc(e,Zc(t,n))}function pu(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fu(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var vu={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,r=e.options,a=n.elements.arrow,i=n.modifiersData.popperOffsets,l=Xc(n.placement),s=uu(l),c=[Oc,Ac].indexOf(l)>=0?"height":"width";if(a&&i){var u=function(e,t){return pu("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fu(e,Lc))}(r.padding,n),d=nu(a),p="y"===s?Ic:Oc,f="y"===s?Tc:Ac,v=n.rects.reference[c]+n.rects.reference[s]-i[s]-n.rects.popper[c],m=i[s]-n.rects.reference[s],h=cu(a),g=h?"y"===s?h.clientHeight||0:h.clientWidth||0:0,b=v/2-m/2,y=u[p],x=g-d[c]-u[f],w=g/2-d[c]/2+b,S=du(y,w,x),C=s;n.modifiersData[o]=((t={})[C]=S,t.centerOffset=S-w,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&ou(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function mu(e){return e.split("-")[1]}var hu={top:"auto",right:"auto",bottom:"auto",left:"auto"};function gu(e){var t,n=e.popper,o=e.popperRect,r=e.placement,a=e.variation,i=e.offsets,l=e.position,s=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,p=i.x,f=void 0===p?0:p,v=i.y,m=void 0===v?0:v,h="function"==typeof u?u({x:f,y:m}):{x:f,y:m};f=h.x,m=h.y;var g=i.hasOwnProperty("x"),b=i.hasOwnProperty("y"),y=Oc,x=Ic,w=window;if(c){var S=cu(n),C="clientHeight",k="clientWidth";if(S===Gc(n)&&"static"!==ru(S=iu(n)).position&&"absolute"===l&&(C="scrollHeight",k="scrollWidth"),r===Ic||(r===Oc||r===Ac)&&a===Bc)x=Tc,m-=(d&&S===w&&w.visualViewport?w.visualViewport.height:S[C])-o.height,m*=s?1:-1;if(r===Oc||(r===Ic||r===Tc)&&a===Bc)y=Ac,f-=(d&&S===w&&w.visualViewport?w.visualViewport.width:S[k])-o.width,f*=s?1:-1}var R,M=Object.assign({position:l},c&&hu),P=!0===u?function(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:Jc(n*r)/r||0,y:Jc(o*r)/r||0}}({x:f,y:m},Gc(n)):{x:f,y:m};return f=P.x,m=P.y,s?Object.assign({},M,((R={})[x]=b?"0":"",R[y]=g?"0":"",R.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",R)):Object.assign({},M,((t={})[x]=b?m+"px":"",t[y]=g?f+"px":"",t.transform="",t))}var bu={passive:!0};var yu={left:"right",right:"left",bottom:"top",top:"bottom"};function xu(e){return e.replace(/left|right|bottom|top/g,(function(e){return yu[e]}))}var wu={start:"end",end:"start"};function Su(e){return e.replace(/start|end/g,(function(e){return wu[e]}))}function Cu(e){var t=Gc(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ku(e){return tu(iu(e)).left+Cu(e).scrollLeft}function Ru(e){var t=ru(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function Mu(e){return["html","body","#document"].indexOf(Uc(e))>=0?e.ownerDocument.body:qc(e)&&Ru(e)?e:Mu(lu(e))}function Pu(e,t){var n;void 0===t&&(t=[]);var o=Mu(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),a=Gc(o),i=r?[a].concat(a.visualViewport||[],Ru(o)?o:[]):o,l=t.concat(i);return r?l:l.concat(Pu(lu(i)))}function Iu(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Tu(e,t,n){return t===Fc?Iu(function(e,t){var n=Gc(e),o=iu(e),r=n.visualViewport,a=o.clientWidth,i=o.clientHeight,l=0,s=0;if(r){a=r.width,i=r.height;var c=eu();(c||!c&&"fixed"===t)&&(l=r.offsetLeft,s=r.offsetTop)}return{width:a,height:i,x:l+ku(e),y:s}}(e,n)):_c(t)?function(e,t){var n=tu(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):Iu(function(e){var t,n=iu(e),o=Cu(e),r=null==(t=e.ownerDocument)?void 0:t.body,a=Yc(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),i=Yc(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),l=-o.scrollLeft+ku(e),s=-o.scrollTop;return"rtl"===ru(r||n).direction&&(l+=Yc(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:i,x:l,y:s}}(iu(e)))}function Au(e,t,n,o){var r="clippingParents"===t?function(e){var t=Pu(lu(e)),n=["absolute","fixed"].indexOf(ru(e).position)>=0&&qc(e)?cu(e):e;return _c(n)?t.filter((function(e){return _c(e)&&ou(e,n)&&"body"!==Uc(e)})):[]}(e):[].concat(t),a=[].concat(r,[n]),i=a[0],l=a.reduce((function(t,n){var r=Tu(e,n,o);return t.top=Yc(r.top,t.top),t.right=Zc(r.right,t.right),t.bottom=Zc(r.bottom,t.bottom),t.left=Yc(r.left,t.left),t}),Tu(e,i,o));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function Ou(e){var t,n=e.reference,o=e.element,r=e.placement,a=r?Xc(r):null,i=r?mu(r):null,l=n.x+n.width/2-o.width/2,s=n.y+n.height/2-o.height/2;switch(a){case Ic:t={x:l,y:n.y-o.height};break;case Tc:t={x:l,y:n.y+n.height};break;case Ac:t={x:n.x+n.width,y:s};break;case Oc:t={x:n.x-o.width,y:s};break;default:t={x:n.x,y:n.y}}var c=a?uu(a):null;if(null!=c){var u="y"===c?"height":"width";switch(i){case Nc:t[c]=t[c]-(n[u]/2-o[u]/2);break;case Bc:t[c]=t[c]+(n[u]/2-o[u]/2)}}return t}function Eu(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=void 0===o?e.placement:o,a=n.strategy,i=void 0===a?e.strategy:a,l=n.boundary,s=void 0===l?zc:l,c=n.rootBoundary,u=void 0===c?Fc:c,d=n.elementContext,p=void 0===d?Dc:d,f=n.altBoundary,v=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=pu("number"!=typeof h?h:fu(h,Lc)),b=p===Dc?Wc:Dc,y=e.rects.popper,x=e.elements[v?b:p],w=Au(_c(x)?x:x.contextElement||iu(e.elements.popper),s,u,i),S=tu(e.elements.reference),C=Ou({reference:S,element:y,strategy:"absolute",placement:r}),k=Iu(Object.assign({},y,C)),R=p===Dc?k:S,M={top:w.top-R.top+g.top,bottom:R.bottom-w.bottom+g.bottom,left:w.left-R.left+g.left,right:R.right-w.right+g.right},P=e.modifiersData.offset;if(p===Dc&&P){var I=P[r];Object.keys(M).forEach((function(e){var t=[Ac,Tc].indexOf(e)>=0?1:-1,n=[Ic,Tc].indexOf(e)>=0?"y":"x";M[e]+=I[n]*t}))}return M}function Lu(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,a=n.rootBoundary,i=n.padding,l=n.flipVariations,s=n.allowedAutoPlacements,c=void 0===s?Vc:s,u=mu(o),d=u?l?Hc:Hc.filter((function(e){return mu(e)===u})):Lc,p=d.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=Eu(e,{placement:n,boundary:r,rootBoundary:a,padding:i})[Xc(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}var Nu={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,a=void 0===r||r,i=n.altAxis,l=void 0===i||i,s=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,v=void 0===f||f,m=n.allowedAutoPlacements,h=t.options.placement,g=Xc(h),b=s||(g===h||!v?[xu(h)]:function(e){if(Xc(e)===Ec)return[];var t=xu(e);return[Su(e),t,Su(t)]}(h)),y=[h].concat(b).reduce((function(e,n){return e.concat(Xc(n)===Ec?Lu(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:v,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,S=new Map,C=!0,k=y[0],R=0;R=0,A=T?"width":"height",O=Eu(t,{placement:M,boundary:u,rootBoundary:d,altBoundary:p,padding:c}),E=T?I?Ac:Oc:I?Tc:Ic;x[A]>w[A]&&(E=xu(E));var L=xu(E),N=[];if(a&&N.push(O[P]<=0),l&&N.push(O[E]<=0,O[L]<=0),N.every((function(e){return e}))){k=M,C=!1;break}S.set(M,N)}if(C)for(var B=function(e){var t=y.find((function(t){var n=S.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},z=v?3:1;z>0;z--){if("break"===B(z))break}t.placement!==k&&(t.modifiersData[o]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Bu(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function zu(e){return[Ic,Ac,Tc,Oc].some((function(t){return e[t]>=0}))}var Fu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,a=void 0===r?[0,0]:r,i=Vc.reduce((function(e,n){return e[n]=function(e,t,n){var o=Xc(e),r=[Oc,Ic].indexOf(o)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,i=a[0],l=a[1];return i=i||0,l=(l||0)*r,[Oc,Ac].indexOf(o)>=0?{x:l,y:i}:{x:i,y:l}}(n,t.rects,a),e}),{}),l=i[t.placement],s=l.x,c=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=c),t.modifiersData[o]=i}};var Du={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,a=void 0===r||r,i=n.altAxis,l=void 0!==i&&i,s=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,v=n.tetherOffset,m=void 0===v?0:v,h=Eu(t,{boundary:s,rootBoundary:c,padding:d,altBoundary:u}),g=Xc(t.placement),b=mu(t.placement),y=!b,x=uu(g),w="x"===x?"y":"x",S=t.modifiersData.popperOffsets,C=t.rects.reference,k=t.rects.popper,R="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,M="number"==typeof R?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(S){if(a){var T,A="y"===x?Ic:Oc,O="y"===x?Tc:Ac,E="y"===x?"height":"width",L=S[x],N=L+h[A],B=L-h[O],z=f?-k[E]/2:0,F=b===Nc?C[E]:k[E],D=b===Nc?-k[E]:-C[E],W=t.elements.arrow,H=f&&W?nu(W):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[A],U=V[O],G=du(0,C[E],H[E]),_=y?C[E]/2-z-G-j-M.mainAxis:F-G-j-M.mainAxis,q=y?-C[E]/2+z+G+U+M.mainAxis:D+G+U+M.mainAxis,K=t.elements.arrow&&cu(t.elements.arrow),$=K?"y"===x?K.clientTop||0:K.clientLeft||0:0,X=null!=(T=null==P?void 0:P[x])?T:0,Y=L+q-X,Z=du(f?Zc(N,L+_-X-$):N,L,f?Yc(B,Y):B);S[x]=Z,I[x]=Z-L}if(l){var J,Q="x"===x?Ic:Oc,ee="x"===x?Tc:Ac,te=S[w],ne="y"===w?"height":"width",oe=te+h[Q],re=te-h[ee],ae=-1!==[Ic,Oc].indexOf(g),ie=null!=(J=null==P?void 0:P[w])?J:0,le=ae?oe:te-C[ne]-k[ne]-ie+M.altAxis,se=ae?te+C[ne]+k[ne]-ie-M.altAxis:re,ce=f&&ae?function(e,t,n){var o=du(e,t,n);return o>n?n:o}(le,te,se):du(f?le:oe,te,f?se:re);S[w]=ce,I[w]=ce-te}t.modifiersData[o]=I}},requiresIfExists:["offset"]};function Wu(e,t,n){void 0===n&&(n=!1);var o,r,a=qc(t),i=qc(t)&&function(e){var t=e.getBoundingClientRect(),n=Jc(t.width)/e.offsetWidth||1,o=Jc(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),l=iu(t),s=tu(e,i,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(a||!a&&!n)&&(("body"!==Uc(t)||Ru(l))&&(c=(o=t)!==Gc(o)&&qc(o)?{scrollLeft:(r=o).scrollLeft,scrollTop:r.scrollTop}:Cu(o)),qc(t)?((u=tu(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):l&&(u.x=ku(l))),{x:s.left+c.scrollLeft-u.x,y:s.top+c.scrollTop-u.y,width:s.width,height:s.height}}function Hu(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}var Vu={placement:"bottom",modifiers:[],strategy:"absolute"};function ju(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]&&arguments[1];return e&&(xd(e.value)&&""!==e.value||t&&xd(e.defaultValue)&&""!==e.defaultValue)}function Sd(e){return Vo("MuiInputBase",e)}var Cd=jo("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),kd=function(e,t){var n=e.ownerState;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,"small"===n.size&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t["color".concat(En(n.color))],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},Rd=function(e,t){var n=e.ownerState;return[t.input,"small"===n.size&&t.inputSizeSmall,n.multiline&&t.inputMultiline,"search"===n.type&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},Md=Zi("div",{name:"MuiInputBase",slot:"Root",overridesResolver:kd})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.body1,E({color:(t.vars||t).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center"},"&.".concat(Cd.disabled),{color:(t.vars||t).palette.text.disabled,cursor:"default"}),n.multiline&&L({padding:"4px 0 5px"},"small"===n.size&&{paddingTop:1}),n.fullWidth&&{width:"100%"})})),Pd=Zi("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Rd})((function(e){var t=e.theme,n=e.ownerState,o="light"===t.palette.mode,r=L({color:"currentColor"},t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:o?.42:.5},{transition:t.transitions.create("opacity",{duration:t.transitions.duration.shorter})}),a={opacity:"0 !important"},i=t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:o?.42:.5};return L(E(E(E({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"}},"label[data-shrink=false] + .".concat(Cd.formControl," &"),{"&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&:-ms-input-placeholder":a,"&::-ms-input-placeholder":a,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus:-ms-input-placeholder":i,"&:focus::-ms-input-placeholder":i}),"&.".concat(Cd.disabled),{opacity:1,WebkitTextFillColor:(t.vars||t).palette.text.disabled}),"&:-webkit-autofill",{animationDuration:"5000s",animationName:"mui-auto-fill"}),"small"===n.size&&{paddingTop:1},n.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},"search"===n.type&&{MozAppearance:"textfield"})})),Id=sn(yd,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),Td=r.forwardRef((function(e,t){var n,o=gl({props:e,name:"MuiInputBase"}),a=o["aria-describedby"],i=o.autoComplete,l=o.autoFocus,s=o.className;o.color;var c=o.components,u=void 0===c?{}:c,d=o.componentsProps,p=void 0===d?{}:d,f=o.defaultValue,v=o.disabled,m=o.disableInjectingGlobalStyles,h=o.endAdornment;o.error;var g=o.fullWidth,b=void 0!==g&&g,y=o.id,x=o.inputComponent,w=void 0===x?"input":x,S=o.inputProps,C=void 0===S?{}:S,k=o.inputRef;o.margin;var R=o.maxRows,M=o.minRows,P=o.multiline,T=void 0!==P&&P,A=o.name,O=o.onBlur,E=o.onChange,N=o.onClick,z=o.onFocus,F=o.onKeyDown,D=o.onKeyUp,W=o.placeholder,H=o.readOnly,V=o.renderSuffix,j=o.rows;o.size;var U=o.slotProps,G=void 0===U?{}:U,_=o.slots,q=void 0===_?{}:_,K=o.startAdornment,$=o.type,X=void 0===$?"text":$,Y=o.value,Z=B(o,["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"]),J=null!=C.value?C.value:Y,Q=r.useRef(null!=J).current,ee=r.useRef(),te=r.useCallback((function(e){}),[]),ne=Yr(ee,k,C.ref,te),oe=r.useState(!1),re=oe[0],ae=oe[1],ie=bd(),le=hd({props:o,muiFormControl:ie,states:["color","disabled","error","hiddenLabel","size","required","filled"]});le.focused=ie?ie.focused:re,r.useEffect((function(){!ie&&v&&re&&(ae(!1),O&&O())}),[ie,v,re,O]);var se=ie&&ie.onFilled,ce=ie&&ie.onEmpty,ue=r.useCallback((function(e){wd(e)?se&&se():ce&&ce()}),[se,ce]);gr((function(){Q&&ue({value:J})}),[J,ue,Q]);r.useEffect((function(){ue(ee.current)}),[]);var de=w,pe=C;T&&"input"===de&&(pe=L(j?{type:void 0,minRows:j,maxRows:j}:{type:void 0,maxRows:R,minRows:M},pe),de=md);r.useEffect((function(){ie&&ie.setAdornedStart(Boolean(K))}),[ie,K]);var fe=L({},o,{color:le.color||"primary",disabled:le.disabled,endAdornment:h,error:le.error,focused:le.focused,formControl:ie,fullWidth:b,hiddenLabel:le.hiddenLabel,multiline:T,size:le.size,startAdornment:K,type:X}),ve=function(e){var t=e.classes,n=e.color,o=e.disabled,r=e.error,a=e.endAdornment,i=e.focused,l=e.formControl,s=e.fullWidth,c=e.hiddenLabel,u=e.multiline,d=e.readOnly,p=e.size,f=e.startAdornment,v=e.type;return xa({root:["root","color".concat(En(n)),o&&"disabled",r&&"error",s&&"fullWidth",i&&"focused",l&&"formControl",p&&"medium"!==p&&"size".concat(En(p)),u&&"multiline",f&&"adornedStart",a&&"adornedEnd",c&&"hiddenLabel",d&&"readOnly"],input:["input",o&&"disabled","search"===v&&"inputTypeSearch",u&&"inputMultiline","small"===p&&"inputSizeSmall",c&&"inputHiddenLabel",f&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]},Sd,t)}(fe),me=q.root||u.Root||Md,he=G.root||p.root||{},ge=q.input||u.Input||Pd;return pe=L({},pe,null!=(n=G.input)?n:p.input),cn(r.Fragment,{children:[!m&&Id,cn(me,L({},he,!wa(me)&&{ownerState:L({},fe,he.ownerState)},{ref:t,onClick:function(e){ee.current&&e.currentTarget===e.target&&ee.current.focus(),N&&N(e)}},Z,{className:Wo(ve.root,he.className,s,H&&"MuiInputBase-readOnly"),children:[K,sn(gd.Provider,{value:null,children:sn(ge,L({ownerState:fe,"aria-invalid":le.error,"aria-describedby":a,autoComplete:i,autoFocus:l,defaultValue:f,disabled:le.disabled,id:y,onAnimationStart:function(e){ue("mui-auto-fill-cancel"===e.animationName?ee.current:{value:"x"})},name:A,placeholder:W,readOnly:H,required:le.required,rows:j,value:J,onKeyDown:F,onKeyUp:D,type:X},pe,!wa(ge)&&{as:de,ownerState:L({},fe,pe.ownerState)},{ref:ne,className:Wo(ve.input,pe.className,H&&"MuiInputBase-readOnly"),onBlur:function(e){O&&O(e),C.onBlur&&C.onBlur(e),ie&&ie.onBlur?ie.onBlur(e):ae(!1)},onChange:function(e){if(!Q){var t=e.target||ee.current;if(null==t)throw new Error(I(1));ue({value:t.value})}for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r0){var Ye=function(e){return L({className:Xe.tag,disabled:C},Re(e))};ge=de?de(Ie,Ye,$e):Ie.map((function(e,t){var n=Ye({index:t}),o=n.key,r=B(n,["key"]);return sn(dd,L({label:Ke(e),size:ve},r,s),o)}))}if(H>-1&&Array.isArray(ge)){var Ze=ge.length-H;!Le&&Ze>0&&(ge=ge.splice(0,H)).push(sn("span",{className:Xe.tag,children:N(Ze)},ge.length))}var Je=se||function(e){return cn("li",{children:[sn(Jd,{className:Xe.groupLabel,ownerState:$e,component:"div",children:e.group}),sn(Qd,{className:Xe.groupUl,ownerState:$e,children:e.children})]},e.key)},Qe=ue||function(e,t){var n=e.key,o=B(e,["key"]);return sn("li",L({},o,{children:Ke(t)}),n)},et=function(e,t){var n=Pe({option:e,index:t});return Qe(L({},n,{className:Xe.option}),e,{selected:n["aria-selected"],index:t,inputValue:Fe},$e)},tt=null!=(n=he.clearIndicator)?n:b.clearIndicator,nt=null!=(o=he.paper)?o:b.paper,ot=null!=(a=he.popper)?a:b.popper,rt=null!=(i=he.popupIndicator)?i:b.popupIndicator,at=function(e){return sn(Kd,L({as:oe,disablePortal:R,style:{width:Be?Be.clientWidth:null},ownerState:$e,role:"presentation",anchorEl:Be,open:Ee},ot,{className:Wo(Xe.popper,null==ot?void 0:ot.className),children:sn($d,L({ownerState:$e,as:te},nt,{className:Wo(Xe.paper,null==nt?void 0:nt.className),children:e}))}))},it=null;return De.length>0?it=at(sn(Zd,L({as:j,className:Xe.listbox,ownerState:$e},_e,U,{ref:qe,children:De.map((function(e,t){return F?Je({key:e.key,group:e.group,children:e.options.map((function(t,n){return et(t,e.index+n)}))}):et(e,t)}))}))):_&&0===De.length?it=at(sn(Xd,{className:Xe.loading,ownerState:$e,children:K})):0!==De.length||T||_||(it=at(sn(Yd,{className:Xe.noOptions,ownerState:$e,role:"presentation",onMouseDown:function(e){e.preventDefault()},children:Z}))),cn(r.Fragment,{children:[sn(Ud,L({ref:t,className:Wo(Xe.root,c),ownerState:$e},xe(be),{children:ce({id:Oe,disabled:C,fullWidth:!0,size:"small"===ve?"small":void 0,InputLabelProps:Se(),InputProps:L({ref:ze,className:Xe.inputRoot,startAdornment:ge,onClick:function(e){e.target===e.currentTarget&&Ve(e)}},(We||He)&&{endAdornment:cn(Gd,{className:Xe.endAdornment,ownerState:$e,children:[We?sn(_d,L({},ke(),{"aria-label":v,title:v,ownerState:$e},tt,{className:Wo(Xe.clearIndicator,null==tt?void 0:tt.className),children:d})):null,He?sn(qd,L({},Ce(),{disabled:C,"aria-label":Ee?h:Q,title:Ee?h:Q,ownerState:$e},rt,{className:Wo(Xe.popupIndicator,null==rt?void 0:rt.className),children:ae})):null]})}),inputProps:L({className:Xe.input,disabled:C,readOnly:le},we())})})),Be?it:null]})})),tp=ep,np=Cl(sn("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function op(e){return Vo("MuiAvatar",e)}var rp=jo("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]),ap=Zi("div",{name:"MuiAvatar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],n.colorDefault&&t.colorDefault]}})((function(e){var t=e.theme;return{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:L({color:(t.vars||t).palette.background.default},t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:L({backgroundColor:t.palette.grey[400]},t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})))}]}})),ip=Zi("img",{name:"MuiAvatar",slot:"Img",overridesResolver:function(e,t){return t.img}})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),lp=Zi(np,{name:"MuiAvatar",slot:"Fallback",overridesResolver:function(e,t){return t.fallback}})({width:"75%",height:"75%"});var sp=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiAvatar"}),o=n.alt,a=n.children,i=n.className,l=n.component,s=void 0===l?"div":l,c=n.slots,u=void 0===c?{}:c,d=n.slotProps,p=void 0===d?{}:d,f=n.imgProps,v=n.sizes,m=n.src,h=n.srcSet,g=n.variant,b=void 0===g?"circular":g,y=B(n,["alt","children","className","component","slots","slotProps","imgProps","sizes","src","srcSet","variant"]),x=null,w=function(e){var t=e.crossOrigin,n=e.referrerPolicy,o=e.src,a=e.srcSet,i=r.useState(!1),l=i[0],s=i[1];return r.useEffect((function(){if(o||a){s(!1);var e=!0,r=new Image;return r.onload=function(){e&&s("loaded")},r.onerror=function(){e&&s("error")},r.crossOrigin=t,r.referrerPolicy=n,r.src=o,a&&(r.srcset=a),function(){e=!1}}}),[t,n,o,a]),l}(L({},f,{src:m,srcSet:h})),S=m||h,C=S&&"error"!==w,k=L({},n,{colorDefault:!C,component:s,variant:b}),R=function(e){var t=e.classes;return xa({root:["root",e.variant,e.colorDefault&&"colorDefault"],img:["img"],fallback:["fallback"]},op,t)}(k),M=Sn(os("img",{className:R.img,elementType:ip,externalForwardedProps:{slots:u,slotProps:{img:L({},f,p.img)}},additionalProps:{alt:o,src:m,srcSet:h,sizes:v},ownerState:k}),2),P=M[0],I=M[1];return x=C?sn(P,L({},I)):a||0===a?a:S&&o?o[0]:sn(lp,{ownerState:k,className:R.fallback}),sn(ap,L({as:s,ownerState:k,className:Wo(R.root,i),ref:t},y,{children:x}))}));function cp(e){return Vo("MuiAvatarGroup",e)}var up=jo("MuiAvatarGroup",["root","avatar"]),dp={small:-16,medium:null},pp=Zi("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:function(e,t){return L(E({},"& .".concat(up.avatar),t.avatar),t.root)}})((function(e){var t=e.theme,n=e.ownerState,o=n.spacing&&void 0!==dp[n.spacing]?dp[n.spacing]:-n.spacing;return E(E(E({},"& .".concat(rp.root),{border:"2px solid ".concat((t.vars||t).palette.background.default),boxSizing:"content-box",marginLeft:null!=o?o:-8,"&:last-child":{marginLeft:0}}),"display","flex"),"flexDirection","row-reverse")})),fp=r.forwardRef((function(e,t){var n,o=gl({props:e,name:"MuiAvatarGroup"}),a=o.children,i=o.className,l=o.component,s=void 0===l?"div":l,c=o.componentsProps,u=void 0===c?{}:c,d=o.max,p=void 0===d?5:d,f=o.renderSurplus,v=o.slotProps,m=void 0===v?{}:v,h=o.spacing,g=void 0===h?"medium":h,b=o.total,y=o.variant,x=void 0===y?"circular":y,w=B(o,["children","className","component","componentsProps","max","renderSurplus","slotProps","spacing","total","variant"]),S=p<2?2:p,C=L({},o,{max:p,spacing:g,component:s,variant:x}),k=function(e){return xa({root:["root"],avatar:["avatar"]},cp,e.classes)}(C),R=r.Children.toArray(a).filter((function(e){return r.isValidElement(e)})),M=b||R.length;M===S&&(S+=1),S=Math.min(M+1,S);var P=Math.min(R.length,S-1),I=Math.max(M-S,M-P,0),T=f?f(I):"+".concat(I),A=null!=(n=m.additionalAvatar)?n:u.additionalAvatar;return cn(pp,L({as:s,ownerState:C,className:Wo(k.root,i),ref:t},w,{children:[I?sn(sp,L({variant:x},A,{className:Wo(k.avatar,null==A?void 0:A.className),children:T})):null,R.slice(0,P).reverse().map((function(e){return r.cloneElement(e,{className:Wo(e.props.className,k.avatar),variant:e.props.variant||x})}))]}))})),vp=fp,mp={entering:{opacity:1},entered:{opacity:1}},hp=r.forwardRef((function(e,t){var n=$i(),o={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},a=e.addEndListener,i=e.appear,l=void 0===i||i,s=e.children,c=e.easing,u=e.in,d=e.onEnter,p=e.onEntered,f=e.onEntering,v=e.onExit,m=e.onExited,h=e.onExiting,g=e.style,b=e.timeout,y=void 0===b?o:b,x=e.TransitionComponent,w=void 0===x?zl:x,S=B(e,["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),C=r.useRef(null),k=Yr(C,s.ref,t),R=function(e){return function(t){if(e){var n=C.current;void 0===t?e(n):e(n,t)}}},M=R(f),P=R((function(e,t){Ul(e);var o=Gl({style:g,timeout:y,easing:c},{mode:"enter"});e.style.webkitTransition=n.transitions.create("opacity",o),e.style.transition=n.transitions.create("opacity",o),d&&d(e,t)})),I=R(p),T=R(h),A=R((function(e){var t=Gl({style:g,timeout:y,easing:c},{mode:"exit"});e.style.webkitTransition=n.transitions.create("opacity",t),e.style.transition=n.transitions.create("opacity",t),v&&v(e)})),O=R(m);return sn(w,L({appear:l,in:u,nodeRef:C,onEnter:P,onEntered:I,onEntering:M,onExit:A,onExited:O,onExiting:T,addEndListener:function(e){a&&a(C.current,e)},timeout:y},S,{children:function(e,t){return r.cloneElement(s,L({style:L({opacity:0,visibility:"exited"!==e||u?void 0:"hidden"},mp[e],g,s.props.style),ref:k},t))}}))})),gp=hp;function bp(e){return Vo("MuiBackdrop",e)}var yp=jo("MuiBackdrop",["root","invisible"]),xp=Zi("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.invisible&&t.invisible]}})((function(e){return L({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},e.ownerState.invisible&&{backgroundColor:"transparent"})})),wp=r.forwardRef((function(e,t){var n,o,r,a=gl({props:e,name:"MuiBackdrop"}),i=a.children,l=a.className,s=a.component,c=void 0===s?"div":s,u=a.components,d=void 0===u?{}:u,p=a.componentsProps,f=void 0===p?{}:p,v=a.invisible,m=void 0!==v&&v,h=a.open,g=a.slotProps,b=void 0===g?{}:g,y=a.slots,x=void 0===y?{}:y,w=a.TransitionComponent,S=void 0===w?gp:w,C=a.transitionDuration,k=B(a,["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"]),R=L({},a,{component:c,invisible:m}),M=function(e){var t=e.classes;return xa({root:["root",e.invisible&&"invisible"]},bp,t)}(R),P=null!=(n=b.root)?n:f.root;return sn(S,L({in:h,timeout:C},k,{children:sn(xp,L({"aria-hidden":!0},P,{as:null!=(o=null!=(r=x.root)?r:d.Root)?o:c,className:Wo(M.root,l,null==P?void 0:P.className),ownerState:L({},R,null==P?void 0:P.ownerState),classes:M,ref:t,children:i}))}))}));function Sp(e){return Vo("MuiBadge",e)}var Cp=jo("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]),kp=Zi("span",{name:"MuiBadge",slot:"Root",overridesResolver:function(e,t){return t.root}})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),Rp=Zi("span",{name:"MuiBadge",slot:"Badge",overridesResolver:function(e,t){var n=e.ownerState;return[t.badge,t[n.variant],t["anchorOrigin".concat(En(n.anchorOrigin.vertical)).concat(En(n.anchorOrigin.horizontal)).concat(En(n.overlap))],"default"!==n.color&&t["color".concat(En(n.color))],n.invisible&&t.invisible]}})((function(e){var t,n=e.theme;return{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:n.typography.fontFamily,fontWeight:n.typography.fontWeightMedium,fontSize:n.typography.pxToRem(12),minWidth:20,lineHeight:1,padding:"0 6px",height:20,borderRadius:10,zIndex:1,transition:n.transitions.create("transform",{easing:n.transitions.easing.easeInOut,duration:n.transitions.duration.enteringScreen}),variants:[].concat(kn(Object.keys((null!=(t=n.vars)?t:n).palette).filter((function(e){var t,o;return(null!=(t=n.vars)?t:n).palette[e].main&&(null!=(o=n.vars)?o:n).palette[e].contrastText})).map((function(e){return{props:{color:e},style:{backgroundColor:(n.vars||n).palette[e].main,color:(n.vars||n).palette[e].contrastText}}}))),[{props:{variant:"dot"},style:{borderRadius:4,height:8,minWidth:8,padding:0}},{props:function(e){var t=e.ownerState;return"top"===t.anchorOrigin.vertical&&"right"===t.anchorOrigin.horizontal&&"rectangular"===t.overlap},style:E({top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(50%, -50%)"})},{props:function(e){var t=e.ownerState;return"bottom"===t.anchorOrigin.vertical&&"right"===t.anchorOrigin.horizontal&&"rectangular"===t.overlap},style:E({bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(50%, 50%)"})},{props:function(e){var t=e.ownerState;return"top"===t.anchorOrigin.vertical&&"left"===t.anchorOrigin.horizontal&&"rectangular"===t.overlap},style:E({top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(-50%, -50%)"})},{props:function(e){var t=e.ownerState;return"bottom"===t.anchorOrigin.vertical&&"left"===t.anchorOrigin.horizontal&&"rectangular"===t.overlap},style:E({bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(-50%, 50%)"})},{props:function(e){var t=e.ownerState;return"top"===t.anchorOrigin.vertical&&"right"===t.anchorOrigin.horizontal&&"circular"===t.overlap},style:E({top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(50%, -50%)"})},{props:function(e){var t=e.ownerState;return"bottom"===t.anchorOrigin.vertical&&"right"===t.anchorOrigin.horizontal&&"circular"===t.overlap},style:E({bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(50%, 50%)"})},{props:function(e){var t=e.ownerState;return"top"===t.anchorOrigin.vertical&&"left"===t.anchorOrigin.horizontal&&"circular"===t.overlap},style:E({top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(-50%, -50%)"})},{props:function(e){var t=e.ownerState;return"bottom"===t.anchorOrigin.vertical&&"left"===t.anchorOrigin.horizontal&&"circular"===t.overlap},style:E({bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%"},"&.".concat(Cp.invisible),{transform:"scale(0) translate(-50%, 50%)"})},{props:{invisible:!0},style:{transition:n.transitions.create("transform",{easing:n.transitions.easing.easeInOut,duration:n.transitions.duration.leavingScreen})}}])}})),Mp=r.forwardRef((function(e,t){var n,o,r,a,i,l,s=gl({props:e,name:"MuiBadge"}),c=s.anchorOrigin,u=void 0===c?{vertical:"top",horizontal:"right"}:c,d=s.className;s.classes;var p=s.component,f=s.components,v=void 0===f?{}:f,m=s.componentsProps,h=void 0===m?{}:m,g=s.children,b=s.overlap,y=void 0===b?"rectangular":b,x=s.color,w=void 0===x?"default":x,S=s.invisible,C=void 0!==S&&S,k=s.max,R=void 0===k?99:k,M=s.badgeContent,P=s.slots,I=s.slotProps,T=s.showZero,A=void 0!==T&&T,O=s.variant,E=void 0===O?"standard":O,N=B(s,["anchorOrigin","className","classes","component","components","componentsProps","children","overlap","color","invisible","max","badgeContent","slots","slotProps","showZero","variant"]),z=function(e){var t=e.badgeContent,n=e.invisible,o=void 0!==n&&n,r=e.max,a=void 0===r?99:r,i=e.showZero,l=void 0!==i&&i,s=ga({badgeContent:t,max:a}),c=o;!1!==o||0!==t||l||(c=!0);var u=c?s:e,d=u.badgeContent,p=u.max,f=void 0===p?a:p;return{badgeContent:d,invisible:c,max:f,displayValue:d&&Number(d)>f?"".concat(f,"+"):d}}({max:R,invisible:C,badgeContent:M,showZero:A}),F=z.badgeContent,D=z.invisible,W=z.max,H=z.displayValue,V=ga({anchorOrigin:u,color:w,overlap:y,variant:E,badgeContent:M}),j=D||null==F&&"dot"!==E,U=j?V:s,G=U.color,_=void 0===G?w:G,q=U.overlap,K=void 0===q?y:q,$=U.anchorOrigin,X=void 0===$?u:$,Y=U.variant,Z=void 0===Y?E:Y,J="dot"!==Z?H:void 0,Q=L({},s,{badgeContent:F,invisible:j,max:W,displayValue:J,showZero:A,anchorOrigin:X,color:_,overlap:K,variant:Z}),ee=function(e){var t=e.color,n=e.anchorOrigin,o=e.invisible,r=e.overlap,a=e.variant,i=e.classes,l=void 0===i?{}:i;return xa({root:["root"],badge:["badge",a,o&&"invisible","anchorOrigin".concat(En(n.vertical)).concat(En(n.horizontal)),"anchorOrigin".concat(En(n.vertical)).concat(En(n.horizontal)).concat(En(r)),"overlap".concat(En(r)),"default"!==t&&"color".concat(En(t))]},Sp,l)}(Q),te=null!=(n=null!=(o=null==P?void 0:P.root)?o:v.Root)?n:kp,ne=null!=(r=null!=(a=null==P?void 0:P.badge)?a:v.Badge)?r:Rp,oe=null!=(i=null==I?void 0:I.root)?i:h.root,re=null!=(l=null==I?void 0:I.badge)?l:h.badge,ae=Pa({elementType:te,externalSlotProps:oe,externalForwardedProps:N,additionalProps:{ref:t,as:p},ownerState:Q,className:Wo(null==oe?void 0:oe.className,ee.root,d)}),ie=Pa({elementType:ne,externalSlotProps:re,ownerState:Q,className:Wo(ee.badge,null==re?void 0:re.className)});return cn(te,L({},ae,{children:[g,sn(ne,L({},ie,{children:J}))]}))})),Pp=Mp;function Ip(e){return Vo("MuiBottomNavigation",e)}var Tp=jo("MuiBottomNavigation",["root"]),Ap=Zi("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme;return{display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}})),Op=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiBottomNavigation"}),o=n.children,a=n.className,i=n.component,l=void 0===i?"div":i,s=n.onChange,c=n.showLabels,u=void 0!==c&&c,d=n.value,p=B(n,["children","className","component","onChange","showLabels","value"]),f=L({},n,{component:l,showLabels:u}),v=function(e){return xa({root:["root"]},Ip,e.classes)}(f);return sn(Ap,L({as:l,className:Wo(v.root,a),ref:t,ownerState:f},p,{children:r.Children.map(o,(function(e,t){if(!r.isValidElement(e))return null;var n=void 0===e.props.value?t:e.props.value;return r.cloneElement(e,{selected:n===d,showLabel:void 0!==e.props.showLabel?e.props.showLabel:u,value:n,onChange:s})}))}))}));function Ep(e){return Vo("MuiBottomNavigationAction",e)}var Lp=jo("MuiBottomNavigationAction",["root","iconOnly","selected","label"]),Np=Zi(Ls,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.showLabel&&!n.selected&&t.iconOnly]}})((function(e){var t=e.theme,n=e.ownerState;return L({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1"},!n.showLabel&&!n.selected&&{paddingTop:14},!n.showLabel&&!n.selected&&!n.label&&{paddingTop:0},E({},"&.".concat(Lp.selected),{color:(t.vars||t).palette.primary.main}))})),Bp=Zi("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:function(e,t){return t.label}})((function(e){var t=e.theme,n=e.ownerState;return L({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s"},!n.showLabel&&!n.selected&&{opacity:0,transitionDelay:"0s"},E({},"&.".concat(Lp.selected),{fontSize:t.typography.pxToRem(14)}))})),zp=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiBottomNavigationAction"}),o=n.className,r=n.icon,a=n.label,i=n.onChange,l=n.onClick;n.selected,n.showLabel;var s=n.value,c=B(n,["className","icon","label","onChange","onClick","selected","showLabel","value"]),u=n,d=function(e){var t=e.classes,n=e.showLabel,o=e.selected;return xa({root:["root",!n&&!o&&"iconOnly",o&&"selected"],label:["label",!n&&!o&&"iconOnly",o&&"selected"]},Ep,t)}(u);return cn(Np,L({ref:t,className:Wo(d.root,o),focusRipple:!0,onClick:function(e){i&&i(e,s),l&&l(e)},ownerState:u},c,{children:[r,sn(Bp,{className:d.label,ownerState:u,children:a})]}))})),Fp=jo("MuiBox",["root"]),Dp=Vi(),Wp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,o=e.defaultClassName,a=void 0===o?"MuiBox-root":o,i=e.generateClassName,l=dn("div",{shouldForwardProp:function(e){return"theme"!==e&&"sx"!==e&&"as"!==e}})(Mo);return r.forwardRef((function(e,o){var r=Oo(n),s=No(e),c=s.className,u=s.component,d=void 0===u?"div":u,p=B(s,["className","component"]);return sn(l,L({as:d,ref:o,className:Wo(c,i?i(a):a),theme:t&&r[t]||r},p))}))}({themeId:T,defaultTheme:Dp,defaultClassName:Fp.root,generateClassName:Fo.generate}),Hp=Wp,Vp=Cl(sn("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz"),jp=Zi(Ls)((function(e){var t=e.theme;return L({display:"flex",marginLeft:"calc(".concat(t.spacing(1)," * 0.5)"),marginRight:"calc(".concat(t.spacing(1)," * 0.5)")},"light"===t.palette.mode?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},{borderRadius:2,"&:hover, &:focus":L({},"light"===t.palette.mode?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}),"&:active":L({boxShadow:t.shadows[0]},"light"===t.palette.mode?{backgroundColor:Fr(t.palette.grey[200],.12)}:{backgroundColor:Fr(t.palette.grey[600],.12)})})})),Up=Zi(Vp)({width:24,height:16});function Gp(e){var t=e.slots,n=void 0===t?{}:t,o=e.slotProps,r=void 0===o?{}:o,a=B(e,["slots","slotProps"]),i=e;return sn("li",{children:sn(jp,L({focusRipple:!0},a,{ownerState:i,children:sn(Up,L({as:n.CollapsedIcon,ownerState:i},r.collapsedIcon))}))})}function _p(e){return Vo("MuiBreadcrumbs",e)}var qp=jo("MuiBreadcrumbs",["root","ol","li","separator"]),Kp=Zi(dc,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:function(e,t){return[E({},"& .".concat(qp.li),t.li),t.root]}})({}),$p=Zi("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:function(e,t){return t.ol}})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Xp=Zi("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:function(e,t){return t.separator}})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function Yp(e,t,n,o){return e.reduce((function(r,a,i){return i=e.length?e:[].concat(kn(e.slice(0,g)),[sn(Gp,{"aria-label":f,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:I},onClick:function(){R(!0);var e=T.current.querySelector("a[href],button,[tabindex]");e&&e.focus()}},"ellipsis")],kn(e.slice(e.length-m,e.length)))}(A),P.separator,w,M)})}))})),Jp=Zp;function Qp(e){return Vo("MuiButton",e)}var ef=jo("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),tf=r.createContext({}),nf=r.createContext(void 0),of=function(e){return L({},"small"===e.size&&{"& > *:nth-of-type(1)":{fontSize:18}},"medium"===e.size&&{"& > *:nth-of-type(1)":{fontSize:20}},"large"===e.size&&{"& > *:nth-of-type(1)":{fontSize:22}})},rf=Zi(Ls,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["".concat(n.variant).concat(En(n.color))],t["size".concat(En(n.size))],t["".concat(n.variant,"Size").concat(En(n.size))],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})((function(e){var t,n,o=e.theme,r=e.ownerState,a="light"===o.palette.mode?o.palette.grey[300]:o.palette.grey[800],i="light"===o.palette.mode?o.palette.grey.A100:o.palette.grey[700];return L({},o.typography.button,E(E({minWidth:64,padding:"6px 16px",borderRadius:(o.vars||o).shape.borderRadius,transition:o.transitions.create(["background-color","box-shadow","border-color","color"],{duration:o.transitions.duration.short}),"&:hover":L({textDecoration:"none",backgroundColor:o.vars?"rgba(".concat(o.vars.palette.text.primaryChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):Or(o.palette.text.primary,o.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"text"===r.variant&&"inherit"!==r.color&&{backgroundColor:o.vars?"rgba(".concat(o.vars.palette[r.color].mainChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):Or(o.palette[r.color].main,o.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"outlined"===r.variant&&"inherit"!==r.color&&{border:"1px solid ".concat((o.vars||o).palette[r.color].main),backgroundColor:o.vars?"rgba(".concat(o.vars.palette[r.color].mainChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):Or(o.palette[r.color].main,o.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"contained"===r.variant&&{backgroundColor:o.vars?o.vars.palette.Button.inheritContainedHoverBg:i,boxShadow:(o.vars||o).shadows[4],"@media (hover: none)":{boxShadow:(o.vars||o).shadows[2],backgroundColor:(o.vars||o).palette.grey[300]}},"contained"===r.variant&&"inherit"!==r.color&&{backgroundColor:(o.vars||o).palette[r.color].dark,"@media (hover: none)":{backgroundColor:(o.vars||o).palette[r.color].main}}),"&:active":L({},"contained"===r.variant&&{boxShadow:(o.vars||o).shadows[8]})},"&.".concat(ef.focusVisible),L({},"contained"===r.variant&&{boxShadow:(o.vars||o).shadows[6]})),"&.".concat(ef.disabled),L({color:(o.vars||o).palette.action.disabled},"outlined"===r.variant&&{border:"1px solid ".concat((o.vars||o).palette.action.disabledBackground)},"contained"===r.variant&&{color:(o.vars||o).palette.action.disabled,boxShadow:(o.vars||o).shadows[0],backgroundColor:(o.vars||o).palette.action.disabledBackground})),"text"===r.variant&&{padding:"6px 8px"},"text"===r.variant&&"inherit"!==r.color&&{color:(o.vars||o).palette[r.color].main},"outlined"===r.variant&&{padding:"5px 15px",border:"1px solid currentColor"},"outlined"===r.variant&&"inherit"!==r.color&&{color:(o.vars||o).palette[r.color].main,border:o.vars?"1px solid rgba(".concat(o.vars.palette[r.color].mainChannel," / 0.5)"):"1px solid ".concat(Or(o.palette[r.color].main,.5))},"contained"===r.variant&&{color:o.vars?o.vars.palette.text.primary:null==(t=(n=o.palette).getContrastText)?void 0:t.call(n,o.palette.grey[300]),backgroundColor:o.vars?o.vars.palette.Button.inheritContainedBg:a,boxShadow:(o.vars||o).shadows[2]},"contained"===r.variant&&"inherit"!==r.color&&{color:(o.vars||o).palette[r.color].contrastText,backgroundColor:(o.vars||o).palette[r.color].main},"inherit"===r.color&&{color:"inherit",borderColor:"currentColor"},"small"===r.size&&"text"===r.variant&&{padding:"4px 5px",fontSize:o.typography.pxToRem(13)},"large"===r.size&&"text"===r.variant&&{padding:"8px 11px",fontSize:o.typography.pxToRem(15)},"small"===r.size&&"outlined"===r.variant&&{padding:"3px 9px",fontSize:o.typography.pxToRem(13)},"large"===r.size&&"outlined"===r.variant&&{padding:"7px 21px",fontSize:o.typography.pxToRem(15)},"small"===r.size&&"contained"===r.variant&&{padding:"4px 10px",fontSize:o.typography.pxToRem(13)},"large"===r.size&&"contained"===r.variant&&{padding:"8px 22px",fontSize:o.typography.pxToRem(15)},r.fullWidth&&{width:"100%"})}),(function(e){return e.ownerState.disableElevation&&E(E(E({boxShadow:"none","&:hover":{boxShadow:"none"}},"&.".concat(ef.focusVisible),{boxShadow:"none"}),"&:active",{boxShadow:"none"}),"&.".concat(ef.disabled),{boxShadow:"none"})})),af=Zi("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.startIcon,t["iconSize".concat(En(n.size))]]}})((function(e){var t=e.ownerState;return L({display:"inherit",marginRight:8,marginLeft:-4},"small"===t.size&&{marginLeft:-2},of(t))})),lf=Zi("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.endIcon,t["iconSize".concat(En(n.size))]]}})((function(e){var t=e.ownerState;return L({display:"inherit",marginRight:-4,marginLeft:8},"small"===t.size&&{marginRight:-2},of(t))})),sf=r.forwardRef((function(e,t){var n=r.useContext(tf),o=r.useContext(nf),a=gl({props:vr(n,e),name:"MuiButton"}),i=a.children,l=a.color,s=void 0===l?"primary":l,c=a.component,u=void 0===c?"button":c,d=a.className,p=a.disabled,f=void 0!==p&&p,v=a.disableElevation,m=void 0!==v&&v,h=a.disableFocusRipple,g=void 0!==h&&h,b=a.endIcon,y=a.focusVisibleClassName,x=a.fullWidth,w=void 0!==x&&x,S=a.size,C=void 0===S?"medium":S,k=a.startIcon,R=a.type,M=a.variant,P=void 0===M?"text":M,I=B(a,["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"]),T=L({},a,{color:s,component:u,disabled:f,disableElevation:m,disableFocusRipple:g,fullWidth:w,size:C,type:R,variant:P}),A=function(e){var t=e.color,n=e.disableElevation,o=e.fullWidth,r=e.size,a=e.variant,i=e.classes;return L({},i,xa({root:["root",a,"".concat(a).concat(En(t)),"size".concat(En(r)),"".concat(a,"Size").concat(En(r)),"color".concat(En(t)),n&&"disableElevation",o&&"fullWidth"],label:["label"],startIcon:["icon","startIcon","iconSize".concat(En(r))],endIcon:["icon","endIcon","iconSize".concat(En(r))]},Qp,i))}(T),O=k&&sn(af,{className:A.startIcon,ownerState:T,children:k}),E=b&&sn(lf,{className:A.endIcon,ownerState:T,children:b}),N=o||"";return cn(rf,L({ownerState:T,className:Wo(n.className,A.root,d,N),component:u,disabled:f,focusRipple:!g,focusVisibleClassName:Wo(A.focusVisible,y),ref:t,type:R},I,{classes:A,children:[O,i,E]}))})),cf=sf;function uf(e){return Vo("MuiButtonGroup",e)}var df=jo("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","vertical","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),pf=Zi("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(df.grouped),t.grouped),E({},"& .".concat(df.grouped),t["grouped".concat(En(n.orientation))]),E({},"& .".concat(df.grouped),t["grouped".concat(En(n.variant))]),E({},"& .".concat(df.grouped),t["grouped".concat(En(n.variant)).concat(En(n.orientation))]),E({},"& .".concat(df.grouped),t["grouped".concat(En(n.variant)).concat(En(n.color))]),E({},"& .".concat(df.firstButton),t.firstButton),E({},"& .".concat(df.lastButton),t.lastButton),E({},"& .".concat(df.middleButton),t.middleButton),t.root,t[n.variant],!0===n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,"vertical"===n.orientation&&t.vertical]}})((function(e){var t=e.theme,n=e.ownerState;return L({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius},"contained"===n.variant&&{boxShadow:(t.vars||t).shadows[2]},n.disableElevation&&{boxShadow:"none"},n.fullWidth&&{width:"100%"},"vertical"===n.orientation&&{flexDirection:"column"},E(E(E({},"& .".concat(df.grouped),L({minWidth:40,"&:hover":L({},"contained"===n.variant&&{boxShadow:"none"})},"contained"===n.variant&&{boxShadow:"none"})),"& .".concat(df.firstButton,",& .").concat(df.middleButton),L({},"horizontal"===n.orientation&&{borderTopRightRadius:0,borderBottomRightRadius:0},"vertical"===n.orientation&&{borderBottomRightRadius:0,borderBottomLeftRadius:0},"text"===n.variant&&"horizontal"===n.orientation&&E({borderRight:t.vars?"1px solid rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):"1px solid ".concat("light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)")},"&.".concat(df.disabled),{borderRight:"1px solid ".concat((t.vars||t).palette.action.disabled)}),"text"===n.variant&&"vertical"===n.orientation&&E({borderBottom:t.vars?"1px solid rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):"1px solid ".concat("light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)")},"&.".concat(df.disabled),{borderBottom:"1px solid ".concat((t.vars||t).palette.action.disabled)}),"text"===n.variant&&"inherit"!==n.color&&{borderColor:t.vars?"rgba(".concat(t.vars.palette[n.color].mainChannel," / 0.5)"):Or(t.palette[n.color].main,.5)},"outlined"===n.variant&&"horizontal"===n.orientation&&{borderRightColor:"transparent"},"outlined"===n.variant&&"vertical"===n.orientation&&{borderBottomColor:"transparent"},"contained"===n.variant&&"horizontal"===n.orientation&&E({borderRight:"1px solid ".concat((t.vars||t).palette.grey[400])},"&.".concat(df.disabled),{borderRight:"1px solid ".concat((t.vars||t).palette.action.disabled)}),"contained"===n.variant&&"vertical"===n.orientation&&E({borderBottom:"1px solid ".concat((t.vars||t).palette.grey[400])},"&.".concat(df.disabled),{borderBottom:"1px solid ".concat((t.vars||t).palette.action.disabled)}),"contained"===n.variant&&"inherit"!==n.color&&{borderColor:(t.vars||t).palette[n.color].dark},{"&:hover":L({},"outlined"===n.variant&&"horizontal"===n.orientation&&{borderRightColor:"currentColor"},"outlined"===n.variant&&"vertical"===n.orientation&&{borderBottomColor:"currentColor"})})),"& .".concat(df.lastButton,",& .").concat(df.middleButton),L({},"horizontal"===n.orientation&&{borderTopLeftRadius:0,borderBottomLeftRadius:0},"vertical"===n.orientation&&{borderTopRightRadius:0,borderTopLeftRadius:0},"outlined"===n.variant&&"horizontal"===n.orientation&&{marginLeft:-1},"outlined"===n.variant&&"vertical"===n.orientation&&{marginTop:-1})))})),ff=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiButtonGroup"}),o=n.children,a=n.className,i=n.color,l=void 0===i?"primary":i,s=n.component,c=void 0===s?"div":s,u=n.disabled,d=void 0!==u&&u,p=n.disableElevation,f=void 0!==p&&p,v=n.disableFocusRipple,m=void 0!==v&&v,h=n.disableRipple,g=void 0!==h&&h,b=n.fullWidth,y=void 0!==b&&b,x=n.orientation,w=void 0===x?"horizontal":x,S=n.size,C=void 0===S?"medium":S,k=n.variant,R=void 0===k?"outlined":k,M=B(n,["children","className","color","component","disabled","disableElevation","disableFocusRipple","disableRipple","fullWidth","orientation","size","variant"]),P=L({},n,{color:l,component:c,disabled:d,disableElevation:f,disableFocusRipple:m,disableRipple:g,fullWidth:y,orientation:w,size:C,variant:R}),I=function(e){var t=e.classes,n=e.color,o=e.disabled,r=e.disableElevation,a=e.fullWidth,i=e.orientation,l=e.variant;return xa({root:["root",l,"vertical"===i&&"vertical",a&&"fullWidth",r&&"disableElevation"],grouped:["grouped","grouped".concat(En(i)),"grouped".concat(En(l)),"grouped".concat(En(l)).concat(En(i)),"grouped".concat(En(l)).concat(En(n)),o&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},uf,t)}(P),T=r.useMemo((function(){return{className:I.grouped,color:l,disabled:d,disableElevation:f,disableFocusRipple:m,disableRipple:g,fullWidth:y,size:C,variant:R}}),[l,d,f,m,g,y,C,R,I.grouped]),A=ba(o),O=A.length,E=function(e){var t=0===e,n=e===O-1;return t&&n?"":t?I.firstButton:n?I.lastButton:I.middleButton};return sn(pf,L({as:c,role:"group",className:Wo(I.root,a),ref:t,ownerState:P},M,{children:sn(tf.Provider,{value:T,children:A.map((function(e,t){return sn(nf.Provider,{value:E(t),children:e},t)}))})}))})),vf=ff;function mf(e){return Vo("MuiCard",e)}var hf=jo("MuiCard",["root"]),gf=Zi(ts,{name:"MuiCard",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(){return{overflow:"hidden"}})),bf=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCard"}),o=n.className,r=n.raised,a=void 0!==r&&r,i=B(n,["className","raised"]),l=L({},n,{raised:a}),s=function(e){return xa({root:["root"]},mf,e.classes)}(l);return sn(gf,L({className:Wo(s.root,o),elevation:a?8:void 0,ref:t,ownerState:l},i))}));function yf(e){return Vo("MuiCardActionArea",e)}var xf=jo("MuiCardActionArea",["root","focusVisible","focusHighlight"]),wf=Zi(Ls,{name:"MuiCardActionArea",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme;return E(E({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%"},"&:hover .".concat(xf.focusHighlight),{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}}),"&.".concat(xf.focusVisible," .").concat(xf.focusHighlight),{opacity:(t.vars||t).palette.action.focusOpacity})})),Sf=Zi("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:function(e,t){return t.focusHighlight}})((function(e){var t=e.theme;return{overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}})),Cf=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCardActionArea"}),o=n.children,r=n.className,a=n.focusVisibleClassName,i=B(n,["children","className","focusVisibleClassName"]),l=n,s=function(e){return xa({root:["root"],focusHighlight:["focusHighlight"]},yf,e.classes)}(l);return cn(wf,L({className:Wo(s.root,r),focusVisibleClassName:Wo(a,s.focusVisible),ref:t,ownerState:l},i,{children:[o,sn(Sf,{className:s.focusHighlight,ownerState:l})]}))}));function kf(e){return Vo("MuiCardActions",e)}var Rf=jo("MuiCardActions",["root","spacing"]),Mf=Zi("div",{name:"MuiCardActions",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disableSpacing&&t.spacing]}})((function(e){return L({display:"flex",alignItems:"center",padding:8},!e.ownerState.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})})),Pf=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCardActions"}),o=n.disableSpacing,r=void 0!==o&&o,a=n.className,i=B(n,["disableSpacing","className"]),l=L({},n,{disableSpacing:r}),s=function(e){var t=e.classes;return xa({root:["root",!e.disableSpacing&&"spacing"]},kf,t)}(l);return sn(Mf,L({className:Wo(s.root,a),ownerState:l,ref:t},i))}));function If(e){return Vo("MuiCardContent",e)}var Tf=jo("MuiCardContent",["root"]),Af=Zi("div",{name:"MuiCardContent",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(){return{padding:16,"&:last-child":{paddingBottom:24}}})),Of=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCardContent"}),o=n.className,r=n.component,a=void 0===r?"div":r,i=B(n,["className","component"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},If,e.classes)}(l);return sn(Af,L({as:a,className:Wo(s.root,o),ownerState:l,ref:t},i))}));function Ef(e){return Vo("MuiCardHeader",e)}var Lf=jo("MuiCardHeader",["root","avatar","action","content","title","subheader"]),Nf=Zi("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:function(e,t){return L(E(E({},"& .".concat(Lf.title),t.title),"& .".concat(Lf.subheader),t.subheader),t.root)}})({display:"flex",alignItems:"center",padding:16}),Bf=Zi("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:function(e,t){return t.avatar}})({display:"flex",flex:"0 0 auto",marginRight:16}),zf=Zi("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:function(e,t){return t.action}})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Ff=Zi("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:function(e,t){return t.content}})({flex:"1 1 auto"}),Df=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCardHeader"}),o=n.action,r=n.avatar,a=n.className,i=n.component,l=void 0===i?"div":i,s=n.disableTypography,c=void 0!==s&&s,u=n.subheader,d=n.subheaderTypographyProps,p=n.title,f=n.titleTypographyProps,v=B(n,["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"]),m=L({},n,{component:l,disableTypography:c}),h=function(e){return xa({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Ef,e.classes)}(m),g=p;null==g||g.type===dc||c||(g=sn(dc,L({variant:r?"body2":"h5",className:h.title,component:"span",display:"block"},f,{children:g})));var b=u;return null==b||b.type===dc||c||(b=sn(dc,L({variant:r?"body2":"body1",className:h.subheader,color:"text.secondary",component:"span",display:"block"},d,{children:b}))),cn(Nf,L({className:Wo(h.root,a),as:l,ref:t,ownerState:m},v,{children:[r&&sn(Bf,{className:h.avatar,ownerState:m,children:r}),cn(Ff,{className:h.content,ownerState:m,children:[g,b]}),o&&sn(zf,{className:h.action,ownerState:m,children:o})]}))}));function Wf(e){return Vo("MuiCardMedia",e)}var Hf=jo("MuiCardMedia",["root","media","img"]),Vf=Zi("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState,o=n.isMediaComponent,r=n.isImageComponent;return[t.root,o&&t.media,r&&t.img]}})((function(e){var t=e.ownerState;return L({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center"},t.isMediaComponent&&{width:"100%"},t.isImageComponent&&{objectFit:"cover"})})),jf=["video","audio","picture","iframe","img"],Uf=["picture","img"],Gf=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCardMedia"}),o=n.children,r=n.className,a=n.component,i=void 0===a?"div":a,l=n.image,s=n.src,c=n.style,u=B(n,["children","className","component","image","src","style"]),d=-1!==jf.indexOf(i),p=!d&&l?L({backgroundImage:'url("'.concat(l,'")')},c):c,f=L({},n,{component:i,isMediaComponent:d,isImageComponent:-1!==Uf.indexOf(i)}),v=function(e){var t=e.classes;return xa({root:["root",e.isMediaComponent&&"media",e.isImageComponent&&"img"]},Wf,t)}(f);return sn(Vf,L({className:Wo(v.root,r),as:i,role:!d&&l?"img":void 0,ref:t,style:p,ownerState:f,src:d?l||s:void 0},u,{children:o}))})),_f=Gf;function qf(e){return Vo("PrivateSwitchBase",e)}jo("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);var Kf=Zi(Ls)((function(e){var t=e.ownerState;return L({padding:9,borderRadius:"50%"},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12})})),$f=Zi("input",{shouldForwardProp:Yi})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Xf=r.forwardRef((function(e,t){var n=e.autoFocus,o=e.checked,r=e.checkedIcon,a=e.className,i=e.defaultChecked,l=e.disabled,s=e.disableFocusRipple,c=void 0!==s&&s,u=e.edge,d=void 0!==u&&u,p=e.icon,f=e.id,v=e.inputProps,m=e.inputRef,h=e.name,g=e.onBlur,b=e.onChange,y=e.onFocus,x=e.readOnly,w=e.required,S=void 0!==w&&w,C=e.tabIndex,k=e.type,R=e.value,M=B(e,["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),P=Sn($r({controlled:o,default:Boolean(i),name:"SwitchBase",state:"checked"}),2),I=P[0],T=P[1],A=bd(),O=l;A&&void 0===O&&(O=A.disabled);var E="checkbox"===k||"radio"===k,N=L({},e,{checked:I,disabled:O,disableFocusRipple:c,edge:d}),z=function(e){var t=e.classes,n=e.checked,o=e.disabled,r=e.edge;return xa({root:["root",n&&"checked",o&&"disabled",r&&"edge".concat(En(r))],input:["input"]},qf,t)}(N);return cn(Kf,L({component:"span",className:Wo(z.root,a),centerRipple:!0,focusRipple:!c,disabled:O,tabIndex:null,role:void 0,onFocus:function(e){y&&y(e),A&&A.onFocus&&A.onFocus(e)},onBlur:function(e){g&&g(e),A&&A.onBlur&&A.onBlur(e)},ownerState:N,ref:t},M,{children:[sn($f,L({autoFocus:n,checked:o,defaultChecked:i,className:z.input,disabled:O,id:E?f:void 0,name:h,onChange:function(e){if(!e.nativeEvent.defaultPrevented){var t=e.target.checked;T(t),b&&b(e,t)}},readOnly:x,ref:m,required:S,ownerState:N,tabIndex:C,type:k},"checkbox"===k&&void 0===R?{}:{value:R},v)),I?r:p]}))})),Yf=Cl(sn("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Zf=Cl(sn("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Jf=Cl(sn("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function Qf(e){return Vo("MuiCheckbox",e)}var ev=jo("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),tv=Zi(Xf,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,t["size".concat(En(n.size))],"default"!==n.color&&t["color".concat(En(n.color))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({color:(t.vars||t).palette.text.secondary},!n.disableRipple&&{"&:hover":{backgroundColor:t.vars?"rgba(".concat("default"===n.color?t.vars.palette.action.activeChannel:t.vars.palette[n.color].mainChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):Or("default"===n.color?t.palette.action.active:t.palette[n.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==n.color&&E(E({},"&.".concat(ev.checked,", &.").concat(ev.indeterminate),{color:(t.vars||t).palette[n.color].main}),"&.".concat(ev.disabled),{color:(t.vars||t).palette.action.disabled}))})),nv=sn(Zf,{}),ov=sn(Yf,{}),rv=sn(Jf,{}),av=r.forwardRef((function(e,t){var n,o,a=gl({props:e,name:"MuiCheckbox"}),i=a.checkedIcon,l=void 0===i?nv:i,s=a.color,c=void 0===s?"primary":s,u=a.icon,d=void 0===u?ov:u,p=a.indeterminate,f=void 0!==p&&p,v=a.indeterminateIcon,m=void 0===v?rv:v,h=a.inputProps,g=a.size,b=void 0===g?"medium":g,y=a.className,x=B(a,["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size","className"]),w=f?m:d,S=f?m:l,C=L({},a,{color:c,indeterminate:f,size:b}),k=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r=e.size;return L({},t,xa({root:["root",n&&"indeterminate","color".concat(En(o)),"size".concat(En(r))]},Qf,t))}(C);return sn(tv,L({type:"checkbox",inputProps:L({"data-indeterminate":f},h),icon:r.cloneElement(w,{fontSize:null!=(n=w.props.fontSize)?n:b}),checkedIcon:r.cloneElement(S,{fontSize:null!=(o=S.props.fontSize)?o:b}),ownerState:C,ref:t,className:Wo(k.root,y)},x,{classes:k}))})),iv=av;function lv(e){return Vo("MuiCircularProgress",e)}var sv,cv,uv,dv,pv=jo("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]),fv=44,vv=Ut(sv||(sv=hs(["\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n"]))),mv=Ut(cv||(cv=hs(["\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n"]))),hv=Zi("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["color".concat(En(n.color))]]}})((function(e){var t=e.ownerState,n=e.theme;return L({display:"inline-block"},"determinate"===t.variant&&{transition:n.transitions.create("transform")},"inherit"!==t.color&&{color:(n.vars||n).palette[t.color].main})}),(function(e){return"indeterminate"===e.ownerState.variant&&jt(uv||(uv=hs(["\n animation: "," 1.4s linear infinite;\n "])),vv)})),gv=Zi("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:function(e,t){return t.svg}})({display:"block"}),bv=Zi("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:function(e,t){var n=e.ownerState;return[t.circle,t["circle".concat(En(n.variant))],n.disableShrink&&t.circleDisableShrink]}})((function(e){var t=e.ownerState,n=e.theme;return L({stroke:"currentColor"},"determinate"===t.variant&&{transition:n.transitions.create("stroke-dashoffset")},"indeterminate"===t.variant&&{strokeDasharray:"80px, 200px",strokeDashoffset:0})}),(function(e){var t=e.ownerState;return"indeterminate"===t.variant&&!t.disableShrink&&jt(dv||(dv=hs(["\n animation: "," 1.4s ease-in-out infinite;\n "])),mv)})),yv=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiCircularProgress"}),o=n.className,r=n.color,a=void 0===r?"primary":r,i=n.disableShrink,l=void 0!==i&&i,s=n.size,c=void 0===s?40:s,u=n.style,d=n.thickness,p=void 0===d?3.6:d,f=n.value,v=void 0===f?0:f,m=n.variant,h=void 0===m?"indeterminate":m,g=B(n,["className","color","disableShrink","size","style","thickness","value","variant"]),b=L({},n,{color:a,disableShrink:l,size:c,thickness:p,value:v,variant:h}),y=function(e){var t=e.classes,n=e.variant,o=e.color,r=e.disableShrink;return xa({root:["root",n,"color".concat(En(o))],svg:["svg"],circle:["circle","circle".concat(En(n)),r&&"circleDisableShrink"]},lv,t)}(b),x={},w={},S={};if("determinate"===h){var C=2*Math.PI*((fv-p)/2);x.strokeDasharray=C.toFixed(3),S["aria-valuenow"]=Math.round(v),x.strokeDashoffset="".concat(((100-v)/100*C).toFixed(3),"px"),w.transform="rotate(-90deg)"}return sn(hv,L({className:Wo(y.root,o),style:L({width:c,height:c},w,u),ownerState:b,ref:t,role:"progressbar"},S,g,{children:sn(gv,{className:y.svg,ownerState:b,viewBox:"".concat(22," ").concat(22," ").concat(fv," ").concat(fv),children:sn(bv,{className:y.circle,style:x,ownerState:b,cx:fv,cy:fv,r:(fv-p)/2,fill:"none",strokeWidth:p})})}))})),xv=yv;function wv(e){return e.substring(2).toLowerCase()}function Sv(e){var t=e.children,n=e.disableReactTree,o=void 0!==n&&n,a=e.mouseEvent,i=void 0===a?"onClick":a,l=e.onClickAway,s=e.touchEvent,c=void 0===s?"onTouchEnd":s,u=r.useRef(!1),d=r.useRef(null),p=r.useRef(!1),f=r.useRef(!1);r.useEffect((function(){return setTimeout((function(){p.current=!0}),0),function(){p.current=!1}}),[]);var v=Yr(t.ref,d),m=Xr((function(e){var t=f.current;f.current=!1;var n=jr(d.current);!p.current||!d.current||"clientX"in e&&function(e,t){return t.documentElement.clientWidth-1:!n.documentElement.contains(e.target)||d.current.contains(e.target))||!o&&t||l(e))})),h=function(e){return function(n){f.current=!0;var o=t.props[e];o&&o(n)}},g={ref:v};return!1!==c&&(g[c]=h(c)),r.useEffect((function(){if(!1!==c){var e=wv(c),t=jr(d.current),n=function(){u.current=!0};return t.addEventListener(e,m),t.addEventListener("touchmove",n),function(){t.removeEventListener(e,m),t.removeEventListener("touchmove",n)}}}),[m,c]),!1!==i&&(g[i]=h(i)),r.useEffect((function(){if(!1!==i){var e=wv(i),t=jr(d.current);return t.addEventListener(e,m),function(){t.removeEventListener(e,m)}}}),[m,i]),sn(r.Fragment,{children:r.cloneElement(t,g)})}var Cv=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createStyledComponent,n=void 0===t?ei:t,o=e.useThemeProps,a=void 0===o?ti:o,i=e.componentName,l=void 0===i?"MuiContainer":i,s=n((function(e){var t=e.theme;return L({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!e.ownerState.disableGutters&&E({paddingLeft:t.spacing(2),paddingRight:t.spacing(2)},t.breakpoints.up("sm"),{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}))}),(function(e){var t=e.theme;return e.ownerState.fixed&&Object.keys(t.breakpoints.values).reduce((function(e,n){var o=n,r=t.breakpoints.values[o];return 0!==r&&(e[t.breakpoints.up(o)]={maxWidth:"".concat(r).concat(t.breakpoints.unit)}),e}),{})}),(function(e){var t=e.theme,n=e.ownerState;return L({},"xs"===n.maxWidth&&E({},t.breakpoints.up("xs"),{maxWidth:Math.max(t.breakpoints.values.xs,444)}),n.maxWidth&&"xs"!==n.maxWidth&&E({},t.breakpoints.up(n.maxWidth),{maxWidth:"".concat(t.breakpoints.values[n.maxWidth]).concat(t.breakpoints.unit)}))})),c=r.forwardRef((function(e,t){var n=a(e),o=n.className,r=n.component,i=void 0===r?"div":r,c=n.disableGutters,u=void 0!==c&&c,d=n.fixed,p=void 0!==d&&d,f=n.maxWidth,v=void 0===f?"lg":f;n.classes;var m=B(n,["className","component","disableGutters","fixed","maxWidth","classes"]),h=L({},n,{component:i,disableGutters:u,fixed:p,maxWidth:v}),g=function(e,t){var n=e.classes,o=e.fixed,r=e.disableGutters,a=e.maxWidth;return xa({root:["root",a&&"maxWidth".concat(En(String(a))),o&&"fixed",r&&"disableGutters"]},(function(e){return Vo(t,e)}),n)}(h,l);return sn(s,L({as:i,ownerState:h,className:Wo(g.root,o),ref:t},m))}));return c}({createStyledComponent:Zi("div",{name:"MuiContainer",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["maxWidth".concat(En(String(n.maxWidth)))],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:function(e){return gl({props:e,name:"MuiContainer"})}}),kv=Cv;var Rv=jo("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),Mv=function(e,t){return L({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&!e.vars&&{colorScheme:e.palette.mode})},Pv=function(e){return L({color:(e.vars||e).palette.text.primary},e.typography.body1,{backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}})};var Iv={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function Tv(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Av(e){return parseInt(Ur(e).getComputedStyle(e).paddingRight,10)||0}function Ov(e,t,n,o,r){var a=[t,n].concat(kn(o));[].forEach.call(e.children,(function(e){var t=-1===a.indexOf(e),n=!function(e){var t=-1!==["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}(e);t&&n&&Tv(e,r)}))}function Ev(e,t){var n=-1;return e.some((function(e,o){return!!t(e)&&(n=o,!0)})),n}function Lv(e,t){var n=[],o=e.container;if(!t.disableScrollLock){if(function(e){var t=jr(e);return t.body===e?Ur(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(o)){var r=va(jr(o));n.push({value:o.style.paddingRight,property:"padding-right",el:o}),o.style.paddingRight="".concat(Av(o)+r,"px");var a=jr(o).querySelectorAll(".mui-fixed");[].forEach.call(a,(function(e){n.push({value:e.style.paddingRight,property:"padding-right",el:e}),e.style.paddingRight="".concat(Av(e)+r,"px")}))}var i;if(o.parentNode instanceof DocumentFragment)i=jr(o).body;else{var l=o.parentElement,s=Ur(o);i="HTML"===(null==l?void 0:l.nodeName)&&"scroll"===s.getComputedStyle(l).overflowY?l:o}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return function(){n.forEach((function(e){var t=e.value,n=e.el,o=e.property;t?n.style.setProperty(o,t):n.style.removeProperty(o)}))}}var Nv=function(){function e(){Jr(this,e),this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}return ea(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&Tv(e.modalRef,!1);var o=function(e){var t=[];return[].forEach.call(e.children,(function(e){"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);Ov(t,e.mount,e.modalRef,o,!0);var r=Ev(this.containers,(function(e){return e.container===t}));return-1!==r?(this.containers[r].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:o}),n)}},{key:"mount",value:function(e,t){var n=Ev(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),o=this.containers[n];o.restore||(o.restore=Lv(o,t))}},{key:"remove",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.modals.indexOf(e);if(-1===n)return n;var o=Ev(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[o];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(n,1),0===r.modals.length)r.restore&&r.restore(),e.modalRef&&Tv(e.modalRef,t),Ov(r.container,e.mount,e.modalRef,r.hiddenSiblings,!1),this.containers.splice(o,1);else{var a=r.modals[r.modals.length-1];a.modalRef&&Tv(a.modalRef,!1)}return n}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}(),Bv=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function zv(e){var t=[],n=[];return Array.from(e.querySelectorAll(Bv)).forEach((function(e,o){var r=function(e){var t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?"true"===e.contentEditable||("AUDIO"===e.nodeName||"VIDEO"===e.nodeName||"DETAILS"===e.nodeName)&&null===e.getAttribute("tabindex")?0:e.tabIndex:t}(e);-1!==r&&function(e){return!(e.disabled||"INPUT"===e.tagName&&"hidden"===e.type||function(e){if("INPUT"!==e.tagName||"radio"!==e.type)return!1;if(!e.name)return!1;var t=function(t){return e.ownerDocument.querySelector('input[type="radio"]'.concat(t))},n=t('[name="'.concat(e.name,'"]:checked'));return n||(n=t('[name="'.concat(e.name,'"]'))),n!==e}(e))}(e)&&(0===r?t.push(e):n.push({documentOrder:o,tabIndex:r,node:e}))})),n.sort((function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex})).map((function(e){return e.node})).concat(t)}function Fv(){return!0}function Dv(e){var t=e.children,n=e.disableAutoFocus,o=void 0!==n&&n,a=e.disableEnforceFocus,i=void 0!==a&&a,l=e.disableRestoreFocus,s=void 0!==l&&l,c=e.getTabbable,u=void 0===c?zv:c,d=e.isEnabled,p=void 0===d?Fv:d,f=e.open,v=r.useRef(!1),m=r.useRef(null),h=r.useRef(null),g=r.useRef(null),b=r.useRef(null),y=r.useRef(!1),x=r.useRef(null),w=Yr(t.ref,x),S=r.useRef(null);r.useEffect((function(){f&&x.current&&(y.current=!o)}),[o,f]),r.useEffect((function(){if(f&&x.current){var e=jr(x.current);return x.current.contains(e.activeElement)||(x.current.hasAttribute("tabIndex")||x.current.setAttribute("tabIndex","-1"),y.current&&x.current.focus()),function(){s||(g.current&&g.current.focus&&(v.current=!0,g.current.focus()),g.current=null)}}}),[f]),r.useEffect((function(){if(f&&x.current){var e=jr(x.current),t=function(t){S.current=t,!i&&p()&&"Tab"===t.key&&e.activeElement===x.current&&t.shiftKey&&(v.current=!0,h.current&&h.current.focus())},n=function(){var t=x.current;if(null!==t)if(e.hasFocus()&&p()&&!v.current){if(!(t.contains(e.activeElement)||i&&e.activeElement!==m.current&&e.activeElement!==h.current)){if(e.activeElement!==b.current)b.current=null;else if(null!==b.current)return;if(y.current){var n=[];if(e.activeElement!==m.current&&e.activeElement!==h.current||(n=u(x.current)),n.length>0){var o,r,a=Boolean((null==(o=S.current)?void 0:o.shiftKey)&&"Tab"===(null==(r=S.current)?void 0:r.key)),l=n[0],s=n[n.length-1];"string"!=typeof l&&"string"!=typeof s&&(a?s.focus():l.focus())}else t.focus()}}}else v.current=!1};e.addEventListener("focusin",n),e.addEventListener("keydown",t,!0);var o=setInterval((function(){e.activeElement&&"BODY"===e.activeElement.tagName&&n()}),50);return function(){clearInterval(o),e.removeEventListener("focusin",n),e.removeEventListener("keydown",t,!0)}}}),[o,i,s,p,f,u]);var C=function(e){null===g.current&&(g.current=e.relatedTarget),y.current=!0};return cn(r.Fragment,{children:[sn("div",{tabIndex:f?0:-1,onFocus:C,ref:m,"data-testid":"sentinelStart"}),r.cloneElement(t,{ref:w,onFocus:function(e){null===g.current&&(g.current=e.relatedTarget),y.current=!0,b.current=e.target;var n=t.props.onFocus;n&&n(e)}}),sn("div",{tabIndex:f?0:-1,onFocus:C,ref:h,"data-testid":"sentinelEnd"})]})}var Wv=new Nv;function Hv(e){var t=e.container,n=e.disableEscapeKeyDown,o=void 0!==n&&n,a=e.disableScrollLock,i=void 0!==a&&a,l=e.manager,s=void 0===l?Wv:l,c=e.closeAfterTransition,u=void 0!==c&&c,d=e.onTransitionEnter,p=e.onTransitionExited,f=e.children,v=e.onClose,m=e.open,h=e.rootRef,g=r.useRef({}),b=r.useRef(null),y=r.useRef(null),x=Yr(y,h),w=r.useState(!m),S=w[0],C=w[1],k=function(e){return!!e&&e.props.hasOwnProperty("in")}(f),R=!0;"false"!==e["aria-hidden"]&&!1!==e["aria-hidden"]||(R=!1);var M=function(){return g.current.modalRef=y.current,g.current.mount=b.current,g.current},P=function(){s.mount(M(),{disableScrollLock:i}),y.current&&(y.current.scrollTop=0)},I=Xr((function(){var e=function(e){return"function"==typeof e?e():e}(t)||jr(b.current).body;s.add(M(),e),y.current&&P()})),T=r.useCallback((function(){return s.isTopModal(M())}),[s]),A=Xr((function(e){b.current=e,e&&(m&&T()?P():y.current&&Tv(y.current,R))})),O=r.useCallback((function(){s.remove(M(),R)}),[R,s]);r.useEffect((function(){return function(){O()}}),[O]),r.useEffect((function(){m?I():k&&u||O()}),[m,O,k,u,I]);var E=function(e){return function(t){var n;null==(n=e.onKeyDown)||n.call(e,t),"Escape"===t.key&&229!==t.which&&T()&&(o||(t.stopPropagation(),v&&v(t,"escapeKeyDown")))}},N=function(e){return function(t){var n;null==(n=e.onClick)||n.call(e,t),t.target===t.currentTarget&&v&&v(t,"backdropClick")}};return{getRootProps:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Ca(e);delete n.onTransitionEnter,delete n.onTransitionExited;var o=L({},n,t);return L({role:"presentation"},o,{onKeyDown:E(o),ref:x})},getBackdropProps:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return L({"aria-hidden":!0},e,{onClick:N(e),open:m})},getTransitionProps:function(){return{onEnter:Wr((function(){C(!1),d&&d()}),null==f?void 0:f.props.onEnter),onExited:Wr((function(){C(!0),p&&p(),u&&O()}),null==f?void 0:f.props.onExited)}},rootRef:x,portalRef:A,isTopModal:T,exited:S,hasTransition:k}}function Vv(e){return Vo("MuiModal",e)}var jv=jo("MuiModal",["root","hidden","backdrop"]),Uv=Zi("div",{name:"MuiModal",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.open&&n.exited&&t.hidden]}})((function(e){var t=e.theme,n=e.ownerState;return L({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0},!n.open&&n.exited&&{visibility:"hidden"})})),Gv=Zi(wp,{name:"MuiModal",slot:"Backdrop",overridesResolver:function(e,t){return t.backdrop}})({zIndex:-1}),_v=r.forwardRef((function(e,t){var n,o,a,i,l,s,c=gl({name:"MuiModal",props:e}),u=c.BackdropComponent,d=void 0===u?Gv:u,p=c.BackdropProps;c.classes;var f=c.className,v=c.closeAfterTransition,m=void 0!==v&&v,h=c.children,g=c.container,b=c.component,y=c.components,x=void 0===y?{}:y,w=c.componentsProps,S=void 0===w?{}:w,C=c.disableAutoFocus,k=void 0!==C&&C,R=c.disableEnforceFocus,M=void 0!==R&&R,P=c.disableEscapeKeyDown,I=void 0!==P&&P,T=c.disablePortal,A=void 0!==T&&T,O=c.disableRestoreFocus,E=void 0!==O&&O,N=c.disableScrollLock,z=void 0!==N&&N,F=c.hideBackdrop,D=void 0!==F&&F,W=c.keepMounted,H=void 0!==W&&W,V=c.onBackdropClick;c.onClose,c.onTransitionEnter,c.onTransitionExited;var j=c.open,U=c.slotProps,G=c.slots;c.theme;var _=B(c,["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"]),q=L({},c,{closeAfterTransition:m,disableAutoFocus:k,disableEnforceFocus:M,disableEscapeKeyDown:I,disablePortal:A,disableRestoreFocus:E,disableScrollLock:z,hideBackdrop:D,keepMounted:H}),K=Hv(L({},q,{rootRef:t})),$=K.getRootProps,X=K.getBackdropProps,Y=K.getTransitionProps,Z=K.portalRef,J=K.isTopModal,Q=K.exited,ee=K.hasTransition,te=L({},q,{exited:Q}),ne=function(e){var t=e.open,n=e.exited;return xa({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},Vv,e.classes)}(te),oe={};if(void 0===h.props.tabIndex&&(oe.tabIndex="-1"),ee){var re=Y(),ae=re.onEnter,ie=re.onExited;oe.onEnter=ae,oe.onExited=ie}var le=null!=(n=null!=(o=null==G?void 0:G.root)?o:x.Root)?n:Uv,se=null!=(a=null!=(i=null==G?void 0:G.backdrop)?i:x.Backdrop)?a:d,ce=null!=(l=null==U?void 0:U.root)?l:S.root,ue=null!=(s=null==U?void 0:U.backdrop)?s:S.backdrop,de=Pa({elementType:le,externalSlotProps:ce,externalForwardedProps:_,getSlotProps:$,additionalProps:{ref:t,as:b},ownerState:te,className:Wo(f,null==ce?void 0:ce.className,null==ne?void 0:ne.root,!te.open&&te.exited&&(null==ne?void 0:ne.hidden))}),pe=Pa({elementType:se,externalSlotProps:ue,additionalProps:p,getSlotProps:function(e){return X(L({},e,{onClick:function(t){V&&V(t),null!=e&&e.onClick&&e.onClick(t)}}))},className:Wo(null==ue?void 0:ue.className,null==p?void 0:p.className,null==ne?void 0:ne.backdrop),ownerState:te});return H||j||ee&&!Q?sn(_u,{ref:Z,container:g,disablePortal:A,children:cn(le,L({},de,{children:[!D&&d?sn(se,L({},pe)):null,sn(Dv,{disableEnforceFocus:M,disableAutoFocus:k,disableRestoreFocus:E,isEnabled:J,open:j,children:r.cloneElement(h,oe)})]}))}):null})),qv=_v;function Kv(e){return Vo("MuiDialog",e)}var $v=jo("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),Xv=r.createContext({}),Yv=Zi(wp,{name:"MuiDialog",slot:"Backdrop",overrides:function(e,t){return t.backdrop}})({zIndex:-1}),Zv=Zi(qv,{name:"MuiDialog",slot:"Root",overridesResolver:function(e,t){return t.root}})({"@media print":{position:"absolute !important"}}),Jv=Zi("div",{name:"MuiDialog",slot:"Container",overridesResolver:function(e,t){var n=e.ownerState;return[t.container,t["scroll".concat(En(n.scroll))]]}})((function(e){var t=e.ownerState;return L({height:"100%","@media print":{height:"auto"},outline:0},"paper"===t.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===t.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})})),Qv=Zi(ts,{name:"MuiDialog",slot:"Paper",overridesResolver:function(e,t){var n=e.ownerState;return[t.paper,t["scrollPaper".concat(En(n.scroll))],t["paperWidth".concat(En(String(n.maxWidth)))],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})((function(e){var t=e.theme,n=e.ownerState;return L({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===n.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===n.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!n.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===n.maxWidth&&E({maxWidth:"px"===t.breakpoints.unit?Math.max(t.breakpoints.values.xs,444):"max(".concat(t.breakpoints.values.xs).concat(t.breakpoints.unit,", 444px)")},"&.".concat($v.paperScrollBody),E({},t.breakpoints.down(Math.max(t.breakpoints.values.xs,444)+64),{maxWidth:"calc(100% - 64px)"})),n.maxWidth&&"xs"!==n.maxWidth&&E({maxWidth:"".concat(t.breakpoints.values[n.maxWidth]).concat(t.breakpoints.unit)},"&.".concat($v.paperScrollBody),E({},t.breakpoints.down(t.breakpoints.values[n.maxWidth]+64),{maxWidth:"calc(100% - 64px)"})),n.fullWidth&&{width:"calc(100% - 64px)"},n.fullScreen&&E({margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0},"&.".concat($v.paperScrollBody),{margin:0,maxWidth:"100%"}))})),em=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDialog"}),o=$i(),a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},i=n["aria-describedby"],l=n["aria-labelledby"],s=n.BackdropComponent,c=n.BackdropProps,u=n.children,d=n.className,p=n.disableEscapeKeyDown,f=void 0!==p&&p,v=n.fullScreen,m=void 0!==v&&v,h=n.fullWidth,g=void 0!==h&&h,b=n.maxWidth,y=void 0===b?"sm":b,x=n.onBackdropClick,w=n.onClick,S=n.onClose,C=n.open,k=n.PaperComponent,R=void 0===k?ts:k,M=n.PaperProps,P=void 0===M?{}:M,I=n.scroll,T=void 0===I?"paper":I,A=n.TransitionComponent,O=void 0===A?gp:A,E=n.transitionDuration,N=void 0===E?a:E,z=n.TransitionProps,F=B(n,["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"]),D=L({},n,{disableEscapeKeyDown:f,fullScreen:m,fullWidth:g,maxWidth:y,scroll:T}),W=function(e){var t=e.classes,n=e.scroll,o=e.maxWidth,r=e.fullWidth,a=e.fullScreen;return xa({root:["root"],container:["container","scroll".concat(En(n))],paper:["paper","paperScroll".concat(En(n)),"paperWidth".concat(En(String(o))),r&&"paperFullWidth",a&&"paperFullScreen"]},Kv,t)}(D),H=r.useRef(),V=Kr(l),j=r.useMemo((function(){return{titleId:V}}),[V]);return sn(Zv,L({className:Wo(W.root,d),closeAfterTransition:!0,components:{Backdrop:Yv},componentsProps:{backdrop:L({transitionDuration:N,as:s},c)},disableEscapeKeyDown:f,onClose:S,open:C,ref:t,onClick:function(e){w&&w(e),H.current&&(H.current=null,x&&x(e),S&&S(e,"backdropClick"))},ownerState:D},F,{children:sn(O,L({appear:!0,in:C,timeout:N,role:"presentation"},z,{children:sn(Jv,{className:Wo(W.container),onMouseDown:function(e){H.current=e.target===e.currentTarget},ownerState:D,children:sn(Qv,L({as:R,elevation:24,role:"dialog","aria-describedby":i,"aria-labelledby":V},P,{className:Wo(W.paper,P.className),ownerState:D,children:sn(Xv.Provider,{value:j,children:u})}))})}))}))})),tm=em;function nm(e){return Vo("MuiDialogActions",e)}var om=jo("MuiDialogActions",["root","spacing"]),rm=Zi("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disableSpacing&&t.spacing]}})((function(e){return L({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!e.ownerState.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})})),am=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDialogActions"}),o=n.className,r=n.disableSpacing,a=void 0!==r&&r,i=B(n,["className","disableSpacing"]),l=L({},n,{disableSpacing:a}),s=function(e){var t=e.classes;return xa({root:["root",!e.disableSpacing&&"spacing"]},nm,t)}(l);return sn(rm,L({className:Wo(s.root,o),ownerState:l,ref:t},i))}));function im(e){return Vo("MuiDialogContent",e)}var lm=jo("MuiDialogContent",["root","dividers"]);function sm(e){return Vo("MuiDialogTitle",e)}var cm=jo("MuiDialogTitle",["root"]),um=Zi("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dividers&&t.dividers]}})((function(e){var t=e.theme;return L({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},e.ownerState.dividers?{padding:"16px 24px",borderTop:"1px solid ".concat((t.vars||t).palette.divider),borderBottom:"1px solid ".concat((t.vars||t).palette.divider)}:E({},".".concat(cm.root," + &"),{paddingTop:0}))})),dm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDialogContent"}),o=n.className,r=n.dividers,a=void 0!==r&&r,i=B(n,["className","dividers"]),l=L({},n,{dividers:a}),s=function(e){var t=e.classes;return xa({root:["root",e.dividers&&"dividers"]},im,t)}(l);return sn(um,L({className:Wo(s.root,o),ownerState:l,ref:t},i))}));function pm(e){return Vo("MuiDialogContentText",e)}var fm=jo("MuiDialogContentText",["root"]),vm=Zi(dc,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiDialogContentText",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),mm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDialogContentText"});n.children;var o=n.className,r=B(n,["children","className"]),a=function(e){var t=e.classes;return L({},t,xa({root:["root"]},pm,t))}(r);return sn(vm,L({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:r,className:Wo(a.root,o)},n,{classes:a}))})),hm=Zi(dc,{name:"MuiDialogTitle",slot:"Root",overridesResolver:function(e,t){return t.root}})({padding:"16px 24px",flex:"0 0 auto"}),gm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDialogTitle"}),o=n.className,a=n.id,i=B(n,["className","id"]),l=n,s=function(e){return xa({root:["root"]},sm,e.classes)}(l),c=r.useContext(Xv).titleId,u=void 0===c?a:c;return sn(hm,L({component:"h2",className:Wo(s.root,o),ownerState:l,ref:t,variant:"h6",id:null!=a?a:u},i))}));function bm(e){return Vo("MuiDivider",e)}var ym=jo("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),xm=Zi("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,"vertical"===n.orientation&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&"vertical"===n.orientation&&t.withChildrenVertical,"right"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignLeft]}})((function(e){var t=e.theme,n=e.ownerState;return L({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(t.vars||t).palette.divider,borderBottomWidth:"thin"},n.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},n.light&&{borderColor:t.vars?"rgba(".concat(t.vars.palette.dividerChannel," / 0.08)"):Or(t.palette.divider,.08)},"inset"===n.variant&&{marginLeft:72},"middle"===n.variant&&"horizontal"===n.orientation&&{marginLeft:t.spacing(2),marginRight:t.spacing(2)},"middle"===n.variant&&"vertical"===n.orientation&&{marginTop:t.spacing(1),marginBottom:t.spacing(1)},"vertical"===n.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},n.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(e){return L({},e.ownerState.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}})}),(function(e){var t=e.theme,n=e.ownerState;return L({},n.children&&"vertical"!==n.orientation&&{"&::before, &::after":{width:"100%",borderTop:"thin solid ".concat((t.vars||t).palette.divider),borderTopStyle:"inherit"}})}),(function(e){var t=e.theme,n=e.ownerState;return L({},n.children&&"vertical"===n.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:"thin solid ".concat((t.vars||t).palette.divider),borderLeftStyle:"inherit"}})}),(function(e){var t=e.ownerState;return L({},"right"===t.textAlign&&"vertical"!==t.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===t.textAlign&&"vertical"!==t.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})})),wm=Zi("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(e,t){var n=e.ownerState;return[t.wrapper,"vertical"===n.orientation&&t.wrapperVertical]}})((function(e){var t=e.theme,n=e.ownerState;return L({display:"inline-block",paddingLeft:"calc(".concat(t.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(t.spacing(1)," * 1.2)")},"vertical"===n.orientation&&{paddingTop:"calc(".concat(t.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(t.spacing(1)," * 1.2)")})})),Sm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDivider"}),o=n.absolute,r=void 0!==o&&o,a=n.children,i=n.className,l=n.component,s=void 0===l?a?"div":"hr":l,c=n.flexItem,u=void 0!==c&&c,d=n.light,p=void 0!==d&&d,f=n.orientation,v=void 0===f?"horizontal":f,m=n.role,h=void 0===m?"hr"!==s?"separator":void 0:m,g=n.textAlign,b=void 0===g?"center":g,y=n.variant,x=void 0===y?"fullWidth":y,w=B(n,["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"]),S=L({},n,{absolute:r,component:s,flexItem:u,light:p,orientation:v,role:h,textAlign:b,variant:x}),C=function(e){var t=e.absolute,n=e.children,o=e.classes,r=e.flexItem,a=e.light,i=e.orientation,l=e.textAlign;return xa({root:["root",t&&"absolute",e.variant,a&&"light","vertical"===i&&"vertical",r&&"flexItem",n&&"withChildren",n&&"vertical"===i&&"withChildrenVertical","right"===l&&"vertical"!==i&&"textAlignRight","left"===l&&"vertical"!==i&&"textAlignLeft"],wrapper:["wrapper","vertical"===i&&"wrapperVertical"]},bm,o)}(S);return sn(xm,L({as:s,className:Wo(C.root,i),role:h,ref:t,ownerState:S},w,{children:a?sn(wm,{className:C.wrapper,ownerState:S,children:a}):null}))}));Sm.muiSkipListHighlight=!0;var Cm=Sm;function km(e,t,n){var o,r=function(e,t,n){var o,r=t.getBoundingClientRect(),a=n&&n.getBoundingClientRect(),i=Ur(t);if(t.fakeTransform)o=t.fakeTransform;else{var l=i.getComputedStyle(t);o=l.getPropertyValue("-webkit-transform")||l.getPropertyValue("transform")}var s=0,c=0;if(o&&"none"!==o&&"string"==typeof o){var u=o.split("(")[1].split(")")[0].split(",");s=parseInt(u[4],10),c=parseInt(u[5],10)}return"left"===e?"translateX(".concat(a?a.right+s-r.left:i.innerWidth+s-r.left,"px)"):"right"===e?"translateX(-".concat(a?r.right-a.left-s:r.left+r.width-s,"px)"):"up"===e?"translateY(".concat(a?a.bottom+c-r.top:i.innerHeight+c-r.top,"px)"):"translateY(-".concat(a?r.top-a.top+r.height-c:r.top+r.height-c,"px)")}(e,t,"function"==typeof(o=n)?o():o);r&&(t.style.webkitTransform=r,t.style.transform=r)}var Rm=r.forwardRef((function(e,t){var n=$i(),o={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},i=e.addEndListener,l=e.appear,s=void 0===l||l,c=e.children,u=e.container,d=e.direction,p=void 0===d?"down":d,f=e.easing,v=void 0===f?o:f,m=e.in,h=e.onEnter,g=e.onEntered,b=e.onEntering,y=e.onExit,x=e.onExited,w=e.onExiting,S=e.style,C=e.timeout,k=void 0===C?a:C,R=e.TransitionComponent,M=void 0===R?zl:R,P=B(e,["addEndListener","appear","children","container","direction","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),I=r.useRef(null),T=Yr(c.ref,I,t),A=function(e){return function(t){e&&(void 0===t?e(I.current):e(I.current,t))}},O=A((function(e,t){km(p,e,u),Ul(e),h&&h(e,t)})),E=A((function(e,t){var o=Gl({timeout:k,style:S,easing:v},{mode:"enter"});e.style.webkitTransition=n.transitions.create("-webkit-transform",L({},o)),e.style.transition=n.transitions.create("transform",L({},o)),e.style.webkitTransform="none",e.style.transform="none",b&&b(e,t)})),N=A(g),z=A(w),F=A((function(e){var t=Gl({timeout:k,style:S,easing:v},{mode:"exit"});e.style.webkitTransition=n.transitions.create("-webkit-transform",t),e.style.transition=n.transitions.create("transform",t),km(p,e,u),y&&y(e)})),D=A((function(e){e.style.webkitTransition="",e.style.transition="",x&&x(e)})),W=r.useCallback((function(){I.current&&km(p,I.current,u)}),[p,u]);return r.useEffect((function(){if(!m&&"down"!==p&&"right"!==p){var e=Hr((function(){I.current&&km(p,I.current,u)})),t=Ur(I.current);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}}),[p,m,u]),r.useEffect((function(){m||W()}),[m,W]),sn(M,L({nodeRef:I,onEnter:O,onEntered:N,onEntering:E,onExit:F,onExited:D,onExiting:z,addEndListener:function(e){i&&i(I.current,e)},appear:s,in:m,timeout:k},P,{children:function(e,t){return r.cloneElement(c,L({ref:T,style:L({visibility:"exited"!==e||m?void 0:"hidden"},S,c.props.style)},t))}}))})),Mm=Rm;function Pm(e){return Vo("MuiDrawer",e)}var Im=jo("MuiDrawer",["root","docked","paper","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]),Tm=function(e,t){var n=e.ownerState;return[t.root,("permanent"===n.variant||"persistent"===n.variant)&&t.docked,t.modal]},Am=Zi(qv,{name:"MuiDrawer",slot:"Root",overridesResolver:Tm})((function(e){var t=e.theme;return{zIndex:(t.vars||t).zIndex.drawer}})),Om=Zi("div",{shouldForwardProp:Yi,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Tm})({flex:"0 0 auto"}),Em=Zi(ts,{name:"MuiDrawer",slot:"Paper",overridesResolver:function(e,t){var n=e.ownerState;return[t.paper,t["paperAnchor".concat(En(n.anchor))],"temporary"!==n.variant&&t["paperAnchorDocked".concat(En(n.anchor))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0},"left"===n.anchor&&{left:0},"top"===n.anchor&&{top:0,left:0,right:0,height:"auto",maxHeight:"100%"},"right"===n.anchor&&{right:0},"bottom"===n.anchor&&{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"},"left"===n.anchor&&"temporary"!==n.variant&&{borderRight:"1px solid ".concat((t.vars||t).palette.divider)},"top"===n.anchor&&"temporary"!==n.variant&&{borderBottom:"1px solid ".concat((t.vars||t).palette.divider)},"right"===n.anchor&&"temporary"!==n.variant&&{borderLeft:"1px solid ".concat((t.vars||t).palette.divider)},"bottom"===n.anchor&&"temporary"!==n.variant&&{borderTop:"1px solid ".concat((t.vars||t).palette.divider)})})),Lm={left:"right",right:"left",top:"down",bottom:"up"};function Nm(e){return-1!==["left","right"].indexOf(e)}function Bm(e,t){return"rtl"===e.direction&&Nm(t)?Lm[t]:t}var zm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiDrawer"}),o=$i(),a=Na(),i={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},l=n.anchor,s=void 0===l?"left":l,c=n.BackdropProps,u=n.children,d=n.className,p=n.elevation,f=void 0===p?16:p,v=n.hideBackdrop,m=void 0!==v&&v,h=n.ModalProps,g=void 0===h?{}:h,b=g.BackdropProps,y=B(g,["BackdropProps"]),x=n.onClose,w=n.open,S=void 0!==w&&w,C=n.PaperProps,k=void 0===C?{}:C,R=n.SlideProps,M=n.TransitionComponent,P=void 0===M?Mm:M,I=n.transitionDuration,T=void 0===I?i:I,A=n.variant,O=void 0===A?"temporary":A,E=B(n,["anchor","BackdropProps","children","className","elevation","hideBackdrop","ModalProps","onClose","open","PaperProps","SlideProps","TransitionComponent","transitionDuration","variant"]),N=r.useRef(!1);r.useEffect((function(){N.current=!0}),[]);var z=Bm({direction:a?"rtl":"ltr"},s),F=L({},n,{anchor:s,elevation:f,open:S,variant:O},E),D=function(e){var t=e.classes,n=e.anchor,o=e.variant;return xa({root:["root"],docked:[("permanent"===o||"persistent"===o)&&"docked"],modal:["modal"],paper:["paper","paperAnchor".concat(En(n)),"temporary"!==o&&"paperAnchorDocked".concat(En(n))]},Pm,t)}(F),W=sn(Em,L({elevation:"temporary"===O?f:0,square:!0},k,{className:Wo(D.paper,k.className),ownerState:F,children:u}));if("permanent"===O)return sn(Om,L({className:Wo(D.root,D.docked,d),ownerState:F,ref:t},E,{children:W}));var H=sn(P,L({in:S,direction:Lm[z],timeout:T,appear:N.current},R,{children:W}));return"persistent"===O?sn(Om,L({className:Wo(D.root,D.docked,d),ownerState:F,ref:t},E,{children:H})):sn(Am,L({BackdropProps:L({},c,b,{transitionDuration:T}),className:Wo(D.root,D.modal,d),open:S,ownerState:F,onClose:x,hideBackdrop:m,ref:t},E,y,{children:H}))}));function Fm(e){return Vo("MuiFab",e)}var Dm=jo("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),Wm=Zi(Ls,{name:"MuiFab",slot:"Root",shouldForwardProp:function(e){return Yi(e)||"classes"===e},overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["size".concat(En(n.size))],"inherit"===n.color&&t.colorInherit,t[En(n.size)],t[n.color]]}})((function(e){var t,n,o=e.theme,r=e.ownerState;return L({},o.typography.button,E({minHeight:36,transition:o.transitions.create(["background-color","box-shadow","border-color"],{duration:o.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(o.vars||o).zIndex.fab,boxShadow:(o.vars||o).shadows[6],"&:active":{boxShadow:(o.vars||o).shadows[12]},color:o.vars?o.vars.palette.text.primary:null==(t=(n=o.palette).getContrastText)?void 0:t.call(n,o.palette.grey[300]),backgroundColor:(o.vars||o).palette.grey[300],"&:hover":{backgroundColor:(o.vars||o).palette.grey.A100,"@media (hover: none)":{backgroundColor:(o.vars||o).palette.grey[300]},textDecoration:"none"}},"&.".concat(Dm.focusVisible),{boxShadow:(o.vars||o).shadows[6]}),"small"===r.size&&{width:40,height:40},"medium"===r.size&&{width:48,height:48},"extended"===r.variant&&{borderRadius:24,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48},"extended"===r.variant&&"small"===r.size&&{width:"auto",padding:"0 8px",borderRadius:17,minWidth:34,height:34},"extended"===r.variant&&"medium"===r.size&&{width:"auto",padding:"0 16px",borderRadius:20,minWidth:40,height:40},"inherit"===r.color&&{color:"inherit"})}),(function(e){var t=e.theme,n=e.ownerState;return L({},"inherit"!==n.color&&"default"!==n.color&&null!=(t.vars||t).palette[n.color]&&{color:(t.vars||t).palette[n.color].contrastText,backgroundColor:(t.vars||t).palette[n.color].main,"&:hover":{backgroundColor:(t.vars||t).palette[n.color].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[n.color].main}}})}),(function(e){var t=e.theme;return E({},"&.".concat(Dm.disabled),{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground})})),Hm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiFab"}),o=n.children,r=n.className,a=n.color,i=void 0===a?"default":a,l=n.component,s=void 0===l?"button":l,c=n.disabled,u=void 0!==c&&c,d=n.disableFocusRipple,p=void 0!==d&&d,f=n.focusVisibleClassName,v=n.size,m=void 0===v?"large":v,h=n.variant,g=void 0===h?"circular":h,b=B(n,["children","className","color","component","disabled","disableFocusRipple","focusVisibleClassName","size","variant"]),y=L({},n,{color:i,component:s,disabled:u,disableFocusRipple:p,size:m,variant:g}),x=function(e){var t=e.color,n=e.variant,o=e.classes,r=e.size;return L({},o,xa({root:["root",n,"size".concat(En(r)),"inherit"===t?"colorInherit":t]},Fm,o))}(y);return sn(Wm,L({className:Wo(x.root,r),component:s,disabled:u,focusRipple:!p,focusVisibleClassName:Wo(x.focusVisible,f),ownerState:y,ref:t},b,{classes:x,children:o}))})),Vm=Hm,jm=Zi(Md,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiFilledInput",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[].concat(kn(kd(e,t)),[!n.disableUnderline&&t.underline])}})((function(e){var t,n=e.theme,o=e.ownerState,r="light"===n.palette.mode,a=r?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",i=r?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",l=r?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",s=r?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return L(E(E({position:"relative",backgroundColor:n.vars?n.vars.palette.FilledInput.bg:i,borderTopLeftRadius:(n.vars||n).shape.borderRadius,borderTopRightRadius:(n.vars||n).shape.borderRadius,transition:n.transitions.create("background-color",{duration:n.transitions.duration.shorter,easing:n.transitions.easing.easeOut}),"&:hover":{backgroundColor:n.vars?n.vars.palette.FilledInput.hoverBg:l,"@media (hover: none)":{backgroundColor:n.vars?n.vars.palette.FilledInput.bg:i}}},"&.".concat(zd.focused),{backgroundColor:n.vars?n.vars.palette.FilledInput.bg:i}),"&.".concat(zd.disabled),{backgroundColor:n.vars?n.vars.palette.FilledInput.disabledBg:s}),!o.disableUnderline&&E(E(E(E(E({"&::after":{borderBottom:"2px solid ".concat(null==(t=(n.vars||n).palette[o.color||"primary"])?void 0:t.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:n.transitions.create("transform",{duration:n.transitions.duration.shorter,easing:n.transitions.easing.easeOut}),pointerEvents:"none"}},"&.".concat(zd.focused,":after"),{transform:"scaleX(1) translateX(0)"}),"&.".concat(zd.error),{"&::before, &::after":{borderBottomColor:(n.vars||n).palette.error.main}}),"&::before",{borderBottom:"1px solid ".concat(n.vars?"rgba(".concat(n.vars.palette.common.onBackgroundChannel," / ").concat(n.vars.opacity.inputUnderline,")"):a),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:n.transitions.create("border-bottom-color",{duration:n.transitions.duration.shorter}),pointerEvents:"none"}),"&:hover:not(.".concat(zd.disabled,", .").concat(zd.error,"):before"),{borderBottom:"1px solid ".concat((n.vars||n).palette.text.primary)}),"&.".concat(zd.disabled,":before"),{borderBottomStyle:"dotted"}),o.startAdornment&&{paddingLeft:12},o.endAdornment&&{paddingRight:12},o.multiline&&L({padding:"25px 12px 8px"},"small"===o.size&&{paddingTop:21,paddingBottom:4},o.hiddenLabel&&{paddingTop:16,paddingBottom:17},o.hiddenLabel&&"small"===o.size&&{paddingTop:8,paddingBottom:9}))})),Um=Zi(Pd,{name:"MuiFilledInput",slot:"Input",overridesResolver:Rd})((function(e){var t=e.theme,n=e.ownerState;return L({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},t.vars&&E({"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},t.getColorSchemeSelector("dark"),{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}),"small"===n.size&&{paddingTop:21,paddingBottom:4},n.hiddenLabel&&{paddingTop:16,paddingBottom:17},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0},n.hiddenLabel&&"small"===n.size&&{paddingTop:8,paddingBottom:9},n.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})})),Gm=r.forwardRef((function(e,t){var n,o,r,a,i=gl({props:e,name:"MuiFilledInput"});i.disableUnderline;var l=i.components,s=void 0===l?{}:l,c=i.componentsProps,u=i.fullWidth,d=void 0!==u&&u;i.hiddenLabel;var p=i.inputComponent,f=void 0===p?"input":p,v=i.multiline,m=void 0!==v&&v,h=i.slotProps,g=i.slots,b=void 0===g?{}:g,y=i.type,x=void 0===y?"text":y,w=B(i,["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"]),S=L({},i,{fullWidth:d,inputComponent:f,multiline:m,type:x}),C=function(e){var t=e.classes;return L({},t,xa({root:["root",!e.disableUnderline&&"underline"],input:["input"]},Bd,t))}(i),k={root:{ownerState:S},input:{ownerState:S}},R=(null!=h?h:c)?vn(k,null!=h?h:c):k,M=null!=(n=null!=(o=b.root)?o:s.Root)?n:jm,P=null!=(r=null!=(a=b.input)?a:s.Input)?r:Um;return sn(Ad,L({slots:{root:M,input:P},componentsProps:R,fullWidth:d,inputComponent:f,multiline:m,ref:t,type:x},w,{classes:C}))}));Gm.muiName="Input";var _m=Gm;function qm(e){return Vo("MuiFormControl",e)}var Km=jo("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]),$m=Zi("div",{name:"MuiFormControl",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return L({},t.root,t["margin".concat(En(n.margin))],n.fullWidth&&t.fullWidth)}})((function(e){var t=e.ownerState;return L({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},"normal"===t.margin&&{marginTop:16,marginBottom:8},"dense"===t.margin&&{marginTop:8,marginBottom:4},t.fullWidth&&{width:"100%"})})),Xm=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiFormControl"}),o=n.children,a=n.className,i=n.color,l=void 0===i?"primary":i,s=n.component,c=void 0===s?"div":s,u=n.disabled,d=void 0!==u&&u,p=n.error,f=void 0!==p&&p,v=n.focused,m=n.fullWidth,h=void 0!==m&&m,g=n.hiddenLabel,b=void 0!==g&&g,y=n.margin,x=void 0===y?"none":y,w=n.required,S=void 0!==w&&w,C=n.size,k=void 0===C?"medium":C,R=n.variant,M=void 0===R?"outlined":R,P=B(n,["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"]),I=L({},n,{color:l,component:c,disabled:d,error:f,fullWidth:h,hiddenLabel:b,margin:x,required:S,size:k,variant:M}),T=function(e){var t=e.classes,n=e.margin,o=e.fullWidth;return xa({root:["root","none"!==n&&"margin".concat(En(n)),o&&"fullWidth"]},qm,t)}(I),A=r.useState((function(){var e=!1;return o&&r.Children.forEach(o,(function(t){if(Vr(t,["Input","Select"])){var n=Vr(t,["Select"])?t.props.input:t;n&&n.props.startAdornment&&(e=!0)}})),e})),O=A[0],E=A[1],N=r.useState((function(){var e=!1;return o&&r.Children.forEach(o,(function(t){Vr(t,["Input","Select"])&&(wd(t.props,!0)||wd(t.props.inputProps,!0))&&(e=!0)})),e})),z=N[0],F=N[1],D=r.useState(!1),W=D[0],H=D[1];d&&W&&H(!1);var V,j=void 0===v||d?W:v,U=r.useMemo((function(){return{adornedStart:O,setAdornedStart:E,color:l,disabled:d,error:f,filled:z,focused:j,fullWidth:h,hiddenLabel:b,size:k,onBlur:function(){H(!1)},onEmpty:function(){F(!1)},onFilled:function(){F(!0)},onFocus:function(){H(!0)},registerEffect:V,required:S,variant:M}}),[O,l,d,f,z,j,h,b,V,S,k,M]);return sn(gd.Provider,{value:U,children:sn($m,L({as:c,ownerState:I,className:Wo(T.root,a),ref:t},P,{children:o}))})})),Ym=Xm,Zm=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createStyledComponent,n=void 0===t?Si:t,o=e.useThemeProps,a=void 0===o?Ci:o,i=e.componentName,l=void 0===i?"MuiStack":i,s=n(Ri);return r.forwardRef((function(e,t){var n=No(a(e)),o=n.component,r=void 0===o?"div":o,i=n.direction,c=void 0===i?"column":i,u=n.spacing,d=void 0===u?0:u,p=n.divider,f=n.children,v=n.className,m=n.useFlexGap,h=void 0!==m&&m,g=B(n,["component","direction","spacing","divider","children","className","useFlexGap"]),b={direction:c,spacing:d,useFlexGap:h},y=xa({root:["root"]},(function(e){return Vo(l,e)}),{});return sn(s,L({as:r,ownerState:b,ref:t,className:Wo(y.root,v)},g,{children:p?ki(f,p):f}))}))}({createStyledComponent:Zi("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,t){return t.root}}),useThemeProps:function(e){return gl({props:e,name:"MuiStack"})}}),Jm=Zm,Qm=jo("MuiStack",["root"]);function eh(e){return Vo("MuiFormControlLabel",e)}var th=jo("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),nh=Zi("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(th.label),t.label),t.root,t["labelPlacement".concat(En(n.labelPlacement))]]}})((function(e){var t=e.theme,n=e.ownerState;return L(E({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16},"&.".concat(th.disabled),{cursor:"default"}),"start"===n.labelPlacement&&{flexDirection:"row-reverse",marginLeft:16,marginRight:-11},"top"===n.labelPlacement&&{flexDirection:"column-reverse",marginLeft:16},"bottom"===n.labelPlacement&&{flexDirection:"column",marginLeft:16},E({},"& .".concat(th.label),E({},"&.".concat(th.disabled),{color:(t.vars||t).palette.text.disabled})))})),oh=Zi("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return E({},"&.".concat(th.error),{color:(t.vars||t).palette.error.main})})),rh=r.forwardRef((function(e,t){var n,o,a=gl({props:e,name:"MuiFormControlLabel"});a.checked;var i=a.className,l=a.componentsProps,s=void 0===l?{}:l,c=a.control,u=a.disabled,d=a.disableTypography;a.inputRef;var p=a.label,f=a.labelPlacement,v=void 0===f?"end":f;a.name,a.onChange;var m=a.required,h=a.slotProps,g=void 0===h?{}:h;a.value;var b=B(a,["checked","className","componentsProps","control","disabled","disableTypography","inputRef","label","labelPlacement","name","onChange","required","slotProps","value"]),y=bd(),x=null!=(n=null!=u?u:c.props.disabled)?n:null==y?void 0:y.disabled,w=null!=m?m:c.props.required,S={disabled:x,required:w};["checked","name","onChange","value","inputRef"].forEach((function(e){void 0===c.props[e]&&void 0!==a[e]&&(S[e]=a[e])}));var C=hd({props:a,muiFormControl:y,states:["error"]}),k=L({},a,{disabled:x,labelPlacement:v,required:w,error:C.error}),R=function(e){var t=e.classes,n=e.disabled,o=e.labelPlacement,r=e.error,a=e.required;return xa({root:["root",n&&"disabled","labelPlacement".concat(En(o)),r&&"error",a&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",r&&"error"]},eh,t)}(k),M=null!=(o=g.typography)?o:s.typography,P=p;return null==P||P.type===dc||d||(P=sn(dc,L({component:"span"},M,{className:Wo(R.label,null==M?void 0:M.className),children:P}))),cn(nh,L({className:Wo(R.root,i),ownerState:k,ref:t},b,{children:[r.cloneElement(c,S),w?cn(Jm,{display:"block",children:[P,cn(oh,{ownerState:k,"aria-hidden":!0,className:R.asterisk,children:[" ","*"]})]}):P]}))}));function ah(e){return Vo("MuiFormGroup",e)}var ih=jo("MuiFormGroup",["root","row","error"]),lh=Zi("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.row&&t.row]}})((function(e){return L({display:"flex",flexDirection:"column",flexWrap:"wrap"},e.ownerState.row&&{flexDirection:"row"})})),sh=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiFormGroup"}),o=n.className,r=n.row,a=void 0!==r&&r,i=B(n,["className","row"]),l=L({},n,{row:a,error:hd({props:n,muiFormControl:bd(),states:["error"]}).error}),s=function(e){var t=e.classes;return xa({root:["root",e.row&&"row",e.error&&"error"]},ah,t)}(l);return sn(lh,L({className:Wo(s.root,o),ownerState:l,ref:t},i))}));function ch(e){return Vo("MuiFormHelperText",e)}var uh,dh=jo("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),ph=Zi("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.size&&t["size".concat(En(n.size))],n.contained&&t.contained,n.filled&&t.filled]}})((function(e){var t=e.theme,n=e.ownerState;return L({color:(t.vars||t).palette.text.secondary},t.typography.caption,E(E({textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0},"&.".concat(dh.disabled),{color:(t.vars||t).palette.text.disabled}),"&.".concat(dh.error),{color:(t.vars||t).palette.error.main}),"small"===n.size&&{marginTop:4},n.contained&&{marginLeft:14,marginRight:14})})),fh=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiFormHelperText"}),o=n.children,r=n.className,a=n.component,i=void 0===a?"p":a;n.disabled,n.error,n.filled,n.focused,n.margin,n.required,n.variant;var l=B(n,["children","className","component","disabled","error","filled","focused","margin","required","variant"]),s=hd({props:n,muiFormControl:bd(),states:["variant","size","disabled","error","filled","focused","required"]}),c=L({},n,{component:i,contained:"filled"===s.variant||"outlined"===s.variant,variant:s.variant,size:s.size,disabled:s.disabled,error:s.error,filled:s.filled,focused:s.focused,required:s.required}),u=function(e){var t=e.classes,n=e.contained,o=e.size,r=e.disabled,a=e.error,i=e.filled,l=e.focused,s=e.required;return xa({root:["root",r&&"disabled",a&&"error",o&&"size".concat(En(o)),n&&"contained",l&&"focused",i&&"filled",s&&"required"]},ch,t)}(c);return sn(ph,L({as:i,ownerState:c,className:Wo(u.root,r),ref:t},l,{children:" "===o?uh||(uh=sn("span",{className:"notranslate",children:"​"})):o}))}));function vh(e){return Vo("MuiFormLabel",e)}var mh=jo("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),hh=Zi("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return L({},t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled)}})((function(e){var t=e.theme,n=e.ownerState;return L({color:(t.vars||t).palette.text.secondary},t.typography.body1,E(E(E({lineHeight:"1.4375em",padding:0,position:"relative"},"&.".concat(mh.focused),{color:(t.vars||t).palette[n.color].main}),"&.".concat(mh.disabled),{color:(t.vars||t).palette.text.disabled}),"&.".concat(mh.error),{color:(t.vars||t).palette.error.main}))})),gh=Zi("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return E({},"&.".concat(mh.error),{color:(t.vars||t).palette.error.main})})),bh=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiFormLabel"}),o=n.children,r=n.className;n.color;var a=n.component,i=void 0===a?"label":a;n.disabled,n.error,n.filled,n.focused,n.required;var l=B(n,["children","className","color","component","disabled","error","filled","focused","required"]),s=hd({props:n,muiFormControl:bd(),states:["color","required","focused","disabled","error","filled"]}),c=L({},n,{color:s.color||"primary",component:i,disabled:s.disabled,error:s.error,filled:s.filled,focused:s.focused,required:s.required}),u=function(e){var t=e.classes,n=e.color,o=e.focused,r=e.disabled,a=e.error,i=e.filled,l=e.required;return xa({root:["root","color".concat(En(n)),r&&"disabled",a&&"error",i&&"filled",o&&"focused",l&&"required"],asterisk:["asterisk",a&&"error"]},vh,t)}(c);return cn(hh,L({as:i,ownerState:c,className:Wo(u.root,r),ref:t},l,{children:[o,s.required&&cn(gh,{ownerState:c,"aria-hidden":!0,className:u.asterisk,children:[" ","*"]})]}))})),yh=bh,xh=r.createContext();function wh(e){return Vo("MuiGrid",e)}var Sh=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Ch=jo("MuiGrid",["root","container","item","zeroMinWidth"].concat(kn([0,1,2,3,4,5,6,7,8,9,10].map((function(e){return"spacing-xs-".concat(e)}))),kn(["column-reverse","column","row-reverse","row"].map((function(e){return"direction-xs-".concat(e)}))),kn(["nowrap","wrap-reverse","wrap"].map((function(e){return"wrap-xs-".concat(e)}))),kn(Sh.map((function(e){return"grid-xs-".concat(e)}))),kn(Sh.map((function(e){return"grid-sm-".concat(e)}))),kn(Sh.map((function(e){return"grid-md-".concat(e)}))),kn(Sh.map((function(e){return"grid-lg-".concat(e)}))),kn(Sh.map((function(e){return"grid-xl-".concat(e)})))));function kh(e){var t=parseFloat(e);return"".concat(t).concat(String(e).replace(String(t),"")||"px")}function Rh(e){var t=e.breakpoints,n=e.values,o="";Object.keys(n).forEach((function(e){""===o&&0!==n[e]&&(o=e)}));var r=Object.keys(t).sort((function(e,n){return t[e]-t[n]}));return r.slice(0,r.indexOf(o))}var Mh=Zi("div",{name:"MuiGrid",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState,o=n.container,r=n.direction,a=n.item,i=n.spacing,l=n.wrap,s=n.zeroMinWidth,c=n.breakpoints,u=[];o&&(u=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e||e<=0)return[];if("string"==typeof e&&!Number.isNaN(Number(e))||"number"==typeof e)return[n["spacing-xs-".concat(String(e))]];var o=[];return t.forEach((function(t){var r=e[t];Number(r)>0&&o.push(n["spacing-".concat(t,"-").concat(String(r))])})),o}(i,c,t));var d=[];return c.forEach((function(e){var o=n[e];o&&d.push(t["grid-".concat(e,"-").concat(String(o))])})),[t.root,o&&t.container,a&&t.item,s&&t.zeroMinWidth].concat(kn(u),["row"!==r&&t["direction-xs-".concat(String(r))],"wrap"!==l&&t["wrap-xs-".concat(String(l))]],d)}})((function(e){var t=e.ownerState;return L({boxSizing:"border-box"},t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},t.item&&{margin:0},t.zeroMinWidth&&{minWidth:0},"wrap"!==t.wrap&&{flexWrap:t.wrap})}),(function(e){var t=e.theme;return In({theme:t},On({values:e.ownerState.direction,breakpoints:t.breakpoints.values}),(function(e){var t={flexDirection:e};return 0===e.indexOf("column")&&(t["& > .".concat(Ch.item)]={maxWidth:"none"}),t}))}),(function(e){var t=e.theme,n=e.ownerState,o=n.container,r=n.rowSpacing,a={};if(o&&0!==r){var i,l=On({values:r,breakpoints:t.breakpoints.values});"object"===A(l)&&(i=Rh({breakpoints:t.breakpoints.values,values:l})),a=In({theme:t},l,(function(e,n){var o,r=t.spacing(e);return"0px"!==r?E({marginTop:"-".concat(kh(r))},"& > .".concat(Ch.item),{paddingTop:kh(r)}):null!=(o=i)&&o.includes(n)?{}:E({marginTop:0},"& > .".concat(Ch.item),{paddingTop:0})}))}return a}),(function(e){var t=e.theme,n=e.ownerState,o=n.container,r=n.columnSpacing,a={};if(o&&0!==r){var i,l=On({values:r,breakpoints:t.breakpoints.values});"object"===A(l)&&(i=Rh({breakpoints:t.breakpoints.values,values:l})),a=In({theme:t},l,(function(e,n){var o,r=t.spacing(e);return"0px"!==r?E({width:"calc(100% + ".concat(kh(r),")"),marginLeft:"-".concat(kh(r))},"& > .".concat(Ch.item),{paddingLeft:kh(r)}):null!=(o=i)&&o.includes(n)?{}:E({width:"100%",marginLeft:0},"& > .".concat(Ch.item),{paddingLeft:0})}))}return a}),(function(e){var t,n=e.theme,o=e.ownerState;return n.breakpoints.keys.reduce((function(e,r){var a={};if(o[r]&&(t=o[r]),!t)return e;if(!0===t)a={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if("auto"===t)a={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{var i=On({values:o.columns,breakpoints:n.breakpoints.values}),l="object"===A(i)?i[r]:i;if(null==l)return e;var s="".concat(Math.round(t/l*1e8)/1e6,"%"),c={};if(o.container&&o.item&&0!==o.columnSpacing){var u=n.spacing(o.columnSpacing);if("0px"!==u){var d="calc(".concat(s," + ").concat(kh(u),")");c={flexBasis:d,maxWidth:d}}}a=L({flexBasis:s,flexGrow:0,maxWidth:s},c)}return 0===n.breakpoints.values[r]?Object.assign(e,a):e[n.breakpoints.up(r)]=a,e}),{})}));var Ph=function(e){var t=e.classes,n=e.container,o=e.direction,r=e.item,a=e.spacing,i=e.wrap,l=e.zeroMinWidth,s=e.breakpoints,c=[];n&&(c=function(e,t){if(!e||e<=0)return[];if("string"==typeof e&&!Number.isNaN(Number(e))||"number"==typeof e)return["spacing-xs-".concat(String(e))];var n=[];return t.forEach((function(t){var o=e[t];if(Number(o)>0){var r="spacing-".concat(t,"-").concat(String(o));n.push(r)}})),n}(a,s));var u=[];return s.forEach((function(t){var n=e[t];n&&u.push("grid-".concat(t,"-").concat(String(n)))})),xa({root:["root",n&&"container",r&&"item",l&&"zeroMinWidth"].concat(kn(c),["row"!==o&&"direction-xs-".concat(String(o)),"wrap"!==i&&"wrap-xs-".concat(String(i))],u)},wh,t)},Ih=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiGrid"}),o=$i().breakpoints,a=No(n),i=a.className,l=a.columns,s=a.columnSpacing,c=a.component,u=void 0===c?"div":c,d=a.container,p=void 0!==d&&d,f=a.direction,v=void 0===f?"row":f,m=a.item,h=void 0!==m&&m,g=a.rowSpacing,b=a.spacing,y=void 0===b?0:b,x=a.wrap,w=void 0===x?"wrap":x,S=a.zeroMinWidth,C=void 0!==S&&S,k=B(a,["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"]),R=g||y,M=s||y,P=r.useContext(xh),I=p?l||12:P,T={},A=L({},k);o.keys.forEach((function(e){null!=k[e]&&(T[e]=k[e],delete A[e])}));var O=L({},a,{columns:I,container:p,direction:v,item:h,rowSpacing:R,columnSpacing:M,wrap:w,zeroMinWidth:C,spacing:y},T,{breakpoints:o.keys}),E=Ph(O);return sn(xh.Provider,{value:I,children:sn(Mh,L({ownerState:O,className:Wo(E.root,i),as:u,ref:t},A))})})),Th=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createStyledComponent,n=void 0===t?yi:t,o=e.useThemeProps,a=void 0===o?xi:o,i=e.componentName,l=void 0===i?"MuiGrid":i,s=r.createContext(void 0),c=n(ui,pi,di,si,fi,vi,ci),u=r.forwardRef((function(e,t){var n,o,i,u,d,p,f,v,m=Oo(),h=No(a(e)),g=r.useContext(s),b=h.className,y=h.children,x=h.columns,w=void 0===x?12:x,S=h.container,C=void 0!==S&&S,k=h.component,R=void 0===k?"div":k,M=h.direction,P=void 0===M?"row":M,I=h.wrap,T=void 0===I?"wrap":I,A=h.spacing,O=void 0===A?0:A,E=h.rowSpacing,N=void 0===E?O:E,z=h.columnSpacing,F=void 0===z?O:z,D=h.disableEqualOverflow,W=h.unstable_level,H=void 0===W?0:W,V=B(h,["className","children","columns","container","component","direction","wrap","spacing","rowSpacing","columnSpacing","disableEqualOverflow","unstable_level"]),j=D;H&&void 0!==D&&(j=e.disableEqualOverflow);var U={},G={},_={};Object.entries(V).forEach((function(e){var t=Sn(e,2),n=t[0],o=t[1];void 0!==m.breakpoints.values[n]?U[n]=o:void 0!==m.breakpoints.values[n.replace("Offset","")]?G[n.replace("Offset","")]=o:_[n]=o}));var q=null!=(n=e.columns)?n:H?void 0:w,K=null!=(o=e.spacing)?o:H?void 0:O,$=null!=(i=null!=(u=e.rowSpacing)?u:e.spacing)?i:H?void 0:N,X=null!=(d=null!=(p=e.columnSpacing)?p:e.spacing)?d:H?void 0:F,Y=L({},h,{level:H,columns:q,container:C,direction:P,wrap:T,spacing:K,rowSpacing:$,columnSpacing:X,gridSize:U,gridOffset:G,disableEqualOverflow:null!=(f=null!=(v=j)?v:g)&&f,parentDisableEqualOverflow:g}),Z=function(e,t){var n=e.container,o=e.direction,r=e.spacing,a=e.wrap,i=e.gridSize;return xa({root:["root",n&&"container","wrap"!==a&&"wrap-xs-".concat(String(a))].concat(kn(gi(o)),kn(mi(i)),kn(n?hi(r,t.breakpoints.keys[0]):[]))},(function(e){return Vo(l,e)}),{})}(Y,m),J=sn(c,L({ref:t,as:R,ownerState:Y,className:Wo(Z.root,b)},_,{children:r.Children.map(y,(function(e){var t;return r.isValidElement(e)&&Vr(e,["Grid"])?r.cloneElement(e,{unstable_level:null!=(t=e.props.unstable_level)?t:H+1}):e}))}));return void 0!==j&&j!==(null!=g&&g)&&(J=sn(s.Provider,{value:j,children:J})),J}));return u.muiName="Grid",u}({createStyledComponent:Zi("div",{name:"MuiGrid2",slot:"Root",overridesResolver:function(e,t){return t.root}}),componentName:"MuiGrid2",useThemeProps:function(e){return gl({props:e,name:"MuiGrid2"})}}),Ah=Th;var Oh=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Eh=jo("MuiGrid2",["root","container","item","zeroMinWidth"].concat(kn([0,1,2,3,4,5,6,7,8,9,10].map((function(e){return"spacing-xs-".concat(e)}))),kn(["column-reverse","column","row-reverse","row"].map((function(e){return"direction-xs-".concat(e)}))),kn(["nowrap","wrap-reverse","wrap"].map((function(e){return"wrap-xs-".concat(e)}))),kn(Oh.map((function(e){return"grid-xs-".concat(e)}))),kn(Oh.map((function(e){return"grid-sm-".concat(e)}))),kn(Oh.map((function(e){return"grid-md-".concat(e)}))),kn(Oh.map((function(e){return"grid-lg-".concat(e)}))),kn(Oh.map((function(e){return"grid-xl-".concat(e)})))));function Lh(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var Nh={entering:{opacity:1,transform:Lh(1)},entered:{opacity:1,transform:"none"}},Bh="undefined"!=typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),zh=r.forwardRef((function(e,t){var n=e.addEndListener,o=e.appear,a=void 0===o||o,i=e.children,l=e.easing,s=e.in,c=e.onEnter,u=e.onEntered,d=e.onEntering,p=e.onExit,f=e.onExited,v=e.onExiting,m=e.style,h=e.timeout,g=void 0===h?"auto":h,b=e.TransitionComponent,y=void 0===b?zl:b,x=B(e,["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),w=oa(),S=r.useRef(),C=$i(),k=r.useRef(null),R=Yr(k,i.ref,t),M=function(e){return function(t){if(e){var n=k.current;void 0===t?e(n):e(n,t)}}},P=M(d),I=M((function(e,t){Ul(e);var n,o=Gl({style:m,timeout:g,easing:l},{mode:"enter"}),r=o.duration,a=o.delay,i=o.easing;"auto"===g?(n=C.transitions.getAutoHeightDuration(e.clientHeight),S.current=n):n=r,e.style.transition=[C.transitions.create("opacity",{duration:n,delay:a}),C.transitions.create("transform",{duration:Bh?n:.666*n,delay:a,easing:i})].join(","),c&&c(e,t)})),T=M(u),A=M(v),O=M((function(e){var t,n=Gl({style:m,timeout:g,easing:l},{mode:"exit"}),o=n.duration,r=n.delay,a=n.easing;"auto"===g?(t=C.transitions.getAutoHeightDuration(e.clientHeight),S.current=t):t=o,e.style.transition=[C.transitions.create("opacity",{duration:t,delay:r}),C.transitions.create("transform",{duration:Bh?t:.666*t,delay:Bh?r:r||.333*t,easing:a})].join(","),e.style.opacity=0,e.style.transform=Lh(.75),p&&p(e)})),E=M(f);return sn(y,L({appear:a,in:s,nodeRef:k,onEnter:I,onEntered:T,onEntering:P,onExit:O,onExited:E,onExiting:A,addEndListener:function(e){"auto"===g&&w.start(S.current||0,e),n&&n(k.current,e)},timeout:"auto"===g?null:g},x,{children:function(e,t){return r.cloneElement(i,L({style:L({opacity:0,transform:Lh(.75),visibility:"exited"!==e||s?void 0:"hidden"},Nh[e],m,i.props.style),ref:R},t))}}))}));zh.muiSupportAuto=!0;var Fh=zh,Dh=["xs","sm","md","lg","xl"],Wh=function(e,t){return!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?Dh.indexOf(e)<=Dh.indexOf(t):Dh.indexOf(e)2&&void 0!==arguments[2]&&arguments[2]?Dh.indexOf(t)<=Dh.indexOf(e):Dh.indexOf(t)0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=e.withTheme,o=void 0!==n&&n,a=e.noSSR,i=void 0!==a&&a,l=e.initialWidth;return function(e){var n=$i(),a=e.theme||n,s=mr({theme:a,name:"MuiWithWidth",props:e}),c=s.initialWidth,u=s.width,d=B(s,["initialWidth","width"]),p=r.useState(!1),f=p[0],v=p[1];gr((function(){v(!0)}),[]);var m=a.breakpoints.keys.slice().reverse().reduce((function(e,t){var n=wr(a.breakpoints.up(t));return!e&&n?t:e}),null),h=L({width:u||(f||i?m:void 0)||c||l},o?{theme:a}:{},d);return void 0===h.width?null:sn(t,L({},h))}}};var jh=Vh()((function(e){var t=e.children,n=e.only,o=e.width,a=$i(),i=!0;if(n)if(Array.isArray(n))for(var l=0;l .".concat(cb.root),{paddingRight:48}),E(E(E({},"&.".concat(lb.focusVisible),{backgroundColor:(t.vars||t).palette.action.focus}),"&.".concat(lb.selected),E({backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):Or(t.palette.primary.main,t.palette.action.selectedOpacity)},"&.".concat(lb.focusVisible),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):Or(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)})),"&.".concat(lb.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"flex-start"===n.alignItems&&{alignItems:"flex-start"},n.divider&&{borderBottom:"1px solid ".concat((t.vars||t).palette.divider),backgroundClip:"padding-box"},n.button&&E({transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(lb.selected,":hover"),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):Or(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):Or(t.palette.primary.main,t.palette.action.selectedOpacity)}}),n.hasSecondaryAction&&{paddingRight:48})})),bb=Zi("li",{name:"MuiListItem",slot:"Container",overridesResolver:function(e,t){return t.container}})({position:"relative"}),yb=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiListItem"}),o=n.alignItems,a=void 0===o?"center":o,i=n.autoFocus,l=void 0!==i&&i,s=n.button,c=void 0!==s&&s,u=n.children,d=n.className,p=n.component,f=n.components,v=void 0===f?{}:f,m=n.componentsProps,h=void 0===m?{}:m,g=n.ContainerComponent,b=void 0===g?"li":g,y=n.ContainerProps,x=void 0===y?{}:y,w=x.className,S=B(x,["className"]),C=n.dense,k=void 0!==C&&C,R=n.disabled,M=void 0!==R&&R,P=n.disableGutters,I=void 0!==P&&P,T=n.disablePadding,A=void 0!==T&&T,O=n.divider,E=void 0!==O&&O,N=n.focusVisibleClassName,z=n.secondaryAction,F=n.selected,D=void 0!==F&&F,W=n.slotProps,H=void 0===W?{}:W,V=n.slots,j=void 0===V?{}:V,U=B(n,["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"]),G=r.useContext(tb),_=r.useMemo((function(){return{dense:k||G.dense||!1,alignItems:a,disableGutters:I}}),[a,G.dense,k,I]),q=r.useRef(null);gr((function(){l&&q.current&&q.current.focus()}),[l]);var K=r.Children.toArray(u),$=K.length&&Vr(K[K.length-1],["ListItemSecondaryAction"]),X=L({},n,{alignItems:a,autoFocus:l,button:c,dense:_.dense,disabled:M,disableGutters:I,disablePadding:A,divider:E,hasSecondaryAction:$,selected:D}),Y=function(e){var t=e.alignItems,n=e.button,o=e.classes,r=e.dense,a=e.disabled;return xa({root:["root",r&&"dense",!e.disableGutters&&"gutters",!e.disablePadding&&"padding",e.divider&&"divider",a&&"disabled",n&&"button","flex-start"===t&&"alignItemsFlexStart",e.hasSecondaryAction&&"secondaryAction",e.selected&&"selected"],container:["container"]},ib,o)}(X),Z=Yr(q,t),J=j.root||v.Root||gb,Q=H.root||h.root||{},ee=L({className:Wo(Y.root,Q.className,d),disabled:M},U),te=p||"li";return c&&(ee.component=p||"div",ee.focusVisibleClassName=Wo(lb.focusVisible,N),te=Ls),$?(te=ee.component||p?te:"div","li"===b&&("li"===te?te="div":"li"===ee.component&&(ee.component="div")),sn(tb.Provider,{value:_,children:cn(bb,L({as:b,className:Wo(Y.container,w),ref:Z,ownerState:X},S,{children:[sn(J,L({},Q,!wa(J)&&{as:te,ownerState:L({},X,Q.ownerState)},ee,{children:K})),K.pop()]}))})):sn(tb.Provider,{value:_,children:cn(J,L({},Q,{as:te,ref:Z},!wa(J)&&{ownerState:L({},X,Q.ownerState)},ee,{children:[K,z&&sn(hb,{children:z})]}))})}));function xb(e){return Vo("MuiListItemAvatar",e)}var wb=jo("MuiListItemAvatar",["root","alignItemsFlexStart"]),Sb=Zi("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"flex-start"===n.alignItems&&t.alignItemsFlexStart]}})((function(e){return L({minWidth:56,flexShrink:0},"flex-start"===e.ownerState.alignItems&&{marginTop:8})})),Cb=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiListItemAvatar"}),o=n.className,a=B(n,["className"]),i=L({},n,{alignItems:r.useContext(tb).alignItems}),l=function(e){return xa({root:["root","flex-start"===e.alignItems&&"alignItemsFlexStart"]},xb,e.classes)}(i);return sn(Sb,L({className:Wo(l.root,o),ownerState:i,ref:t},a))}));function kb(e){return Vo("MuiListItemIcon",e)}var Rb=jo("MuiListItemIcon",["root","alignItemsFlexStart"]),Mb=Zi("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"flex-start"===n.alignItems&&t.alignItemsFlexStart]}})((function(e){var t=e.theme,n=e.ownerState;return L({minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex"},"flex-start"===n.alignItems&&{marginTop:8})})),Pb=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiListItemIcon"}),o=n.className,a=B(n,["className"]),i=L({},n,{alignItems:r.useContext(tb).alignItems}),l=function(e){return xa({root:["root","flex-start"===e.alignItems&&"alignItemsFlexStart"]},kb,e.classes)}(i);return sn(Mb,L({className:Wo(l.root,o),ownerState:i,ref:t},a))}));function Ib(e){return Vo("MuiListItemText",e)}var Tb=jo("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),Ab=Zi("div",{name:"MuiListItemText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(Tb.primary),t.primary),E({},"& .".concat(Tb.secondary),t.secondary),t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})((function(e){var t=e.ownerState;return L({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},t.primary&&t.secondary&&{marginTop:6,marginBottom:6},t.inset&&{paddingLeft:56})})),Ob=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiListItemText"}),o=n.children,a=n.className,i=n.disableTypography,l=void 0!==i&&i,s=n.inset,c=void 0!==s&&s,u=n.primary,d=n.primaryTypographyProps,p=n.secondary,f=n.secondaryTypographyProps,v=B(n,["children","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"]),m=r.useContext(tb).dense,h=null!=u?u:o,g=p,b=L({},n,{disableTypography:l,inset:c,primary:!!h,secondary:!!g,dense:m}),y=function(e){var t=e.classes,n=e.inset,o=e.primary,r=e.secondary;return xa({root:["root",n&&"inset",e.dense&&"dense",o&&r&&"multiline"],primary:["primary"],secondary:["secondary"]},Ib,t)}(b);return null==h||h.type===dc||l||(h=sn(dc,L({variant:m?"body2":"body1",className:y.primary,component:null!=d&&d.variant?void 0:"span",display:"block"},d,{children:h}))),null==g||g.type===dc||l||(g=sn(dc,L({variant:"body2",className:y.secondary,color:"text.secondary",display:"block"},f,{children:g}))),cn(Ab,L({className:Wo(y.root,a),ownerState:b,ref:t},v,{children:[h,g]}))}));function Eb(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Lb(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function Nb(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function Bb(e,t,n,o,r,a){for(var i=!1,l=r(e,t,!!t&&n);l;){if(l===e.firstChild){if(i)return!1;i=!0}var s=!o&&(l.disabled||"true"===l.getAttribute("aria-disabled"));if(l.hasAttribute("tabindex")&&Nb(l,a)&&!s)return l.focus(),!0;l=r(e,l,n)}return!1}var zb=r.forwardRef((function(e,t){var n=e.actions,o=e.autoFocus,a=void 0!==o&&o,i=e.autoFocusItem,l=void 0!==i&&i,s=e.children,c=e.className,u=e.disabledItemsFocusable,d=void 0!==u&&u,p=e.disableListWrap,f=void 0!==p&&p,v=e.onKeyDown,m=e.variant,h=void 0===m?"selectedMenu":m,g=B(e,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),b=r.useRef(null),y=r.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});gr((function(){a&&b.current.focus()}),[a]),r.useImperativeHandle(n,(function(){return{adjustStyleForScrollbar:function(e,t){var n=t.direction,o=!b.current.style.width;if(e.clientHeight=s.length&&(w=-1)):w===t&&(w+=1)>=s.length&&(w=-1)}));var S=r.Children.map(s,(function(e,t){if(t===w){var n={};return l&&(n.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===h&&(n.tabIndex=0),r.cloneElement(e,n)}return e}));return sn(ab,L({role:"menu",ref:x,className:c,onKeyDown:function(e){var t=b.current,n=e.key,o=jr(t).activeElement;if("ArrowDown"===n)e.preventDefault(),Bb(t,o,f,d,Eb);else if("ArrowUp"===n)e.preventDefault(),Bb(t,o,f,d,Lb);else if("Home"===n)e.preventDefault(),Bb(t,null,f,d,Eb);else if("End"===n)e.preventDefault(),Bb(t,null,f,d,Lb);else if(1===n.length){var r=y.current,a=n.toLowerCase(),i=performance.now();r.keys.length>0&&(i-r.lastTime>500?(r.keys=[],r.repeating=!0,r.previousKeyMatched=!0):r.repeating&&a!==r.keys[0]&&(r.repeating=!1)),r.lastTime=i,r.keys.push(a);var l=o&&!r.repeating&&Nb(o,r);r.previousKeyMatched&&(l||Bb(t,o,!1,d,Eb,r))?e.preventDefault():r.previousKeyMatched=!1}v&&v(e)},tabIndex:a?0:-1},g,{children:S}))})),Fb=zb;function Db(e){return Vo("MuiPopover",e)}var Wb=jo("MuiPopover",["root","paper"]);function Hb(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function Vb(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function jb(e){return[e.horizontal,e.vertical].map((function(e){return"number"==typeof e?"".concat(e,"px"):e})).join(" ")}function Ub(e){return"function"==typeof e?e():e}var Gb=Zi(qv,{name:"MuiPopover",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),_b=Zi(ts,{name:"MuiPopover",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),qb=r.forwardRef((function(e,t){var n,o,a,i=gl({props:e,name:"MuiPopover"}),l=i.action,s=i.anchorEl,c=i.anchorOrigin,u=void 0===c?{vertical:"top",horizontal:"left"}:c,d=i.anchorPosition,p=i.anchorReference,f=void 0===p?"anchorEl":p,v=i.children,m=i.className,h=i.container,g=i.elevation,b=void 0===g?8:g,y=i.marginThreshold,x=void 0===y?16:y,w=i.open,S=i.PaperProps,C=void 0===S?{}:S,k=i.slots,R=i.slotProps,M=i.transformOrigin,P=void 0===M?{vertical:"top",horizontal:"left"}:M,I=i.TransitionComponent,T=void 0===I?Fh:I,A=i.transitionDuration,O=void 0===A?"auto":A,E=i.TransitionProps,N=void 0===E?{}:E,z=N.onEntering,F=B(N,["onEntering"]),D=i.disableScrollLock,W=void 0!==D&&D,H=B(i,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"]),V=null!=(n=null==R?void 0:R.paper)?n:C,j=r.useRef(),U=Yr(j,V.ref),G=L({},i,{anchorOrigin:u,anchorReference:f,elevation:b,marginThreshold:x,externalPaperSlotProps:V,transformOrigin:P,TransitionComponent:T,transitionDuration:O,TransitionProps:F}),_=function(e){return xa({root:["root"],paper:["paper"]},Db,e.classes)}(G),q=r.useCallback((function(){if("anchorPosition"===f)return d;var e=Ub(s),t=(e&&1===e.nodeType?e:jr(j.current).body).getBoundingClientRect();return{top:t.top+Hb(t,u.vertical),left:t.left+Vb(t,u.horizontal)}}),[s,u.horizontal,u.vertical,d,f]),K=r.useCallback((function(e){return{vertical:Hb(e,P.vertical),horizontal:Vb(e,P.horizontal)}}),[P.horizontal,P.vertical]),$=r.useCallback((function(e){var t={width:e.offsetWidth,height:e.offsetHeight},n=K(t);if("none"===f)return{top:null,left:null,transformOrigin:jb(n)};var o=q(),r=o.top-n.vertical,a=o.left-n.horizontal,i=r+t.height,l=a+t.width,c=Ur(Ub(s)),u=c.innerHeight-x,d=c.innerWidth-x;if(null!==x&&ru){var v=i-u;r-=v,n.vertical+=v}if(null!==x&&ad){var h=l-d;a-=h,n.horizontal+=h}return{top:"".concat(Math.round(r),"px"),left:"".concat(Math.round(a),"px"),transformOrigin:jb(n)}}),[s,f,q,K,x]),X=r.useState(w),Y=X[0],Z=X[1],J=r.useCallback((function(){var e=j.current;if(e){var t=$(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,Z(!0)}}),[$]);r.useEffect((function(){return W&&window.addEventListener("scroll",J),function(){return window.removeEventListener("scroll",J)}}),[s,W,J]);r.useEffect((function(){w&&J()})),r.useImperativeHandle(l,(function(){return w?{updatePosition:function(){J()}}:null}),[w,J]),r.useEffect((function(){if(w){var e=Hr((function(){J()})),t=Ur(s);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}}),[s,w,J]);var Q=O;"auto"!==O||T.muiSupportAuto||(Q=void 0);var ee=h||(s?jr(Ub(s)).body:void 0),te=null!=(o=null==k?void 0:k.root)?o:Gb,ne=null!=(a=null==k?void 0:k.paper)?a:_b,oe=Pa({elementType:ne,externalSlotProps:L({},V,{style:Y?V.style:L({},V.style,{opacity:0})}),additionalProps:{elevation:b,ref:U},ownerState:G,className:Wo(_.paper,null==V?void 0:V.className)}),re=Pa({elementType:te,externalSlotProps:(null==R?void 0:R.root)||{},externalForwardedProps:H,additionalProps:{ref:t,slotProps:{backdrop:{invisible:!0}},container:ee,open:w},ownerState:G,className:Wo(_.root,m)}),ae=re.slotProps,ie=B(re,["slotProps"]);return sn(te,L({},ie,!wa(te)&&{slotProps:ae,disableScrollLock:W},{children:sn(T,L({appear:!0,in:w,onEntering:function(e,t){z&&z(e,t),J()},onExited:function(){Z(!1)},timeout:Q},F,{children:sn(ne,L({},oe,{children:v}))}))}))})),Kb=qb;function $b(e){return Vo("MuiMenu",e)}var Xb=jo("MuiMenu",["root","paper","list"]),Yb={vertical:"top",horizontal:"right"},Zb={vertical:"top",horizontal:"left"},Jb=Zi(Kb,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiMenu",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),Qb=Zi(_b,{name:"MuiMenu",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),ey=Zi(Fb,{name:"MuiMenu",slot:"List",overridesResolver:function(e,t){return t.list}})({outline:0}),ty=r.forwardRef((function(e,t){var n,o,a=gl({props:e,name:"MuiMenu"}),i=a.autoFocus,l=void 0===i||i,s=a.children,c=a.className,u=a.disableAutoFocusItem,d=void 0!==u&&u,p=a.MenuListProps,f=void 0===p?{}:p,v=a.onClose,m=a.open,h=a.PaperProps,g=void 0===h?{}:h,b=a.PopoverClasses,y=a.transitionDuration,x=void 0===y?"auto":y,w=a.TransitionProps,S=void 0===w?{}:w,C=S.onEntering,k=B(S,["onEntering"]),R=a.variant,M=void 0===R?"selectedMenu":R,P=a.slots,I=void 0===P?{}:P,T=a.slotProps,A=void 0===T?{}:T,O=B(a,["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"]),E=Na(),N=L({},a,{autoFocus:l,disableAutoFocusItem:d,MenuListProps:f,onEntering:C,PaperProps:g,transitionDuration:x,TransitionProps:k,variant:M}),z=function(e){return xa({root:["root"],paper:["paper"],list:["list"]},$b,e.classes)}(N),F=l&&!d&&m,D=r.useRef(null),W=-1;r.Children.map(s,(function(e,t){r.isValidElement(e)&&(e.props.disabled||("selectedMenu"===M&&e.props.selected||-1===W)&&(W=t))}));var H=null!=(n=I.paper)?n:Qb,V=null!=(o=A.paper)?o:g,j=Pa({elementType:I.root,externalSlotProps:A.root,ownerState:N,className:[z.root,c]}),U=Pa({elementType:H,externalSlotProps:V,ownerState:N,className:z.paper});return sn(Jb,L({onClose:v,anchorOrigin:{vertical:"bottom",horizontal:E?"right":"left"},transformOrigin:E?Yb:Zb,slots:{paper:H,root:I.root},slotProps:{root:j,paper:U},open:m,ref:t,transitionDuration:x,TransitionProps:L({onEntering:function(e,t){D.current&&D.current.adjustStyleForScrollbar(e,{direction:E?"rtl":"ltr"}),C&&C(e,t)}},k),ownerState:N},O,{classes:b,children:sn(ey,L({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),v&&v(e,"tabKeyDown"))},actions:D,autoFocus:l&&(-1===W||d),autoFocusItem:F,variant:M},f,{className:Wo(z.list,f.className),children:s}))}))})),ny=ty;function oy(e){return Vo("MuiMenuItem",e)}var ry=jo("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),ay=Zi(Ls,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiMenuItem",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]}})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!n.disableGutters&&{paddingLeft:16,paddingRight:16},n.divider&&{borderBottom:"1px solid ".concat((t.vars||t).palette.divider),backgroundClip:"padding-box"},E(E(E(E(E(E(E(E(E({"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(ry.selected),E({backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):Or(t.palette.primary.main,t.palette.action.selectedOpacity)},"&.".concat(ry.focusVisible),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):Or(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)})),"&.".concat(ry.selected,":hover"),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):Or(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):Or(t.palette.primary.main,t.palette.action.selectedOpacity)}}),"&.".concat(ry.focusVisible),{backgroundColor:(t.vars||t).palette.action.focus}),"&.".concat(ry.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"& + .".concat(ym.root),{marginTop:t.spacing(1),marginBottom:t.spacing(1)}),"& + .".concat(ym.inset),{marginLeft:52}),"& .".concat(Tb.root),{marginTop:0,marginBottom:0}),"& .".concat(Tb.inset),{paddingLeft:36}),"& .".concat(Rb.root),{minWidth:36}),!n.dense&&E({},t.breakpoints.up("sm"),{minHeight:"auto"}),n.dense&&L({minHeight:32,paddingTop:4,paddingBottom:4},t.typography.body2,E({},"& .".concat(Rb.root," svg"),{fontSize:"1.25rem"})))})),iy=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiMenuItem"}),o=n.autoFocus,a=void 0!==o&&o,i=n.component,l=void 0===i?"li":i,s=n.dense,c=void 0!==s&&s,u=n.divider,d=void 0!==u&&u,p=n.disableGutters,f=void 0!==p&&p,v=n.focusVisibleClassName,m=n.role,h=void 0===m?"menuitem":m,g=n.tabIndex,b=n.className,y=B(n,["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"]),x=r.useContext(tb),w=r.useMemo((function(){return{dense:c||x.dense||!1,disableGutters:f}}),[x.dense,c,f]),S=r.useRef(null);gr((function(){a&&S.current&&S.current.focus()}),[a]);var C,k=L({},n,{dense:w.dense,divider:d,disableGutters:f}),R=function(e){var t=e.disabled,n=e.dense,o=e.divider,r=e.disableGutters,a=e.selected,i=e.classes;return L({},i,xa({root:["root",n&&"dense",t&&"disabled",!r&&"gutters",o&&"divider",a&&"selected"]},oy,i))}(n),M=Yr(S,t);return n.disabled||(C=void 0!==g?g:-1),sn(tb.Provider,{value:w,children:sn(ay,L({ref:M,role:h,tabIndex:C,component:l,focusVisibleClassName:Wo(R.focusVisible,v),className:Wo(R.root,b)},y,{ownerState:k,classes:R}))})}));function ly(e){return Vo("MuiMobileStepper",e)}var sy=jo("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]),cy=Zi(ts,{name:"MuiMobileStepper",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat(En(n.position))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8},"bottom"===n.position&&{position:"fixed",bottom:0,left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper},"top"===n.position&&{position:"fixed",top:0,left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper})})),uy=Zi("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:function(e,t){return t.dots}})((function(e){return L({},"dots"===e.ownerState.variant&&{display:"flex",flexDirection:"row"})})),dy=Zi("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:function(e){return Xi(e)&&"dotActive"!==e},overridesResolver:function(e,t){var n=e.dotActive;return[t.dot,n&&t.dotActive]}})((function(e){var t=e.theme,n=e.ownerState,o=e.dotActive;return L({},"dots"===n.variant&&L({transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"},o&&{backgroundColor:(t.vars||t).palette.primary.main}))})),py=Zi(Kg,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:function(e,t){return t.progress}})((function(e){return L({},"progress"===e.ownerState.variant&&{width:"50%"})})),fy=r.forwardRef((function(e,t){var n,o=gl({props:e,name:"MuiMobileStepper"}),a=o.activeStep,i=void 0===a?0:a,l=o.backButton,s=o.className,c=o.LinearProgressProps,u=o.nextButton,d=o.position,p=void 0===d?"bottom":d,f=o.steps,v=o.variant,m=void 0===v?"dots":v,h=B(o,["activeStep","backButton","className","LinearProgressProps","nextButton","position","steps","variant"]),g=L({},o,{activeStep:i,position:p,variant:m});"progress"===m&&(n=1===f?100:Math.ceil(i/(f-1)*100));var b=function(e){var t=e.classes,n=e.position;return xa({root:["root","position".concat(En(n))],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]},ly,t)}(g);return cn(cy,L({square:!0,elevation:0,className:Wo(b.root,s),ref:t,ownerState:g},h,{children:[l,"text"===m&&cn(r.Fragment,{children:[i+1," / ",f]}),"dots"===m&&sn(uy,{ownerState:g,className:b.dots,children:kn(new Array(f)).map((function(e,t){return sn(dy,{className:Wo(b.dot,t===i&&b.dotActive),ownerState:g,dotActive:t===i},t)}))}),"progress"===m&&sn(py,L({ownerState:g,className:b.progress,variant:"determinate",value:n},c)),u]}))})),vy=fy;function my(e){return Vo("MuiNativeSelect",e)}var hy=jo("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),gy=function(e){var t=e.ownerState,n=e.theme;return L(E(E(E(E({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":L({},n.vars?{backgroundColor:"rgba(".concat(n.vars.palette.common.onBackgroundChannel," / 0.05)")}:{backgroundColor:"light"===n.palette.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"}},"&.".concat(hy.disabled),{cursor:"default"}),"&[multiple]",{height:"auto"}),"&:not([multiple]) option, &:not([multiple]) optgroup",{backgroundColor:(n.vars||n).palette.background.paper}),"&&&",{paddingRight:24,minWidth:16}),"filled"===t.variant&&{"&&&":{paddingRight:32}},"outlined"===t.variant&&{borderRadius:(n.vars||n).shape.borderRadius,"&:focus":{borderRadius:(n.vars||n).shape.borderRadius},"&&&":{paddingRight:32}})},by=Zi("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:Yi,overridesResolver:function(e,t){var n=e.ownerState;return[t.select,t[n.variant],n.error&&t.error,E({},"&.".concat(hy.multiple),t.multiple)]}})(gy),yy=function(e){var t=e.ownerState,n=e.theme;return L(E({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(n.vars||n).palette.action.active},"&.".concat(hy.disabled),{color:(n.vars||n).palette.action.disabled}),t.open&&{transform:"rotate(180deg)"},"filled"===t.variant&&{right:7},"outlined"===t.variant&&{right:7})},xy=Zi("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat(En(n.variant))],n.open&&t.iconOpen]}})(yy),wy=r.forwardRef((function(e,t){var n=e.className,o=e.disabled,a=e.error,i=e.IconComponent,l=e.inputRef,s=e.variant,c=void 0===s?"standard":s,u=B(e,["className","disabled","error","IconComponent","inputRef","variant"]),d=L({},e,{disabled:o,variant:c,error:a}),p=function(e){var t=e.classes,n=e.variant,o=e.disabled,r=e.multiple,a=e.open;return xa({select:["select",n,o&&"disabled",r&&"multiple",e.error&&"error"],icon:["icon","icon".concat(En(n)),a&&"iconOpen",o&&"disabled"]},my,t)}(d);return cn(r.Fragment,{children:[sn(by,L({ownerState:d,className:Wo(p.select,n),disabled:o,ref:l||t},u)),e.multiple?null:sn(xy,{as:i,ownerState:d,className:p.icon})]})})),Sy=sn(xg,{}),Cy=r.forwardRef((function(e,t){var n=gl({name:"MuiNativeSelect",props:e}),o=n.className,a=n.children,i=n.classes,l=void 0===i?{}:i,s=n.IconComponent,c=void 0===s?Fd:s,u=n.input,d=void 0===u?Sy:u,p=n.inputProps;n.variant;var f=B(n,["className","children","classes","IconComponent","input","inputProps","variant"]),v=hd({props:n,muiFormControl:bd(),states:["variant"]}),m=function(e){return xa({root:["root"]},my,e.classes)}(L({},n,{classes:l}));l.root;var h=B(l,["root"]);return sn(r.Fragment,{children:r.cloneElement(d,L({inputComponent:wy,inputProps:L({children:a,classes:h,IconComponent:c,variant:v.variant,type:void 0},p,d?d.props.inputProps:{}),ref:t},f,{className:Wo(m.root,d.props.className,o)}))})}));Cy.muiName="Select";var ky,Ry=Cy;function My(e){var t=e.children,n=e.defer,o=void 0!==n&&n,a=e.fallback,i=void 0===a?null:a,l=r.useState(!1),s=l[0],c=l[1];return gr((function(){o||c(!0)}),[o]),r.useEffect((function(){o&&c(!0)}),[o]),sn(r.Fragment,{children:s?t:i})}var Py=Zi("fieldset",{shouldForwardProp:Yi})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),Iy=Zi("legend",{shouldForwardProp:Yi})((function(e){var t=e.ownerState,n=e.theme;return L({float:"unset",width:"auto",overflow:"hidden"},!t.withLabel&&{padding:0,lineHeight:"11px",transition:n.transitions.create("width",{duration:150,easing:n.transitions.easing.easeOut})},t.withLabel&&L({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:n.transitions.create("max-width",{duration:50,easing:n.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},t.notched&&{maxWidth:"100%",transition:n.transitions.create("max-width",{duration:100,easing:n.transitions.easing.easeOut,delay:50})}))}));var Ty=Zi(Md,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiOutlinedInput",slot:"Root",overridesResolver:kd})((function(e){var t=e.theme,n=e.ownerState,o="light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return L(E(E(E(E(E({position:"relative",borderRadius:(t.vars||t).shape.borderRadius},"&:hover .".concat(Nd.notchedOutline),{borderColor:(t.vars||t).palette.text.primary}),"@media (hover: none)",E({},"&:hover .".concat(Nd.notchedOutline),{borderColor:t.vars?"rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):o})),"&.".concat(Nd.focused," .").concat(Nd.notchedOutline),{borderColor:(t.vars||t).palette[n.color].main,borderWidth:2}),"&.".concat(Nd.error," .").concat(Nd.notchedOutline),{borderColor:(t.vars||t).palette.error.main}),"&.".concat(Nd.disabled," .").concat(Nd.notchedOutline),{borderColor:(t.vars||t).palette.action.disabled}),n.startAdornment&&{paddingLeft:14},n.endAdornment&&{paddingRight:14},n.multiline&&L({padding:"16.5px 14px"},"small"===n.size&&{padding:"8.5px 14px"}))})),Ay=Zi((function(e){e.children,e.classes;var t=e.className,n=e.label,o=e.notched,r=B(e,["children","classes","className","label","notched"]),a=null!=n&&""!==n,i=L({},e,{notched:o,withLabel:a});return sn(Py,L({"aria-hidden":!0,className:t,ownerState:i},r,{children:sn(Iy,{ownerState:i,children:a?sn("span",{children:n}):ky||(ky=sn("span",{className:"notranslate",children:"​"}))})}))}),{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:function(e,t){return t.notchedOutline}})((function(e){var t=e.theme,n="light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:t.vars?"rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):n}})),Oy=Zi(Pd,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:Rd})((function(e){var t=e.theme,n=e.ownerState;return L({padding:"16.5px 14px"},!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderRadius:"inherit"}},t.vars&&E({"&:-webkit-autofill":{borderRadius:"inherit"}},t.getColorSchemeSelector("dark"),{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}),"small"===n.size&&{padding:"8.5px 14px"},n.multiline&&{padding:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0})})),Ey=r.forwardRef((function(e,t){var n,o,a,i,l,s=gl({props:e,name:"MuiOutlinedInput"}),c=s.components,u=void 0===c?{}:c,d=s.fullWidth,p=void 0!==d&&d,f=s.inputComponent,v=void 0===f?"input":f,m=s.label,h=s.multiline,g=void 0!==h&&h,b=s.notched,y=s.slots,x=void 0===y?{}:y,w=s.type,S=void 0===w?"text":w,C=B(s,["components","fullWidth","inputComponent","label","multiline","notched","slots","type"]),k=function(e){var t=e.classes;return L({},t,xa({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},Ld,t))}(s),R=bd(),M=hd({props:s,muiFormControl:R,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),P=L({},s,{color:M.color||"primary",disabled:M.disabled,error:M.error,focused:M.focused,formControl:R,fullWidth:p,hiddenLabel:M.hiddenLabel,multiline:g,size:M.size,type:S}),I=null!=(n=null!=(o=x.root)?o:u.Root)?n:Ty,T=null!=(a=null!=(i=x.input)?i:u.Input)?a:Oy;return sn(Ad,L({slots:{root:I,input:T},renderSuffix:function(e){return sn(Ay,{ownerState:P,className:k.notchedOutline,label:null!=m&&""!==m&&M.required?l||(l=cn(r.Fragment,{children:[m," ","*"]})):m,notched:void 0!==b?b:Boolean(e.startAdornment||e.filled||e.focused)})},fullWidth:p,inputComponent:v,multiline:g,ref:t,type:S},C,{classes:L({},k,{notchedOutline:null})}))}));Ey.muiName="Input";var Ly=Ey;function Ny(e){return Vo("MuiPagination",e)}var By=jo("MuiPagination",["root","ul","outlined","text"]);function zy(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.boundaryCount,n=void 0===t?1:t,o=e.componentName,r=void 0===o?"usePagination":o,a=e.count,i=void 0===a?1:a,l=e.defaultPage,s=void 0===l?1:l,c=e.disabled,u=void 0!==c&&c,d=e.hideNextButton,p=void 0!==d&&d,f=e.hidePrevButton,v=void 0!==f&&f,m=e.onChange,h=e.page,g=e.showFirstButton,b=void 0!==g&&g,y=e.showLastButton,x=void 0!==y&&y,w=e.siblingCount,S=void 0===w?1:w,C=B(e,["boundaryCount","componentName","count","defaultPage","disabled","hideNextButton","hidePrevButton","onChange","page","showFirstButton","showLastButton","siblingCount"]),k=Sn($r({controlled:h,default:s,name:r,state:"page"}),2),R=k[0],M=k[1],P=function(e,t){h||M(t),m&&m(e,t)},I=function(e,t){var n=t-e+1;return Array.from({length:n},(function(t,n){return e+n}))},T=I(1,Math.min(n,i)),A=I(Math.max(i-n+1,n+1),i),O=Math.max(Math.min(R-S,i-n-2*S-1),n+2),E=Math.min(Math.max(R+S,n+2*S+2),A.length>0?A[0]-2:i-1),N=[].concat(kn(b?["first"]:[]),kn(v?[]:["previous"]),kn(T),kn(O>n+2?["start-ellipsis"]:n+1n?[i-n]:[]),kn(A),kn(p?[]:["next"]),kn(x?["last"]:[])),z=function(e){switch(e){case"first":return 1;case"previous":return R-1;case"next":return R+1;case"last":return i;default:return null}};return L({items:N.map((function(e){return"number"==typeof e?{onClick:function(t){P(t,e)},type:"page",page:e,selected:e===R,disabled:u,"aria-current":e===R?"true":void 0}:{onClick:function(t){P(t,z(e))},type:e,page:z(e),selected:!1,disabled:u||-1===e.indexOf("ellipsis")&&("next"===e||"last"===e?R>=i:R<=1)}}))},C)}function Fy(e){return Vo("MuiPaginationItem",e)}var Dy=jo("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"]),Wy=Cl(sn("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),Hy=Cl(sn("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),Vy=Cl(sn("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),jy=Cl(sn("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Uy=function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["size".concat(En(n.size))],"text"===n.variant&&t["text".concat(En(n.color))],"outlined"===n.variant&&t["outlined".concat(En(n.color))],"rounded"===n.shape&&t.rounded,"page"===n.type&&t.page,("start-ellipsis"===n.type||"end-ellipsis"===n.type)&&t.ellipsis,("previous"===n.type||"next"===n.type)&&t.previousNext,("first"===n.type||"last"===n.type)&&t.firstLast]},Gy=Zi("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:Uy})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.body2,E({borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto"},"&.".concat(Dy.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"small"===n.size&&{minWidth:26,borderRadius:13,margin:"0 1px",padding:"0 4px"},"large"===n.size&&{minWidth:40,borderRadius:20,padding:"0 10px",fontSize:t.typography.pxToRem(15)})})),_y=Zi(Ls,{name:"MuiPaginationItem",slot:"Root",overridesResolver:Uy})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.body2,E(E(E(E(E({borderRadius:16,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary},"&.".concat(Dy.focusVisible),{backgroundColor:(t.vars||t).palette.action.focus}),"&.".concat(Dy.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"transition",t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short})),"&:hover",{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}),"&.".concat(Dy.selected),E(E({backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.selectedChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):Or(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}}},"&.".concat(Dy.focusVisible),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.selectedChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):Or(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}),"&.".concat(Dy.disabled),{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected})),"small"===n.size&&{minWidth:26,height:26,borderRadius:13,margin:"0 1px",padding:"0 4px"},"large"===n.size&&{minWidth:40,height:40,borderRadius:20,padding:"0 10px",fontSize:t.typography.pxToRem(15)},"rounded"===n.shape&&{borderRadius:(t.vars||t).shape.borderRadius})}),(function(e){var t=e.theme,n=e.ownerState;return L({},"text"===n.variant&&E({},"&.".concat(Dy.selected),L({},"standard"!==n.color&&E({color:(t.vars||t).palette[n.color].contrastText,backgroundColor:(t.vars||t).palette[n.color].main,"&:hover":{backgroundColor:(t.vars||t).palette[n.color].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[n.color].main}}},"&.".concat(Dy.focusVisible),{backgroundColor:(t.vars||t).palette[n.color].dark}),E({},"&.".concat(Dy.disabled),{color:(t.vars||t).palette.action.disabled}))),"outlined"===n.variant&&E({border:t.vars?"1px solid rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):"1px solid ".concat("light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)")},"&.".concat(Dy.selected),L({},"standard"!==n.color&&E({color:(t.vars||t).palette[n.color].main,border:"1px solid ".concat(t.vars?"rgba(".concat(t.vars.palette[n.color].mainChannel," / 0.5)"):Or(t.palette[n.color].main,.5)),backgroundColor:t.vars?"rgba(".concat(t.vars.palette[n.color].mainChannel," / ").concat(t.vars.palette.action.activatedOpacity,")"):Or(t.palette[n.color].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette[n.color].mainChannel," / calc(").concat(t.vars.palette.action.activatedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):Or(t.palette[n.color].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(Dy.focusVisible),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette[n.color].mainChannel," / calc(").concat(t.vars.palette.action.activatedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):Or(t.palette[n.color].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}),E({},"&.".concat(Dy.disabled),{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}))))})),qy=Zi("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:function(e,t){return t.icon}})((function(e){var t=e.theme,n=e.ownerState;return L({fontSize:t.typography.pxToRem(20),margin:"0 -8px"},"small"===n.size&&{fontSize:t.typography.pxToRem(18)},"large"===n.size&&{fontSize:t.typography.pxToRem(22)})})),Ky=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiPaginationItem"}),o=n.className,r=n.color,a=void 0===r?"standard":r,i=n.component,l=n.components,s=void 0===l?{}:l,c=n.disabled,u=void 0!==c&&c,d=n.page,p=n.selected,f=void 0!==p&&p,v=n.shape,m=void 0===v?"circular":v,h=n.size,g=void 0===h?"medium":h,b=n.slots,y=void 0===b?{}:b,x=n.type,w=void 0===x?"page":x,S=n.variant,C=void 0===S?"text":S,k=B(n,["className","color","component","components","disabled","page","selected","shape","size","slots","type","variant"]),R=L({},n,{color:a,disabled:u,selected:f,shape:m,size:g,type:w,variant:C}),M=Na(),P=function(e){var t=e.classes,n=e.color,o=e.disabled,r=e.selected,a=e.size,i=e.shape,l=e.type,s=e.variant;return xa({root:["root","size".concat(En(a)),s,i,"standard"!==n&&"color".concat(En(n)),"standard"!==n&&"".concat(s).concat(En(n)),o&&"disabled",r&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[l]],icon:["icon"]},Fy,t)}(R),I=(M?{previous:y.next||s.next||jy,next:y.previous||s.previous||Vy,last:y.first||s.first||Wy,first:y.last||s.last||Hy}:{previous:y.previous||s.previous||Vy,next:y.next||s.next||jy,first:y.first||s.first||Wy,last:y.last||s.last||Hy})[w];return"start-ellipsis"===w||"end-ellipsis"===w?sn(Gy,{ref:t,ownerState:R,className:Wo(P.root,o),children:"…"}):cn(_y,L({ref:t,ownerState:R,component:i,disabled:u,className:Wo(P.root,o)},k,{children:["page"===w&&d,I?sn(qy,{as:I,ownerState:R,className:P.icon}):null]}))})),$y=Ky,Xy=Zi("nav",{name:"MuiPagination",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant]]}})({}),Yy=Zi("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:function(e,t){return t.ul}})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function Zy(e,t,n){return"page"===e?"".concat(n?"":"Go to ","page ").concat(t):"Go to ".concat(e," page")}var Jy=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiPagination"}),o=n.boundaryCount,r=void 0===o?1:o,a=n.className,i=n.color,l=void 0===i?"standard":i,s=n.count,c=void 0===s?1:s,u=n.defaultPage,d=void 0===u?1:u,p=n.disabled,f=void 0!==p&&p,v=n.getItemAriaLabel,m=void 0===v?Zy:v,h=n.hideNextButton,g=void 0!==h&&h,b=n.hidePrevButton,y=void 0!==b&&b;n.onChange,n.page;var x=n.renderItem,w=void 0===x?function(e){return sn($y,L({},e))}:x,S=n.shape,C=void 0===S?"circular":S,k=n.showFirstButton,R=void 0!==k&&k,M=n.showLastButton,P=void 0!==M&&M,I=n.siblingCount,T=void 0===I?1:I,A=n.size,O=void 0===A?"medium":A,E=n.variant,N=void 0===E?"text":E,z=B(n,["boundaryCount","className","color","count","defaultPage","disabled","getItemAriaLabel","hideNextButton","hidePrevButton","onChange","page","renderItem","shape","showFirstButton","showLastButton","siblingCount","size","variant"]),F=zy(L({},n,{componentName:"Pagination"})).items,D=L({},n,{boundaryCount:r,color:l,count:c,defaultPage:d,disabled:f,getItemAriaLabel:m,hideNextButton:g,hidePrevButton:y,renderItem:w,shape:C,showFirstButton:R,showLastButton:P,siblingCount:T,size:O,variant:N}),W=function(e){var t=e.classes;return xa({root:["root",e.variant],ul:["ul"]},Ny,t)}(D);return sn(Xy,L({"aria-label":"pagination navigation",className:Wo(W.root,a),ownerState:D,ref:t},z,{children:sn(Yy,{className:W.ul,ownerState:D,children:F.map((function(e,t){return sn("li",{children:w(L({},e,{color:l,"aria-label":m(e.type,e.page,e.selected),shape:C,size:O,variant:N}))},t)}))})}))})),Qy=Jy,ex=Cl(sn("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),tx=Cl(sn("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),nx=Zi("span",{shouldForwardProp:Yi})({position:"relative",display:"flex"}),ox=Zi(ex)({transform:"scale(1)"}),rx=Zi(tx)((function(e){var t=e.theme,n=e.ownerState;return L({left:0,position:"absolute",transform:"scale(0)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeIn,duration:t.transitions.duration.shortest})},n.checked&&{transform:"scale(1)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.shortest})})}));function ax(e){var t=e.checked,n=void 0!==t&&t,o=e.classes,r=void 0===o?{}:o,a=e.fontSize,i=L({},e,{checked:n});return cn(nx,{className:r.root,ownerState:i,children:[sn(ox,{fontSize:a,className:r.background,ownerState:i}),sn(rx,{fontSize:a,className:r.dot,ownerState:i})]})}var ix=r.createContext(void 0);function lx(){return r.useContext(ix)}function sx(e){return Vo("MuiRadio",e)}var cx=jo("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),ux=Zi(Xf,{shouldForwardProp:function(e){return Yi(e)||"classes"===e},name:"MuiRadio",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"medium"!==n.size&&t["size".concat(En(n.size))],t["color".concat(En(n.color))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({color:(t.vars||t).palette.text.secondary},!n.disableRipple&&{"&:hover":{backgroundColor:t.vars?"rgba(".concat("default"===n.color?t.vars.palette.action.activeChannel:t.vars.palette[n.color].mainChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):Or("default"===n.color?t.palette.action.active:t.palette[n.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==n.color&&E({},"&.".concat(cx.checked),{color:(t.vars||t).palette[n.color].main}),E({},"&.".concat(cx.disabled),{color:(t.vars||t).palette.action.disabled}))}));var dx=sn(ax,{checked:!0}),px=sn(ax,{}),fx=r.forwardRef((function(e,t){var n,o,a=gl({props:e,name:"MuiRadio"}),i=a.checked,l=a.checkedIcon,s=void 0===l?dx:l,c=a.color,u=void 0===c?"primary":c,d=a.icon,p=void 0===d?px:d,f=a.name,v=a.onChange,m=a.size,h=void 0===m?"medium":m,g=a.className,b=B(a,["checked","checkedIcon","color","icon","name","onChange","size","className"]),y=L({},a,{color:u,size:h}),x=function(e){var t=e.classes,n=e.color,o=e.size;return L({},t,xa({root:["root","color".concat(En(n)),"medium"!==o&&"size".concat(En(o))]},sx,t))}(y),w=lx(),S=i,C=Wr(v,w&&w.onChange),k=f;return w&&(void 0===S&&(S=function(e,t){return"object"===A(t)&&null!==t?e===t:String(e)===String(t)}(w.value,a.value)),void 0===k&&(k=w.name)),sn(ux,L({type:"radio",icon:r.cloneElement(p,{fontSize:null!=(n=px.props.fontSize)?n:h}),checkedIcon:r.cloneElement(s,{fontSize:null!=(o=dx.props.fontSize)?o:h}),ownerState:y,classes:x,name:k,checked:S,onChange:C,ref:t,className:Wo(x.root,g)},b))})),vx=fx;function mx(e){return Vo("MuiRadioGroup",e)}var hx=jo("MuiRadioGroup",["root","row","error"]),gx=r.forwardRef((function(e,t){var n=e.actions,o=e.children,a=e.className,i=e.defaultValue,l=e.name,s=e.onChange,c=e.value,u=B(e,["actions","children","className","defaultValue","name","onChange","value"]),d=r.useRef(null),p=function(e){var t=e.classes;return xa({root:["root",e.row&&"row",e.error&&"error"]},mx,t)}(e),f=Sn($r({controlled:c,default:i,name:"RadioGroup"}),2),v=f[0],m=f[1];r.useImperativeHandle(n,(function(){return{focus:function(){var e=d.current.querySelector("input:not(:disabled):checked");e||(e=d.current.querySelector("input:not(:disabled)")),e&&e.focus()}}}),[]);var h=Yr(t,d),g=Kr(l),b=r.useMemo((function(){return{name:g,onChange:function(e){m(e.target.value),s&&s(e,e.target.value)},value:v}}),[g,s,m,v]);return sn(ix.Provider,{value:b,children:sn(sh,L({role:"radiogroup",ref:h,className:Wo(p.root,a)},u,{children:o}))})})),bx=Cl(sn("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),yx=Cl(sn("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function xx(e){return Vo("MuiRating",e)}var wx=jo("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function Sx(e,t){if(null==e)return e;var n,o=Math.round(e/t)*t;return Number(o.toFixed((n=t.toString().split(".")[1])?n.length:0))}var Cx=Zi("span",{name:"MuiRating",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(wx.visuallyHidden),t.visuallyHidden),t.root,t["size".concat(En(n.size))],n.readOnly&&t.readOnly]}})((function(e){var t=e.theme,n=e.ownerState;return L(E(E(E({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent"},"&.".concat(wx.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"}),"&.".concat(wx.focusVisible," .").concat(wx.iconActive),{outline:"1px solid #999"}),"& .".concat(wx.visuallyHidden),ya),"small"===n.size&&{fontSize:t.typography.pxToRem(18)},"large"===n.size&&{fontSize:t.typography.pxToRem(30)},n.readOnly&&{pointerEvents:"none"})})),kx=Zi("label",{name:"MuiRating",slot:"Label",overridesResolver:function(e,t){var n=e.ownerState;return[t.label,n.emptyValueFocused&&t.labelEmptyValueActive]}})((function(e){return L({cursor:"inherit"},e.ownerState.emptyValueFocused&&{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"})})),Rx=Zi("span",{name:"MuiRating",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.iconEmpty&&t.iconEmpty,n.iconFilled&&t.iconFilled,n.iconHover&&t.iconHover,n.iconFocus&&t.iconFocus,n.iconActive&&t.iconActive]}})((function(e){var t=e.theme,n=e.ownerState;return L({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none"},n.iconActive&&{transform:"scale(1.2)"},n.iconEmpty&&{color:(t.vars||t).palette.action.disabled})})),Mx=Zi("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:function(e){return Xi(e)&&"iconActive"!==e},overridesResolver:function(e,t){var n=e.iconActive;return[t.decimal,n&&t.iconActive]}})((function(e){return L({position:"relative"},e.iconActive&&{transform:"scale(1.2)"})}));function Px(e){e.value;var t=B(e,["value"]);return sn("span",L({},t))}function Ix(e){var t=e.classes,n=e.disabled,o=e.emptyIcon,a=e.focus,i=e.getLabelText,l=e.highlightSelectedOnly,s=e.hover,c=e.icon,u=e.IconContainerComponent,d=e.isActive,p=e.itemValue,f=e.labelProps,v=e.name,m=e.onBlur,h=e.onChange,g=e.onClick,b=e.onFocus,y=e.readOnly,x=e.ownerState,w=e.ratingValue,S=l?p===w:p<=w,C=p<=s,k=p<=a,R=p===e.ratingValueRounded,M=Kr(),P=sn(Rx,{as:u,value:p,className:Wo(t.icon,S?t.iconFilled:t.iconEmpty,C&&t.iconHover,k&&t.iconFocus,d&&t.iconActive),ownerState:L({},x,{iconEmpty:!S,iconFilled:S,iconHover:C,iconFocus:k,iconActive:d}),children:o&&!S?o:c});return y?sn("span",L({},f,{children:P})):cn(r.Fragment,{children:[cn(kx,L({ownerState:L({},x,{emptyValueFocused:void 0}),htmlFor:M},f,{children:[P,sn("span",{className:t.visuallyHidden,children:i(p)})]})),sn("input",{className:t.visuallyHidden,onFocus:b,onBlur:m,onChange:h,onClick:g,disabled:n,value:p,id:M,type:"radio",name:v,checked:R})]})}var Tx=sn(bx,{fontSize:"inherit"}),Ax=sn(yx,{fontSize:"inherit"});function Ox(e){return"".concat(e," Star").concat(1!==e?"s":"")}var Ex=r.forwardRef((function(e,t){var n=gl({name:"MuiRating",props:e}),o=n.className,a=n.defaultValue,i=void 0===a?null:a,l=n.disabled,s=void 0!==l&&l,c=n.emptyIcon,u=void 0===c?Ax:c,d=n.emptyLabelText,p=void 0===d?"Empty":d,f=n.getLabelText,v=void 0===f?Ox:f,m=n.highlightSelectedOnly,h=void 0!==m&&m,g=n.icon,b=void 0===g?Tx:g,y=n.IconContainerComponent,x=void 0===y?Px:y,w=n.max,S=void 0===w?5:w,C=n.name,k=n.onChange,R=n.onChangeActive,M=n.onMouseLeave,P=n.onMouseMove,I=n.precision,T=void 0===I?1:I,A=n.readOnly,O=void 0!==A&&A,E=n.size,N=void 0===E?"medium":E,z=n.value,F=B(n,["className","defaultValue","disabled","emptyIcon","emptyLabelText","getLabelText","highlightSelectedOnly","icon","IconContainerComponent","max","name","onChange","onChangeActive","onMouseLeave","onMouseMove","precision","readOnly","size","value"]),D=Kr(C),W=Sn($r({controlled:z,default:i,name:"Rating"}),2),H=W[0],V=W[1],j=Sx(H,T),U=Na(),G=r.useState({hover:-1,focus:-1}),_=G[0],q=_.hover,K=_.focus,$=G[1],X=j;-1!==q&&(X=q),-1!==K&&(X=K);var Y=fa(),Z=Y.isFocusVisibleRef,J=Y.onBlur,Q=Y.onFocus,ee=Y.ref,te=r.useState(!1),ne=te[0],oe=te[1],re=r.useRef(),ae=Yr(ee,re,t),ie=function(e){var t=""===e.target.value?null:parseFloat(e.target.value);-1!==q&&(t=q),V(t),k&&k(e,t)},le=function(e){0===e.clientX&&0===e.clientY||($({hover:-1,focus:-1}),V(null),k&&parseFloat(e.target.value)===j&&k(e,null))},se=function(e){Q(e),!0===Z.current&&oe(!0);var t=parseFloat(e.target.value);$((function(e){return{hover:e.hover,focus:t}}))},ce=function(e){if(-1===q){J(e),!1===Z.current&&oe(!1);$((function(e){return{hover:e.hover,focus:-1}}))}},ue=r.useState(!1),de=ue[0],pe=ue[1],fe=L({},n,{defaultValue:i,disabled:s,emptyIcon:u,emptyLabelText:p,emptyValueFocused:de,focusVisible:ne,getLabelText:v,icon:b,IconContainerComponent:x,max:S,precision:T,readOnly:O,size:N}),ve=function(e){var t=e.classes,n=e.size,o=e.readOnly,r=e.disabled,a=e.emptyValueFocused,i=e.focusVisible;return xa({root:["root","size".concat(En(n)),r&&"disabled",i&&"focusVisible",o&&"readOnly"],label:["label","pristine"],labelEmptyValue:[a&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]},xx,t)}(fe);return cn(Cx,L({ref:ae,onMouseMove:function(e){P&&P(e);var t,n=re.current.getBoundingClientRect(),o=n.right,r=n.left,a=n.width;t=U?(o-e.clientX)/a:(e.clientX-r)/a;var i=Sx(S*t+T/2,T);i=Sr(i,T,S),$((function(e){return e.hover===i&&e.focus===i?e:{hover:i,focus:i}})),oe(!1),R&&q!==i&&R(e,i)},onMouseLeave:function(e){M&&M(e);$({hover:-1,focus:-1}),R&&-1!==q&&R(e,-1)},className:Wo(ve.root,o,O&&"MuiRating-readOnly"),ownerState:fe,role:O?"img":null,"aria-label":O?v(X):null},F,{children:[Array.from(new Array(S)).map((function(e,t){var n=t+1,o={classes:ve,disabled:s,emptyIcon:u,focus:K,getLabelText:v,highlightSelectedOnly:h,hover:q,icon:b,IconContainerComponent:x,name:D,onBlur:ce,onChange:ie,onClick:le,onFocus:se,ratingValue:X,ratingValueRounded:j,readOnly:O,ownerState:fe},r=n===Math.ceil(X)&&(-1!==q||-1!==K);if(T<1){var a=Array.from(new Array(1/T));return sn(Mx,{className:Wo(ve.decimal,r&&ve.iconActive),ownerState:fe,iconActive:r,children:a.map((function(e,t){var r=Sx(n-1+(t+1)*T,T);return sn(Ix,L({},o,{isActive:!1,itemValue:r,labelProps:{style:a.length-1===t?{}:{width:r===X?"".concat((t+1)*T*100,"%"):"0%",overflow:"hidden",position:"absolute"}}}),r)}))},n)}return sn(Ix,L({},o,{isActive:r,itemValue:n}),n)})),!O&&!s&&cn(kx,{className:Wo(ve.label,ve.labelEmptyValue),ownerState:fe,children:[sn("input",{className:ve.visuallyHidden,value:"",id:"".concat(D,"-empty"),type:"radio",name:D,checked:null==j,onFocus:function(){return pe(!0)},onBlur:function(){return pe(!1)},onChange:ie}),sn("span",{className:ve.visuallyHidden,children:p})]})]}))})),Lx=Ex;function Nx(e){return Vo("MuiScopedCssBaseline",e)}var Bx=jo("MuiScopedCssBaseline",["root"]),zx=Zi("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n=e.ownerState,o={};return n.enableColorScheme&&t.colorSchemes&&Object.entries(t.colorSchemes).forEach((function(e){var n,r=Sn(e,2),a=r[0],i=r[1];o["&".concat(t.getColorSchemeSelector(a).replace(/\s*&/,""))]={colorScheme:null==(n=i.palette)?void 0:n.mode}})),L({},Mv(t,n.enableColorScheme),Pv(t),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold}},o)})),Fx=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiScopedCssBaseline"}),o=n.className,r=n.component,a=void 0===r?"div":r;n.enableColorScheme;var i=B(n,["className","component","enableColorScheme"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},Nx,e.classes)}(l);return sn(zx,L({as:a,className:Wo(s.root,o),ref:t,ownerState:l},i))}));function Dx(e){return Vo("MuiSelect",e)}var Wx,Hx=jo("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Vx=Zi("div",{name:"MuiSelect",slot:"Select",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"&.".concat(Hx.select),t.select),E({},"&.".concat(Hx.select),t[n.variant]),E({},"&.".concat(Hx.error),t.error),E({},"&.".concat(Hx.multiple),t.multiple)]}})(gy,E({},"&.".concat(Hx.select),{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"})),jx=Zi("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat(En(n.variant))],n.open&&t.iconOpen]}})(yy),Ux=Zi("input",{shouldForwardProp:function(e){return Xi(e)&&"classes"!==e},name:"MuiSelect",slot:"NativeInput",overridesResolver:function(e,t){return t.nativeInput}})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Gx(e,t){return"object"===A(t)&&null!==t?e===t:String(e)===String(t)}function _x(e){return null==e||"string"==typeof e&&!e.trim()}var qx=r.forwardRef((function(e,t){var n,o=e["aria-describedby"],a=e["aria-label"],i=e.autoFocus,l=e.autoWidth,s=e.children,c=e.className,u=e.defaultOpen,d=e.defaultValue,p=e.disabled,f=e.displayEmpty,v=e.error,m=void 0!==v&&v,h=e.IconComponent,g=e.inputRef,b=e.labelId,y=e.MenuProps,x=void 0===y?{}:y,w=e.multiple,S=e.name,C=e.onBlur,k=e.onChange,R=e.onClose,M=e.onFocus,P=e.onOpen,T=e.open,A=e.readOnly,O=e.renderValue,E=e.SelectDisplayProps,N=void 0===E?{}:E,z=e.tabIndex;e.type;var F=e.value,D=e.variant,W=void 0===D?"standard":D,H=B(e,["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),V=Sn($r({controlled:F,default:d,name:"Select"}),2),j=V[0],U=V[1],G=Sn($r({controlled:T,default:u,name:"Select"}),2),_=G[0],q=G[1],K=r.useRef(null),$=r.useRef(null),X=r.useState(null),Y=X[0],Z=X[1],J=r.useRef(null!=T).current,Q=r.useState(),ee=Q[0],te=Q[1],ne=Yr(t,g),oe=r.useCallback((function(e){$.current=e,e&&Z(e)}),[]),re=null==Y?void 0:Y.parentNode;r.useImperativeHandle(ne,(function(){return{focus:function(){$.current.focus()},node:K.current,value:j}}),[j]),r.useEffect((function(){u&&_&&Y&&!J&&(te(l?null:re.clientWidth),$.current.focus())}),[Y,l]),r.useEffect((function(){i&&$.current.focus()}),[i]),r.useEffect((function(){if(b){var e=jr($.current).getElementById(b);if(e){var t=function(){getSelection().isCollapsed&&$.current.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[b]);var ae,ie,le=function(e,t){e?P&&P(t):R&&R(t),J||(te(l?null:re.clientWidth),q(e))},se=r.Children.toArray(s),ce=function(e){return function(t){var n;if(t.currentTarget.hasAttribute("tabindex")){if(w){n=Array.isArray(j)?j.slice():[];var o=j.indexOf(e.props.value);-1===o?n.push(e.props.value):n.splice(o,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),j!==n&&(U(n),k)){var r=t.nativeEvent||t,a=new r.constructor(r.type,r);Object.defineProperty(a,"target",{writable:!0,value:{value:n,name:S}}),k(a,e)}w||le(!1,t)}}},ue=null!==Y&&_;delete H["aria-invalid"];var de=[],pe=!1;(wd({value:j})||f)&&(O?ae=O(j):pe=!0);var fe=se.map((function(e){if(!r.isValidElement(e))return null;var t;if(w){if(!Array.isArray(j))throw new Error(I(2));t=j.some((function(t){return Gx(t,e.props.value)})),t&&pe&&de.push(e.props.children)}else(t=Gx(j,e.props.value))&&pe&&(ie=e.props.children);return r.cloneElement(e,{"aria-selected":t?"true":"false",onClick:ce(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));pe&&(ae=w?0===de.length?null:de.reduce((function(e,t,n){return e.push(t),n *":{visibility:"hidden"}},n.hasChildren&&!n.width&&{maxWidth:"fit-content"},n.hasChildren&&!n.height&&{height:"auto"})}),(function(e){return"pulse"===e.ownerState.animation&&jt(ow||(ow=hs(["\n animation: "," 2s ease-in-out 0.5s infinite;\n "])),iw)}),(function(e){var t=e.ownerState,n=e.theme;return"wave"===t.animation&&jt(rw||(rw=hs(["\n position: relative;\n overflow: hidden;\n\n /* Fix bug in Safari https://bugs.webkit.org/show_bug.cgi?id=68196 */\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n animation: "," 2s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n ",",\n transparent\n );\n content: '';\n position: absolute;\n transform: translateX(-100%); /* Avoid flash during server-side hydration */\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n "])),lw,(n.vars||n).palette.action.hover)})),cw=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiSkeleton"}),o=n.animation,r=void 0===o?"pulse":o,a=n.className,i=n.component,l=void 0===i?"span":i,s=n.height,c=n.style,u=n.variant,d=void 0===u?"text":u,p=n.width,f=B(n,["animation","className","component","height","style","variant","width"]),v=L({},n,{animation:r,component:l,variant:d,hasChildren:Boolean(f.children)}),m=function(e){var t=e.classes,n=e.variant,o=e.animation,r=e.hasChildren,a=e.width,i=e.height;return xa({root:["root",n,o,r&&"withChildren",r&&!a&&"fitContent",r&&!i&&"heightAuto"]},ew,t)}(v);return sn(sw,L({as:l,ref:t,className:Wo(m.root,a),ownerState:v},f,{style:L({width:p,height:s},c)}))})),uw=cw;function dw(e,t){return e-t}function pw(e,t){var n,o=null!=(n=e.reduce((function(e,n,o){var r=Math.abs(t-n);return null===e||r2&&void 0!==arguments[2]?arguments[2]:function(e,t){return e===t};return e.length===t.length&&e.every((function(e,o){return n(e,t[o])}))}(e,t)}var yw,xw={horizontal:{offset:function(e){return{left:"".concat(e,"%")}},leap:function(e){return{width:"".concat(e,"%")}}},"horizontal-reverse":{offset:function(e){return{right:"".concat(e,"%")}},leap:function(e){return{width:"".concat(e,"%")}}},vertical:{offset:function(e){return{bottom:"".concat(e,"%")}},leap:function(e){return{height:"".concat(e,"%")}}}},ww=function(e){return e};function Sw(){return void 0===yw&&(yw="undefined"==typeof CSS||"function"!=typeof CSS.supports||CSS.supports("touch-action","none")),yw}function Cw(e){var t=e["aria-labelledby"],n=e.defaultValue,o=e.disabled,a=void 0!==o&&o,i=e.disableSwap,l=void 0!==i&&i,s=e.isRtl,c=void 0!==s&&s,u=e.marks,d=void 0!==u&&u,p=e.max,f=void 0===p?100:p,v=e.min,m=void 0===v?0:v,h=e.name,g=e.onChange,b=e.onChangeCommitted,y=e.orientation,x=void 0===y?"horizontal":y,w=e.rootRef,S=e.scale,C=void 0===S?ww:S,k=e.step,R=void 0===k?1:k,M=e.shiftStep,P=void 0===M?10:M,I=e.tabIndex,T=e.value,A=r.useRef(),O=r.useState(-1),E=O[0],N=O[1],B=r.useState(-1),z=B[0],F=B[1],D=r.useState(!1),W=D[0],H=D[1],V=r.useRef(0),j=Sn($r({controlled:T,default:null!=n?n:m,name:"Slider"}),2),U=j[0],G=j[1],_=g&&function(e,t,n){var o=e.nativeEvent||e,r=new o.constructor(o.type,o);Object.defineProperty(r,"target",{writable:!0,value:{value:t,name:h}}),g(r,t,n)},q=Array.isArray(U),K=q?U.slice().sort(dw):[U];K=K.map((function(e){return null==e?m:Sr(e,m,f)}));var $=!0===d&&null!==R?kn(Array(Math.floor((f-m)/R)+1)).map((function(e,t){return{value:m+R*t}})):d||[],X=$.map((function(e){return e.value})),Y=fa(),Z=Y.isFocusVisibleRef,J=Y.onBlur,Q=Y.onFocus,ee=Y.ref,te=r.useState(-1),ne=te[0],oe=te[1],re=r.useRef(),ae=Yr(ee,re),ie=Yr(w,ae),le=function(e){return function(t){var n,o=Number(t.currentTarget.getAttribute("data-index"));Q(t),!0===Z.current&&oe(o),F(o),null==e||null==(n=e.onFocus)||n.call(e,t)}},se=function(e){return function(t){var n;J(t),!1===Z.current&&oe(-1),F(-1),null==e||null==(n=e.onBlur)||n.call(e,t)}},ce=function(e,t){var n=Number(e.currentTarget.getAttribute("data-index")),o=K[n],r=X.indexOf(o),a=t;if($&&null==R){var i=X[X.length-1];a=a>i?i:a2&&H(!0),_&&!bw(o,U)&&_(e,o,r)}else me(e)})),me=Xr((function(e){var t=fw(e,A);if(H(!1),t){var n=fe({finger:t,move:!0}).newValue;N(-1),"touchend"===e.type&&F(-1),b&&b(e,n),A.current=void 0,ge()}})),he=Xr((function(e){if(!a){Sw()||e.preventDefault();var t=e.changedTouches[0];null!=t&&(A.current=t.identifier);var n=fw(e,A);if(!1!==n){var o=fe({finger:n}),r=o.newValue,i=o.activeIndex;gw({sliderRef:re,activeIndex:i,setActive:N}),G(r),_&&!bw(r,U)&&_(e,r,i)}V.current=0;var l=jr(re.current);l.addEventListener("touchmove",ve,{passive:!0}),l.addEventListener("touchend",me,{passive:!0})}})),ge=r.useCallback((function(){var e=jr(re.current);e.removeEventListener("mousemove",ve),e.removeEventListener("mouseup",me),e.removeEventListener("touchmove",ve),e.removeEventListener("touchend",me)}),[me,ve]);r.useEffect((function(){var e=re.current;return e.addEventListener("touchstart",he,{passive:Sw()}),function(){e.removeEventListener("touchstart",he),ge()}}),[ge,he]),r.useEffect((function(){a&&ge()}),[a,ge]);var be=vw(q?K[0]:m,m,f),ye=vw(K[K.length-1],m,f)-be,xe=function(e){return function(t){var n;null==(n=e.onMouseLeave)||n.call(e,t),F(-1)}};return{active:E,axis:pe,axisProps:xw,dragging:W,focusedThumbIndex:ne,getHiddenInputProps:function(){var n,o,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=Ca(r),l=L({},i,{onChange:(o=i||{},function(e){var t;null==(t=o.onChange)||t.call(o,e),ce(e,e.target.valueAsNumber)}),onFocus:le(i||{}),onBlur:se(i||{}),onKeyDown:ue(i||{})});return L({tabIndex:I,"aria-labelledby":t,"aria-orientation":x,"aria-valuemax":C(f),"aria-valuemin":C(m),name:h,type:"range",min:e.min,max:e.max,step:null===e.step&&e.marks?"any":null!=(n=e.step)?n:void 0,disabled:a},r,l,{style:L({},ya,{direction:c?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Ca(t),o=L({},n,{onMouseDown:(e=n||{},function(t){var n;if(null==(n=e.onMouseDown)||n.call(e,t),!a&&!t.defaultPrevented&&0===t.button){t.preventDefault();var o=fw(t,A);if(!1!==o){var r=fe({finger:o}),i=r.newValue,l=r.activeIndex;gw({sliderRef:re,activeIndex:l,setActive:N}),G(i),_&&!bw(i,U)&&_(t,i,l)}V.current=0;var s=jr(re.current);s.addEventListener("mousemove",ve,{passive:!0}),s.addEventListener("mouseup",me)}})});return L({},t,{ref:ie},o)},getThumbProps:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Ca(t),o={onMouseOver:(e=n||{},function(t){var n;null==(n=e.onMouseOver)||n.call(e,t);var o=Number(t.currentTarget.getAttribute("data-index"));F(o)}),onMouseLeave:xe(n||{})};return L({},t,n,o)},marks:$,open:z,range:q,rootRef:ie,trackLeap:ye,trackOffset:be,values:K,getThumbStyle:function(e){return{pointerEvents:-1!==E&&E!==e?"none":void 0}}}}var kw=function(e){return!e||!wa(e)};function Rw(e){return Vo("MuiSlider",e)}var Mw=jo("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]);function Pw(e){return e}var Iw=Zi("span",{name:"MuiSlider",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["color".concat(En(n.color))],"medium"!==n.size&&t["size".concat(En(n.size))],n.marked&&t.marked,"vertical"===n.orientation&&t.vertical,"inverted"===n.track&&t.trackInverted,!1===n.track&&t.trackFalse]}})((function(e){var t,n=e.theme;return E(E(E({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"}},"&.".concat(Mw.disabled),{pointerEvents:"none",cursor:"default",color:(n.vars||n).palette.grey[400]}),"&.".concat(Mw.dragging),E({},"& .".concat(Mw.thumb,", & .").concat(Mw.track),{transition:"none"})),"variants",[].concat(kn(Object.keys((null!=(t=n.vars)?t:n).palette).filter((function(e){var t;return(null!=(t=n.vars)?t:n).palette[e].main})).map((function(e){return{props:{color:e},style:{color:(n.vars||n).palette[e].main}}}))),[{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]))})),Tw=Zi("span",{name:"MuiSlider",slot:"Rail",overridesResolver:function(e,t){return t.rail}})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),Aw=Zi("span",{name:"MuiSlider",slot:"Track",overridesResolver:function(e,t){return t.track}})((function(e){var t,n=e.theme;return{display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:n.transitions.create(["left","width","bottom","height"],{duration:n.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}}].concat(kn(Object.keys((null!=(t=n.vars)?t:n).palette).filter((function(e){var t;return(null!=(t=n.vars)?t:n).palette[e].main})).map((function(e){return{props:{color:e,track:"inverted"},style:L({},n.vars?{backgroundColor:n.vars.palette.Slider["".concat(e,"Track")],borderColor:n.vars.palette.Slider["".concat(e,"Track")]}:L({backgroundColor:Br(n.palette[e].main,.62),borderColor:Br(n.palette[e].main,.62)},n.applyStyles("dark",{backgroundColor:Lr(n.palette[e].main,.5)}),n.applyStyles("dark",{borderColor:Lr(n.palette[e].main,.5)})))}}))))}})),Ow=Zi("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:function(e,t){var n=e.ownerState;return[t.thumb,t["thumbColor".concat(En(n.color))],"medium"!==n.size&&t["thumbSize".concat(En(n.size))]]}})((function(e){var t,n=e.theme;return E(E({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:n.transitions.create(["box-shadow","left","bottom"],{duration:n.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(n.vars||n).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"}},"&.".concat(Mw.disabled),{"&:hover":{boxShadow:"none"}}),"variants",[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}}].concat(kn(Object.keys((null!=(t=n.vars)?t:n).palette).filter((function(e){var t;return(null!=(t=n.vars)?t:n).palette[e].main})).map((function(e){return{props:{color:e},style:E(E({},"&:hover, &.".concat(Mw.focusVisible),L({},n.vars?{boxShadow:"0px 0px 0px 8px rgba(".concat(n.vars.palette[e].mainChannel," / 0.16)")}:{boxShadow:"0px 0px 0px 8px ".concat(Or(n.palette[e].main,.16))},{"@media (hover: none)":{boxShadow:"none"}})),"&.".concat(Mw.active),L({},n.vars?{boxShadow:"0px 0px 0px 14px rgba(".concat(n.vars.palette[e].mainChannel," / 0.16)")}:{boxShadow:"0px 0px 0px 14px ".concat(Or(n.palette[e].main,.16))}))}})))))})),Ew=Zi((function(e){var t=e.children,n=e.className,o=e.value,a=function(e){return{offset:Wo(e.open&&Mw.valueLabelOpen),circle:Mw.valueLabelCircle,label:Mw.valueLabelLabel}}(e);return t?r.cloneElement(t,{className:Wo(t.props.className)},cn(r.Fragment,{children:[t.props.children,sn("span",{className:Wo(a.offset,n),"aria-hidden":!0,children:sn("span",{className:a.circle,children:sn("span",{className:a.label,children:o})})})]})):null}),{name:"MuiSlider",slot:"ValueLabel",overridesResolver:function(e,t){return t.valueLabel}})((function(e){var t=e.theme;return L({zIndex:1,whiteSpace:"nowrap"},t.typography.body2,{fontWeight:500,transition:t.transitions.create(["transform"],{duration:t.transitions.duration.shortest}),position:"absolute",backgroundColor:(t.vars||t).palette.grey[600],borderRadius:2,color:(t.vars||t).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:E({transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"}},"&.".concat(Mw.valueLabelOpen),{transform:"translateY(-100%) scale(1)"})},{props:{orientation:"vertical"},style:E({transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"}},"&.".concat(Mw.valueLabelOpen),{transform:"translateY(-50%) scale(1)"})},{props:{size:"small"},style:{fontSize:t.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]})})),Lw=Zi("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:function(e){return Xi(e)&&"markActive"!==e},overridesResolver:function(e,t){var n=e.markActive;return[t.mark,n&&t.markActive]}})((function(e){var t=e.theme;return{position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(t.vars||t).palette.background.paper,opacity:.8}}]}})),Nw=Zi("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:function(e){return Xi(e)&&"markLabelActive"!==e},overridesResolver:function(e,t){return t.markLabel}})((function(e){var t=e.theme;return L({},t.typography.body2,{color:(t.vars||t).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(t.vars||t).palette.text.primary}}]})})),Bw=function(e){return e.children},zw=r.forwardRef((function(e,t){var n,o,a,i,l,s,c,u,d,p,f,v,m,h,g,b,y,x,w,S,C,k,R,M,P=gl({props:e,name:"MuiSlider"}),I=Na(),T=P["aria-label"],A=P["aria-valuetext"],O=P["aria-labelledby"],E=P.component,N=void 0===E?"span":E,z=P.components,F=void 0===z?{}:z,D=P.componentsProps,W=void 0===D?{}:D,H=P.color,V=void 0===H?"primary":H,j=P.classes,U=P.className,G=P.disableSwap,_=void 0!==G&&G,q=P.disabled,K=void 0!==q&&q,$=P.getAriaLabel,X=P.getAriaValueText,Y=P.marks,Z=void 0!==Y&&Y,J=P.max,Q=void 0===J?100:J,ee=P.min,te=void 0===ee?0:ee;P.name,P.onChange,P.onChangeCommitted;var ne=P.orientation,oe=void 0===ne?"horizontal":ne,re=P.shiftStep,ae=void 0===re?10:re,ie=P.size,le=void 0===ie?"medium":ie,se=P.step,ce=void 0===se?1:se,ue=P.scale,de=void 0===ue?Pw:ue,pe=P.slotProps,fe=P.slots;P.tabIndex;var ve=P.track,me=void 0===ve?"normal":ve;P.value;var he=P.valueLabelDisplay,ge=void 0===he?"off":he,be=P.valueLabelFormat,ye=void 0===be?Pw:be,xe=B(P,["aria-label","aria-valuetext","aria-labelledby","component","components","componentsProps","color","classes","className","disableSwap","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","orientation","shiftStep","size","step","scale","slotProps","slots","tabIndex","track","value","valueLabelDisplay","valueLabelFormat"]),we=L({},P,{isRtl:I,max:Q,min:te,classes:j,disabled:K,disableSwap:_,orientation:oe,marks:Z,color:V,size:le,step:ce,shiftStep:ae,scale:de,track:me,valueLabelDisplay:ge,valueLabelFormat:ye}),Se=Cw(L({},we,{rootRef:t})),Ce=Se.axisProps,ke=Se.getRootProps,Re=Se.getHiddenInputProps,Me=Se.getThumbProps,Pe=Se.open,Ie=Se.active,Te=Se.axis,Ae=Se.focusedThumbIndex,Oe=Se.range,Ee=Se.dragging,Le=Se.marks,Ne=Se.values,Be=Se.trackOffset,ze=Se.trackLeap,Fe=Se.getThumbStyle;we.marked=Le.length>0&&Le.some((function(e){return e.label})),we.dragging=Ee,we.focusedThumbIndex=Ae;var De=function(e){var t=e.disabled,n=e.dragging,o=e.marked,r=e.orientation,a=e.track,i=e.classes,l=e.color,s=e.size;return xa({root:["root",t&&"disabled",n&&"dragging",o&&"marked","vertical"===r&&"vertical","inverted"===a&&"trackInverted",!1===a&&"trackFalse",l&&"color".concat(En(l)),s&&"size".concat(En(s))],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",t&&"disabled",s&&"thumbSize".concat(En(s)),l&&"thumbColor".concat(En(l))],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]},Rw,i)}(we),We=null!=(n=null!=(o=null==fe?void 0:fe.root)?o:F.Root)?n:Iw,He=null!=(a=null!=(i=null==fe?void 0:fe.rail)?i:F.Rail)?a:Tw,Ve=null!=(l=null!=(s=null==fe?void 0:fe.track)?s:F.Track)?l:Aw,je=null!=(c=null!=(u=null==fe?void 0:fe.thumb)?u:F.Thumb)?c:Ow,Ue=null!=(d=null!=(p=null==fe?void 0:fe.valueLabel)?p:F.ValueLabel)?d:Ew,Ge=null!=(f=null!=(v=null==fe?void 0:fe.mark)?v:F.Mark)?f:Lw,_e=null!=(m=null!=(h=null==fe?void 0:fe.markLabel)?h:F.MarkLabel)?m:Nw,qe=null!=(g=null!=(b=null==fe?void 0:fe.input)?b:F.Input)?g:"input",Ke=null!=(y=null==pe?void 0:pe.root)?y:W.root,$e=null!=(x=null==pe?void 0:pe.rail)?x:W.rail,Xe=null!=(w=null==pe?void 0:pe.track)?w:W.track,Ye=null!=(S=null==pe?void 0:pe.thumb)?S:W.thumb,Ze=null!=(C=null==pe?void 0:pe.valueLabel)?C:W.valueLabel,Je=null!=(k=null==pe?void 0:pe.mark)?k:W.mark,Qe=null!=(R=null==pe?void 0:pe.markLabel)?R:W.markLabel,et=null!=(M=null==pe?void 0:pe.input)?M:W.input,tt=Pa({elementType:We,getSlotProps:ke,externalSlotProps:Ke,externalForwardedProps:xe,additionalProps:L({},kw(We)&&{as:N}),ownerState:L({},we,null==Ke?void 0:Ke.ownerState),className:[De.root,U]}),nt=Pa({elementType:He,externalSlotProps:$e,ownerState:we,className:De.rail}),ot=Pa({elementType:Ve,externalSlotProps:Xe,additionalProps:{style:L({},Ce[Te].offset(Be),Ce[Te].leap(ze))},ownerState:L({},we,null==Xe?void 0:Xe.ownerState),className:De.track}),rt=Pa({elementType:je,getSlotProps:Me,externalSlotProps:Ye,ownerState:L({},we,null==Ye?void 0:Ye.ownerState),className:De.thumb}),at=Pa({elementType:Ue,externalSlotProps:Ze,ownerState:L({},we,null==Ze?void 0:Ze.ownerState),className:De.valueLabel}),it=Pa({elementType:Ge,externalSlotProps:Je,ownerState:we,className:De.mark}),lt=Pa({elementType:_e,externalSlotProps:Qe,ownerState:we,className:De.markLabel}),st=Pa({elementType:qe,getSlotProps:Re,externalSlotProps:et,ownerState:we});return cn(We,L({},tt,{children:[sn(He,L({},nt)),sn(Ve,L({},ot)),Le.filter((function(e){return e.value>=te&&e.value<=Q})).map((function(e,t){var n,o=vw(e.value,te,Q),a=Ce[Te].offset(o);return n=!1===me?-1!==Ne.indexOf(e.value):"normal"===me&&(Oe?e.value>=Ne[0]&&e.value<=Ne[Ne.length-1]:e.value<=Ne[0])||"inverted"===me&&(Oe?e.value<=Ne[0]||e.value>=Ne[Ne.length-1]:e.value>=Ne[0]),cn(r.Fragment,{children:[sn(Ge,L({"data-index":t},it,!wa(Ge)&&{markActive:n},{style:L({},a,it.style),className:Wo(it.className,n&&De.markActive)})),null!=e.label?sn(_e,L({"aria-hidden":!0,"data-index":t},lt,!wa(_e)&&{markLabelActive:n},{style:L({},a,lt.style),className:Wo(De.markLabel,lt.className,n&&De.markLabelActive),children:e.label})):null]},t)})),Ne.map((function(e,t){var n=vw(e,te,Q),o=Ce[Te].offset(n),r="off"===ge?Bw:Ue;return sn(r,L({},!wa(r)&&{valueLabelFormat:ye,valueLabelDisplay:ge,value:"function"==typeof ye?ye(de(e),t):ye,index:t,open:Pe===t||Ie===t||"on"===ge,disabled:K},at,{children:sn(je,L({"data-index":t},rt,{className:Wo(De.thumb,rt.className,Ie===t&&De.active,Ae===t&&De.focusVisible),style:L({},o,Fe(t),rt.style),children:sn(qe,L({"data-index":t,"aria-label":$?$(t):T,"aria-valuenow":de(e),"aria-labelledby":O,"aria-valuetext":X?X(de(e),t):A,value:Ne[t]},st))}))}),t)}))]}))})),Fw=zw;function Dw(e){return Vo("MuiSnackbarContent",e)}var Ww=jo("MuiSnackbarContent",["root","message","action"]),Hw=Zi(ts,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n="light"===t.palette.mode?.8:.98,o=Fr(t.palette.background.default,n);return L({},t.typography.body2,E({color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(o),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:o,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1},t.breakpoints.up("sm"),{flexGrow:"initial",minWidth:288}))})),Vw=Zi("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:function(e,t){return t.message}})({padding:"8px 0"}),jw=Zi("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:function(e,t){return t.action}})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),Uw=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiSnackbarContent"}),o=n.action,r=n.className,a=n.message,i=n.role,l=void 0===i?"alert":i,s=B(n,["action","className","message","role"]),c=n,u=function(e){return xa({root:["root"],action:["action"],message:["message"]},Dw,e.classes)}(c);return cn(Hw,L({role:l,square:!0,elevation:6,className:Wo(u.root,r),ownerState:c,ref:t},s,{children:[sn(Vw,{className:u.message,ownerState:c,children:a}),o?sn(jw,{className:u.action,ownerState:c,children:o}):null]}))}));function Gw(e){return Vo("MuiSnackbar",e)}var _w=jo("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]),qw=Zi("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["anchorOrigin".concat(En(n.anchorOrigin.vertical)).concat(En(n.anchorOrigin.horizontal))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center"},"top"===n.anchorOrigin.vertical?{top:8}:{bottom:8},"left"===n.anchorOrigin.horizontal&&{justifyContent:"flex-start"},"right"===n.anchorOrigin.horizontal&&{justifyContent:"flex-end"},E({},t.breakpoints.up("sm"),L({},"top"===n.anchorOrigin.vertical?{top:24}:{bottom:24},"center"===n.anchorOrigin.horizontal&&{left:"50%",right:"auto",transform:"translateX(-50%)"},"left"===n.anchorOrigin.horizontal&&{left:24,right:"auto"},"right"===n.anchorOrigin.horizontal&&{right:24,left:"auto"})))})),Kw=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiSnackbar"}),o=$i(),a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},i=n.action,l=n.anchorOrigin,s=void 0===l?{vertical:"bottom",horizontal:"left"}:l,c=s.vertical,u=s.horizontal,d=n.autoHideDuration,p=void 0===d?null:d,f=n.children,v=n.className,m=n.ClickAwayListenerProps,h=n.ContentProps,g=n.disableWindowBlurListener,b=void 0!==g&&g,y=n.message;n.onBlur,n.onClose,n.onFocus,n.onMouseEnter,n.onMouseLeave;var x=n.open;n.resumeHideDuration;var w=n.TransitionComponent,S=void 0===w?Fh:w,C=n.transitionDuration,k=void 0===C?a:C,R=n.TransitionProps,M=void 0===R?{}:R,P=M.onEnter,I=M.onExited,T=B(M,["onEnter","onExited"]),A=B(n,["action","anchorOrigin","autoHideDuration","children","className","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","message","onBlur","onClose","onFocus","onMouseEnter","onMouseLeave","open","resumeHideDuration","TransitionComponent","transitionDuration","TransitionProps"]),O=L({},n,{anchorOrigin:{vertical:c,horizontal:u},autoHideDuration:p,disableWindowBlurListener:b,TransitionComponent:S,transitionDuration:k}),E=function(e){var t=e.classes,n=e.anchorOrigin;return xa({root:["root","anchorOrigin".concat(En(n.vertical)).concat(En(n.horizontal))]},Gw,t)}(O),N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoHideDuration,n=void 0===t?null:t,o=e.disableWindowBlurListener,a=void 0!==o&&o,i=e.onClose,l=e.open,s=e.resumeHideDuration,c=oa();r.useEffect((function(){if(l)return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)};function e(e){e.defaultPrevented||"Escape"!==e.key&&"Esc"!==e.key||null==i||i(e,"escapeKeyDown")}}),[l,i]);var u=Xr((function(e,t){null==i||i(e,t)})),d=Xr((function(e){i&&null!=e&&c.start(e,(function(){u(null,"timeout")}))}));r.useEffect((function(){return l&&d(n),c.clear}),[l,n,d,c]);var p=c.clear,f=r.useCallback((function(){null!=n&&d(null!=s?s:.5*n)}),[n,s,d]),v=function(e){return function(t){var n=e.onFocus;null==n||n(t),p()}},m=function(e){return function(t){var n=e.onMouseEnter;null==n||n(t),p()}},h=function(e){return function(t){var n=e.onMouseLeave;null==n||n(t),f()}};return r.useEffect((function(){if(!a&&l)return window.addEventListener("focus",f),window.addEventListener("blur",p),function(){window.removeEventListener("focus",f),window.removeEventListener("blur",p)}}),[a,l,f,p]),{getRootProps:function(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=L({},Ca(e),Ca(n));return L({role:"presentation"},n,o,{onBlur:(t=o,function(e){var n=t.onBlur;null==n||n(e),f()}),onFocus:v(o),onMouseEnter:m(o),onMouseLeave:h(o)})},onClickAway:function(e){null==i||i(e,"clickaway")}}}(L({},O)),z=N.getRootProps,F=N.onClickAway,D=r.useState(!0),W=D[0],H=D[1],V=Pa({elementType:qw,getSlotProps:z,externalForwardedProps:A,ownerState:O,additionalProps:{ref:t},className:[E.root,v]});return!x&&W?null:sn(Sv,L({onClickAway:F},m,{children:sn(qw,L({},V,{children:sn(S,L({appear:!0,in:x,timeout:k,direction:"top"===c?"down":"up",onEnter:function(e,t){H(!1),P&&P(e,t)},onExited:function(e){H(!0),I&&I(e)}},T,{children:f||sn(Uw,L({message:y,action:i},h))}))}))}))})),$w=Kw,Xw={entering:{transform:"none"},entered:{transform:"none"}},Yw=r.forwardRef((function(e,t){var n=$i(),o={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},a=e.addEndListener,i=e.appear,l=void 0===i||i,s=e.children,c=e.easing,u=e.in,d=e.onEnter,p=e.onEntered,f=e.onEntering,v=e.onExit,m=e.onExited,h=e.onExiting,g=e.style,b=e.timeout,y=void 0===b?o:b,x=e.TransitionComponent,w=void 0===x?zl:x,S=B(e,["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),C=r.useRef(null),k=Yr(C,s.ref,t),R=function(e){return function(t){if(e){var n=C.current;void 0===t?e(n):e(n,t)}}},M=R(f),P=R((function(e,t){Ul(e);var o=Gl({style:g,timeout:y,easing:c},{mode:"enter"});e.style.webkitTransition=n.transitions.create("transform",o),e.style.transition=n.transitions.create("transform",o),d&&d(e,t)})),I=R(p),T=R(h),A=R((function(e){var t=Gl({style:g,timeout:y,easing:c},{mode:"exit"});e.style.webkitTransition=n.transitions.create("transform",t),e.style.transition=n.transitions.create("transform",t),v&&v(e)})),O=R(m);return sn(w,L({appear:l,in:u,nodeRef:C,onEnter:P,onEntered:I,onEntering:M,onExit:A,onExited:O,onExiting:T,addEndListener:function(e){a&&a(C.current,e)},timeout:y},S,{children:function(e,t){return r.cloneElement(s,L({style:L({transform:"scale(0)",visibility:"exited"!==e||u?void 0:"hidden"},Xw[e],g,s.props.style),ref:k},t))}}))})),Zw=Yw;function Jw(e){return Vo("MuiSpeedDial",e)}var Qw=jo("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]);function eS(e){return"up"===e||"down"===e?"vertical":"right"===e||"left"===e?"horizontal":void 0}var tS=Zi("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["direction".concat(En(n.direction))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none"},"up"===n.direction&&E({flexDirection:"column-reverse"},"& .".concat(Qw.actions),{flexDirection:"column-reverse",marginBottom:-32,paddingBottom:48}),"down"===n.direction&&E({flexDirection:"column"},"& .".concat(Qw.actions),{flexDirection:"column",marginTop:-32,paddingTop:48}),"left"===n.direction&&E({flexDirection:"row-reverse"},"& .".concat(Qw.actions),{flexDirection:"row-reverse",marginRight:-32,paddingRight:48}),"right"===n.direction&&E({flexDirection:"row"},"& .".concat(Qw.actions),{flexDirection:"row",marginLeft:-32,paddingLeft:48}))})),nS=Zi(Vm,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:function(e,t){return t.fab}})((function(){return{pointerEvents:"auto"}})),oS=Zi("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:function(e,t){var n=e.ownerState;return[t.actions,!n.open&&t.actionsClosed]}})((function(e){return L({display:"flex",pointerEvents:"auto"},!e.ownerState.open&&{transition:"top 0s linear 0.2s",pointerEvents:"none"})})),rS=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiSpeedDial"}),o=$i(),a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},i=n.ariaLabel,l=n.FabProps,s=void 0===l?{}:l,c=s.ref,u=B(s,["ref"]),d=n.children,p=n.className,f=n.direction,v=void 0===f?"up":f,m=n.hidden,h=void 0!==m&&m,g=n.icon,b=n.onBlur,y=n.onClose,x=n.onFocus,w=n.onKeyDown,S=n.onMouseEnter,C=n.onMouseLeave,k=n.onOpen,R=n.open;n.openIcon;var M=n.TransitionComponent,P=void 0===M?Zw:M,I=n.transitionDuration,T=void 0===I?a:I,A=n.TransitionProps,O=B(n,["ariaLabel","FabProps","children","className","direction","hidden","icon","onBlur","onClose","onFocus","onKeyDown","onMouseEnter","onMouseLeave","onOpen","open","openIcon","TransitionComponent","transitionDuration","TransitionProps"]),E=Sn($r({controlled:R,default:!1,name:"SpeedDial",state:"open"}),2),N=E[0],z=E[1],F=L({},n,{open:N,direction:v}),D=function(e){var t=e.classes,n=e.open,o=e.direction;return xa({root:["root","direction".concat(En(o))],fab:["fab"],actions:["actions",!n&&"actionsClosed"]},Jw,t)}(F),W=oa(),H=r.useRef(0),V=r.useRef(),j=r.useRef([]);j.current=[j.current[0]];var U=Yr(c,r.useCallback((function(e){j.current[0]=e}),[])),G=function(e,t){return function(n){j.current[e+1]=n,t&&t(n)}};r.useEffect((function(){N||(H.current=0,V.current=void 0)}),[N]);var _=function(e){"mouseleave"===e.type&&C&&C(e),"blur"===e.type&&b&&b(e),W.clear(),"blur"===e.type?W.start(0,(function(){z(!1),y&&y(e,"blur")})):(z(!1),y&&y(e,"mouseLeave"))},q=function(e){"mouseenter"===e.type&&S&&S(e),"focus"===e.type&&x&&x(e),W.clear(),N||W.start(0,(function(){if(z(!0),k){k(e,{focus:"focus",mouseenter:"mouseEnter"}[e.type])}}))},K=i.replace(/^[^a-z]+|[^\w:.-]+/gi,""),$=r.Children.toArray(d).filter((function(e){return r.isValidElement(e)})),X=$.map((function(e,t){var n=e.props,o=n.FabProps,a=void 0===o?{}:o,i=a.ref,l=B(a,["ref"]),s=n.tooltipPlacement||("vertical"===eS(v)?"left":"top");return r.cloneElement(e,{FabProps:L({},l,{ref:G(t,i)}),delay:30*(N?t:$.length-t),open:N,tooltipPlacement:s,id:"".concat(K,"-action-").concat(t)})}));return cn(tS,L({className:Wo(D.root,p),ref:t,role:"presentation",onKeyDown:function(e){w&&w(e);var t=e.key.replace("Arrow","").toLowerCase(),n=V.current,o=void 0===n?t:n;if("Escape"===e.key)return z(!1),j.current[0].focus(),void(y&&y(e,"escapeKeyDown"));if(eS(t)===eS(o)&&void 0!==eS(t)){e.preventDefault();var r=t===o?1:-1,a=Sr(H.current+r,0,j.current.length-1);j.current[a].focus(),H.current=a,V.current=o}},onBlur:_,onFocus:q,onMouseEnter:q,onMouseLeave:_,ownerState:F},O,{children:[sn(P,L({in:!h,timeout:T,unmountOnExit:!0},A,{children:sn(nS,L({color:"primary","aria-label":i,"aria-haspopup":"true","aria-expanded":N,"aria-controls":"".concat(K,"-actions")},u,{onClick:function(e){u.onClick&&u.onClick(e),W.clear(),N?(z(!1),y&&y(e,"toggle")):(z(!0),k&&k(e,"toggle"))},className:Wo(D.fab,u.className),ref:U,ownerState:F,children:r.isValidElement(g)&&Vr(g,["SpeedDialIcon"])?r.cloneElement(g,{open:N}):g}))})),sn(oS,{id:"".concat(K,"-actions"),role:"menu","aria-orientation":eS(v),className:Wo(D.actions,!N&&D.actionsClosed),ownerState:F,children:X})]}))})),aS=rS;function iS(e){return Vo("MuiTooltip",e)}var lS=jo("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);var sS=Zi(Ju,{name:"MuiTooltip",slot:"Popper",overridesResolver:function(e,t){var n=e.ownerState;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})((function(e){var t=e.theme,n=e.ownerState,o=e.open;return L({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none"},!n.disableInteractive&&{pointerEvents:"auto"},!o&&{pointerEvents:"none"},n.arrow&&E(E(E(E({},'&[data-popper-placement*="bottom"] .'.concat(lS.arrow),{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}}),'&[data-popper-placement*="top"] .'.concat(lS.arrow),{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}}),'&[data-popper-placement*="right"] .'.concat(lS.arrow),L({},n.isRtl?{right:0,marginRight:"-0.71em"}:{left:0,marginLeft:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}})),'&[data-popper-placement*="left"] .'.concat(lS.arrow),L({},n.isRtl?{left:0,marginLeft:"-0.71em"}:{right:0,marginRight:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}})))})),cS=Zi("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:function(e,t){var n=e.ownerState;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t["tooltipPlacement".concat(En(n.placement.split("-")[0]))]]}})((function(e){var t,n=e.theme,o=e.ownerState;return L({backgroundColor:n.vars?n.vars.palette.Tooltip.bg:Or(n.palette.grey[700],.92),borderRadius:(n.vars||n).shape.borderRadius,color:(n.vars||n).palette.common.white,fontFamily:n.typography.fontFamily,padding:"4px 8px",fontSize:n.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:n.typography.fontWeightMedium},o.arrow&&{position:"relative",margin:0},o.touch&&{padding:"8px 16px",fontSize:n.typography.pxToRem(14),lineHeight:"".concat((t=16/14,Math.round(1e5*t)/1e5),"em"),fontWeight:n.typography.fontWeightRegular},E(E(E(E({},".".concat(lS.popper,'[data-popper-placement*="left"] &'),L({transformOrigin:"right center"},o.isRtl?L({marginLeft:"14px"},o.touch&&{marginLeft:"24px"}):L({marginRight:"14px"},o.touch&&{marginRight:"24px"}))),".".concat(lS.popper,'[data-popper-placement*="right"] &'),L({transformOrigin:"left center"},o.isRtl?L({marginRight:"14px"},o.touch&&{marginRight:"24px"}):L({marginLeft:"14px"},o.touch&&{marginLeft:"24px"}))),".".concat(lS.popper,'[data-popper-placement*="top"] &'),L({transformOrigin:"center bottom",marginBottom:"14px"},o.touch&&{marginBottom:"24px"})),".".concat(lS.popper,'[data-popper-placement*="bottom"] &'),L({transformOrigin:"center top",marginTop:"14px"},o.touch&&{marginTop:"24px"})))})),uS=Zi("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:function(e,t){return t.arrow}})((function(e){var t=e.theme;return{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:Or(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}})),dS=!1,pS=new na,fS={x:0,y:0};function vS(e,t){return function(n){for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;af?C=void 0===c||c:!w&&g1&&void 0!==arguments[1]?arguments[1]:{},n=t.mode,r=void 0===n?null:n,a=t.changeTransition,i=void 0===a||a,l=Bm(o,s),c=-1!==["right","bottom"].indexOf(l)?1:-1,d=Nm(s),p=d?"translate(".concat(c*e,"px, 0)"):"translate(0, ".concat(c*e,"px)"),f=$.current.style;f.webkitTransform=p,f.transform=p;var v="";if(r&&(v=o.transitions.create("all",Gl({easing:void 0,style:void 0,timeout:D},{mode:r}))),i&&(f.webkitTransition=v,f.transition=v),!u&&!m){var h=K.current.style;h.opacity=1-e/MC(d,$.current),i&&(h.webkitTransition=v,h.transition=v)}}),[s,u,m,o,D]),Q=Xr((function(e){if(Y.current)if(CC=null,Y.current=!1,a.flushSync((function(){G(!1)})),_.current.isSwiping){_.current.isSwiping=null;var t,n=Bm(o,s),r=Nm(s);t=r?kC(n,e.changedTouches,jr(e.currentTarget)):RC(n,e.changedTouches,Ur(e.currentTarget));var i=r?_.current.startX:_.current.startY,l=MC(r,$.current),c=PC(t,i,T,l),u=c/l;Math.abs(_.current.velocity)>w&&(Z.current=1e3*Math.abs((l-c)/_.current.velocity)),T?_.current.velocity>w||u>g?M():J(0,{mode:"exit"}):_.current.velocity<-w||1-u>g?P():J(MC(r,$.current),{mode:"enter"})}else _.current.isSwiping=null})),ee=function(){if(!U){!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&p&&y||a.flushSync((function(){G(!0)}));var e=Nm(s);!T&&$.current&&J(MC(e,$.current)+(p?15:-20),{changeTransition:!1}),_.current.velocity=0,_.current.lastTime=null,_.current.lastTranslate=null,_.current.paperHit=!1,Y.current=!0}},te=Xr((function(e){if($.current&&Y.current&&(null===CC||CC===_.current)){ee(!0);var t=Bm(o,s),n=Nm(s),r=kC(t,e.touches,jr(e.currentTarget)),a=RC(t,e.touches,Ur(e.currentTarget));if(T&&$.current.contains(e.target)&&null===CC){var i=function(e,t){for(var n=[];e&&e!==t.parentElement;){var o=Ur(t).getComputedStyle(e);"absolute"===o.getPropertyValue("position")||"hidden"===o.getPropertyValue("overflow-x")||(e.clientWidth>0&&e.scrollWidth>e.clientWidth||e.clientHeight>0&&e.scrollHeight>e.clientHeight)&&n.push(e),e=e.parentElement}return n}(e.target,$.current),l=function(e){var t=e.domTreeShapes,n=e.start,o=e.current,r=e.anchor,a={x:"scrollLeft",y:"scrollTop"},i={x:"scrollWidth",y:"scrollHeight"},l={x:"clientWidth",y:"clientHeight"};return t.some((function(e){var t=o>=n;"top"!==r&&"left"!==r||(t=!t);var s="left"===r||"right"===r?"x":"y",c=Math.round(e[a[s]]),u=c>0,d=c+e[l[s]]u&&c>3:u>c&&u>3;if(d&&e.cancelable&&e.preventDefault(),!0===d||(n?u>3:c>3)){if(_.current.isSwiping=d,!d)return void Q(e);_.current.startX=r,_.current.startY=a,p||T||(n?_.current.startX-=20:_.current.startY-=20)}}if(_.current.isSwiping){var f=MC(n,$.current),v=n?_.current.startX:_.current.startY;T&&!_.current.paperHit&&(v=Math.min(v,f));var m=PC(n?r:a,v,T,f);if(T)if(_.current.paperHit)0===m&&(_.current.startX=r,_.current.startY=a);else{if(!(n?rz)return}else if(a>z)return}e.defaultMuiPrevented=!0,CC=null,_.current.startX=r,_.current.startY=a,ee()}}));return r.useEffect((function(){if("temporary"===H){var e=jr($.current);return e.addEventListener("touchstart",ne),e.addEventListener("touchmove",te,{passive:!T}),e.addEventListener("touchend",Q),function(){e.removeEventListener("touchstart",ne),e.removeEventListener("touchmove",te,{passive:!T}),e.removeEventListener("touchend",Q)}}}),[H,T,ne,te,Q]),r.useEffect((function(){return function(){CC===_.current&&(CC=null)}}),[]),r.useEffect((function(){T||G(!1)}),[T]),cn(r.Fragment,{children:[sn(zm,L({open:!("temporary"!==H||!U)||T,variant:H,ModalProps:L({BackdropProps:L({},k,{ref:K})},"temporary"===H&&{keepMounted:!0},R),hideBackdrop:m,PaperProps:L({},O,{style:L({pointerEvents:"temporary"!==H||T||y?"":"none"},O.style),ref:X}),anchor:s,transitionDuration:Z.current||D,onClose:M,ref:t},V)),!v&&"temporary"===H&&sn(My,{children:sn(SC,L({anchor:s,ref:q,width:z},E))})]})})),AC=TC;function OC(e){return Vo("MuiSwitch",e)}var EC=jo("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),LC=Zi("span",{name:"MuiSwitch",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.edge&&t["edge".concat(En(n.edge))],t["size".concat(En(n.size))]]}})({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:E(E({width:40,height:24,padding:7},"& .".concat(EC.thumb),{width:16,height:16}),"& .".concat(EC.switchBase),E({padding:4},"&.".concat(EC.checked),{transform:"translateX(16px)"}))}]}),NC=Zi(Xf,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:function(e,t){var n=e.ownerState;return[t.switchBase,E({},"& .".concat(EC.input),t.input),"default"!==n.color&&t["color".concat(En(n.color))]]}})((function(e){var t=e.theme;return E(E(E(E(E({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:"".concat("light"===t.palette.mode?t.palette.common.white:t.palette.grey[300]),transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest})},"&.".concat(EC.checked),{transform:"translateX(20px)"}),"&.".concat(EC.disabled),{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:"".concat("light"===t.palette.mode?t.palette.grey[100]:t.palette.grey[600])}),"&.".concat(EC.checked," + .").concat(EC.track),{opacity:.5}),"&.".concat(EC.disabled," + .").concat(EC.track),{opacity:t.vars?t.vars.opacity.switchTrackDisabled:"".concat("light"===t.palette.mode?.12:.2)}),"& .".concat(EC.input),{left:"-100%",width:"300%"})}),(function(e){var t=e.theme;return{"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.activeChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):Or(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:kn(Object.entries(t.palette).filter((function(e){var t=Sn(e,2)[1];return t.main&&t.light})).map((function(e){var n=Sn(e,1)[0];return{props:{color:n},style:E(E({},"&.".concat(EC.checked),E({color:(t.vars||t).palette[n].main,"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette[n].mainChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):Or(t.palette[n].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(EC.disabled),{color:t.vars?t.vars.palette.Switch["".concat(n,"DisabledColor")]:"".concat("light"===t.palette.mode?Br(t.palette[n].main,.62):Lr(t.palette[n].main,.55))})),"&.".concat(EC.checked," + .").concat(EC.track),{backgroundColor:(t.vars||t).palette[n].main})}})))}})),BC=Zi("span",{name:"MuiSwitch",slot:"Track",overridesResolver:function(e,t){return t.track}})((function(e){var t=e.theme;return{height:"100%",width:"100%",borderRadius:7,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:"".concat("light"===t.palette.mode?t.palette.common.black:t.palette.common.white),opacity:t.vars?t.vars.opacity.switchTrack:"".concat("light"===t.palette.mode?.38:.3)}})),zC=Zi("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:function(e,t){return t.thumb}})((function(e){var t=e.theme;return{boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}})),FC=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiSwitch"}),o=n.className,r=n.color,a=void 0===r?"primary":r,i=n.edge,l=void 0!==i&&i,s=n.size,c=void 0===s?"medium":s,u=n.sx,d=B(n,["className","color","edge","size","sx"]),p=L({},n,{color:a,edge:l,size:c}),f=function(e){var t=e.classes,n=e.edge,o=e.size,r=e.color,a=e.checked,i=e.disabled;return L({},t,xa({root:["root",n&&"edge".concat(En(n)),"size".concat(En(o))],switchBase:["switchBase","color".concat(En(r)),a&&"checked",i&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},OC,t))}(p),v=sn(zC,{className:f.thumb,ownerState:p});return cn(LC,{className:Wo(f.root,o),sx:u,ownerState:p,children:[sn(NC,L({type:"checkbox",icon:v,checkedIcon:v,ref:t,ownerState:p},d,{classes:L({},f,{root:f.switchBase})})),sn(BC,{className:f.track,ownerState:p})]})})),DC=FC;function WC(e){return Vo("MuiTab",e)}var HC=jo("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),VC=Zi(Ls,{name:"MuiTab",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.label&&n.icon&&t.labelIcon,t["textColor".concat(En(n.textColor))],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,E({},"& .".concat(HC.iconWrapper),t.iconWrapper)]}})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},n.label&&{flexDirection:"top"===n.iconPosition||"bottom"===n.iconPosition?"column":"row"},{lineHeight:1.25},n.icon&&n.label&&E({minHeight:72,paddingTop:9,paddingBottom:9},"& > .".concat(HC.iconWrapper),L({},"top"===n.iconPosition&&{marginBottom:6},"bottom"===n.iconPosition&&{marginTop:6},"start"===n.iconPosition&&{marginRight:t.spacing(1)},"end"===n.iconPosition&&{marginLeft:t.spacing(1)})),"inherit"===n.textColor&&E(E({color:"inherit",opacity:.6},"&.".concat(HC.selected),{opacity:1}),"&.".concat(HC.disabled),{opacity:(t.vars||t).palette.action.disabledOpacity}),"primary"===n.textColor&&E(E({color:(t.vars||t).palette.text.secondary},"&.".concat(HC.selected),{color:(t.vars||t).palette.primary.main}),"&.".concat(HC.disabled),{color:(t.vars||t).palette.text.disabled}),"secondary"===n.textColor&&E(E({color:(t.vars||t).palette.text.secondary},"&.".concat(HC.selected),{color:(t.vars||t).palette.secondary.main}),"&.".concat(HC.disabled),{color:(t.vars||t).palette.text.disabled}),n.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},n.wrapped&&{fontSize:t.typography.pxToRem(12)})})),jC=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTab"}),o=n.className,a=n.disabled,i=void 0!==a&&a,l=n.disableFocusRipple,s=void 0!==l&&l,c=n.fullWidth,u=n.icon,d=n.iconPosition,p=void 0===d?"top":d,f=n.indicator,v=n.label,m=n.onChange,h=n.onClick,g=n.onFocus,b=n.selected,y=n.selectionFollowsFocus,x=n.textColor,w=void 0===x?"inherit":x,S=n.value,C=n.wrapped,k=void 0!==C&&C,R=B(n,["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"]),M=L({},n,{disabled:i,disableFocusRipple:s,selected:b,icon:!!u,iconPosition:p,label:!!v,fullWidth:c,textColor:w,wrapped:k}),P=function(e){var t=e.classes,n=e.textColor,o=e.fullWidth,r=e.wrapped,a=e.icon,i=e.label,l=e.selected,s=e.disabled;return xa({root:["root",a&&i&&"labelIcon","textColor".concat(En(n)),o&&"fullWidth",r&&"wrapped",l&&"selected",s&&"disabled"],iconWrapper:["iconWrapper"]},WC,t)}(M),I=u&&v&&r.isValidElement(u)?r.cloneElement(u,{className:Wo(P.iconWrapper,u.props.className)}):u;return cn(VC,L({focusRipple:!s,className:Wo(P.root,o),ref:t,role:"tab","aria-selected":b,disabled:i,onClick:function(e){!b&&m&&m(e,S),h&&h(e)},onFocus:function(e){y&&!b&&m&&m(e,S),g&&g(e)},ownerState:M,tabIndex:b?0:-1},R,{children:[cn(r.Fragment,"top"===p||"start"===p?{children:[I,v]}:{children:[v,I]}),f]}))})),UC=r.createContext();function GC(e){return Vo("MuiTable",e)}var _C=jo("MuiTable",["root","stickyHeader"]),qC=Zi("table",{name:"MuiTable",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.stickyHeader&&t.stickyHeader]}})((function(e){var t=e.theme,n=e.ownerState;return L({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":L({},t.typography.body2,{padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"})},n.stickyHeader&&{borderCollapse:"separate"})})),KC="table",$C=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTable"}),o=n.className,a=n.component,i=void 0===a?KC:a,l=n.padding,s=void 0===l?"normal":l,c=n.size,u=void 0===c?"medium":c,d=n.stickyHeader,p=void 0!==d&&d,f=B(n,["className","component","padding","size","stickyHeader"]),v=L({},n,{component:i,padding:s,size:u,stickyHeader:p}),m=function(e){var t=e.classes;return xa({root:["root",e.stickyHeader&&"stickyHeader"]},GC,t)}(v),h=r.useMemo((function(){return{padding:s,size:u,stickyHeader:p}}),[s,u,p]);return sn(UC.Provider,{value:h,children:sn(qC,L({as:i,role:i===KC?null:"table",ref:t,className:Wo(m.root,o),ownerState:v},f))})})),XC=$C,YC=r.createContext();function ZC(e){return Vo("MuiTableBody",e)}var JC=jo("MuiTableBody",["root"]),QC=Zi("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"table-row-group"}),ek={variant:"body"},tk="tbody",nk=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableBody"}),o=n.className,r=n.component,a=void 0===r?tk:r,i=B(n,["className","component"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},ZC,e.classes)}(l);return sn(YC.Provider,{value:ek,children:sn(QC,L({className:Wo(s.root,o),as:a,ref:t,role:a===tk?null:"rowgroup",ownerState:l},i))})}));function ok(e){return Vo("MuiTableCell",e)}var rk=jo("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),ak=Zi("td",{name:"MuiTableCell",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["size".concat(En(n.size))],"normal"!==n.padding&&t["padding".concat(En(n.padding))],"inherit"!==n.align&&t["align".concat(En(n.align))],n.stickyHeader&&t.stickyHeader]}})((function(e){var t=e.theme,n=e.ownerState;return L({},t.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?"1px solid ".concat(t.vars.palette.TableCell.border):"1px solid\n ".concat("light"===t.palette.mode?Br(Or(t.palette.divider,1),.88):Lr(Or(t.palette.divider,1),.68)),textAlign:"left",padding:16},"head"===n.variant&&{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium},"body"===n.variant&&{color:(t.vars||t).palette.text.primary},"footer"===n.variant&&{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)},"small"===n.size&&E({padding:"6px 16px"},"&.".concat(rk.paddingCheckbox),{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}),"checkbox"===n.padding&&{width:48,padding:"0 0 0 4px"},"none"===n.padding&&{padding:0},"left"===n.align&&{textAlign:"left"},"center"===n.align&&{textAlign:"center"},"right"===n.align&&{textAlign:"right",flexDirection:"row-reverse"},"justify"===n.align&&{textAlign:"justify"},n.stickyHeader&&{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default})})),ik=r.forwardRef((function(e,t){var n,o=gl({props:e,name:"MuiTableCell"}),a=o.align,i=void 0===a?"inherit":a,l=o.className,s=o.component,c=o.padding,u=o.scope,d=o.size,p=o.sortDirection,f=o.variant,v=B(o,["align","className","component","padding","scope","size","sortDirection","variant"]),m=r.useContext(UC),h=r.useContext(YC),g=h&&"head"===h.variant,b=u;"td"===(n=s||(g?"th":"td"))?b=void 0:!b&&g&&(b="col");var y=f||h&&h.variant,x=L({},o,{align:i,component:n,padding:c||(m&&m.padding?m.padding:"normal"),size:d||(m&&m.size?m.size:"medium"),sortDirection:p,stickyHeader:"head"===y&&m&&m.stickyHeader,variant:y}),w=function(e){var t=e.classes,n=e.variant,o=e.align,r=e.padding,a=e.size;return xa({root:["root",n,e.stickyHeader&&"stickyHeader","inherit"!==o&&"align".concat(En(o)),"normal"!==r&&"padding".concat(En(r)),"size".concat(En(a))]},ok,t)}(x),S=null;return p&&(S="asc"===p?"ascending":"descending"),sn(ak,L({as:n,ref:t,className:Wo(w.root,l),"aria-sort":S,scope:b,ownerState:x},v))})),lk=ik;function sk(e){return Vo("MuiTableContainer",e)}var ck=jo("MuiTableContainer",["root"]),uk=Zi("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,t){return t.root}})({width:"100%",overflowX:"auto"}),dk=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableContainer"}),o=n.className,r=n.component,a=void 0===r?"div":r,i=B(n,["className","component"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},sk,e.classes)}(l);return sn(uk,L({ref:t,as:a,className:Wo(s.root,o),ownerState:l},i))}));function pk(e){return Vo("MuiTableFooter",e)}var fk=jo("MuiTableFooter",["root"]),vk=Zi("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"table-footer-group"}),mk={variant:"footer"},hk="tfoot",gk=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableFooter"}),o=n.className,r=n.component,a=void 0===r?hk:r,i=B(n,["className","component"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},pk,e.classes)}(l);return sn(YC.Provider,{value:mk,children:sn(vk,L({as:a,className:Wo(s.root,o),ref:t,role:a===hk?null:"rowgroup",ownerState:l},i))})}));function bk(e){return Vo("MuiTableHead",e)}var yk=jo("MuiTableHead",["root"]),xk=Zi("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"table-header-group"}),wk={variant:"head"},Sk="thead",Ck=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableHead"}),o=n.className,r=n.component,a=void 0===r?Sk:r,i=B(n,["className","component"]),l=L({},n,{component:a}),s=function(e){return xa({root:["root"]},bk,e.classes)}(l);return sn(YC.Provider,{value:wk,children:sn(xk,L({as:a,className:Wo(s.root,o),ref:t,role:a===Sk?null:"rowgroup",ownerState:l},i))})}));function kk(e){return Vo("MuiToolbar",e)}var Rk=jo("MuiToolbar",["root","gutters","regular","dense"]),Mk=Zi("div",{name:"MuiToolbar",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return L({position:"relative",display:"flex",alignItems:"center"},!n.disableGutters&&E({paddingLeft:t.spacing(2),paddingRight:t.spacing(2)},t.breakpoints.up("sm"),{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}),"dense"===n.variant&&{minHeight:48})}),(function(e){var t=e.theme;return"regular"===e.ownerState.variant&&t.mixins.toolbar})),Pk=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiToolbar"}),o=n.className,r=n.component,a=void 0===r?"div":r,i=n.disableGutters,l=void 0!==i&&i,s=n.variant,c=void 0===s?"regular":s,u=B(n,["className","component","disableGutters","variant"]),d=L({},n,{component:a,disableGutters:l,variant:c}),p=function(e){var t=e.classes;return xa({root:["root",!e.disableGutters&&"gutters",e.variant]},kk,t)}(d);return sn(Mk,L({as:a,className:Wo(p.root,o),ref:t,ownerState:d},u))})),Ik=Cl(sn("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),Tk=Cl(sn("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),Ak=r.forwardRef((function(e,t){var n,o,r,a,i,l,s,c,u=e.backIconButtonProps,d=e.count,p=e.disabled,f=void 0!==p&&p,v=e.getItemAriaLabel,m=e.nextIconButtonProps,h=e.onPageChange,g=e.page,b=e.rowsPerPage,y=e.showFirstButton,x=e.showLastButton,w=e.slots,S=void 0===w?{}:w,C=e.slotProps,k=void 0===C?{}:C,R=B(e,["backIconButtonProps","count","disabled","getItemAriaLabel","nextIconButtonProps","onPageChange","page","rowsPerPage","showFirstButton","showLastButton","slots","slotProps"]),M=Na(),P=null!=(n=S.firstButton)?n:qs,I=null!=(o=S.lastButton)?o:qs,T=null!=(r=S.nextButton)?r:qs,A=null!=(a=S.previousButton)?a:qs,O=null!=(i=S.firstButtonIcon)?i:Wy,E=null!=(l=S.lastButtonIcon)?l:Hy,N=null!=(s=S.nextButtonIcon)?s:Tk,z=null!=(c=S.previousButtonIcon)?c:Ik,F=M?I:P,D=M?T:A,W=M?A:T,H=M?P:I,V=M?k.lastButton:k.firstButton,j=M?k.nextButton:k.previousButton,U=M?k.previousButton:k.nextButton,G=M?k.firstButton:k.lastButton;return cn("div",L({ref:t},R,{children:[y&&sn(F,L({onClick:function(e){h(e,0)},disabled:f||0===g,"aria-label":v("first",g),title:v("first",g)},V,{children:M?sn(E,L({},k.lastButtonIcon)):sn(O,L({},k.firstButtonIcon))})),sn(D,L({onClick:function(e){h(e,g-1)},disabled:f||0===g,color:"inherit","aria-label":v("previous",g),title:v("previous",g)},null!=j?j:u,{children:M?sn(N,L({},k.nextButtonIcon)):sn(z,L({},k.previousButtonIcon))})),sn(W,L({onClick:function(e){h(e,g+1)},disabled:f||-1!==d&&g>=Math.ceil(d/b)-1,color:"inherit","aria-label":v("next",g),title:v("next",g)},null!=U?U:m,{children:M?sn(z,L({},k.previousButtonIcon)):sn(N,L({},k.nextButtonIcon))})),x&&sn(H,L({onClick:function(e){h(e,Math.max(0,Math.ceil(d/b)-1))},disabled:f||g>=Math.ceil(d/b)-1,"aria-label":v("last",g),title:v("last",g)},G,{children:M?sn(O,L({},k.firstButtonIcon)):sn(E,L({},k.lastButtonIcon))}))]}))}));function Ok(e){return Vo("MuiTablePagination",e)}var Ek,Lk=jo("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]),Nk=Zi(lk,{name:"MuiTablePagination",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme;return{overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}}})),Bk=Zi(Pk,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:function(e,t){return L(E({},"& .".concat(Lk.actions),t.actions),t.toolbar)}})((function(e){var t=e.theme;return E(E(E({minHeight:52,paddingRight:2},"".concat(t.breakpoints.up("xs")," and (orientation: landscape)"),{minHeight:52}),t.breakpoints.up("sm"),{minHeight:52,paddingRight:2}),"& .".concat(Lk.actions),{flexShrink:0,marginLeft:20})})),zk=Zi("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:function(e,t){return t.spacer}})({flex:"1 1 100%"}),Fk=Zi("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:function(e,t){return t.selectLabel}})((function(e){return L({},e.theme.typography.body2,{flexShrink:0})})),Dk=Zi(Qx,{name:"MuiTablePagination",slot:"Select",overridesResolver:function(e,t){return L(E(E({},"& .".concat(Lk.selectIcon),t.selectIcon),"& .".concat(Lk.select),t.select),t.input,t.selectRoot)}})(E({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8},"& .".concat(Lk.select),{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"})),Wk=Zi(iy,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:function(e,t){return t.menuItem}})({}),Hk=Zi("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:function(e,t){return t.displayedRows}})((function(e){return L({},e.theme.typography.body2,{flexShrink:0})}));function Vk(e){var t=e.from,n=e.to,o=e.count;return"".concat(t,"–").concat(n," of ").concat(-1!==o?o:"more than ".concat(n))}function jk(e){return"Go to ".concat(e," page")}var Uk=r.forwardRef((function(e,n){var o,r,a=gl({props:e,name:"MuiTablePagination"}),i=a.ActionsComponent,l=void 0===i?Ak:i,s=a.backIconButtonProps,c=a.className,u=a.colSpan,d=a.component,p=void 0===d?lk:d,f=a.count,v=a.disabled,m=void 0!==v&&v,h=a.getItemAriaLabel,g=void 0===h?jk:h,b=a.labelDisplayedRows,y=void 0===b?Vk:b,x=a.labelRowsPerPage,w=void 0===x?"Rows per page:":x,S=a.nextIconButtonProps,C=a.onPageChange,k=a.onRowsPerPageChange,R=a.page,M=a.rowsPerPage,P=a.rowsPerPageOptions,I=void 0===P?[10,25,50,100]:P,T=a.SelectProps,A=void 0===T?{}:T,O=a.showFirstButton,E=void 0!==O&&O,N=a.showLastButton,z=void 0!==N&&N,F=a.slotProps,D=void 0===F?{}:F,W=a.slots,H=void 0===W?{}:W,V=B(a,["ActionsComponent","backIconButtonProps","className","colSpan","component","count","disabled","getItemAriaLabel","labelDisplayedRows","labelRowsPerPage","nextIconButtonProps","onPageChange","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","SelectProps","showFirstButton","showLastButton","slotProps","slots"]),j=a,U=function(e){return xa({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},Ok,e.classes)}(j),G=null!=(o=null==D?void 0:D.select)?o:A,_=G.native?"option":Wk;p!==lk&&"td"!==p||(r=u||1e3);var q=Kr(G.id),K=Kr(G.labelId);return sn(Nk,L({colSpan:r,ref:n,as:p,ownerState:j,className:Wo(U.root,c)},V,{children:cn(Bk,{className:U.toolbar,children:[sn(zk,{className:U.spacer}),I.length>1&&sn(Fk,{className:U.selectLabel,id:K,children:w}),I.length>1&&sn(Dk,L({variant:"standard"},!G.variant&&{input:Ek||(Ek=sn(Ad,{}))},{value:M,onChange:k,id:q,labelId:K},G,{classes:L({},G.classes,{root:Wo(U.input,U.selectRoot,(G.classes||{}).root),select:Wo(U.select,(G.classes||{}).select),icon:Wo(U.selectIcon,(G.classes||{}).icon)}),disabled:m,children:I.map((function(e){return t.createElement(_,L({},!wa(_)&&{ownerState:j},{className:U.menuItem,key:e.label?e.label:e,value:e.value?e.value:e}),e.label?e.label:e)}))})),sn(Hk,{className:U.displayedRows,children:y({from:0===f?0:R*M+1,to:-1===f?(R+1)*M:-1===M?f:Math.min(f,(R+1)*M),count:-1===f?-1:f,page:R})}),sn(l,{className:U.actions,backIconButtonProps:s,count:f,nextIconButtonProps:S,onPageChange:C,page:R,rowsPerPage:M,showFirstButton:E,showLastButton:z,slotProps:D.actions,slots:H.actions,getItemAriaLabel:g,disabled:m})]})}))}));function Gk(e){return Vo("MuiTableRow",e)}var _k=jo("MuiTableRow",["root","selected","hover","head","footer"]),qk=Zi("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.head&&t.head,n.footer&&t.footer]}})((function(e){var t=e.theme;return E(E({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0},"&.".concat(_k.hover,":hover"),{backgroundColor:(t.vars||t).palette.action.hover}),"&.".concat(_k.selected),{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):Or(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):Or(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}})})),Kk=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableRow"}),o=n.className,a=n.component,i=void 0===a?"tr":a,l=n.hover,s=void 0!==l&&l,c=n.selected,u=void 0!==c&&c,d=B(n,["className","component","hover","selected"]),p=r.useContext(YC),f=L({},n,{component:i,hover:s,selected:u,head:p&&"head"===p.variant,footer:p&&"footer"===p.variant}),v=function(e){var t=e.classes;return xa({root:["root",e.selected&&"selected",e.hover&&"hover",e.head&&"head",e.footer&&"footer"]},Gk,t)}(f);return sn(qk,L({as:i,ref:t,className:Wo(v.root,o),role:"tr"===i?null:"row",ownerState:f},d))})),$k=Kk,Xk=Cl(sn("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function Yk(e){return Vo("MuiTableSortLabel",e)}var Zk=jo("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc"]),Jk=Zi(Ls,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.active&&t.active]}})((function(e){var t=e.theme;return E({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(t.vars||t).palette.text.secondary},"&:hover":E({color:(t.vars||t).palette.text.secondary},"& .".concat(Zk.icon),{opacity:.5})},"&.".concat(Zk.active),E({color:(t.vars||t).palette.text.primary},"& .".concat(Zk.icon),{opacity:1,color:(t.vars||t).palette.text.secondary}))})),Qk=Zi("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,t["iconDirection".concat(En(n.direction))]]}})((function(e){var t=e.theme,n=e.ownerState;return L({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:t.transitions.create(["opacity","transform"],{duration:t.transitions.duration.shorter}),userSelect:"none"},"desc"===n.direction&&{transform:"rotate(0deg)"},"asc"===n.direction&&{transform:"rotate(180deg)"})})),eR=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTableSortLabel"}),o=n.active,r=void 0!==o&&o,a=n.children,i=n.className,l=n.direction,s=void 0===l?"asc":l,c=n.hideSortIcon,u=void 0!==c&&c,d=n.IconComponent,p=void 0===d?Xk:d,f=B(n,["active","children","className","direction","hideSortIcon","IconComponent"]),v=L({},n,{active:r,direction:s,hideSortIcon:u,IconComponent:p}),m=function(e){var t=e.classes,n=e.direction;return xa({root:["root",e.active&&"active"],icon:["icon","iconDirection".concat(En(n))]},Yk,t)}(v);return cn(Jk,L({className:Wo(m.root,i),component:"span",disableRipple:!0,ownerState:v,ref:t},f,{children:[a,u&&!r?null:sn(Qk,{as:p,className:Wo(m.icon),ownerState:v})]}))}));function tR(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}var nR={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function oR(e){return Vo("MuiTabScrollButton",e)}var rR=jo("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),aR=Zi(Ls,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.orientation&&t[n.orientation]]}})((function(e){var t=e.ownerState;return L(E({width:40,flexShrink:0,opacity:.8},"&.".concat(rR.disabled),{opacity:0}),"vertical"===t.orientation&&{width:"100%",height:40,"& svg":{transform:"rotate(".concat(t.isRtl?-90:90,"deg)")}})})),iR=r.forwardRef((function(e,t){var n,o,r=gl({props:e,name:"MuiTabScrollButton"}),a=r.className,i=r.slots,l=void 0===i?{}:i,s=r.slotProps,c=void 0===s?{}:s,u=r.direction;r.orientation,r.disabled;var d=B(r,["className","slots","slotProps","direction","orientation","disabled"]),p=L({isRtl:Na()},r),f=function(e){var t=e.classes;return xa({root:["root",e.orientation,e.disabled&&"disabled"]},oR,t)}(p),v=null!=(n=l.StartScrollButtonIcon)?n:Ik,m=null!=(o=l.EndScrollButtonIcon)?o:Tk,h=Pa({elementType:v,externalSlotProps:c.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:p}),g=Pa({elementType:m,externalSlotProps:c.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:p});return sn(aR,L({component:"div",className:Wo(f.root,a),ref:t,role:null,ownerState:p,tabIndex:null},d,{children:"left"===u?sn(v,L({},h)):sn(m,L({},g))}))}));function lR(e){return Vo("MuiTabs",e)}var sR=jo("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),cR=function(e,t){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild},uR=function(e,t){return e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild},dR=function(e,t,n){for(var o=!1,r=n(e,t);r;){if(r===e.firstChild){if(o)return;o=!0}var a=r.disabled||"true"===r.getAttribute("aria-disabled");if(r.hasAttribute("tabindex")&&!a)return void r.focus();r=n(e,r)}},pR=Zi("div",{name:"MuiTabs",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(sR.scrollButtons),t.scrollButtons),E({},"& .".concat(sR.scrollButtons),n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile),t.root,n.vertical&&t.vertical]}})((function(e){var t=e.ownerState,n=e.theme;return L({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},t.vertical&&{flexDirection:"column"},t.scrollButtonsHideMobile&&E({},"& .".concat(sR.scrollButtons),E({},n.breakpoints.down("sm"),{display:"none"})))})),fR=Zi("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:function(e,t){var n=e.ownerState;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})((function(e){var t=e.ownerState;return L({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},t.fixed&&{overflowX:"hidden",width:"100%"},t.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},t.scrollableX&&{overflowX:"auto",overflowY:"hidden"},t.scrollableY&&{overflowY:"auto",overflowX:"hidden"})})),vR=Zi("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:function(e,t){var n=e.ownerState;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})((function(e){var t=e.ownerState;return L({display:"flex"},t.vertical&&{flexDirection:"column"},t.centered&&{justifyContent:"center"})})),mR=Zi("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:function(e,t){return t.indicator}})((function(e){var t=e.ownerState,n=e.theme;return L({position:"absolute",height:2,bottom:0,width:"100%",transition:n.transitions.create()},"primary"===t.indicatorColor&&{backgroundColor:(n.vars||n).palette.primary.main},"secondary"===t.indicatorColor&&{backgroundColor:(n.vars||n).palette.secondary.main},t.vertical&&{height:"100%",width:2,right:0})})),hR=Zi((function(e){var t=e.onChange,n=B(e,["onChange"]),o=r.useRef(),a=r.useRef(null),i=function(){o.current=a.current.offsetHeight-a.current.clientHeight};return gr((function(){var e=Hr((function(){var e=o.current;i(),e!==o.current&&t(o.current)})),n=Ur(a.current);return n.addEventListener("resize",e),function(){e.clear(),n.removeEventListener("resize",e)}}),[t]),r.useEffect((function(){i(),t(o.current)}),[t]),sn("div",L({style:nR,ref:a},n))}))({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),gR={},bR=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTabs"}),o=$i(),a=Na(),i=n["aria-label"],l=n["aria-labelledby"],s=n.action,c=n.centered,u=void 0!==c&&c,d=n.children,p=n.className,f=n.component,v=void 0===f?"div":f,m=n.allowScrollButtonsMobile,h=void 0!==m&&m,g=n.indicatorColor,b=void 0===g?"primary":g,y=n.onChange,x=n.orientation,w=void 0===x?"horizontal":x,S=n.ScrollButtonComponent,C=void 0===S?iR:S,k=n.scrollButtons,R=void 0===k?"auto":k,M=n.selectionFollowsFocus,P=n.slots,I=void 0===P?{}:P,T=n.slotProps,A=void 0===T?{}:T,O=n.TabIndicatorProps,N=void 0===O?{}:O,z=n.TabScrollButtonProps,F=void 0===z?{}:z,D=n.textColor,W=void 0===D?"primary":D,H=n.value,V=n.variant,j=void 0===V?"standard":V,U=n.visibleScrollbar,G=void 0!==U&&U,_=B(n,["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"]),q="scrollable"===j,K="vertical"===w,$=K?"scrollTop":"scrollLeft",X=K?"top":"left",Y=K?"bottom":"right",Z=K?"clientHeight":"clientWidth",J=K?"height":"width",Q=L({},n,{component:v,allowScrollButtonsMobile:h,indicatorColor:b,orientation:w,vertical:K,scrollButtons:R,textColor:W,variant:j,visibleScrollbar:G,fixed:!q,hideScrollbar:q&&!G,scrollableX:q&&!K,scrollableY:q&&K,centered:u&&!q,scrollButtonsHideMobile:!h}),ee=function(e){var t=e.vertical,n=e.fixed,o=e.hideScrollbar,r=e.scrollableX;return xa({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",o&&"hideScrollbar",r&&"scrollableX",e.scrollableY&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",e.centered&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",e.scrollButtonsHideMobile&&"scrollButtonsHideMobile"],scrollableX:[r&&"scrollableX"],hideScrollbar:[o&&"hideScrollbar"]},lR,e.classes)}(Q),te=Pa({elementType:I.StartScrollButtonIcon,externalSlotProps:A.startScrollButtonIcon,ownerState:Q}),ne=Pa({elementType:I.EndScrollButtonIcon,externalSlotProps:A.endScrollButtonIcon,ownerState:Q}),oe=r.useState(!1),re=oe[0],ae=oe[1],ie=r.useState(gR),le=ie[0],se=ie[1],ce=r.useState(!1),ue=ce[0],de=ce[1],pe=r.useState(!1),fe=pe[0],ve=pe[1],me=r.useState(!1),he=me[0],ge=me[1],be=r.useState({overflow:"hidden",scrollbarWidth:0}),ye=be[0],xe=be[1],we=new Map,Se=r.useRef(null),Ce=r.useRef(null),ke=function(){var e,t,n=Se.current;if(n){var o=n.getBoundingClientRect();e={clientWidth:n.clientWidth,scrollLeft:n.scrollLeft,scrollTop:n.scrollTop,scrollLeftNormalized:ha(n,a?"rtl":"ltr"),scrollWidth:n.scrollWidth,top:o.top,bottom:o.bottom,left:o.left,right:o.right}}if(n&&!1!==H){var r=Ce.current.children;if(r.length>0){var i=r[we.get(H)];t=i?i.getBoundingClientRect():null}}return{tabsMeta:e,tabMeta:t}},Re=Xr((function(){var e,t=ke(),n=t.tabsMeta,o=t.tabMeta,r=0;if(K)e="top",o&&n&&(r=o.top-n.top+n.scrollTop);else if(e=a?"right":"left",o&&n){var i=a?n.scrollLeftNormalized+n.clientWidth-n.scrollWidth:n.scrollLeft;r=(a?-1:1)*(o[e]-n[e]+i)}var l=E(E({},e,r),J,o?o[J]:0);if(isNaN(le[e])||isNaN(le[J]))se(l);else{var s=Math.abs(le[e]-l[e]),c=Math.abs(le[J]-l[J]);(s>=1||c>=1)&&se(l)}})),Me=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).animation;void 0===t||t?function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},a=o.ease,i=void 0===a?tR:a,l=o.duration,s=void 0===l?300:l,c=null,u=t[e],d=!1,p=function(){d=!0};u===n?r(new Error("Element already at target position")):requestAnimationFrame((function o(a){if(d)r(new Error("Animation cancelled"));else{null===c&&(c=a);var l=Math.min(1,(a-c)/s);t[e]=i(l)*(n-u)+u,l>=1?requestAnimationFrame((function(){r(null)})):requestAnimationFrame(o)}}))}($,Se.current,e,{duration:o.transitions.duration.standard}):Se.current[$]=e},Pe=function(e){var t=Se.current[$];K?t+=e:(t+=e*(a?-1:1),t*=a&&"reverse"===ma()?-1:1),Me(t)},Ie=function(){for(var e=Se.current[Z],t=0,n=Array.from(Ce.current.children),o=0;oe){0===o&&(t=e);break}t+=r[Z]}return t},Te=function(){Pe(-1*Ie())},Ae=function(){Pe(Ie())},Oe=r.useCallback((function(e){xe({overflow:null,scrollbarWidth:e})}),[]),Ee=Xr((function(e){var t=ke(),n=t.tabsMeta,o=t.tabMeta;if(o&&n)if(o[X]n[Y]){var a=n[$]+(o[Y]-n[Y]);Me(a,{animation:e})}})),Le=Xr((function(){q&&!1!==R&&ge(!he)}));r.useEffect((function(){var e,t,n=Hr((function(){Se.current&&Re()})),o=Ur(Se.current);return o.addEventListener("resize",n),"undefined"!=typeof ResizeObserver&&(e=new ResizeObserver(n),Array.from(Ce.current.children).forEach((function(t){e.observe(t)}))),"undefined"!=typeof MutationObserver&&(t=new MutationObserver((function(t){t.forEach((function(t){t.removedNodes.forEach((function(t){var n;null==(n=e)||n.unobserve(t)})),t.addedNodes.forEach((function(t){var n;null==(n=e)||n.observe(t)}))})),n(),Le()}))).observe(Ce.current,{childList:!0}),function(){var r,a;n.clear(),o.removeEventListener("resize",n),null==(r=t)||r.disconnect(),null==(a=e)||a.disconnect()}}),[Re,Le]),r.useEffect((function(){var e=Array.from(Ce.current.children),t=e.length;if("undefined"!=typeof IntersectionObserver&&t>0&&q&&!1!==R){var n=e[0],o=e[t-1],r={root:Se.current,threshold:.99},a=new IntersectionObserver((function(e){de(!e[0].isIntersecting)}),r);a.observe(n);var i=new IntersectionObserver((function(e){ve(!e[0].isIntersecting)}),r);return i.observe(o),function(){a.disconnect(),i.disconnect()}}}),[q,R,he,null==d?void 0:d.length]),r.useEffect((function(){ae(!0)}),[]),r.useEffect((function(){Re()})),r.useEffect((function(){Ee(gR!==le)}),[Ee,le]),r.useImperativeHandle(s,(function(){return{updateIndicator:Re,updateScrollButtons:Le}}),[Re,Le]);var Ne=sn(mR,L({},N,{className:Wo(ee.indicator,N.className),ownerState:Q,style:L({},le,N.style)})),Be=0,ze=r.Children.map(d,(function(e){if(!r.isValidElement(e))return null;var t=void 0===e.props.value?Be:e.props.value;we.set(t,Be);var n=t===H;return Be+=1,r.cloneElement(e,L({fullWidth:"fullWidth"===j,indicator:n&&!re&&Ne,selected:n,selectionFollowsFocus:M,onChange:y,textColor:W,value:t},1!==Be||!1!==H||e.props.tabIndex?{}:{tabIndex:0}))})),Fe=function(){var e={};e.scrollbarSizeListener=q?sn(hR,{onChange:Oe,className:Wo(ee.scrollableX,ee.hideScrollbar)}):null;var t=q&&("auto"===R&&(ue||fe)||!0===R);return e.scrollButtonStart=t?sn(C,L({slots:{StartScrollButtonIcon:I.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:te},orientation:w,direction:a?"right":"left",onClick:Te,disabled:!ue},F,{className:Wo(ee.scrollButtons,F.className)})):null,e.scrollButtonEnd=t?sn(C,L({slots:{EndScrollButtonIcon:I.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:ne},orientation:w,direction:a?"left":"right",onClick:Ae,disabled:!fe},F,{className:Wo(ee.scrollButtons,F.className)})):null,e}();return cn(pR,L({className:Wo(ee.root,p),ownerState:Q,ref:t,as:v},_,{children:[Fe.scrollButtonStart,Fe.scrollbarSizeListener,cn(fR,{className:ee.scroller,ownerState:Q,style:E({overflow:ye.overflow},K?"margin".concat(a?"Left":"Right"):"marginBottom",G?void 0:-ye.scrollbarWidth),ref:Se,children:[sn(vR,{"aria-label":i,"aria-labelledby":l,"aria-orientation":"vertical"===w?"vertical":null,className:ee.flexContainer,ownerState:Q,onKeyDown:function(e){var t=Ce.current,n=jr(t).activeElement;if("tab"===n.getAttribute("role")){var o="horizontal"===w?"ArrowLeft":"ArrowUp",r="horizontal"===w?"ArrowRight":"ArrowDown";switch("horizontal"===w&&a&&(o="ArrowRight",r="ArrowLeft"),e.key){case o:e.preventDefault(),dR(t,n,uR);break;case r:e.preventDefault(),dR(t,n,cR);break;case"Home":e.preventDefault(),dR(t,null,cR);break;case"End":e.preventDefault(),dR(t,null,uR)}}},ref:Ce,role:"tablist",children:ze}),re&&Ne]}),Fe.scrollButtonEnd]}))})),yR=bR;function xR(e){return Vo("MuiTextField",e)}var wR=jo("MuiTextField",["root"]),SR={standard:xg,filled:_m,outlined:Ly},CR=Zi(Ym,{name:"MuiTextField",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),kR=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiTextField"}),o=n.autoComplete,r=n.autoFocus,a=void 0!==r&&r,i=n.children,l=n.className,s=n.color,c=void 0===s?"primary":s,u=n.defaultValue,d=n.disabled,p=void 0!==d&&d,f=n.error,v=void 0!==f&&f,m=n.FormHelperTextProps,h=n.fullWidth,g=void 0!==h&&h,b=n.helperText,y=n.id,x=n.InputLabelProps,w=n.inputProps,S=n.InputProps,C=n.inputRef,k=n.label,R=n.maxRows,M=n.minRows,P=n.multiline,I=void 0!==P&&P,T=n.name,A=n.onBlur,O=n.onChange,E=n.onFocus,N=n.placeholder,z=n.required,F=void 0!==z&&z,D=n.rows,W=n.select,H=void 0!==W&&W,V=n.SelectProps,j=n.type,U=n.value,G=n.variant,_=void 0===G?"outlined":G,q=B(n,["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"]),K=L({},n,{autoFocus:a,color:c,disabled:p,error:v,fullWidth:g,multiline:I,required:F,select:H,variant:_}),$=function(e){return xa({root:["root"]},xR,e.classes)}(K),X={};"outlined"===_&&(x&&void 0!==x.shrink&&(X.notched=x.shrink),X.label=k),H&&(V&&V.native||(X.id=void 0),X["aria-describedby"]=void 0);var Y=Kr(y),Z=b&&Y?"".concat(Y,"-helper-text"):void 0,J=k&&Y?"".concat(Y,"-label"):void 0,Q=sn(SR[_],L({"aria-describedby":Z,autoComplete:o,autoFocus:a,defaultValue:u,fullWidth:g,multiline:I,name:T,rows:D,maxRows:R,minRows:M,type:j,value:U,id:Y,inputRef:C,onBlur:A,onChange:O,onFocus:E,placeholder:N,inputProps:w},X,S));return cn(CR,L({className:Wo($.root,l),disabled:p,error:v,fullWidth:g,ref:t,required:F,color:c,variant:_,ownerState:K},q,{children:[null!=k&&""!==k&&sn(Tg,L({htmlFor:Y,id:J},x,{children:k})),H?sn(Qx,L({"aria-describedby":Z,id:Y,labelId:J,value:U,input:Q},V,{children:i})):Q,b&&sn(fh,L({id:Z},m,{children:b}))]}))})),RR=kR;function MR(e){return Vo("MuiToggleButton",e)}var PR=jo("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),IR=r.createContext({}),TR=r.createContext(void 0);function AR(e,t){return void 0!==t&&void 0!==e&&(Array.isArray(t)?t.indexOf(e)>=0:e===t)}var OR=Zi(Ls,{name:"MuiToggleButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["size".concat(En(n.size))]]}})((function(e){var t,n=e.theme,o=e.ownerState,r="standard"===o.color?n.palette.text.primary:n.palette[o.color].main;return n.vars&&(r="standard"===o.color?n.vars.palette.text.primary:n.vars.palette[o.color].main,t="standard"===o.color?n.vars.palette.text.primaryChannel:n.vars.palette[o.color].mainChannel),L({},n.typography.button,{borderRadius:(n.vars||n).shape.borderRadius,padding:11,border:"1px solid ".concat((n.vars||n).palette.divider),color:(n.vars||n).palette.action.active},o.fullWidth&&{width:"100%"},E(E(E({},"&.".concat(PR.disabled),{color:(n.vars||n).palette.action.disabled,border:"1px solid ".concat((n.vars||n).palette.action.disabledBackground)}),"&:hover",{textDecoration:"none",backgroundColor:n.vars?"rgba(".concat(n.vars.palette.text.primaryChannel," / ").concat(n.vars.palette.action.hoverOpacity,")"):Or(n.palette.text.primary,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}),"&.".concat(PR.selected),{color:r,backgroundColor:n.vars?"rgba(".concat(t," / ").concat(n.vars.palette.action.selectedOpacity,")"):Or(r,n.palette.action.selectedOpacity),"&:hover":{backgroundColor:n.vars?"rgba(".concat(t," / calc(").concat(n.vars.palette.action.selectedOpacity," + ").concat(n.vars.palette.action.hoverOpacity,"))"):Or(r,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:n.vars?"rgba(".concat(t," / ").concat(n.vars.palette.action.selectedOpacity,")"):Or(r,n.palette.action.selectedOpacity)}}}),"small"===o.size&&{padding:7,fontSize:n.typography.pxToRem(13)},"large"===o.size&&{padding:15,fontSize:n.typography.pxToRem(15)})})),ER=r.forwardRef((function(e,t){var n=r.useContext(IR),o=n.value,a=B(n,["value"]),i=r.useContext(TR),l=gl({props:vr(L({},a,{selected:AR(e.value,o)}),e),name:"MuiToggleButton"}),s=l.children,c=l.className,u=l.color,d=void 0===u?"standard":u,p=l.disabled,f=void 0!==p&&p,v=l.disableFocusRipple,m=void 0!==v&&v,h=l.fullWidth,g=void 0!==h&&h,b=l.onChange,y=l.onClick,x=l.selected,w=l.size,S=void 0===w?"medium":w,C=l.value,k=B(l,["children","className","color","disabled","disableFocusRipple","fullWidth","onChange","onClick","selected","size","value"]),R=L({},l,{color:d,disabled:f,disableFocusRipple:m,fullWidth:g,size:S}),M=function(e){var t=e.classes,n=e.fullWidth,o=e.selected,r=e.disabled,a=e.size,i=e.color;return xa({root:["root",o&&"selected",r&&"disabled",n&&"fullWidth","size".concat(En(a)),i]},MR,t)}(R),P=i||"";return sn(OR,L({className:Wo(a.className,M.root,c,P),disabled:f,focusRipple:!m,ref:t,onClick:function(e){y&&(y(e,C),e.defaultPrevented)||b&&b(e,C)},onChange:b,value:C,ownerState:R,"aria-pressed":x},k,{children:s}))})),LR=ER;function NR(e){return Vo("MuiToggleButtonGroup",e)}var BR=jo("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),zR=Zi("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[E({},"& .".concat(BR.grouped),t.grouped),E({},"& .".concat(BR.grouped),t["grouped".concat(En(n.orientation))]),E({},"& .".concat(BR.firstButton),t.firstButton),E({},"& .".concat(BR.lastButton),t.lastButton),E({},"& .".concat(BR.middleButton),t.middleButton),t.root,"vertical"===n.orientation&&t.vertical,n.fullWidth&&t.fullWidth]}})((function(e){var t=e.ownerState,n=e.theme;return L({display:"inline-flex",borderRadius:(n.vars||n).shape.borderRadius},"vertical"===t.orientation&&{flexDirection:"column"},t.fullWidth&&{width:"100%"},E({},"& .".concat(BR.grouped),L({},"horizontal"===t.orientation?E({},"&.".concat(BR.selected," + .").concat(BR.grouped,".").concat(BR.selected),{borderLeft:0,marginLeft:0}):E({},"&.".concat(BR.selected," + .").concat(BR.grouped,".").concat(BR.selected),{borderTop:0,marginTop:0}))),"horizontal"===t.orientation?E(E({},"& .".concat(BR.firstButton,",& .").concat(BR.middleButton),{borderTopRightRadius:0,borderBottomRightRadius:0}),"& .".concat(BR.lastButton,",& .").concat(BR.middleButton),{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0}):E(E({},"& .".concat(BR.firstButton,",& .").concat(BR.middleButton),{borderBottomLeftRadius:0,borderBottomRightRadius:0}),"& .".concat(BR.lastButton,",& .").concat(BR.middleButton),{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0}),"horizontal"===t.orientation?E({},"& .".concat(BR.lastButton,".").concat(PR.disabled,",& .").concat(BR.middleButton,".").concat(PR.disabled),{borderLeft:"1px solid transparent"}):E({},"& .".concat(BR.lastButton,".").concat(PR.disabled,",& .").concat(BR.middleButton,".").concat(PR.disabled),{borderTop:"1px solid transparent"}))})),FR=r.forwardRef((function(e,t){var n=gl({props:e,name:"MuiToggleButtonGroup"}),o=n.children,a=n.className,i=n.color,l=void 0===i?"standard":i,s=n.disabled,c=void 0!==s&&s,u=n.exclusive,d=void 0!==u&&u,p=n.fullWidth,f=void 0!==p&&p,v=n.onChange,m=n.orientation,h=void 0===m?"horizontal":m,g=n.size,b=void 0===g?"medium":g,y=n.value,x=B(n,["children","className","color","disabled","exclusive","fullWidth","onChange","orientation","size","value"]),w=L({},n,{disabled:c,fullWidth:f,orientation:h,size:b}),S=function(e){var t=e.classes,n=e.orientation,o=e.fullWidth,r=e.disabled;return xa({root:["root","vertical"===n&&"vertical",o&&"fullWidth"],grouped:["grouped","grouped".concat(En(n)),r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},NR,t)}(w),C=r.useCallback((function(e,t){if(v){var n,o=y&&y.indexOf(t);y&&o>=0?(n=y.slice()).splice(o,1):n=y?y.concat(t):[t],v(e,n)}}),[v,y]),k=r.useCallback((function(e,t){v&&v(e,y===t?null:t)}),[v,y]),R=r.useMemo((function(){return{className:S.grouped,onChange:d?k:C,value:y,size:b,fullWidth:f,color:l,disabled:c}}),[S.grouped,d,k,C,y,b,f,l,c]),M=ba(o),P=M.length,I=function(e){var t=0===e,n=e===P-1;return t&&n?"":t?S.firstButton:n?S.lastButton:S.middleButton};return sn(zR,L({role:"group",className:Wo(S.root,a),ref:t,ownerState:w},x,{children:sn(IR.Provider,{value:R,children:M.map((function(e,t){return sn(TR.Provider,{value:I(t),children:e},t)}))})}))})),DR=FR;function WR(e,t){var n=t.disableHysteresis,o=void 0!==n&&n,r=t.threshold,a=void 0===r?100:r,i=t.target,l=e.current;return i&&(e.current=void 0!==i.pageYOffset?i.pageYOffset:i.scrollTop),!(!o&&void 0!==l&&e.currenta}var HR="undefined"!=typeof window?window:null;var VR=Number(void 0),jR=Number(void 0),UR=Number(void 0),GR=Number(void 0)||null;e.Accordion=ls,e.AccordionActions=ds,e.AccordionDetails=ms,e.AccordionSummary=Ws,e.Alert=rc,e.AlertTitle=mc,e.AppBar=wc,e.Autocomplete=tp,e.Avatar=sp,e.AvatarGroup=vp,e.Backdrop=wp,e.Badge=Pp,e.BottomNavigation=Op,e.BottomNavigationAction=zp,e.Box=Hp,e.Breadcrumbs=Jp,e.Button=cf,e.ButtonBase=Ls,e.ButtonGroup=vf,e.ButtonGroupButtonContext=nf,e.ButtonGroupContext=tf,e.Card=bf,e.CardActionArea=Cf,e.CardActions=Pf,e.CardContent=Of,e.CardHeader=Df,e.CardMedia=_f,e.Checkbox=iv,e.Chip=dd,e.CircularProgress=xv,e.ClickAwayListener=Sv,e.Collapse=Zl,e.Container=kv,e.CssBaseline=function(e){var t=gl({props:e,name:"MuiCssBaseline"}),n=t.children,o=t.enableColorScheme,a=void 0!==o&&o;return cn(r.Fragment,{children:[sn(yd,{styles:function(e){return function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o={};n&&e.colorSchemes&&Object.entries(e.colorSchemes).forEach((function(t){var n,r=Sn(t,2),a=r[0],i=r[1];o[e.getColorSchemeSelector(a).replace(/\s*&/,"")]={colorScheme:null==(n=i.palette)?void 0:n.mode}}));var r=L({html:Mv(e,n),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:L({margin:0},Pv(e),{"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}})},o),a=null==(t=e.components)||null==(t=t.MuiCssBaseline)?void 0:t.styleOverrides;return a&&(r=[r,a]),r}(e,a)}}),n]})},e.Dialog=tm,e.DialogActions=am,e.DialogContent=dm,e.DialogContentText=mm,e.DialogTitle=gm,e.Divider=Cm,e.Drawer=zm,e.Experimental_CssVarsProvider=vl,e.Fab=Vm,e.Fade=gp,e.FilledInput=_m,e.FormControl=Ym,e.FormControlLabel=rh,e.FormGroup=sh,e.FormHelperText=fh,e.FormLabel=yh,e.FormLabelRoot=hh,e.GlobalStyles=yd,e.Grid=Ih,e.Grow=Fh,e.Hidden=function(e){var t=e.implementation,n=void 0===t?"js":t,o=e.lgDown,r=void 0!==o&&o,a=e.lgUp,i=void 0!==a&&a,l=e.mdDown,s=void 0!==l&&l,c=e.mdUp,u=void 0!==c&&c,d=e.smDown,p=void 0!==d&&d,f=e.smUp,v=void 0!==f&&f,m=e.xlDown,h=void 0!==m&&m,g=e.xlUp,b=void 0!==g&&g,y=e.xsDown,x=void 0!==y&&y,w=e.xsUp,S=void 0!==w&&w,C=B(e,["implementation","lgDown","lgUp","mdDown","mdUp","smDown","smUp","xlDown","xlUp","xsDown","xsUp"]);return sn("js"===n?jh:qh,L({lgDown:r,lgUp:i,mdDown:s,mdUp:u,smDown:p,smUp:v,xlDown:h,xlUp:b,xsDown:x,xsUp:S},C))},e.Icon=Zh,e.IconButton=qs,e.ImageList=og,e.ImageListItem=sg,e.ImageListItemBar=hg,e.Input=xg,e.InputAdornment=Rg,e.InputBase=Ad,e.InputLabel=Tg,e.LinearProgress=Kg,e.Link=eb,e.List=ab,e.ListItem=yb,e.ListItemAvatar=Cb,e.ListItemButton=db,e.ListItemIcon=Pb,e.ListItemSecondaryAction=hb,e.ListItemText=Ob,e.ListSubheader=od,e.Menu=ny,e.MenuItem=iy,e.MenuList=Fb,e.MobileStepper=vy,e.Modal=qv,e.ModalManager=Nv,e.NativeSelect=Ry,e.NoSsr=My,e.OutlinedInput=Ly,e.Pagination=Qy,e.PaginationItem=$y,e.Paper=ts,e.Popover=Kb,e.PopoverPaper=_b,e.PopoverRoot=Gb,e.Popper=Ju,e.Portal=_u,e.Radio=vx,e.RadioGroup=gx,e.Rating=Lx,e.ScopedCssBaseline=Fx,e.Select=Qx,e.Skeleton=uw,e.Slide=Mm,e.Slider=Fw,e.SliderMark=Lw,e.SliderMarkLabel=Nw,e.SliderRail=Tw,e.SliderRoot=Iw,e.SliderThumb=Ow,e.SliderTrack=Aw,e.SliderValueLabel=Ew,e.Snackbar=$w,e.SnackbarContent=Uw,e.SpeedDial=aS,e.SpeedDialAction=SS,e.SpeedDialIcon=IS,e.Stack=Jm,e.Step=FS,e.StepButton=oC,e.StepConnector=sC,e.StepContent=fC,e.StepContext=ES,e.StepIcon=_S,e.StepLabel=QS,e.Stepper=yC,e.StepperContext=AS,e.StyledEngineProvider=function(e){var t=e.injectFirst,n=e.children;return t&&an?sn(Ft,{value:an,children:n}):n},e.SvgIcon=Sl,e.SwipeableDrawer=AC,e.Switch=DC,e.THEME_ID=T,e.Tab=jC,e.TabScrollButton=iR,e.Table=XC,e.TableBody=nk,e.TableCell=lk,e.TableContainer=dk,e.TableFooter=gk,e.TableHead=Ck,e.TablePagination=Uk,e.TableRow=$k,e.TableSortLabel=eR,e.Tabs=yR,e.TextField=RR,e.TextareaAutosize=md,e.ThemeProvider=function(e){var t=e.theme,n=B(e,["theme"]),o=t[T];return sn(Ha,L({},n,{themeId:o?T:void 0,theme:o||t}))},e.ToggleButton=LR,e.ToggleButtonGroup=DR,e.Toolbar=Pk,e.Tooltip=hS,e.Typography=dc,e.Unstable_Grid2=Ah,e.Unstable_TrapFocus=Dv,e.Zoom=Zw,e.accordionActionsClasses=cs,e.accordionClasses=as,e.accordionDetailsClasses=fs,e.accordionSummaryClasses=Bs,e.adaptV4Theme=function(e){var t=e.defaultProps,n=void 0===t?{}:t,o=e.mixins,r=void 0===o?{}:o,a=e.overrides,i=void 0===a?{}:a,l=e.palette,s=void 0===l?{}:l,c=e.props,u=void 0===c?{}:c,d=e.styleOverrides,p=void 0===d?{}:d,f=L({},B(e,["defaultProps","mixins","overrides","palette","props","styleOverrides"]),{components:{}});Object.keys(n).forEach((function(e){var t=f.components[e]||{};t.defaultProps=n[e],f.components[e]=t})),Object.keys(u).forEach((function(e){var t=f.components[e]||{};t.defaultProps=u[e],f.components[e]=t})),Object.keys(p).forEach((function(e){var t=f.components[e]||{};t.styleOverrides=p[e],f.components[e]=t})),Object.keys(i).forEach((function(e){var t=f.components[e]||{};t.styleOverrides=i[e],f.components[e]=t})),f.spacing=Xn(e.spacing);var v=hn(e.breakpoints||{}),m=f.spacing;f.mixins=L({gutters:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return L({paddingLeft:m(2),paddingRight:m(2)},e,E({},v.up("sm"),L({paddingLeft:m(3),paddingRight:m(3)},e[v.up("sm")])))}},r);var h=s.type,g=s.mode,b=B(s,["type","mode"]),y=g||h||"light";return f.palette=L({text:{hint:"dark"===y?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:y,type:y},b),f},e.alertClasses=Vs,e.alertTitleClasses=fc,e.alpha=Or,e.appBarClasses=gc,e.autocompleteClasses=jd,e.avatarClasses=rp,e.avatarGroupClasses=up,e.backdropClasses=yp,e.badgeClasses=Cp,e.bottomNavigationActionClasses=Lp,e.bottomNavigationClasses=Tp,e.boxClasses=Fp,e.breadcrumbsClasses=qp,e.buttonBaseClasses=As,e.buttonClasses=ef,e.buttonGroupClasses=df,e.capitalize=En,e.cardActionAreaClasses=xf,e.cardActionsClasses=Rf,e.cardClasses=hf,e.cardContentClasses=Tf,e.cardHeaderClasses=Lf,e.cardMediaClasses=Hf,e.checkboxClasses=ev,e.chipClasses=id,e.circularProgressClasses=pv,e.collapseClasses=ql,e.colors=M,e.containerClasses=Rv,e.createChainedFunction=Wr,e.createFilterOptions=Cc,e.createMuiTheme=function(){return Vi.apply(void 0,arguments)},e.createStyles=function(e){return ji||(console.warn(["MUI: createStyles from @mui/material/styles is deprecated.","Please use @mui/styles/createStyles"].join("\n")),ji=!0),e},e.createSvgIcon=Cl,e.createTheme=Vi,e.css=jt,e.darkScrollbar=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Iv;return{scrollbarColor:"".concat(e.thumb," ").concat(e.track),"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:e.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:e.thumb,minHeight:24,border:"3px solid ".concat(e.track)},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:e.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:e.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:e.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:e.track}}},e.darken=Lr,e.debounce=Hr,e.decomposeColor=Rr,e.deprecatedPropType=function(e,t){return function(){return null}},e.dialogActionsClasses=om,e.dialogClasses=$v,e.dialogContentClasses=lm,e.dialogContentTextClasses=fm,e.dialogTitleClasses=cm,e.dividerClasses=ym,e.drawerClasses=Im,e.duration=Fi,e.easing=zi,e.emphasize=Fr,e.experimentalStyled=Zi,e.experimental_extendTheme=al,e.experimental_sx=function(){throw new Error(I(20))},e.fabClasses=Dm,e.filledInputClasses=zd,e.formControlClasses=Km,e.formControlLabelClasses=th,e.formGroupClasses=ih,e.formHelperTextClasses=dh,e.formLabelClasses=mh,e.generateUtilityClass=Vo,e.generateUtilityClasses=jo,e.getAccordionActionsUtilityClass=ss,e.getAccordionDetailsUtilityClass=ps,e.getAccordionSummaryUtilityClass=Ns,e.getAccordionUtilityClass=rs,e.getAlertTitleUtilityClass=pc,e.getAlertUtilityClass=Hs,e.getAppBarUtilityClass=hc,e.getAutocompleteUtilityClass=Dd,e.getAvatarGroupUtilityClass=cp,e.getAvatarUtilityClass=op,e.getBackdropUtilityClass=bp,e.getBadgeUtilityClass=Sp,e.getBottomNavigationActionUtilityClass=Ep,e.getBottomNavigationUtilityClass=Ip,e.getBreadcrumbsUtilityClass=_p,e.getButtonBaseUtilityClass=Ts,e.getButtonGroupUtilityClass=uf,e.getButtonUtilityClass=Qp,e.getCardActionAreaUtilityClass=yf,e.getCardActionsUtilityClass=kf,e.getCardContentUtilityClass=If,e.getCardHeaderUtilityClass=Ef,e.getCardMediaUtilityClass=Wf,e.getCardUtilityClass=mf,e.getCheckboxUtilityClass=Qf,e.getChipUtilityClass=ad,e.getCircularProgressUtilityClass=lv,e.getCollapseUtilityClass=_l,e.getContainerUtilityClass=function(e){return Vo("MuiContainer",e)},e.getContrastRatio=Ar,e.getDialogActionsUtilityClass=nm,e.getDialogContentTextUtilityClass=pm,e.getDialogContentUtilityClass=im,e.getDialogTitleUtilityClass=sm,e.getDialogUtilityClass=Kv,e.getDividerUtilityClass=bm,e.getDrawerUtilityClass=Pm,e.getFabUtilityClass=Fm,e.getFilledInputUtilityClass=Bd,e.getFormControlLabelUtilityClasses=eh,e.getFormControlUtilityClasses=qm,e.getFormGroupUtilityClass=ah,e.getFormHelperTextUtilityClasses=ch,e.getFormLabelUtilityClasses=vh,e.getGrid2UtilityClass=function(e){return Vo("MuiGrid2",e)},e.getGridUtilityClass=wh,e.getIconButtonUtilityClass=js,e.getIconUtilityClass=Kh,e.getImageListItemBarUtilityClass=cg,e.getImageListItemUtilityClass=rg,e.getImageListUtilityClass=Jh,e.getInitColorSchemeScript=hl,e.getInputAdornmentUtilityClass=wg,e.getInputBaseUtilityClass=Sd,e.getInputLabelUtilityClasses=Mg,e.getInputUtilityClass=Od,e.getLinearProgressUtilityClass=Ag,e.getLinkUtilityClass=$g,e.getListItemAvatarUtilityClass=xb,e.getListItemButtonUtilityClass=sb,e.getListItemIconUtilityClass=kb,e.getListItemSecondaryActionClassesUtilityClass=pb,e.getListItemTextUtilityClass=Ib,e.getListItemUtilityClass=ib,e.getListSubheaderUtilityClass=Qu,e.getListUtilityClass=nb,e.getLuminance=Tr,e.getMenuItemUtilityClass=oy,e.getMenuUtilityClass=$b,e.getMobileStepperUtilityClass=ly,e.getModalUtilityClass=Vv,e.getNativeSelectUtilityClasses=my,e.getOffsetLeft=Vb,e.getOffsetTop=Hb,e.getOutlinedInputUtilityClass=Ld,e.getOverlayAlpha=Qi,e.getPaginationItemUtilityClass=Fy,e.getPaginationUtilityClass=Ny,e.getPaperUtilityClass=Jl,e.getPopoverUtilityClass=Db,e.getPopperUtilityClass=qu,e.getRadioGroupUtilityClass=mx,e.getRadioUtilityClass=sx,e.getRatingUtilityClass=xx,e.getScopedCssBaselineUtilityClass=Nx,e.getSelectUtilityClasses=Dx,e.getSkeletonUtilityClass=ew,e.getSliderUtilityClass=Rw,e.getSnackbarContentUtilityClass=Dw,e.getSnackbarUtilityClass=Gw,e.getSpeedDialActionUtilityClass=gS,e.getSpeedDialIconUtilityClass=kS,e.getSpeedDialUtilityClass=Jw,e.getStepButtonUtilityClass=eC,e.getStepConnectorUtilityClass=rC,e.getStepContentUtilityClass=cC,e.getStepIconUtilityClass=HS,e.getStepLabelUtilityClass=qS,e.getStepUtilityClass=LS,e.getStepperUtilityClass=vC,e.getSvgIconUtilityClass=bl,e.getSwitchUtilityClass=OC,e.getTabScrollButtonUtilityClass=oR,e.getTabUtilityClass=WC,e.getTableBodyUtilityClass=ZC,e.getTableCellUtilityClass=ok,e.getTableContainerUtilityClass=sk,e.getTableFooterUtilityClass=pk,e.getTableHeadUtilityClass=bk,e.getTablePaginationUtilityClass=Ok,e.getTableRowUtilityClass=Gk,e.getTableSortLabelUtilityClass=Yk,e.getTableUtilityClass=GC,e.getTabsUtilityClass=lR,e.getTextFieldUtilityClass=xR,e.getToggleButtonGroupUtilityClass=NR,e.getToggleButtonUtilityClass=MR,e.getToolbarUtilityClass=kk,e.getTooltipUtilityClass=iS,e.getTouchRippleUtilityClass=function(e){return Vo("MuiTouchRipple",e)},e.getTypographyUtilityClass=ac,e.grid2Classes=Eh,e.gridClasses=Ch,e.hexToRgb=kr,e.hslToRgb=Ir,e.iconButtonClasses=Us,e.iconClasses=$h,e.imageListClasses=Qh,e.imageListItemBarClasses=ug,e.imageListItemClasses=ag,e.inputAdornmentClasses=Cg,e.inputBaseClasses=Cd,e.inputClasses=Ed,e.inputLabelClasses=Pg,e.isMuiElement=Vr,e.keyframes=Ut,e.lighten=Br,e.linearProgressClasses=Fg,e.linkClasses=Xg,e.listClasses=ob,e.listItemAvatarClasses=wb,e.listItemButtonClasses=cb,e.listItemClasses=lb,e.listItemIconClasses=Rb,e.listItemSecondaryActionClasses=fb,e.listItemTextClasses=Tb,e.listSubheaderClasses=ed,e.major=VR,e.makeStyles=function(){throw new Error(I(14))},e.menuClasses=Xb,e.menuItemClasses=ry,e.minor=jR,e.mobileStepperClasses=sy,e.modalClasses=jv,e.nativeSelectClasses=hy,e.outlinedInputClasses=Nd,e.ownerDocument=jr,e.ownerWindow=Ur,e.paginationClasses=By,e.paginationItemClasses=Dy,e.paperClasses=Ql,e.patch=UR,e.popoverClasses=Wb,e.preReleaseLabel=null,e.preReleaseNumber=GR,e.private_createMixins=Mi,e.private_createTypography=Li,e.private_excludeVariablesFromRoot=il,e.radioClasses=cx,e.radioGroupClasses=hx,e.ratingClasses=wx,e.recomposeColor=Pr,e.requirePropFactory=function(e,t){return function(){return null}},e.responsiveFontSizes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.breakpoints,o=void 0===n?["sm","md","lg"]:n,r=t.disableAlign,a=void 0!==r&&r,i=t.factor,l=void 0===i?2:i,s=t.variants,c=void 0===s?["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]:s,u=L({},e);u.typography=L({},u.typography);var d,p=u.typography,f=(d=p.htmlFontSize,function(e,t){var n=Gi(e);if(n===t)return e;var o=_i(e);"px"!==n&&("em"===n||"rem"===n)&&(o=_i(e)*_i(d));var r=o;if("px"!==t)if("em"===t)r=o/_i(d);else{if("rem"!==t)return e;r=o/_i(d)}return parseFloat(r.toFixed(5))+t}),v=o.map((function(e){return u.breakpoints.values[e]}));return c.forEach((function(e){var t=p[e];if(t){var n=parseFloat(f(t.fontSize,"rem"));if(!(n<=1)){var o=n,r=1+(o-1)/l,i=t.lineHeight;if(!Ui(i)&&!a)throw new Error(I(6));Ui(i)||(i=parseFloat(f(i,"rem"))/parseFloat(n));var s=null;a||(s=function(e){return t={size:e,grid:qi({pixels:4,lineHeight:i,htmlFontSize:p.htmlFontSize})},n=t.size,o=t.grid,n-(r=n-n%o)<(a=r+o)-n?r:a;var t,n,o,r,a}),p[e]=L({},t,function(e){var t=e.cssProperty,n=e.min,o=e.max,r=e.unit,a=void 0===r?"rem":r,i=e.breakpoints,l=void 0===i?[600,900,1200]:i,s=e.transform,c=void 0===s?null:s,u=E({},t,"".concat(n).concat(a)),d=(o-n)/l[l.length-1];return l.forEach((function(e){var o=n+d*e;null!==c&&(o=c(o)),u["@media (min-width:".concat(e,"px)")]=E({},t,"".concat(Math.round(1e4*o)/1e4).concat(a))})),u}({cssProperty:"fontSize",min:r,max:o,unit:"rem",breakpoints:v,transform:s}))}}})),u},e.rgbToHex=function(e){if(0===e.indexOf("#"))return e;var t=Rr(e).values;return"#".concat(t.map((function(e,t){return n=3===t?Math.round(255*e):e,1===(o=n.toString(16)).length?"0".concat(o):o;var n,o})).join(""))},e.scopedCssBaselineClasses=Bx,e.selectClasses=Hx,e.setRef=Gr,e.shouldSkipGeneratingVar=Ji,e.skeletonClasses=aw,e.sliderClasses=Mw,e.snackbarClasses=_w,e.snackbarContentClasses=Ww,e.speedDialActionClasses=bS,e.speedDialClasses=Qw,e.speedDialIconClasses=RS,e.stackClasses=Qm,e.stepButtonClasses=tC,e.stepClasses=NS,e.stepConnectorClasses=aC,e.stepContentClasses=uC,e.stepIconClasses=jS,e.stepLabelClasses=KS,e.stepperClasses=mC,e.styled=Zi,e.svgIconClasses=yl,e.switchClasses=EC,e.tabClasses=HC,e.tabScrollButtonClasses=rR,e.tableBodyClasses=JC,e.tableCellClasses=rk,e.tableClasses=_C,e.tableContainerClasses=ck,e.tableFooterClasses=fk,e.tableHeadClasses=yk,e.tablePaginationClasses=Lk,e.tableRowClasses=_k,e.tableSortLabelClasses=Zk,e.tabsClasses=sR,e.textFieldClasses=wR,e.toggleButtonClasses=PR,e.toggleButtonGroupClasses=BR,e.toolbarClasses=Rk,e.tooltipClasses=lS,e.touchRippleClasses=ws,e.typographyClasses=ic,e.unstable_ClassNameGenerator=kl,e.unstable_composeClasses=xa,e.unstable_createMuiStrictModeTheme=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},t=e.getTrigger,n=void 0===t?WR:t,o=e.target,a=void 0===o?HR:o,i=B(e,["getTrigger","target"]),l=r.useRef(),s=r.useState((function(){return n(l,i)})),c=s[0],u=s[1];return r.useEffect((function(){var e=function(){u(n(l,L({target:a},i)))};return e(),a.addEventListener("scroll",e,{passive:!0}),function(){a.removeEventListener("scroll",e,{passive:!0})}}),[a,n,JSON.stringify(i)]),c},e.useStepContext=function(){return r.useContext(OS)},e.useStepperContext=function(){return r.useContext(TS)},e.useTheme=$i,e.useThemeProps=function(e){return hr({props:e.props,name:e.name,defaultTheme:Ki,themeId:T})},e.version=undefined,e.withStyles=function(){throw new Error(I(15))},e.withTheme=function(){throw new Error(I(16))}})); diff --git a/pages/proactive-chat/vendor/mermaid.min.js b/pages/proactive-chat/vendor/mermaid.min.js new file mode 100644 index 0000000..a6f98c6 --- /dev/null +++ b/pages/proactive-chat/vendor/mermaid.min.js @@ -0,0 +1,2314 @@ +"use strict";var __esbuild_esm_mermaid=(()=>{var cxe=Object.create;var R1=Object.defineProperty;var uxe=Object.getOwnPropertyDescriptor;var hxe=Object.getOwnPropertyNames;var fxe=Object.getPrototypeOf,dxe=Object.prototype.hasOwnProperty;var o=(t,e)=>R1(t,"name",{value:e,configurable:!0});var M=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ni=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),vr=(t,e)=>{for(var r in e)R1(t,r,{get:e[r],enumerable:!0})},Cb=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of hxe(e))!dxe.call(t,i)&&i!==r&&R1(t,i,{get:()=>e[i],enumerable:!(n=uxe(e,i))||n.enumerable});return t},Er=(t,e,r)=>(Cb(t,e,"default"),r&&Cb(r,e,"default")),ka=(t,e,r)=>(r=t!=null?cxe(fxe(t)):{},Cb(e||!t||!t.__esModule?R1(r,"default",{value:t,enumerable:!0}):r,t)),pxe=t=>Cb(R1({},"__esModule",{value:!0}),t);var Ab=Ni((wS,TS)=>{"use strict";(function(t,e){typeof wS=="object"&&typeof TS<"u"?TS.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(wS,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(k){var R=["th","st","nd","rd"],S=k%100;return"["+k+(R[(S-20)%10]||R[S]||R[0])+"]"},"ordinal")},x=o(function(k,R,S){var O=String(k);return!O||O.length>=R?k:""+Array(R+1-O.length).join(S)+k},"m"),b={s:x,z:o(function(k){var R=-k.utcOffset(),S=Math.abs(R),O=Math.floor(S/60),N=S%60;return(R<=0?"+":"-")+x(O,2,"0")+":"+x(N,2,"0")},"z"),m:o(function k(R,S){if(R.date()1)return k(F[0])}else{var B=R.name;_[B]=R,N=B}return!O&&N&&(w=N),N||!O&&w},"t"),C=o(function(k,R){if(E(k))return k.clone();var S=typeof R=="object"?R:{};return S.date=k,S.args=arguments,new I(S)},"O"),A=b;A.l=L,A.i=E,A.w=function(k,R){return C(k,{locale:R.$L,utc:R.$u,x:R.$x,$offset:R.$offset})};var I=function(){function k(S){this.$L=L(S.locale,null,!0),this.parse(S),this.$x=this.$x||S.x||{},this[T]=!0}o(k,"M");var R=k.prototype;return R.parse=function(S){this.$d=function(O){var N=O.date,P=O.utc;if(N===null)return new Date(NaN);if(A.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N=="string"&&!/Z$/i.test(N)){var F=N.match(g);if(F){var B=F[2]-1||0,$=(F[7]||"0").substring(0,3);return P?new Date(Date.UTC(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)):new Date(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)}}return new Date(N)}(S),this.init()},R.init=function(){var S=this.$d;this.$y=S.getFullYear(),this.$M=S.getMonth(),this.$D=S.getDate(),this.$W=S.getDay(),this.$H=S.getHours(),this.$m=S.getMinutes(),this.$s=S.getSeconds(),this.$ms=S.getMilliseconds()},R.$utils=function(){return A},R.isValid=function(){return this.$d.toString()!==m},R.isSame=function(S,O){var N=C(S);return this.startOf(O)<=N&&N<=this.endOf(O)},R.isAfter=function(S,O){return C(S){"use strict";EF=ka(Ab(),1),jc={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Y={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},M1=o(function(t="fatal"){let e=jc.fatal;typeof t=="string"?t.toLowerCase()in jc&&(e=jc[t]):typeof t=="number"&&(e=t),Y.trace=()=>{},Y.debug=()=>{},Y.info=()=>{},Y.warn=()=>{},Y.error=()=>{},Y.fatal=()=>{},e<=jc.fatal&&(Y.fatal=console.error?console.error.bind(console,bo("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bo("FATAL"))),e<=jc.error&&(Y.error=console.error?console.error.bind(console,bo("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bo("ERROR"))),e<=jc.warn&&(Y.warn=console.warn?console.warn.bind(console,bo("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bo("WARN"))),e<=jc.info&&(Y.info=console.info?console.info.bind(console,bo("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bo("INFO"))),e<=jc.debug&&(Y.debug=console.debug?console.debug.bind(console,bo("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("DEBUG"))),e<=jc.trace&&(Y.trace=console.debug?console.debug.bind(console,bo("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("TRACE")))},"setLogLevel"),bo=o(t=>`%c${(0,EF.default)().format("ss.SSS")} : ${t} : `,"format")});var mxe,Z0,kS,SF,_b=M(()=>{"use strict";mxe=Object.freeze({left:0,top:0,width:16,height:16}),Z0=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),kS=Object.freeze({...mxe,...Z0}),SF=Object.freeze({...kS,body:"",hidden:!1})});var gxe,CF,AF=M(()=>{"use strict";_b();gxe=Object.freeze({width:null,height:null}),CF=Object.freeze({...gxe,...Z0})});var Lb,ES,Db,_F=M(()=>{"use strict";Lb=/^[a-z0-9]+(-[a-z0-9]+)*$/,ES=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!Db(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!Db(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!Db(l,r)?null:l}return null},"stringToIcon"),Db=o((t,e)=>t?!!((t.provider===""||t.provider.match(Lb))&&(e&&t.prefix===""||t.prefix.match(Lb))&&t.name.match(Lb)):!1,"validateIconName")});function LF(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var DF=M(()=>{"use strict";o(LF,"mergeIconTransformations")});function SS(t,e){let r=LF(t,e);for(let n in SF)n in Z0?n in t&&!(n in r)&&(r[n]=Z0[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var NF=M(()=>{"use strict";_b();DF();o(SS,"mergeIconData")});function RF(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var MF=M(()=>{"use strict";o(RF,"getIconsTree")});function IF(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=SS(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),SS(t,a)}function CS(t,e){if(t.icons[e])return IF(t,e,[]);let r=RF(t,[e])[e];return r?IF(t,e,r):null}var OF=M(()=>{"use strict";NF();MF();o(IF,"internalGetIconData");o(CS,"getIconData")});function AS(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(yxe);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=vxe.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var yxe,vxe,PF=M(()=>{"use strict";yxe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,vxe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(AS,"calculateSize")});function xxe(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function bxe(t,e){return t?""+t+""+e:e}function BF(t,e,r){let n=xxe(t);return bxe(n.defs,e+n.content+r)}var FF=M(()=>{"use strict";o(xxe,"splitSVGDefs");o(bxe,"mergeDefsAndContent");o(BF,"wrapSVGContent")});function _S(t,e){let r={...kS,...t},n={...CF,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,w=y.rotate;x?b?w+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let _;switch(w<0&&(w-=Math.floor(w/4)*4),w=w%4,w){case 1:_=i.height/2+i.top,v.unshift("rotate(90 "+_.toString()+" "+_.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:_=i.width/2+i.left,v.unshift("rotate(-90 "+_.toString()+" "+_.toString()+")");break}w%2===1&&(i.left!==i.top&&(_=i.left,i.left=i.top,i.top=_),i.width!==i.height&&(_=i.width,i.width=i.height,i.height=_)),v.length&&(a=BF(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=AS(d,u/h)):(f=s==="auto"?u:s,d=l===null?AS(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{wxe(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var wxe,zF=M(()=>{"use strict";_b();AF();PF();FF();wxe=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(_S,"iconToSVG")});function LS(t,e=kxe){let r=[],n;for(;n=Txe.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(Exe++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var Txe,kxe,Exe,GF=M(()=>{"use strict";Txe=/\sid="(\S+)"/g,kxe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Exe=0;o(LS,"replaceIDs")});function DS(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var $F=M(()=>{"use strict";o(DS,"iconToHTML")});var UF=Ni((lst,VF)=>{"use strict";var J0=1e3,ep=J0*60,tp=ep*60,Ff=tp*24,Sxe=Ff*7,Cxe=Ff*365.25;VF.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Axe(t);if(r==="number"&&isFinite(t))return e.long?Lxe(t):_xe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Axe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Cxe;case"weeks":case"week":case"w":return r*Sxe;case"days":case"day":case"d":return r*Ff;case"hours":case"hour":case"hrs":case"hr":case"h":return r*tp;case"minutes":case"minute":case"mins":case"min":case"m":return r*ep;case"seconds":case"second":case"secs":case"sec":case"s":return r*J0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}o(Axe,"parse");function _xe(t){var e=Math.abs(t);return e>=Ff?Math.round(t/Ff)+"d":e>=tp?Math.round(t/tp)+"h":e>=ep?Math.round(t/ep)+"m":e>=J0?Math.round(t/J0)+"s":t+"ms"}o(_xe,"fmtShort");function Lxe(t){var e=Math.abs(t);return e>=Ff?Nb(t,e,Ff,"day"):e>=tp?Nb(t,e,tp,"hour"):e>=ep?Nb(t,e,ep,"minute"):e>=J0?Nb(t,e,J0,"second"):t+" ms"}o(Lxe,"fmtLong");function Nb(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}o(Nb,"plural")});var WF=Ni((ust,HF)=>{"use strict";function Dxe(t){r.debug=r,r.default=r,r.coerce=u,r.disable=a,r.enable=i,r.enabled=s,r.humanize=UF(),r.destroy=h,Object.keys(t).forEach(f=>{r[f]=t[f]}),r.names=[],r.skips=[],r.formatters={};function e(f){let d=0;for(let p=0;p{if(E==="%%")return"%";_++;let C=r.formatters[L];if(typeof C=="function"){let A=v[_];E=C.call(x,A),v.splice(_,1),_--}return E}),r.formatArgs.call(x,v),(x.log||r.log).apply(x,v)}return o(y,"debug"),y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:o(()=>p!==null?p:(m!==r.namespaces&&(m=r.namespaces,g=r.enabled(f)),g),"get"),set:o(v=>{p=v},"set")}),typeof r.init=="function"&&r.init(y),y}o(r,"createDebug");function n(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}o(n,"extend");function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,p=(typeof f=="string"?f:"").split(/[\s,]+/),m=p.length;for(d=0;d"-"+d)].join(",");return r.enable(""),f}o(a,"disable");function s(f){if(f[f.length-1]==="*")return!0;let d,p;for(d=0,p=r.skips.length;d{"use strict";Us.formatArgs=Rxe;Us.save=Mxe;Us.load=Ixe;Us.useColors=Nxe;Us.storage=Oxe();Us.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Us.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Nxe(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}o(Nxe,"useColors");function Rxe(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Rb.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}o(Rxe,"formatArgs");Us.log=console.debug||console.log||(()=>{});function Mxe(t){try{t?Us.storage.setItem("debug",t):Us.storage.removeItem("debug")}catch{}}o(Mxe,"save");function Ixe(){let t;try{t=Us.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}o(Ixe,"load");function Oxe(){try{return localStorage}catch{}}o(Oxe,"localstorage");Rb.exports=WF()(Us);var{formatters:Pxe}=Rb.exports;Pxe.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var dst,qF=M(()=>{"use strict";_F();OF();zF();GF();$F();dst=ka(YF(),1)});var RS,NS,XF,Mb,Bxe,wo,Kc=M(()=>{"use strict";ht();qF();RS={body:'?',height:80,width:80},NS=new Map,XF=new Map,Mb=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(Y.debug("Registering icon pack:",e.name),"loader"in e)XF.set(e.name,e.loader);else if("icons"in e)NS.set(e.name,e.icons);else throw Y.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Bxe=o(async(t,e)=>{let r=ES(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=NS.get(n);if(!i){let s=XF.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},NS.set(n,i)}catch(l){throw Y.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=CS(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),wo=o(async(t,e)=>{let r;try{r=await Bxe(t,e?.fallbackPrefix)}catch(a){Y.error(a),r=RS}let n=_S(r,e);return DS(LS(n.body),n.attributes)},"getIconSVG")});function Ib(t){for(var e=[],r=1;r{"use strict";o(Ib,"dedent")});var Ob,zf,jF,Pb=M(()=>{"use strict";Ob=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,zf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,jF=/\s*%%.*\n/gm});var rp,IS=M(()=>{"use strict";rp=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var Gf,np,Bb,OS,KF,$f=M(()=>{"use strict";ht();Pb();IS();Gf={},np=o(function(t,e){t=t.replace(Ob,"").replace(zf,"").replace(jF,` +`);for(let[r,{detector:n}]of Object.entries(Gf))if(n(t,e))return r;throw new rp(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),Bb=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)OS(e,r,n)},"registerLazyLoadedDiagrams"),OS=o((t,e,r)=>{Gf[t]&&Y.warn(`Detector with key ${t} already exists. Overwriting.`),Gf[t]={detector:e,loader:r},Y.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),KF=o(t=>Gf[t].loader,"getDiagramLoader")});var I1,QF,PS=M(()=>{"use strict";I1=function(){var t=o(function(He,xe,X,fe){for(X=X||{},fe=He.length;fe--;X[He[fe]]=xe);return X},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],_=[1,36],T=[1,37],E=[1,38],L=[1,39],C=[1,40],A=[1,41],I=[1,42],D=[1,43],k=[1,44],R=[1,45],S=[1,46],O=[1,47],N=[1,48],P=[1,50],F=[1,51],B=[1,52],$=[1,53],z=[1,54],W=[1,55],j=[1,56],K=[1,57],ie=[1,58],Q=[1,59],ee=[1,60],J=[14,42],H=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Z=[1,82],ae=[1,83],ue=[1,84],ce=[1,85],te=[12,14,42],De=[12,14,33,42],oe=[12,14,33,42,76,77,79,80],ke=[12,33],Fe=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Be={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(xe,X,fe,he,ge,ne,ye){var U=ne.length-1;switch(ge){case 3:he.setDirection("TB");break;case 4:he.setDirection("BT");break;case 5:he.setDirection("RL");break;case 6:he.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:he.setC4Type(ne[U-3]);break;case 19:he.setTitle(ne[U].substring(6)),this.$=ne[U].substring(6);break;case 20:he.setAccDescription(ne[U].substring(15)),this.$=ne[U].substring(15);break;case 21:this.$=ne[U].trim(),he.setTitle(this.$);break;case 22:case 23:this.$=ne[U].trim(),he.setAccDescription(this.$);break;case 28:ne[U].splice(2,0,"ENTERPRISE"),he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 29:ne[U].splice(2,0,"SYSTEM"),he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 30:he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 31:ne[U].splice(2,0,"CONTAINER"),he.addContainerBoundary(...ne[U]),this.$=ne[U];break;case 32:he.addDeploymentNode("node",...ne[U]),this.$=ne[U];break;case 33:he.addDeploymentNode("nodeL",...ne[U]),this.$=ne[U];break;case 34:he.addDeploymentNode("nodeR",...ne[U]),this.$=ne[U];break;case 35:he.popBoundaryParseStack();break;case 39:he.addPersonOrSystem("person",...ne[U]),this.$=ne[U];break;case 40:he.addPersonOrSystem("external_person",...ne[U]),this.$=ne[U];break;case 41:he.addPersonOrSystem("system",...ne[U]),this.$=ne[U];break;case 42:he.addPersonOrSystem("system_db",...ne[U]),this.$=ne[U];break;case 43:he.addPersonOrSystem("system_queue",...ne[U]),this.$=ne[U];break;case 44:he.addPersonOrSystem("external_system",...ne[U]),this.$=ne[U];break;case 45:he.addPersonOrSystem("external_system_db",...ne[U]),this.$=ne[U];break;case 46:he.addPersonOrSystem("external_system_queue",...ne[U]),this.$=ne[U];break;case 47:he.addContainer("container",...ne[U]),this.$=ne[U];break;case 48:he.addContainer("container_db",...ne[U]),this.$=ne[U];break;case 49:he.addContainer("container_queue",...ne[U]),this.$=ne[U];break;case 50:he.addContainer("external_container",...ne[U]),this.$=ne[U];break;case 51:he.addContainer("external_container_db",...ne[U]),this.$=ne[U];break;case 52:he.addContainer("external_container_queue",...ne[U]),this.$=ne[U];break;case 53:he.addComponent("component",...ne[U]),this.$=ne[U];break;case 54:he.addComponent("component_db",...ne[U]),this.$=ne[U];break;case 55:he.addComponent("component_queue",...ne[U]),this.$=ne[U];break;case 56:he.addComponent("external_component",...ne[U]),this.$=ne[U];break;case 57:he.addComponent("external_component_db",...ne[U]),this.$=ne[U];break;case 58:he.addComponent("external_component_queue",...ne[U]),this.$=ne[U];break;case 60:he.addRel("rel",...ne[U]),this.$=ne[U];break;case 61:he.addRel("birel",...ne[U]),this.$=ne[U];break;case 62:he.addRel("rel_u",...ne[U]),this.$=ne[U];break;case 63:he.addRel("rel_d",...ne[U]),this.$=ne[U];break;case 64:he.addRel("rel_l",...ne[U]),this.$=ne[U];break;case 65:he.addRel("rel_r",...ne[U]),this.$=ne[U];break;case 66:he.addRel("rel_b",...ne[U]),this.$=ne[U];break;case 67:ne[U].splice(0,1),he.addRel("rel",...ne[U]),this.$=ne[U];break;case 68:he.updateElStyle("update_el_style",...ne[U]),this.$=ne[U];break;case 69:he.updateRelStyle("update_rel_style",...ne[U]),this.$=ne[U];break;case 70:he.updateLayoutConfig("update_layout_config",...ne[U]),this.$=ne[U];break;case 71:this.$=[ne[U]];break;case 72:ne[U].unshift(ne[U-1]),this.$=ne[U];break;case 73:case 75:this.$=ne[U].trim();break;case 74:let Te={};Te[ne[U-1].trim()]=ne[U].trim(),this.$=Te;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{14:[1,74]},t(J,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee}),t(J,[2,14]),t(H,[2,16],{12:[1,76]}),t(J,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:Z,77:ae,79:ue,80:ce},{35:86,75:81,76:Z,77:ae,79:ue,80:ce},{35:87,75:81,76:Z,77:ae,79:ue,80:ce},{35:88,75:81,76:Z,77:ae,79:ue,80:ce},{35:89,75:81,76:Z,77:ae,79:ue,80:ce},{35:90,75:81,76:Z,77:ae,79:ue,80:ce},{35:91,75:81,76:Z,77:ae,79:ue,80:ce},{35:92,75:81,76:Z,77:ae,79:ue,80:ce},{35:93,75:81,76:Z,77:ae,79:ue,80:ce},{35:94,75:81,76:Z,77:ae,79:ue,80:ce},{35:95,75:81,76:Z,77:ae,79:ue,80:ce},{35:96,75:81,76:Z,77:ae,79:ue,80:ce},{35:97,75:81,76:Z,77:ae,79:ue,80:ce},{35:98,75:81,76:Z,77:ae,79:ue,80:ce},{35:99,75:81,76:Z,77:ae,79:ue,80:ce},{35:100,75:81,76:Z,77:ae,79:ue,80:ce},{35:101,75:81,76:Z,77:ae,79:ue,80:ce},{35:102,75:81,76:Z,77:ae,79:ue,80:ce},{35:103,75:81,76:Z,77:ae,79:ue,80:ce},{35:104,75:81,76:Z,77:ae,79:ue,80:ce},t(te,[2,59]),{35:105,75:81,76:Z,77:ae,79:ue,80:ce},{35:106,75:81,76:Z,77:ae,79:ue,80:ce},{35:107,75:81,76:Z,77:ae,79:ue,80:ce},{35:108,75:81,76:Z,77:ae,79:ue,80:ce},{35:109,75:81,76:Z,77:ae,79:ue,80:ce},{35:110,75:81,76:Z,77:ae,79:ue,80:ce},{35:111,75:81,76:Z,77:ae,79:ue,80:ce},{35:112,75:81,76:Z,77:ae,79:ue,80:ce},{35:113,75:81,76:Z,77:ae,79:ue,80:ce},{35:114,75:81,76:Z,77:ae,79:ue,80:ce},{35:115,75:81,76:Z,77:ae,79:ue,80:ce},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{12:[1,118],33:[1,117]},{35:119,75:81,76:Z,77:ae,79:ue,80:ce},{35:120,75:81,76:Z,77:ae,79:ue,80:ce},{35:121,75:81,76:Z,77:ae,79:ue,80:ce},{35:122,75:81,76:Z,77:ae,79:ue,80:ce},{35:123,75:81,76:Z,77:ae,79:ue,80:ce},{35:124,75:81,76:Z,77:ae,79:ue,80:ce},{35:125,75:81,76:Z,77:ae,79:ue,80:ce},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(J,[2,15]),t(H,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(J,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee}),t(q,[2,21]),t(q,[2,22]),t(te,[2,39]),t(De,[2,71],{75:81,35:132,76:Z,77:ae,79:ue,80:ce}),t(oe,[2,73]),{78:[1,133]},t(oe,[2,75]),t(oe,[2,76]),t(te,[2,40]),t(te,[2,41]),t(te,[2,42]),t(te,[2,43]),t(te,[2,44]),t(te,[2,45]),t(te,[2,46]),t(te,[2,47]),t(te,[2,48]),t(te,[2,49]),t(te,[2,50]),t(te,[2,51]),t(te,[2,52]),t(te,[2,53]),t(te,[2,54]),t(te,[2,55]),t(te,[2,56]),t(te,[2,57]),t(te,[2,58]),t(te,[2,60]),t(te,[2,61]),t(te,[2,62]),t(te,[2,63]),t(te,[2,64]),t(te,[2,65]),t(te,[2,66]),t(te,[2,67]),t(te,[2,68]),t(te,[2,69]),t(te,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ke,[2,28]),t(ke,[2,29]),t(ke,[2,30]),t(ke,[2,31]),t(ke,[2,32]),t(ke,[2,33]),t(ke,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(H,[2,18]),t(J,[2,38]),t(De,[2,72]),t(oe,[2,74]),t(te,[2,24]),t(te,[2,35]),t(Fe,[2,25]),t(Fe,[2,26],{12:[1,138]}),t(Fe,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(xe,X){if(X.recoverable)this.trace(xe);else{var fe=new Error(xe);throw fe.hash=X,fe}},"parseError"),parse:o(function(xe){var X=this,fe=[0],he=[],ge=[null],ne=[],ye=this.table,U="",Te=0,se=0,Ee=0,Ae=2,Pe=1,Me=ne.slice.call(arguments,1),me=Object.create(this.lexer),We={yy:{}};for(var Re in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Re)&&(We.yy[Re]=this.yy[Re]);me.setInput(xe,We.yy),We.yy.lexer=me,We.yy.parser=this,typeof me.yylloc>"u"&&(me.yylloc={});var tt=me.yylloc;ne.push(tt);var gt=me.options&&me.options.ranges;typeof We.yy.parseError=="function"?this.parseError=We.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Et(zt){fe.length=fe.length-2*zt,ge.length=ge.length-zt,ne.length=ne.length-zt}o(Et,"popStack");function vt(){var zt;return zt=he.pop()||me.lex()||Pe,typeof zt!="number"&&(zt instanceof Array&&(he=zt,zt=he.pop()),zt=X.symbols_[zt]||zt),zt}o(vt,"lex");for(var Ye,Tt,$e,rt,ft,kt,er={},dt,Xe,ct,Lt;;){if($e=fe[fe.length-1],this.defaultActions[$e]?rt=this.defaultActions[$e]:((Ye===null||typeof Ye>"u")&&(Ye=vt()),rt=ye[$e]&&ye[$e][Ye]),typeof rt>"u"||!rt.length||!rt[0]){var Rt="";Lt=[];for(dt in ye[$e])this.terminals_[dt]&&dt>Ae&&Lt.push("'"+this.terminals_[dt]+"'");me.showPosition?Rt="Parse error on line "+(Te+1)+`: +`+me.showPosition()+` +Expecting `+Lt.join(", ")+", got '"+(this.terminals_[Ye]||Ye)+"'":Rt="Parse error on line "+(Te+1)+": Unexpected "+(Ye==Pe?"end of input":"'"+(this.terminals_[Ye]||Ye)+"'"),this.parseError(Rt,{text:me.match,token:this.terminals_[Ye]||Ye,line:me.yylineno,loc:tt,expected:Lt})}if(rt[0]instanceof Array&&rt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$e+", token: "+Ye);switch(rt[0]){case 1:fe.push(Ye),ge.push(me.yytext),ne.push(me.yylloc),fe.push(rt[1]),Ye=null,Tt?(Ye=Tt,Tt=null):(se=me.yyleng,U=me.yytext,Te=me.yylineno,tt=me.yylloc,Ee>0&&Ee--);break;case 2:if(Xe=this.productions_[rt[1]][1],er.$=ge[ge.length-Xe],er._$={first_line:ne[ne.length-(Xe||1)].first_line,last_line:ne[ne.length-1].last_line,first_column:ne[ne.length-(Xe||1)].first_column,last_column:ne[ne.length-1].last_column},gt&&(er._$.range=[ne[ne.length-(Xe||1)].range[0],ne[ne.length-1].range[1]]),kt=this.performAction.apply(er,[U,se,Te,We.yy,rt[1],ge,ne].concat(Me)),typeof kt<"u")return kt;Xe&&(fe=fe.slice(0,-1*Xe*2),ge=ge.slice(0,-1*Xe),ne=ne.slice(0,-1*Xe)),fe.push(this.productions_[rt[1]][0]),ge.push(er.$),ne.push(er._$),ct=ye[fe[fe.length-2]][fe[fe.length-1]],fe.push(ct);break;case 3:return!0}}return!0},"parse")},Ve=function(){var He={EOF:1,parseError:o(function(X,fe){if(this.yy.parser)this.yy.parser.parseError(X,fe);else throw new Error(X)},"parseError"),setInput:o(function(xe,X){return this.yy=X||this.yy||{},this._input=xe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var xe=this._input[0];this.yytext+=xe,this.yyleng++,this.offset++,this.match+=xe,this.matched+=xe;var X=xe.match(/(?:\r\n?|\n).*/g);return X?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xe},"input"),unput:o(function(xe){var X=xe.length,fe=xe.split(/(?:\r\n?|\n)/g);this._input=xe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-X),this.offset-=X;var he=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),fe.length-1&&(this.yylineno-=fe.length-1);var ge=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:fe?(fe.length===he.length?this.yylloc.first_column:0)+he[he.length-fe.length].length-fe[0].length:this.yylloc.first_column-X},this.options.ranges&&(this.yylloc.range=[ge[0],ge[0]+this.yyleng-X]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(xe){this.unput(this.match.slice(xe))},"less"),pastInput:o(function(){var xe=this.matched.substr(0,this.matched.length-this.match.length);return(xe.length>20?"...":"")+xe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var xe=this.match;return xe.length<20&&(xe+=this._input.substr(0,20-xe.length)),(xe.substr(0,20)+(xe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var xe=this.pastInput(),X=new Array(xe.length+1).join("-");return xe+this.upcomingInput()+` +`+X+"^"},"showPosition"),test_match:o(function(xe,X){var fe,he,ge;if(this.options.backtrack_lexer&&(ge={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ge.yylloc.range=this.yylloc.range.slice(0))),he=xe[0].match(/(?:\r\n?|\n).*/g),he&&(this.yylineno+=he.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:he?he[he.length-1].length-he[he.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+xe[0].length},this.yytext+=xe[0],this.match+=xe[0],this.matches=xe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xe[0].length),this.matched+=xe[0],fe=this.performAction.call(this,this.yy,this,X,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),fe)return fe;if(this._backtrack){for(var ne in ge)this[ne]=ge[ne];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xe,X,fe,he;this._more||(this.yytext="",this.match="");for(var ge=this._currentRules(),ne=0;neX[0].length)){if(X=fe,he=ne,this.options.backtrack_lexer){if(xe=this.test_match(fe,ge[ne]),xe!==!1)return xe;if(this._backtrack){X=!1;continue}else return!1}else if(!this.options.flex)break}return X?(xe=this.test_match(X,ge[he]),xe!==!1?xe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var X=this.next();return X||this.lex()},"lex"),begin:o(function(X){this.conditionStack.push(X)},"begin"),popState:o(function(){var X=this.conditionStack.length-1;return X>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(X){return X=this.conditionStack.length-1-Math.abs(X||0),X>=0?this.conditionStack[X]:"INITIAL"},"topState"),pushState:o(function(X){this.begin(X)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(X,fe,he,ge){var ne=ge;switch(he){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return He}();Be.lexer=Ve;function Ge(){this.yy={}}return o(Ge,"Parser"),Ge.prototype=Be,Be.Parser=Ge,new Ge}();I1.parser=I1;QF=I1});var BS,Gn,ip=M(()=>{"use strict";BS=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>BS(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=BS(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Gn=BS});var Fb,ZF,JF=M(()=>{"use strict";Fb={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return Fb.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return Fb.hue2rgb(a,i,t)*255;case"b":return Fb.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";Fxe={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},ez=Fxe});var zxe,rz,nz=M(()=>{"use strict";zxe={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},rz=zxe});var Gxe,Yt,jl=M(()=>{"use strict";JF();tz();nz();Gxe={channel:ZF,lang:ez,unit:rz},Yt=Gxe});var Qc,Ri,O1=M(()=>{"use strict";jl();Qc={};for(let t=0;t<=255;t++)Qc[t]=Yt.unit.dec2hex(t);Ri={ALL:0,RGB:1,HSL:2}});var FS,iz,az=M(()=>{"use strict";O1();FS=class{static{o(this,"Type")}constructor(){this.type=Ri.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Ri.ALL}is(e){return this.type===e}},iz=FS});var zS,sz,oz=M(()=>{"use strict";jl();az();O1();zS=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new iz}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Ri.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=Yt.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=Yt.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Yt.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=Yt.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=Yt.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Yt.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Ri.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Ri.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Ri.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Ri.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Ri.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Ri.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},sz=zS});var $xe,th,P1=M(()=>{"use strict";oz();$xe=new sz({r:0,g:0,b:0,a:0},"transparent"),th=$xe});var lz,Vf,GS=M(()=>{"use strict";P1();O1();lz={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(lz.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return th.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${Qc[Math.round(e)]}${Qc[Math.round(r)]}${Qc[Math.round(n)]}${Qc[Math.round(i*255)]}`:`#${Qc[Math.round(e)]}${Qc[Math.round(r)]}${Qc[Math.round(n)]}`},"stringify")},Vf=lz});var zb,B1,cz=M(()=>{"use strict";jl();P1();zb={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(zb.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return Yt.channel.clamp.h(parseFloat(r)*.9);case"rad":return Yt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return Yt.channel.clamp.h(parseFloat(r)*360)}}return Yt.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(zb.re);if(!r)return;let[,n,i,a,s,l]=r;return th.set({h:zb._hue2deg(n),s:Yt.channel.clamp.s(parseFloat(i)),l:Yt.channel.clamp.l(parseFloat(a)),a:s?Yt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${Yt.lang.round(e)}, ${Yt.lang.round(r)}%, ${Yt.lang.round(n)}%, ${i})`:`hsl(${Yt.lang.round(e)}, ${Yt.lang.round(r)}%, ${Yt.lang.round(n)}%)`},"stringify")},B1=zb});var Gb,$S,uz=M(()=>{"use strict";GS();Gb={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=Gb.colors[t];if(e)return Vf.parse(e)},"parse"),stringify:o(t=>{let e=Vf.stringify(t);for(let r in Gb.colors)if(Gb.colors[r]===e)return r},"stringify")},$S=Gb});var hz,F1,fz=M(()=>{"use strict";jl();P1();hz={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(hz.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return th.set({r:Yt.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:Yt.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:Yt.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?Yt.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${Yt.lang.round(e)}, ${Yt.lang.round(r)}, ${Yt.lang.round(n)}, ${Yt.lang.round(i)})`:`rgb(${Yt.lang.round(e)}, ${Yt.lang.round(r)}, ${Yt.lang.round(n)})`},"stringify")},F1=hz});var Vxe,Mi,Zc=M(()=>{"use strict";GS();cz();uz();fz();O1();Vxe={format:{keyword:$S,hex:Vf,rgb:F1,rgba:F1,hsl:B1,hsla:B1},parse:o(t=>{if(typeof t!="string")return t;let e=Vf.parse(t)||F1.parse(t)||B1.parse(t)||$S.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Ri.HSL)||t.data.r===void 0?B1.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?F1.stringify(t):Vf.stringify(t),"stringify")},Mi=Vxe});var Uxe,$b,VS=M(()=>{"use strict";jl();Zc();Uxe=o((t,e)=>{let r=Mi.parse(t);for(let n in e)r[n]=Yt.channel.clamp[n](e[n]);return Mi.stringify(r)},"change"),$b=Uxe});var Hxe,Hs,US=M(()=>{"use strict";jl();P1();Zc();VS();Hxe=o((t,e,r=0,n=1)=>{if(typeof t!="number")return $b(t,{a:e});let i=th.set({r:Yt.channel.clamp.r(t),g:Yt.channel.clamp.g(e),b:Yt.channel.clamp.b(r),a:Yt.channel.clamp.a(n)});return Mi.stringify(i)},"rgba"),Hs=Hxe});var Wxe,z1,dz=M(()=>{"use strict";jl();Zc();Wxe=o((t,e)=>Yt.lang.round(Mi.parse(t)[e]),"channel"),z1=Wxe});var Yxe,pz,mz=M(()=>{"use strict";jl();Zc();Yxe=o(t=>{let{r:e,g:r,b:n}=Mi.parse(t),i=.2126*Yt.channel.toLinear(e)+.7152*Yt.channel.toLinear(r)+.0722*Yt.channel.toLinear(n);return Yt.lang.round(i)},"luminance"),pz=Yxe});var qxe,gz,yz=M(()=>{"use strict";mz();qxe=o(t=>pz(t)>=.5,"isLight"),gz=qxe});var Xxe,aa,vz=M(()=>{"use strict";yz();Xxe=o(t=>!gz(t),"isDark"),aa=Xxe});var jxe,Vb,HS=M(()=>{"use strict";jl();Zc();jxe=o((t,e,r)=>{let n=Mi.parse(t),i=n[e],a=Yt.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Mi.stringify(n)},"adjustChannel"),Vb=jxe});var Kxe,Dt,xz=M(()=>{"use strict";HS();Kxe=o((t,e)=>Vb(t,"l",e),"lighten"),Dt=Kxe});var Qxe,Bt,bz=M(()=>{"use strict";HS();Qxe=o((t,e)=>Vb(t,"l",-e),"darken"),Bt=Qxe});var Zxe,Ne,wz=M(()=>{"use strict";Zc();VS();Zxe=o((t,e)=>{let r=Mi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return $b(t,n)},"adjust"),Ne=Zxe});var Jxe,Tz,kz=M(()=>{"use strict";Zc();US();Jxe=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Mi.parse(t),{r:l,g:u,b:h,a:f}=Mi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,w=a*y+h*v,_=s*d+f*(1-d);return Hs(x,b,w,_)},"mix"),Tz=Jxe});var ebe,pt,Ez=M(()=>{"use strict";Zc();kz();ebe=o((t,e=100)=>{let r=Mi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,Tz(r,t,e)},"invert"),pt=ebe});var Sz=M(()=>{"use strict";US();dz();vz();xz();bz();wz();Ez()});var To=M(()=>{"use strict";Sz()});var rh,nh,G1=M(()=>{"use strict";rh="#ffffff",nh="#f2f2f2"});var wi,ap=M(()=>{"use strict";To();wi=o((t,e)=>e?Ne(t,{s:-40,l:10}):Ne(t,{s:-40,l:-10}),"mkBorder")});var WS,Az,_z=M(()=>{"use strict";To();G1();ap();WS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||wi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||wi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||pt(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||pt(this.tertiaryColor),this.lineColor=this.lineColor||pt(this.background),this.arrowheadColor=this.arrowheadColor||pt(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Bt(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Bt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||pt(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Dt(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Az=o(t=>{let e=new WS;return e.calculate(t),e},"getThemeVariables")});var YS,Lz,Dz=M(()=>{"use strict";To();ap();YS=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Dt(this.primaryColor,16),this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=pt(this.background),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Dt(pt("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Hs(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Bt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Bt(this.sectionBkgColor,10),this.taskBorderColor=Hs(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Hs(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Dt(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Dt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Dt(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Ne(this.primaryColor,{h:64}),this.fillType3=Ne(this.secondaryColor,{h:64}),this.fillType4=Ne(this.primaryColor,{h:-64}),this.fillType5=Ne(this.secondaryColor,{h:-64}),this.fillType6=Ne(this.primaryColor,{h:128}),this.fillType7=Ne(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Lz=o(t=>{let e=new YS;return e.calculate(t),e},"getThemeVariables")});var qS,sp,Ub=M(()=>{"use strict";To();ap();G1();qS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Ne(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Hs(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},sp=o(t=>{let e=new qS;return e.calculate(t),e},"getThemeVariables")});var XS,Nz,Rz=M(()=>{"use strict";To();G1();ap();XS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Dt("#cde498",10),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.primaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Bt(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Nz=o(t=>{let e=new XS;return e.calculate(t),e},"getThemeVariables")});var jS,Mz,Iz=M(()=>{"use strict";To();ap();G1();jS=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Dt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Dt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Dt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Mz=o(t=>{let e=new jS;return e.calculate(t),e},"getThemeVariables")});var ko,Hb=M(()=>{"use strict";_z();Dz();Ub();Rz();Iz();ko={base:{getThemeVariables:Az},dark:{getThemeVariables:Lz},default:{getThemeVariables:sp},forest:{getThemeVariables:Nz},neutral:{getThemeVariables:Mz}}});var Jc,Oz=M(()=>{"use strict";Jc={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var Pz,Bz,Fz,ur,hs=M(()=>{"use strict";Hb();Oz();Pz={...Jc,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:ko.default.getThemeVariables(),sequence:{...Jc.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...Jc.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Jc.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Jc.pie,useWidth:984},xyChart:{...Jc.xyChart,useWidth:void 0},requirement:{...Jc.requirement,useWidth:void 0},packet:{...Jc.packet}},Bz=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...Bz(t[n],"")]:[...r,e+n],[]),"keyify"),Fz=new Set(Bz(Pz,"")),ur=Pz});var op,tbe,KS=M(()=>{"use strict";hs();ht();op=o(t=>{if(Y.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>op(e));return}for(let e of Object.keys(t)){if(Y.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Fz.has(e)||t[e]==null){Y.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){Y.debug("sanitizing object",e),op(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(Y.debug("sanitizing css option",e),t[e]=tbe(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}Y.debug("After sanitization",t)}},"sanitizeDirective"),tbe=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";ip();ht();Hb();hs();KS();ih=Object.freeze(ur),fs=Gn({},ih),lp=[],$1=Gn({},ih),Wb=o((t,e)=>{let r=Gn({},t),n={};for(let i of e)Uz(i),n=Gn(n,i);if(r=Gn(r,n),n.theme&&n.theme in ko){let i=Gn({},Gz),a=Gn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in ko&&(r.themeVariables=ko[r.theme].getThemeVariables(a))}return $1=r,Wz($1),$1},"updateCurrentConfig"),QS=o(t=>(fs=Gn({},ih),fs=Gn(fs,t),t.theme&&ko[t.theme]&&(fs.themeVariables=ko[t.theme].getThemeVariables(t.themeVariables)),Wb(fs,lp),fs),"setSiteConfig"),$z=o(t=>{Gz=Gn({},t)},"saveConfigFromInitialize"),Vz=o(t=>(fs=Gn(fs,t),Wb(fs,lp),fs),"updateSiteConfig"),ZS=o(()=>Gn({},fs),"getSiteConfig"),Yb=o(t=>(Wz(t),Gn($1,t),Sr()),"setConfig"),Sr=o(()=>Gn({},$1),"getConfig"),Uz=o(t=>{t&&(["secure",...fs.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(Y.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&Uz(t[e])}))},"sanitize"),Hz=o(t=>{op(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),lp.push(t),Wb(fs,lp)},"addDirective"),V1=o((t=fs)=>{lp=[],Wb(t,lp)},"reset"),rbe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},zz={},nbe=o(t=>{zz[t]||(Y.warn(rbe[t]),zz[t]=!0)},"issueWarning"),Wz=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&nbe("LAZY_LOAD_DEPRECATED")},"checkConfig")});function Ws(t){return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:jb;Yz&&Yz(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(ibe(e)||(e[n]=a),i=a)}t[i]=!0}return t}function ube(t){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:wbe(),e=o(yt=>iG(yt),"DOMPurify");if(e.version="3.2.1",e.removed=[],!t||!t.document||t.document.nodeType!==q1.document)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=Y1(g,"cloneNode"),v=Y1(g,"remove"),x=Y1(g,"nextSibling"),b=Y1(g,"childNodes"),w=Y1(g,"parentNode");if(typeof s=="function"){let yt=r.createElement("template");yt.content&&yt.content.ownerDocument&&(r=yt.content.ownerDocument)}let _,T="",{implementation:E,createNodeIterator:L,createDocumentFragment:C,getElementsByTagName:A}=r,{importNode:I}=n,D={};e.isSupported=typeof eG=="function"&&typeof w=="function"&&E&&E.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:k,ERB_EXPR:R,TMPLIT_EXPR:S,DATA_ATTR:O,ARIA_ATTR:N,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:F,CUSTOM_ELEMENT:B}=Jz,{IS_ALLOWED_URI:$}=Jz,z=null,W=Ar({},[...jz,...eC,...tC,...rC,...Kz]),j=null,K=Ar({},[...Qz,...nC,...Zz,...Xb]),ie=Object.seal(tG(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Q=null,ee=null,J=!0,H=!0,q=!1,Z=!0,ae=!1,ue=!0,ce=!1,te=!1,De=!1,oe=!1,ke=!1,Fe=!1,Be=!0,Ve=!1,Ge="user-content-",He=!0,xe=!1,X={},fe=null,he=Ar({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ge=null,ne=Ar({},["audio","video","img","source","image","track"]),ye=null,U=Ar({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Te="http://www.w3.org/1998/Math/MathML",se="http://www.w3.org/2000/svg",Ee="http://www.w3.org/1999/xhtml",Ae=Ee,Pe=!1,Me=null,me=Ar({},[Te,se,Ee],JS),We=Ar({},["mi","mo","mn","ms","mtext"]),Re=Ar({},["annotation-xml"]),tt=Ar({},["title","style","font","a","script"]),gt=null,Et=["application/xhtml+xml","text/html"],vt="text/html",Ye=null,Tt=null,$e=r.createElement("form"),rt=o(function(Se){return Se instanceof RegExp||Se instanceof Function},"isRegexOrFunction"),ft=o(function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Tt&&Tt===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=Uf(Se),gt=Et.indexOf(Se.PARSER_MEDIA_TYPE)===-1?vt:Se.PARSER_MEDIA_TYPE,Ye=gt==="application/xhtml+xml"?JS:jb,z=ul(Se,"ALLOWED_TAGS")?Ar({},Se.ALLOWED_TAGS,Ye):W,j=ul(Se,"ALLOWED_ATTR")?Ar({},Se.ALLOWED_ATTR,Ye):K,Me=ul(Se,"ALLOWED_NAMESPACES")?Ar({},Se.ALLOWED_NAMESPACES,JS):me,ye=ul(Se,"ADD_URI_SAFE_ATTR")?Ar(Uf(U),Se.ADD_URI_SAFE_ATTR,Ye):U,ge=ul(Se,"ADD_DATA_URI_TAGS")?Ar(Uf(ne),Se.ADD_DATA_URI_TAGS,Ye):ne,fe=ul(Se,"FORBID_CONTENTS")?Ar({},Se.FORBID_CONTENTS,Ye):he,Q=ul(Se,"FORBID_TAGS")?Ar({},Se.FORBID_TAGS,Ye):{},ee=ul(Se,"FORBID_ATTR")?Ar({},Se.FORBID_ATTR,Ye):{},X=ul(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,J=Se.ALLOW_ARIA_ATTR!==!1,H=Se.ALLOW_DATA_ATTR!==!1,q=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ae=Se.SAFE_FOR_TEMPLATES||!1,ue=Se.SAFE_FOR_XML!==!1,ce=Se.WHOLE_DOCUMENT||!1,oe=Se.RETURN_DOM||!1,ke=Se.RETURN_DOM_FRAGMENT||!1,Fe=Se.RETURN_TRUSTED_TYPE||!1,De=Se.FORCE_BODY||!1,Be=Se.SANITIZE_DOM!==!1,Ve=Se.SANITIZE_NAMED_PROPS||!1,He=Se.KEEP_CONTENT!==!1,xe=Se.IN_PLACE||!1,$=Se.ALLOWED_URI_REGEXP||rG,Ae=Se.NAMESPACE||Ee,We=Se.MATHML_TEXT_INTEGRATION_POINTS||We,Re=Se.HTML_INTEGRATION_POINTS||Re,ie=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&rt(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ie.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&rt(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ie.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ie.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ae&&(H=!1),ke&&(oe=!0),X&&(z=Ar({},Kz),j=[],X.html===!0&&(Ar(z,jz),Ar(j,Qz)),X.svg===!0&&(Ar(z,eC),Ar(j,nC),Ar(j,Xb)),X.svgFilters===!0&&(Ar(z,tC),Ar(j,nC),Ar(j,Xb)),X.mathMl===!0&&(Ar(z,rC),Ar(j,Zz),Ar(j,Xb))),Se.ADD_TAGS&&(z===W&&(z=Uf(z)),Ar(z,Se.ADD_TAGS,Ye)),Se.ADD_ATTR&&(j===K&&(j=Uf(j)),Ar(j,Se.ADD_ATTR,Ye)),Se.ADD_URI_SAFE_ATTR&&Ar(ye,Se.ADD_URI_SAFE_ATTR,Ye),Se.FORBID_CONTENTS&&(fe===he&&(fe=Uf(fe)),Ar(fe,Se.FORBID_CONTENTS,Ye)),He&&(z["#text"]=!0),ce&&Ar(z,["html","head","body"]),z.table&&(Ar(z,["tbody"]),delete Q.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw W1('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw W1('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');_=Se.TRUSTED_TYPES_POLICY,T=_.createHTML("")}else _===void 0&&(_=Tbe(m,i)),_!==null&&typeof T=="string"&&(T=_.createHTML(""));Wa&&Wa(Se),Tt=Se}},"_parseConfig"),kt=Ar({},[...eC,...tC,...hbe]),er=Ar({},[...rC,...fbe]),dt=o(function(Se){let at=w(Se);(!at||!at.tagName)&&(at={namespaceURI:Ae,tagName:"template"});let At=jb(Se.tagName),pr=jb(at.tagName);return Me[Se.namespaceURI]?Se.namespaceURI===se?at.namespaceURI===Ee?At==="svg":at.namespaceURI===Te?At==="svg"&&(pr==="annotation-xml"||We[pr]):!!kt[At]:Se.namespaceURI===Te?at.namespaceURI===Ee?At==="math":at.namespaceURI===se?At==="math"&&Re[pr]:!!er[At]:Se.namespaceURI===Ee?at.namespaceURI===se&&!Re[pr]||at.namespaceURI===Te&&!We[pr]?!1:!er[At]&&(tt[At]||!kt[At]):!!(gt==="application/xhtml+xml"&&Me[Se.namespaceURI]):!1},"_checkValidNamespace"),Xe=o(function(Se){U1(e.removed,{element:Se});try{w(Se).removeChild(Se)}catch{v(Se)}},"_forceRemove"),ct=o(function(Se,at){try{U1(e.removed,{attribute:at.getAttributeNode(Se),from:at})}catch{U1(e.removed,{attribute:null,from:at})}if(at.removeAttribute(Se),Se==="is"&&!j[Se])if(oe||ke)try{Xe(at)}catch{}else try{at.setAttribute(Se,"")}catch{}},"_removeAttribute"),Lt=o(function(Se){let at=null,At=null;if(De)Se=""+Se;else{let On=Xz(Se,/^[\r\n\t ]+/);At=On&&On[0]}gt==="application/xhtml+xml"&&Ae===Ee&&(Se=''+Se+"");let pr=_?_.createHTML(Se):Se;if(Ae===Ee)try{at=new p().parseFromString(pr,gt)}catch{}if(!at||!at.documentElement){at=E.createDocument(Ae,"template",null);try{at.documentElement.innerHTML=Pe?T:pr}catch{}}let In=at.body||at.documentElement;return Se&&At&&In.insertBefore(r.createTextNode(At),In.childNodes[0]||null),Ae===Ee?A.call(at,ce?"html":"body")[0]:ce?at.documentElement:In},"_initDocument"),Rt=o(function(Se){return L.call(Se.ownerDocument||Se,Se,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),zt=o(function(Se){return Se instanceof d&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof f)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},"_isClobbered"),Xn=o(function(Se){return typeof l=="function"&&Se instanceof l},"_isNode");function or(yt,Se,at){D[yt]&&qb(D[yt],At=>{At.call(e,Se,at,Tt)})}o(or,"_executeHook");let hn=o(function(Se){let at=null;if(or("beforeSanitizeElements",Se,null),zt(Se))return Xe(Se),!0;let At=Ye(Se.nodeName);if(or("uponSanitizeElement",Se,{tagName:At,allowedTags:z}),Se.hasChildNodes()&&!Xn(Se.firstElementChild)&&Ha(/<[/\w]/g,Se.innerHTML)&&Ha(/<[/\w]/g,Se.textContent)||Se.nodeType===q1.progressingInstruction||ue&&Se.nodeType===q1.comment&&Ha(/<[/\w]/g,Se.data))return Xe(Se),!0;if(!z[At]||Q[At]){if(!Q[At]&&Ur(At)&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,At)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(At)))return!1;if(He&&!fe[At]){let pr=w(Se)||Se.parentNode,In=b(Se)||Se.childNodes;if(In&&pr){let On=In.length;for(let Ir=On-1;Ir>=0;--Ir){let kn=y(In[Ir],!0);kn.__removalCount=(Se.__removalCount||0)+1,pr.insertBefore(kn,x(Se))}}}return Xe(Se),!0}return Se instanceof u&&!dt(Se)||(At==="noscript"||At==="noembed"||At==="noframes")&&Ha(/<\/no(script|embed|frames)/i,Se.innerHTML)?(Xe(Se),!0):(ae&&Se.nodeType===q1.text&&(at=Se.textContent,qb([k,R,S],pr=>{at=H1(at,pr," ")}),Se.textContent!==at&&(U1(e.removed,{element:Se.cloneNode()}),Se.textContent=at)),or("afterSanitizeElements",Se,null),!1)},"_sanitizeElements"),Tn=o(function(Se,at,At){if(Be&&(at==="id"||at==="name")&&(At in r||At in $e))return!1;if(!(H&&!ee[at]&&Ha(O,at))){if(!(J&&Ha(N,at))){if(!j[at]||ee[at]){if(!(Ur(Se)&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,Se)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(Se))&&(ie.attributeNameCheck instanceof RegExp&&Ha(ie.attributeNameCheck,at)||ie.attributeNameCheck instanceof Function&&ie.attributeNameCheck(at))||at==="is"&&ie.allowCustomizedBuiltInElements&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,At)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(At))))return!1}else if(!ye[at]){if(!Ha($,H1(At,F,""))){if(!((at==="src"||at==="xlink:href"||at==="href")&&Se!=="script"&&obe(At,"data:")===0&&ge[Se])){if(!(q&&!Ha(P,H1(At,F,"")))){if(At)return!1}}}}}}return!0},"_isValidAttribute"),Ur=o(function(Se){return Se!=="annotation-xml"&&Xz(Se,B)},"_isBasicCustomElement"),ri=o(function(Se){or("beforeSanitizeAttributes",Se,null);let{attributes:at}=Se;if(!at)return;let At={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:j,forceKeepAttr:void 0},pr=at.length;for(;pr--;){let In=at[pr],{name:On,namespaceURI:Ir,value:kn}=In,_t=Ye(On),St=On==="value"?kn:lbe(kn);if(At.attrName=_t,At.attrValue=St,At.keepAttr=!0,At.forceKeepAttr=void 0,or("uponSanitizeAttribute",Se,At),St=At.attrValue,Ve&&(_t==="id"||_t==="name")&&(ct(On,Se),St=Ge+St),ue&&Ha(/((--!?|])>)|<\/(style|title)/i,St)){ct(On,Se);continue}if(At.forceKeepAttr||(ct(On,Se),!At.keepAttr))continue;if(!Z&&Ha(/\/>/i,St)){ct(On,Se);continue}ae&&qb([k,R,S],Ue=>{St=H1(St,Ue," ")});let bt=Ye(Se.nodeName);if(Tn(bt,_t,St)){if(_&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Ir)switch(m.getAttributeType(bt,_t)){case"TrustedHTML":{St=_.createHTML(St);break}case"TrustedScriptURL":{St=_.createScriptURL(St);break}}try{Ir?Se.setAttributeNS(Ir,On,St):Se.setAttribute(On,St),zt(Se)?Xe(Se):qz(e.removed)}catch{}}}or("afterSanitizeAttributes",Se,null)},"_sanitizeAttributes"),Mn=o(function yt(Se){let at=null,At=Rt(Se);for(or("beforeSanitizeShadowDOM",Se,null);at=At.nextNode();)or("uponSanitizeShadowNode",at,null),!hn(at)&&(at.content instanceof a&&yt(at.content),ri(at));or("afterSanitizeShadowDOM",Se,null)},"_sanitizeShadowDOM");return e.sanitize=function(yt){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=null,At=null,pr=null,In=null;if(Pe=!yt,Pe&&(yt=""),typeof yt!="string"&&!Xn(yt))if(typeof yt.toString=="function"){if(yt=yt.toString(),typeof yt!="string")throw W1("dirty is not a string, aborting")}else throw W1("toString is not a function");if(!e.isSupported)return yt;if(te||ft(Se),e.removed=[],typeof yt=="string"&&(xe=!1),xe){if(yt.nodeName){let kn=Ye(yt.nodeName);if(!z[kn]||Q[kn])throw W1("root node is forbidden and cannot be sanitized in-place")}}else if(yt instanceof l)at=Lt(""),At=at.ownerDocument.importNode(yt,!0),At.nodeType===q1.element&&At.nodeName==="BODY"||At.nodeName==="HTML"?at=At:at.appendChild(At);else{if(!oe&&!ae&&!ce&&yt.indexOf("<")===-1)return _&&Fe?_.createHTML(yt):yt;if(at=Lt(yt),!at)return oe?null:Fe?T:""}at&&De&&Xe(at.firstChild);let On=Rt(xe?yt:at);for(;pr=On.nextNode();)hn(pr)||(pr.content instanceof a&&Mn(pr.content),ri(pr));if(xe)return yt;if(oe){if(ke)for(In=C.call(at.ownerDocument);at.firstChild;)In.appendChild(at.firstChild);else In=at;return(j.shadowroot||j.shadowrootmode)&&(In=I.call(n,In,!0)),In}let Ir=ce?at.outerHTML:at.innerHTML;return ce&&z["!doctype"]&&at.ownerDocument&&at.ownerDocument.doctype&&at.ownerDocument.doctype.name&&Ha(nG,at.ownerDocument.doctype.name)&&(Ir=" +`+Ir),ae&&qb([k,R,S],kn=>{Ir=H1(Ir,kn," ")}),_&&Fe?_.createHTML(Ir):Ir},e.setConfig=function(){let yt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ft(yt),te=!0},e.clearConfig=function(){Tt=null,te=!1},e.isValidAttribute=function(yt,Se,at){Tt||ft({});let At=Ye(yt),pr=Ye(Se);return Tn(At,pr,at)},e.addHook=function(yt,Se){typeof Se=="function"&&(D[yt]=D[yt]||[],U1(D[yt],Se))},e.removeHook=function(yt){if(D[yt])return qz(D[yt])},e.removeHooks=function(yt){D[yt]&&(D[yt]=[])},e.removeAllHooks=function(){D={}},e}var eG,Yz,ibe,abe,sbe,Wa,Eo,tG,iC,aC,qb,qz,U1,jb,JS,Xz,H1,obe,lbe,ul,Ha,W1,jz,eC,tC,hbe,rC,fbe,Kz,Qz,nC,Zz,Xb,dbe,pbe,mbe,gbe,ybe,rG,vbe,xbe,nG,bbe,Jz,q1,wbe,Tbe,ah,sC=M(()=>{"use strict";({entries:eG,setPrototypeOf:Yz,isFrozen:ibe,getPrototypeOf:abe,getOwnPropertyDescriptor:sbe}=Object),{freeze:Wa,seal:Eo,create:tG}=Object,{apply:iC,construct:aC}=typeof Reflect<"u"&&Reflect;Wa||(Wa=o(function(e){return e},"freeze"));Eo||(Eo=o(function(e){return e},"seal"));iC||(iC=o(function(e,r,n){return e.apply(r,n)},"apply"));aC||(aC=o(function(e,r){return new e(...r)},"construct"));qb=Ws(Array.prototype.forEach),qz=Ws(Array.prototype.pop),U1=Ws(Array.prototype.push),jb=Ws(String.prototype.toLowerCase),JS=Ws(String.prototype.toString),Xz=Ws(String.prototype.match),H1=Ws(String.prototype.replace),obe=Ws(String.prototype.indexOf),lbe=Ws(String.prototype.trim),ul=Ws(Object.prototype.hasOwnProperty),Ha=Ws(RegExp.prototype.test),W1=cbe(TypeError);o(Ws,"unapply");o(cbe,"unconstruct");o(Ar,"addToSet");o(ube,"cleanArray");o(Uf,"clone");o(Y1,"lookupGetter");jz=Wa(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),eC=Wa(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),tC=Wa(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),hbe=Wa(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),rC=Wa(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),fbe=Wa(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Kz=Wa(["#text"]),Qz=Wa(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),nC=Wa(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Zz=Wa(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Xb=Wa(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),dbe=Eo(/\{\{[\w\W]*|[\w\W]*\}\}/gm),pbe=Eo(/<%[\w\W]*|[\w\W]*%>/gm),mbe=Eo(/\${[\w\W]*}/gm),gbe=Eo(/^data-[\-\w.\u00B7-\uFFFF]/),ybe=Eo(/^aria-[\-\w]+$/),rG=Eo(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),vbe=Eo(/^(?:\w+script|data):/i),xbe=Eo(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nG=Eo(/^html$/i),bbe=Eo(/^[a-z][.\w]*(-[.\w]+)+$/i),Jz=Object.freeze({__proto__:null,ARIA_ATTR:ybe,ATTR_WHITESPACE:xbe,CUSTOM_ELEMENT:bbe,DATA_ATTR:gbe,DOCTYPE_NAME:nG,ERB_EXPR:pbe,IS_ALLOWED_URI:rG,IS_SCRIPT_OR_DATA:vbe,MUSTACHE_EXPR:dbe,TMPLIT_EXPR:mbe}),q1={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},wbe=o(function(){return typeof window>"u"?null:window},"getGlobal"),Tbe=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy");o(iG,"createDOMPurify");ah=iG()});var N$={};vr(N$,{default:()=>g3e});function Lbe(t){return String(t).replace(_be,e=>Abe[e])}function Mbe(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function Gbe(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}function BG(t){for(var e=0;e=l4[e]&&t<=l4[e+1])return!0;return!1}function Qbe(t,e){Zl[t]=e}function RC(t,e,r){if(!Zl[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=Zl[e][n];if(!i&&t[0]in sG&&(n=sG[t[0]].charCodeAt(0),i=Zl[e][n]),!i&&r==="text"&&BG(n)&&(i=Zl[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function Zbe(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!oC[e]){var r=oC[e]={cssEmPerMu:Kb.quad[e]/18};for(var n in Kb)Kb.hasOwnProperty(n)&&(r[n]=Kb[n][e])}return oC[e]}function cG(t){if(t instanceof ms)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function r4e(t){if(t instanceof qf)return t;throw new Error("Expected span but got "+String(t)+".")}function G(t,e,r,n,i,a){En[t][i]={font:e,group:r,replace:n},a&&n&&(En[t][n]=En[t][i])}function Ct(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(n4(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(n4(s,e));var h;r?(h=n4(Ii(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=iu(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=mt(f.height+f.depth),f.depth&&(d.style.verticalAlign=mt(-f.depth))}return f}function jG(t){return new Yf(t)}function pG(t,e,r,n,i){var a=gs(t,r),s;a.length===1&&a[0]instanceof ps&&Jt.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new st.MathNode("mrow",a);var l=new st.MathNode("annotation",[new st.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new st.MathNode("semantics",[s,l]),h=new st.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return Ie.makeSpan([f],[h])}function yr(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function PC(t){var e=x4(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function x4(t){return t&&(t.type==="atom"||i4e.hasOwnProperty(t.type))?t:null}function JG(t,e){var r=Ii(t.body,e,!0);return I4e([t.mclass],r,e)}function e$(t,e){var r,n=gs(t.body,e);return t.mclass==="minner"?r=new st.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new st.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new st.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function B4e(t,e,r){var n=O4e[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function F4e(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new ut("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=B4e(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=mG()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function w4(t,e){var r=x4(t);if(r&&Jt.contains(Q4e,r.text))return r;throw r?new ut("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new ut("Invalid delimiter type '"+t.type+"'",t)}function vG(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function ec(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Ys=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Co=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Ys.range(this,e))}},ut=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},_be=/[&><"']/g;o(Lbe,"escape");PG=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),Dbe=o(function(e){var r=PG(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),Nbe=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),Rbe=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),Jt={contains:kbe,deflt:Ebe,escape:Lbe,hyphenate:Cbe,getBaseElem:PG,isCharacterBox:Dbe,protocolFromUrl:Rbe},o4={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(Mbe,"getDefaultValue");Z1=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in o4)if(o4.hasOwnProperty(r)){var n=o4[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:Mbe(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new ut("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=Jt.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Kl=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Ql[Ibe[this.id]]}sub(){return Ql[Obe[this.id]]}fracNum(){return Ql[Pbe[this.id]]}fracDen(){return Ql[Bbe[this.id]]}cramp(){return Ql[Fbe[this.id]]}text(){return Ql[zbe[this.id]]}isTight(){return this.size>=2}},NC=0,c4=1,hp=2,ru=3,J1=4,So=5,fp=6,Ya=7,Ql=[new Kl(NC,0,!1),new Kl(c4,0,!0),new Kl(hp,1,!1),new Kl(ru,1,!0),new Kl(J1,2,!1),new Kl(So,2,!0),new Kl(fp,3,!1),new Kl(Ya,3,!0)],Ibe=[J1,So,J1,So,fp,Ya,fp,Ya],Obe=[So,So,So,So,Ya,Ya,Ya,Ya],Pbe=[hp,ru,J1,So,fp,Ya,fp,Ya],Bbe=[ru,ru,So,So,Ya,Ya,Ya,Ya],Fbe=[c4,c4,ru,ru,So,So,Ya,Ya],zbe=[NC,c4,hp,ru,hp,ru,hp,ru],rr={DISPLAY:Ql[NC],TEXT:Ql[hp],SCRIPT:Ql[J1],SCRIPTSCRIPT:Ql[fp]},xC=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(Gbe,"scriptFromCodepoint");l4=[];xC.forEach(t=>t.blocks.forEach(e=>l4.push(...e)));o(BG,"supportedCodepoint");up=80,$be=o(function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),Vbe=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),Ube=o(function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),Hbe=o(function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),Wbe=o(function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),Ybe=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),qbe=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),Xbe=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=$be(r,up);break;case"sqrtSize1":i=Vbe(r,up);break;case"sqrtSize2":i=Ube(r,up);break;case"sqrtSize3":i=Hbe(r,up);break;case"sqrtSize4":i=Wbe(r,up);break;case"sqrtTall":i=qbe(r,up,n)}return i},"sqrtPath"),jbe=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),aG={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Kbe=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Yf=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return Jt.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},Zl={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Kb={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},sG={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(Qbe,"setFontMetrics");o(RC,"getCharacterMetrics");oC={};o(Zbe,"getGlobalMetrics");Jbe=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],oG=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],lG=o(function(e,r){return r.size<2?e:Jbe[e-1][r.size-1]},"sizeAtStyle"),u4=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=oG[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:lG(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:oG[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=lG(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Zbe(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};u4.BASESIZE=6;bC={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},e4e={ex:!0,em:!0,mu:!0},FG=o(function(e){return typeof e!="string"&&(e=e.unit),e in bC||e in e4e||e==="ex"},"validUnit"),Qn=o(function(e,r){var n;if(e.unit in bC)n=bC[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new ut("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),mt=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),lh=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),zG=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),GG=o(function(e){var r=document.createElement(e);r.className=lh(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a",r},"toMarkup"),qf=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,zG.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return GG.call(this,"span")}toMarkup(){return $G.call(this,"span")}},ey=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,zG.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return GG.call(this,"a")}toMarkup(){return $G.call(this,"a")}},wC=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return Jt.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+Jt.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=mt(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=lh(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=Jt.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+Jt.escape(n)+'"');var a=Jt.escape(this.text);return e?(r+=">",r+=a,r+="",r):a}},fl=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},ty=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);G(V,re,we,"\u2208","\\in",!0);G(V,re,we,"\uE020","\\@not");G(V,re,we,"\u2282","\\subset",!0);G(V,re,we,"\u2283","\\supset",!0);G(V,re,we,"\u2286","\\subseteq",!0);G(V,re,we,"\u2287","\\supseteq",!0);G(V,ve,we,"\u2288","\\nsubseteq",!0);G(V,ve,we,"\u2289","\\nsupseteq",!0);G(V,re,we,"\u22A8","\\models");G(V,re,we,"\u2190","\\leftarrow",!0);G(V,re,we,"\u2264","\\le");G(V,re,we,"\u2264","\\leq",!0);G(V,re,we,"<","\\lt",!0);G(V,re,we,"\u2192","\\rightarrow",!0);G(V,re,we,"\u2192","\\to");G(V,ve,we,"\u2271","\\ngeq",!0);G(V,ve,we,"\u2270","\\nleq",!0);G(V,re,su,"\xA0","\\ ");G(V,re,su,"\xA0","\\space");G(V,re,su,"\xA0","\\nobreakspace");G(it,re,su,"\xA0","\\ ");G(it,re,su,"\xA0"," ");G(it,re,su,"\xA0","\\space");G(it,re,su,"\xA0","\\nobreakspace");G(V,re,su,null,"\\nobreak");G(V,re,su,null,"\\allowbreak");G(V,re,y4,",",",");G(V,re,y4,";",";");G(V,ve,Nt,"\u22BC","\\barwedge",!0);G(V,ve,Nt,"\u22BB","\\veebar",!0);G(V,re,Nt,"\u2299","\\odot",!0);G(V,re,Nt,"\u2295","\\oplus",!0);G(V,re,Nt,"\u2297","\\otimes",!0);G(V,re,_e,"\u2202","\\partial",!0);G(V,re,Nt,"\u2298","\\oslash",!0);G(V,ve,Nt,"\u229A","\\circledcirc",!0);G(V,ve,Nt,"\u22A1","\\boxdot",!0);G(V,re,Nt,"\u25B3","\\bigtriangleup");G(V,re,Nt,"\u25BD","\\bigtriangledown");G(V,re,Nt,"\u2020","\\dagger");G(V,re,Nt,"\u22C4","\\diamond");G(V,re,Nt,"\u22C6","\\star");G(V,re,Nt,"\u25C3","\\triangleleft");G(V,re,Nt,"\u25B9","\\triangleright");G(V,re,qs,"{","\\{");G(it,re,_e,"{","\\{");G(it,re,_e,"{","\\textbraceleft");G(V,re,qa,"}","\\}");G(it,re,_e,"}","\\}");G(it,re,_e,"}","\\textbraceright");G(V,re,qs,"{","\\lbrace");G(V,re,qa,"}","\\rbrace");G(V,re,qs,"[","\\lbrack",!0);G(it,re,_e,"[","\\lbrack",!0);G(V,re,qa,"]","\\rbrack",!0);G(it,re,_e,"]","\\rbrack",!0);G(V,re,qs,"(","\\lparen",!0);G(V,re,qa,")","\\rparen",!0);G(it,re,_e,"<","\\textless",!0);G(it,re,_e,">","\\textgreater",!0);G(V,re,qs,"\u230A","\\lfloor",!0);G(V,re,qa,"\u230B","\\rfloor",!0);G(V,re,qs,"\u2308","\\lceil",!0);G(V,re,qa,"\u2309","\\rceil",!0);G(V,re,_e,"\\","\\backslash");G(V,re,_e,"\u2223","|");G(V,re,_e,"\u2223","\\vert");G(it,re,_e,"|","\\textbar",!0);G(V,re,_e,"\u2225","\\|");G(V,re,_e,"\u2225","\\Vert");G(it,re,_e,"\u2225","\\textbardbl");G(it,re,_e,"~","\\textasciitilde");G(it,re,_e,"\\","\\textbackslash");G(it,re,_e,"^","\\textasciicircum");G(V,re,we,"\u2191","\\uparrow",!0);G(V,re,we,"\u21D1","\\Uparrow",!0);G(V,re,we,"\u2193","\\downarrow",!0);G(V,re,we,"\u21D3","\\Downarrow",!0);G(V,re,we,"\u2195","\\updownarrow",!0);G(V,re,we,"\u21D5","\\Updownarrow",!0);G(V,re,Ti,"\u2210","\\coprod");G(V,re,Ti,"\u22C1","\\bigvee");G(V,re,Ti,"\u22C0","\\bigwedge");G(V,re,Ti,"\u2A04","\\biguplus");G(V,re,Ti,"\u22C2","\\bigcap");G(V,re,Ti,"\u22C3","\\bigcup");G(V,re,Ti,"\u222B","\\int");G(V,re,Ti,"\u222B","\\intop");G(V,re,Ti,"\u222C","\\iint");G(V,re,Ti,"\u222D","\\iiint");G(V,re,Ti,"\u220F","\\prod");G(V,re,Ti,"\u2211","\\sum");G(V,re,Ti,"\u2A02","\\bigotimes");G(V,re,Ti,"\u2A01","\\bigoplus");G(V,re,Ti,"\u2A00","\\bigodot");G(V,re,Ti,"\u222E","\\oint");G(V,re,Ti,"\u222F","\\oiint");G(V,re,Ti,"\u2230","\\oiiint");G(V,re,Ti,"\u2A06","\\bigsqcup");G(V,re,Ti,"\u222B","\\smallint");G(it,re,dp,"\u2026","\\textellipsis");G(V,re,dp,"\u2026","\\mathellipsis");G(it,re,dp,"\u2026","\\ldots",!0);G(V,re,dp,"\u2026","\\ldots",!0);G(V,re,dp,"\u22EF","\\@cdots",!0);G(V,re,dp,"\u22F1","\\ddots",!0);G(V,re,_e,"\u22EE","\\varvdots");G(V,re,$n,"\u02CA","\\acute");G(V,re,$n,"\u02CB","\\grave");G(V,re,$n,"\xA8","\\ddot");G(V,re,$n,"~","\\tilde");G(V,re,$n,"\u02C9","\\bar");G(V,re,$n,"\u02D8","\\breve");G(V,re,$n,"\u02C7","\\check");G(V,re,$n,"^","\\hat");G(V,re,$n,"\u20D7","\\vec");G(V,re,$n,"\u02D9","\\dot");G(V,re,$n,"\u02DA","\\mathring");G(V,re,tr,"\uE131","\\@imath");G(V,re,tr,"\uE237","\\@jmath");G(V,re,_e,"\u0131","\u0131");G(V,re,_e,"\u0237","\u0237");G(it,re,_e,"\u0131","\\i",!0);G(it,re,_e,"\u0237","\\j",!0);G(it,re,_e,"\xDF","\\ss",!0);G(it,re,_e,"\xE6","\\ae",!0);G(it,re,_e,"\u0153","\\oe",!0);G(it,re,_e,"\xF8","\\o",!0);G(it,re,_e,"\xC6","\\AE",!0);G(it,re,_e,"\u0152","\\OE",!0);G(it,re,_e,"\xD8","\\O",!0);G(it,re,$n,"\u02CA","\\'");G(it,re,$n,"\u02CB","\\`");G(it,re,$n,"\u02C6","\\^");G(it,re,$n,"\u02DC","\\~");G(it,re,$n,"\u02C9","\\=");G(it,re,$n,"\u02D8","\\u");G(it,re,$n,"\u02D9","\\.");G(it,re,$n,"\xB8","\\c");G(it,re,$n,"\u02DA","\\r");G(it,re,$n,"\u02C7","\\v");G(it,re,$n,"\xA8",'\\"');G(it,re,$n,"\u02DD","\\H");G(it,re,$n,"\u25EF","\\textcircled");VG={"--":!0,"---":!0,"``":!0,"''":!0};G(it,re,_e,"\u2013","--",!0);G(it,re,_e,"\u2013","\\textendash");G(it,re,_e,"\u2014","---",!0);G(it,re,_e,"\u2014","\\textemdash");G(it,re,_e,"\u2018","`",!0);G(it,re,_e,"\u2018","\\textquoteleft");G(it,re,_e,"\u2019","'",!0);G(it,re,_e,"\u2019","\\textquoteright");G(it,re,_e,"\u201C","``",!0);G(it,re,_e,"\u201C","\\textquotedblleft");G(it,re,_e,"\u201D","''",!0);G(it,re,_e,"\u201D","\\textquotedblright");G(V,re,_e,"\xB0","\\degree",!0);G(it,re,_e,"\xB0","\\degree");G(it,re,_e,"\xB0","\\textdegree",!0);G(V,re,_e,"\xA3","\\pounds");G(V,re,_e,"\xA3","\\mathsterling",!0);G(it,re,_e,"\xA3","\\pounds");G(it,re,_e,"\xA3","\\textsterling",!0);G(V,ve,_e,"\u2720","\\maltese");G(it,ve,_e,"\u2720","\\maltese");uG='0123456789/@."';for(Qb=0;Qb0)return hl(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=o4e(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=WG[u].fontName,p=[u]):(d=r4(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(v4(a,d,i).metrics)return hl(a,d,i,r,s.concat(p));if(VG.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(lh(t.classes)!==lh(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),u4e=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),ds=o(function(e,r,n,i){var a=new qf(e,r,n,i);return MC(a),a},"makeSpan"),UG=o((t,e,r,n)=>new qf(t,e,r,n),"makeSvgSpan"),h4e=o(function(e,r,n){var i=ds([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=mt(i.height),i.maxFontSize=1,i},"makeLineSpan"),f4e=o(function(e,r,n,i){var a=new ey(e,r,n,i);return MC(a),a},"makeAnchor"),HG=o(function(e){var r=new Yf(e);return MC(r),r},"makeFragment"),d4e=o(function(e,r){return e instanceof Yf?ds([],[e],r):e},"wrapFragment"),p4e=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=ds(["mspace"],[],e),n=Qn(t,e);return r.style.marginRight=mt(n),r},"makeGlue"),r4=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),WG={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},YG={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},y4e=o(function(e,r){var[n,i,a]=YG[e],s=new Jl(n),l=new fl([s],{width:mt(i),height:mt(a),style:"width:"+mt(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=UG(["overlay"],[l],r);return u.height=a,u.style.height=mt(a),u.style.width=mt(i),u},"staticSvg"),Ie={fontMap:WG,makeSymbol:hl,mathsym:s4e,makeSpan:ds,makeSvgSpan:UG,makeLineSpan:h4e,makeAnchor:f4e,makeFragment:HG,wrapFragment:d4e,makeVList:m4e,makeOrd:l4e,makeGlue:g4e,staticSvg:y4e,svgData:YG,tryCombineChars:u4e},Kn={number:3,unit:"mu"},Hf={number:4,unit:"mu"},tu={number:5,unit:"mu"},v4e={mord:{mop:Kn,mbin:Hf,mrel:tu,minner:Kn},mop:{mord:Kn,mop:Kn,mrel:tu,minner:Kn},mbin:{mord:Hf,mop:Hf,mopen:Hf,minner:Hf},mrel:{mord:tu,mop:tu,mopen:tu,minner:tu},mopen:{},mclose:{mop:Kn,mbin:Hf,mrel:tu,minner:Kn},mpunct:{mord:Kn,mop:Kn,mrel:tu,mopen:Kn,mclose:Kn,mpunct:Kn,minner:Kn},minner:{mord:Kn,mop:Kn,mbin:Hf,mrel:tu,mopen:Kn,mpunct:Kn,minner:Kn}},x4e={mord:{mop:Kn},mop:{mord:Kn,mop:Kn},mbin:{},mrel:{},mopen:{},mclose:{mop:Kn},mpunct:{},minner:{mop:Kn}},qG={},f4={},d4={};o(Ct,"defineFunction");o(Xf,"defineFunctionBuilders");p4=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),di=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),iu=Ie.makeSpan,b4e=["leftmost","mbin","mopen","mrel","mop","mpunct"],w4e=["rightmost","mrel","mclose","mpunct"],T4e={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT},k4e={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Ii=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&Jt.contains(w4e,x)?y.classes[0]="mord":x==="mbin"&&Jt.contains(b4e,v)&&(g.classes[0]="mord")},{node:d},p,m),dG(a,(g,y)=>{var v=kC(y),x=kC(g),b=v&&x?g.hasClass("mtight")?x4e[v][x]:v4e[v][x]:null;if(b)return Ie.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),dG=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),XG=o(function(e){return e instanceof Yf||e instanceof ey||e instanceof qf&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),E4e=o(function t(e,r){var n=XG(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),kC=o(function(e,r){return e?(r&&(e=E4e(e,r)),k4e[e.classes[0]]||null):null},"getTypeOfDomTree"),ry=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return iu(r.concat(n))},"makeNullDelimiter"),Or=o(function(e,r,n){if(!e)return iu();if(f4[e.type]){var i=f4[e.type](e,r);if(n&&r.size!==n.size){i=iu(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new ut("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(n4,"buildHTMLUnbreakable");o(EC,"buildHTML");o(jG,"newDocumentFragment");ps=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=lh(this.classes));for(var n=0;n0&&(e+=' class ="'+Jt.escape(lh(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},Wf=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Jt.escape(this.toText())}toText(){return this.text}},SC=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",mt(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},st={MathNode:ps,TextNode:Wf,SpaceNode:SC,newDocumentFragment:jG},Ao=o(function(e,r,n){return En[r][e]&&En[r][e].replace&&e.charCodeAt(0)!==55349&&!(VG.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=En[r][e].replace),new st.TextNode(e)},"makeText"),IC=o(function(e){return e.length===1?e[0]:new st.MathNode("mrow",e)},"makeRow"),OC=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(Jt.contains(["\\imath","\\jmath"],a))return null;En[i][a]&&En[i][a].replace&&(a=En[i][a].replace);var s=Ie.fontMap[n].fontName;return RC(a,s,i)?Ie.fontMap[n].variant:null},"getVariant"),gs=o(function(e,r,n){if(e.length===1){var i=mn(e[0],r);return n&&i instanceof ps&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),ch=o(function(e,r,n){return IC(gs(e,r,n))},"buildExpressionRow"),mn=o(function(e,r){if(!e)return new st.MathNode("mrow");if(d4[e.type]){var n=d4[e.type](e,r);return n}else throw new ut("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(pG,"buildMathML");KG=o(function(e){return new u4({style:e.displayMode?rr.DISPLAY:rr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),QG=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=Ie.makeSpan(n,[e])}return e},"displayWrap"),S4e=o(function(e,r,n){var i=KG(n),a;if(n.output==="mathml")return pG(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=EC(e,i);a=Ie.makeSpan(["katex"],[s])}else{var l=pG(e,r,i,n.displayMode,!1),u=EC(e,i);a=Ie.makeSpan(["katex"],[l,u])}return QG(a,n)},"buildTree"),C4e=o(function(e,r,n){var i=KG(n),a=EC(e,i),s=Ie.makeSpan(["katex"],[a]);return QG(s,n)},"buildHTMLTree"),A4e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},_4e=o(function(e){var r=new st.MathNode("mo",[new st.TextNode(A4e[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),L4e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},D4e=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),N4e=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(Jt.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=e,f=D4e(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Jl(p),v=new fl([y],{width:"100%",height:mt(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Ie.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=L4e[u],[w,_,T]=b,E=T/1e3,L=w.length,C,A;if(L===1){var I=b[3];C=["hide-tail"],A=[I]}else if(L===2)C=["halfarrow-left","halfarrow-right"],A=["xMinYMin","xMaxYMin"];else if(L===3)C=["brace-left","brace-center","brace-right"],A=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+L+" children.");for(var D=0;D0&&(i.style.minWidth=mt(a)),i},"svgSpan"),R4e=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=Ie.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new ty({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new ty({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new fl(h,{width:"100%",height:mt(l)});s=Ie.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=mt(l),s},"encloseSpan"),au={encloseSpan:R4e,mathMLnode:_4e,svgSpan:N4e};o(yr,"assertNodeType");o(PC,"assertSymbolNodeType");o(x4,"checkSymbolNodeType");BC=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=yr(t.base,"accent"),r=n.base,t.base=r,i=r4e(Or(t,e)),t.base=n):(n=yr(t,"accent"),r=n.base);var a=Or(r,e.havingCrampedStyle()),s=n.isShifty&&Jt.isCharacterBox(r),l=0;if(s){var u=Jt.getBaseElem(r),h=Or(u,e.havingCrampedStyle());l=cG(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=au.svgSpan(n,e),p=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+mt(2*l)+")",marginLeft:mt(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=Ie.staticSvg("vec",e),g=Ie.svgData.vec[1]):(m=Ie.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=cG(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=Ie.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=mt(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=Ie.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),ZG=o((t,e)=>{var r=t.isStretchy?au.mathMLnode(t.label):new st.MathNode("mo",[Ao(t.label,t.mode)]),n=new st.MathNode("mover",[mn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),M4e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Ct({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=p4(e[0]),n=!M4e.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:BC,mathmlBuilder:ZG});Ct({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:BC,mathmlBuilder:ZG});Ct({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=Or(t.base,e),n=au.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=Ie.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return Ie.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=au.mathMLnode(t.label),n=new st.MathNode("munder",[mn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});i4=o(t=>{var e=new st.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Ct({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=Ie.wrapFragment(Or(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=Ie.wrapFragment(Or(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=au.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),Ie.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=au.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=i4(mn(t.body,e));if(t.below){var a=i4(mn(t.below,e));n=new st.MathNode("munderover",[r,a,i])}else n=new st.MathNode("mover",[r,i])}else if(t.below){var s=i4(mn(t.below,e));n=new st.MathNode("munder",[r,s])}else n=i4(),n=new st.MathNode("mover",[r,n]);return n}});I4e=Ie.makeSpan;o(JG,"htmlBuilder$9");o(e$,"mathmlBuilder$8");Ct({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:di(i),isCharacterBox:Jt.isCharacterBox(i)}},htmlBuilder:JG,mathmlBuilder:e$});b4=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Ct({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:b4(e[0]),body:di(e[1]),isCharacterBox:Jt.isCharacterBox(e[1])}}});Ct({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=b4(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:di(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:Jt.isCharacterBox(u)}},htmlBuilder:JG,mathmlBuilder:e$});Ct({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:b4(e[0]),body:di(e[0])}},htmlBuilder(t,e){var r=Ii(t.body,e,!0),n=Ie.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=gs(t.body,e),n=new st.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});O4e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},mG=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),gG=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),P4e=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(B4e,"cdArrow");o(F4e,"parseCD");Ct({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=Ie.wrapFragment(Or(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=mt(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new st.MathNode("mrow",[mn(t.label,e)]);return r=new st.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new st.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Ct({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=Ie.wrapFragment(Or(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new st.MathNode("mrow",[mn(t.fragment,e)])}});Ct({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=yr(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new ut("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});t$=o((t,e)=>{var r=Ii(t.body,e.withColor(t.color),!1);return Ie.makeFragment(r)},"htmlBuilder$8"),r$=o((t,e)=>{var r=gs(t.body,e.withColor(t.color)),n=new st.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Ct({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=yr(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:di(i)}},htmlBuilder:t$,mathmlBuilder:r$});Ct({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=yr(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:t$,mathmlBuilder:r$});Ct({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&yr(i,"size").value}},htmlBuilder(t,e){var r=Ie.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=mt(Qn(t.size,e)))),r},mathmlBuilder(t,e){var r=new st.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",mt(Qn(t.size,e)))),r}});CC={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},n$=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new ut("Expected a control sequence",t);return e},"checkControlSequence"),z4e=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),i$=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Ct({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(CC[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=CC[n.text]),yr(e.parseFunction(),"internal");throw new ut("Invalid token after macro prefix",n)}});Ct({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new ut("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new ut('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new ut('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new ut("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===CC[r]),{type:"internal",mode:e.mode}}});Ct({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=n$(e.gullet.popToken());e.gullet.consumeSpaces();var i=z4e(e);return i$(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Ct({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=n$(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return i$(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});K1=o(function(e,r,n){var i=En.math[e]&&En.math[e].replace,a=RC(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),FC=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=Ie.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),a$=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=mt(a),e.height-=a,e.depth+=a},"centerSpan"),G4e=o(function(e,r,n,i,a,s){var l=Ie.makeSymbol(e,"Main-Regular",a,i),u=FC(l,r,i,s);return n&&a$(u,i,r),u},"makeSmallDelim"),$4e=o(function(e,r,n,i){return Ie.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),s$=o(function(e,r,n,i,a,s){var l=$4e(e,r,a,i),u=FC(Ie.makeSpan(["delimsizing","size"+r],[l],i),rr.TEXT,i,s);return n&&a$(u,i,rr.TEXT),u},"makeLargeDelim"),uC=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Ie.makeSpan(["delimsizinginner",i],[Ie.makeSpan([],[Ie.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),hC=o(function(e,r,n){var i=Zl["Size4-Regular"][e.charCodeAt(0)]?Zl["Size4-Regular"][e.charCodeAt(0)][4]:Zl["Size1-Regular"][e.charCodeAt(0)][4],a=new Jl("inner",jbe(e,Math.round(1e3*r))),s=new fl([a],{width:mt(i),height:mt(r),style:"width:"+mt(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Ie.makeSvgSpan([],[s],n);return l.height=r,l.style.height=mt(r),l.style.width=mt(i),{type:"elem",elem:l}},"makeInner"),AC=.008,a4={type:"kern",size:-1*AC},V4e=["|","\\lvert","\\rvert","\\vert"],U4e=["\\|","\\lVert","\\rVert","\\Vert"],o$=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):Jt.contains(V4e,e)?(h="\u2223",d="vert",p=333):Jt.contains(U4e,e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=K1(l,m,a),y=g.height+g.depth,v=K1(h,m,a),x=v.height+v.depth,b=K1(f,m,a),w=b.height+b.depth,_=0,T=1;if(u!==null){var E=K1(u,m,a);_=E.height+E.depth,T=2}var L=y+w+_,C=Math.max(0,Math.ceil((r-L)/(T*x))),A=L+C*T*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var D=A/2-I,k=[];if(d.length>0){var R=A-y-w,S=Math.round(A*1e3),O=Kbe(d,Math.round(R*1e3)),N=new Jl(d,O),P=(p/1e3).toFixed(3)+"em",F=(S/1e3).toFixed(3)+"em",B=new fl([N],{width:P,height:F,viewBox:"0 0 "+p+" "+S}),$=Ie.makeSvgSpan([],[B],i);$.height=S/1e3,$.style.width=P,$.style.height=F,k.push({type:"elem",elem:$})}else{if(k.push(uC(f,m,a)),k.push(a4),u===null){var z=A-y-w+2*AC;k.push(hC(h,z,i))}else{var W=(A-y-w-_)/2+2*AC;k.push(hC(h,W,i)),k.push(a4),k.push(uC(u,m,a)),k.push(a4),k.push(hC(h,W,i))}k.push(a4),k.push(uC(l,m,a))}var j=i.havingBaseStyle(rr.TEXT),K=Ie.makeVList({positionType:"bottom",positionData:D,children:k},j);return FC(Ie.makeSpan(["delimsizing","mult"],[K],j),rr.TEXT,i,s)},"makeStackedDelim"),fC=80,dC=.08,pC=o(function(e,r,n,i,a){var s=Xbe(e,i,n),l=new Jl(e,s),u=new fl([l],{width:"400em",height:mt(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Ie.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),H4e=o(function(e,r){var n=r.havingBaseSizing(),i=h$("\\surd",e*n.sizeMultiplier,u$,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+fC,e<1?a=1:e<1.4&&(a=.7),u=(1+s+dC)/a,h=(1+s)/a,l=pC("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+fC)*Q1[i.size],h=(Q1[i.size]+s)/a,u=(Q1[i.size]+s+dC)/a,l=pC("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+dC,h=e+s,f=Math.floor(1e3*e+s)+fC,l=pC("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=mt(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),l$=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],W4e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],c$=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Q1=[0,1.2,1.8,2.4,3],Y4e=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),Jt.contains(l$,e)||Jt.contains(c$,e))return s$(e,r,!1,n,i,a);if(Jt.contains(W4e,e))return o$(e,Q1[r],!1,n,i,a);throw new ut("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),q4e=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],X4e=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"stack"}],u$=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],j4e=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),h$=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),f$=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Jt.contains(c$,e)?l=q4e:Jt.contains(l$,e)?l=u$:l=X4e;var u=h$(e,r,l,i);return u.type==="small"?G4e(e,u.style,n,i,a,s):u.type==="large"?s$(e,u.size,n,i,a,s):o$(e,r,n,i,a,s)},"makeCustomSizedDelim"),K4e=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return f$(e,d,!0,i,a,s)},"makeLeftRightDelim"),nu={sqrtImage:H4e,sizedDelim:Y4e,sizeToMaxHeight:Q1,customSizedDelim:f$,leftRightDelim:K4e},yG={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Q4e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(w4,"checkDelimiter");Ct({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=w4(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:yG[t.funcName].size,mclass:yG[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?Ie.makeSpan([t.mclass]):nu.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(Ao(t.delim,t.mode));var r=new st.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=mt(nu.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(vG,"assertParsed");Ct({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new ut("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:w4(e[0],t).text,color:r}},"handler")});Ct({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=w4(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=yr(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{vG(t);for(var r=Ii(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{vG(t);var r=gs(t.body,e);if(t.left!=="."){var n=new st.MathNode("mo",[Ao(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new st.MathNode("mo",[Ao(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return IC(r)},"mathmlBuilder")});Ct({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=w4(e[0],t);if(!t.parser.leftrightDepth)throw new ut("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=ry(e,[]);else{r=nu.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Ao("|","text"):Ao(t.delim,t.mode),n=new st.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});zC=o((t,e)=>{var r=Ie.wrapFragment(Or(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=Jt.isCharacterBox(t.body);if(n==="sout")a=Ie.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=Qn({number:.6,unit:"pt"},e),h=Qn({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=mt(d/2+u);var p=Math.floor(1e3*d*i),m=Ybe(p),g=new fl([new Jl("phase",m)],{width:"400em",height:mt(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Ie.makeSvgSpan(["hide-tail"],[g],e),a.style.height=mt(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=au.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=mt(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=mt(x),a.style.borderRightWidth=mt(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var w=/cancel|phase/.test(n)?["svg-align"]:[];b=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:w}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?Ie.makeSpan(["mord","cancel-lap"],[b],e):Ie.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),GC=o((t,e)=>{var r=0,n=new st.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[mn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Ct({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=yr(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=yr(e[0],"color-token").color,s=yr(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Ct({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});d$={};o(ec,"defineEnvironment");p$={};o(le,"defineMacro");o(xG,"getHLines");T4=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new ut("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o($C,"getAutoTag");o(uh,"parseArray");o(VC,"dCellStyle");tc=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(rr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?Qn({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,w=0;function _(ke){for(var Fe=0;Fe0&&(w+=.25),h.push({pos:w,isDashed:ke[Fe]})}for(o(_,"setHLinePos"),_(s[0]),n=0;n0&&(D+=b,Lke))for(n=0;n=l)){var ee=void 0;(i>0||e.hskipBeforeAndAfter)&&(ee=Jt.deflt(W.pregap,p),ee!==0&&(O=Ie.makeSpan(["arraycolsep"],[]),O.style.width=mt(ee),S.push(O)));var J=[];for(n=0;n0){for(var ae=Ie.makeLineSpan("hline",r,f),ue=Ie.makeLineSpan("hdashline",r,f),ce=[{type:"elem",elem:u,shift:0}];h.length>0;){var te=h.pop(),De=te.pos-k;te.isDashed?ce.push({type:"elem",elem:ue,shift:De}):ce.push({type:"elem",elem:ae,shift:De})}u=Ie.makeVList({positionType:"individualShift",children:ce},r)}if(P.length===0)return Ie.makeSpan(["mord"],[u],r);var oe=Ie.makeVList({positionType:"individualShift",children:P},r);return oe=Ie.makeSpan(["tag"],[oe],r),Ie.makeFragment([u,oe])},"htmlBuilder"),Z4e={c:"center ",l:"left ",r:"right "},rc=o(function(e,r){for(var n=[],i=new st.MathNode("mtd",[],["mtr-glue"]),a=new st.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var w=x;w0?"left ":"",p+=C[C.length-1].length>0?"right ":"";for(var A=1;A-1?"alignat":"align",a=e.envName==="split",s=uh(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:$C(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");ec({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=x4(e[0]),n=r?[e[0]]:yr(e[0],"ordgroup").body,i=n.map(function(s){var l=PC(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new ut("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return uh(t.parser,a,VC(t.envName))},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new ut("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=uh(t.parser,n,VC(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=uh(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=x4(e[0]),n=r?[e[0]]:yr(e[0],"ordgroup").body,i=n.map(function(s){var l=PC(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new ut("Unknown column alignment: "+u,s)});if(i.length>1)throw new ut("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=uh(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new ut("{subarray} can contain only one column");return a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=uh(t.parser,e,VC(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:m$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){Jt.contains(["gather","gather*"],t.envName)&&T4(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:$C(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return uh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:m$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){T4(t);var e={autoTag:$C(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return uh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["CD"],props:{numArgs:0},handler(t){return T4(t),F4e(t.parser)},htmlBuilder:tc,mathmlBuilder:rc});le("\\nonumber","\\gdef\\@eqnsw{0}");le("\\notag","\\nonumber");Ct({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new ut(t.funcName+" valid only within array environment")}});bG=d$;Ct({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new ut("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return Or(t.body,n)},"htmlBuilder$5"),y$=o((t,e)=>{var r=t.font,n=e.withFont(r);return mn(t.body,n)},"mathmlBuilder$4"),wG={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Ct({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=p4(e[0]),a=n;return a in wG&&(a=wG[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:g$,mathmlBuilder:y$});Ct({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=Jt.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:b4(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Ct({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:g$,mathmlBuilder:y$});v$=o((t,e)=>{var r=e;return t==="display"?r=r.id>=rr.SCRIPT.id?r.text():rr.DISPLAY:t==="text"&&r.size===rr.DISPLAY.size?r=rr.TEXT:t==="script"?r=rr.SCRIPT:t==="scriptscript"&&(r=rr.SCRIPTSCRIPT),r},"adjustStyle"),UC=o((t,e)=>{var r=v$(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=Or(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new st.MathNode("mfrac",[mn(t.numer,e),mn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=Qn(t.barSize,e);r.setAttribute("linethickness",mt(n))}var i=v$(t.size,e.style);if(i.size!==e.style.size){r=new st.MathNode("mstyle",[r]);var a=i.size===rr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new st.MathNode("mo",[new st.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new st.MathNode("mo",[new st.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return IC(s)}return r},"mathmlBuilder$3");Ct({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:UC,mathmlBuilder:HC});Ct({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Ct({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});TG=["display","text","script","scriptscript"],kG=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Ct({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=p4(e[0]),s=a.type==="atom"&&a.family==="open"?kG(a.text):null,l=p4(e[1]),u=l.type==="atom"&&l.family==="close"?kG(l.text):null,h=yr(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=yr(m.body[0],"textord");p=TG[Number(g.text)]}}else m=yr(m,"textord"),p=TG[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:UC,mathmlBuilder:HC});Ct({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:yr(e[0],"size").value,token:i}}});Ct({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=Nbe(yr(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:UC,mathmlBuilder:HC});x$=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Or(t.sup,e.havingStyle(r.sup()),e):Or(t.sub,e.havingStyle(r.sub()),e),i=yr(t.base,"horizBrace")):i=yr(t,"horizBrace");var a=Or(i.base,e.havingBaseStyle(rr.DISPLAY)),s=au.svgSpan(i,e),l;if(i.isOver?(l=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Ie.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=Ie.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=Ie.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return Ie.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),J4e=o((t,e)=>{var r=au.mathMLnode(t.label);return new st.MathNode(t.isOver?"mover":"munder",[mn(t.base,e),r])},"mathmlBuilder$2");Ct({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:x$,mathmlBuilder:J4e});Ct({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=yr(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:di(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e,!1);return Ie.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ch(t.body,e);return r instanceof ps||(r=new ps("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Ct({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=yr(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=yr(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=Ii(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=Ie.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>ch(t.body,e),"mathmlBuilder")});Ct({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:di(e[0]),mathml:di(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.html,e,!1);return Ie.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>ch(t.mathml,e),"mathmlBuilder")});mC=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new ut("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!FG(n))throw new ut("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Ct({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=yr(r[0],"raw").string,h=u.split(","),f=0;f{var r=Qn(t.height,e),n=0;t.totalheight.number>0&&(n=Qn(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=Qn(t.width,e));var a={height:mt(r+n)};i>0&&(a.width=mt(i)),n>0&&(a.verticalAlign=mt(-n));var s=new wC(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new st.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=Qn(t.height,e),i=0;if(t.totalheight.number>0&&(i=Qn(t.totalheight,e)-n,r.setAttribute("valign",mt(-i))),r.setAttribute("height",mt(n+i)),t.width.number>0){var a=Qn(t.width,e);r.setAttribute("width",mt(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Ct({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=yr(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return Ie.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=Qn(t.dimension,e);return new st.SpaceNode(r)}});Ct({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=Ie.makeSpan([],[Or(t.body,e)]),r=Ie.makeSpan(["inner"],[r],e)):r=Ie.makeSpan(["inner"],[Or(t.body,e)]);var n=Ie.makeSpan(["fix"],[]),i=Ie.makeSpan([t.alignment],[r,n],e),a=Ie.makeSpan(["strut"]);return a.style.height=mt(i.height+i.depth),i.depth&&(a.style.verticalAlign=mt(-i.depth)),i.children.unshift(a),i=Ie.makeSpan(["thinbox"],[i],e),Ie.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new st.MathNode("mpadded",[mn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Ct({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Ct({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new ut("Mismatched "+t.funcName)}});EG=o((t,e)=>{switch(e.style.size){case rr.DISPLAY.size:return t.display;case rr.TEXT.size:return t.text;case rr.SCRIPT.size:return t.script;case rr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Ct({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:di(e[0]),text:di(e[1]),script:di(e[2]),scriptscript:di(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=EG(t,e),n=Ii(r,e,!1);return Ie.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=EG(t,e);return ch(r,e)},"mathmlBuilder")});b$=o((t,e,r,n,i,a,s)=>{t=Ie.makeSpan([],[t]);var l=r&&Jt.isCharacterBox(r),u,h;if(e){var f=Or(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Or(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=Ie.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:mt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:mt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=Ie.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:mt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=Ie.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:mt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=Ie.makeSpan(["mspace"],[],n);x.style.marginRight=mt(a),v.unshift(x)}return Ie.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),w$=["\\smallint"],pp=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=yr(t.base,"op"),i=!0):a=yr(t,"op");var s=e.style,l=!1;s.size===rr.DISPLAY.size&&a.symbol&&!Jt.contains(w$,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=Ie.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=Ie.staticSvg(f+"Size"+(l?"2":"1"),e);u=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Ii(a.body,e,!0);m.length===1&&m[0]instanceof ms?(u=m[0],u.classes[0]="mop"):u=Ie.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new ps("mo",[Ao(t.name,t.mode)]),Jt.contains(w$,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new ps("mo",gs(t.body,e));else{r=new ps("mi",[new Wf(t.name.slice(1))]);var n=new ps("mo",[Ao("\u2061","text")]);t.parentIsSupSub?r=new ps("mrow",[r,n]):r=jG([r,n])}return r},"mathmlBuilder$1"),e3e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Ct({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=e3e[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:di(n)}},"handler"),htmlBuilder:pp,mathmlBuilder:ny});t3e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Ct({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=t3e[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:pp,mathmlBuilder:ny});T$=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=yr(t.base,"operatorname"),i=!0):a=yr(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Ii(l,e.withFont("mathrm"),!0),h=0;h{for(var r=gs(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new st.TextNode(l)]}var u=new st.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new st.MathNode("mo",[Ao("\u2061","text")]);return t.parentIsSupSub?new st.MathNode("mrow",[u,h]):st.newDocumentFragment([u,h])},"mathmlBuilder");Ct({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:di(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:T$,mathmlBuilder:r3e});le("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Xf({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Ie.makeFragment(Ii(t.body,e,!1)):Ie.makeSpan(["mord"],Ii(t.body,e,!0),e)},mathmlBuilder(t,e){return ch(t.body,e,!0)}});Ct({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Or(t.body,e.havingCrampedStyle()),n=Ie.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return Ie.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new st.MathNode("mo",[new st.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new st.MathNode("mover",[mn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Ct({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:di(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e.withPhantom(),!1);return Ie.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(t.body,e);return new st.MathNode("mphantom",r)},"mathmlBuilder")});Ct({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Ie.makeSpan([],[Or(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=gs(di(t.body),e),n=new st.MathNode("mphantom",r),i=new st.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Ct({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Ie.makeSpan(["inner"],[Or(t.body,e.withPhantom())]),n=Ie.makeSpan(["fix"],[]);return Ie.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(di(t.body),e),n=new st.MathNode("mphantom",r),i=new st.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Ct({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=yr(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Or(t.body,e),n=Qn(t.dy,e);return Ie.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new st.MathNode("mpadded",[mn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Ct({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Ct({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=yr(e[0],"size"),s=yr(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&yr(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=Ie.makeSpan(["mord","rule"],[],e),n=Qn(t.width,e),i=Qn(t.height,e),a=t.shift?Qn(t.shift,e):0;return r.style.borderRightWidth=mt(n),r.style.borderTopWidth=mt(i),r.style.bottom=mt(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=Qn(t.width,e),n=Qn(t.height,e),i=t.shift?Qn(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new st.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",mt(r)),s.setAttribute("height",mt(n));var l=new st.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",mt(i)):(l.setAttribute("height",mt(i)),l.setAttribute("depth",mt(-i))),l.setAttribute("voffset",mt(i)),l}});o(k$,"sizingGroup");SG=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],n3e=o((t,e)=>{var r=e.havingSize(t.size);return k$(t.body,r,e)},"htmlBuilder");Ct({type:"sizing",names:SG,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:SG.indexOf(n)+1,body:a}},"handler"),htmlBuilder:n3e,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=gs(t.body,r),i=new st.MathNode("mstyle",n);return i.setAttribute("mathsize",mt(r.sizeMultiplier)),i},"mathmlBuilder")});Ct({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&yr(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=Ie.makeSpan([],[Or(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new st.MathNode("mpadded",[mn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Ct({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=Or(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=Ie.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=mt(f);var m=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(rr.SCRIPTSCRIPT),y=Or(t.index,g,e),v=.6*(m.height-m.depth),x=Ie.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=Ie.makeSpan(["root"],[x]);return Ie.makeSpan(["mord","sqrt"],[b,m],e)}else return Ie.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new st.MathNode("mroot",[mn(r,e),mn(n,e)]):new st.MathNode("msqrt",[mn(r,e)])}});CG={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT};Ct({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=CG[t.style],n=e.havingStyle(r).withFont("");return k$(t.body,n,e)},mathmlBuilder(t,e){var r=CG[t.style],n=e.havingStyle(r),i=gs(t.body,n),a=new st.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});i3e=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===rr.DISPLAY.size||n.alwaysHandleSupSub);return i?pp:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===rr.DISPLAY.size||n.limits);return a?T$:null}else{if(n.type==="accent")return Jt.isCharacterBox(n.base)?BC:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?x$:null}else return null}else return null},"htmlBuilderDelegate");Xf({type:"supsub",htmlBuilder(t,e){var r=i3e(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=Or(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&Jt.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=Or(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=Or(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===rr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=mt(.5/h.ptPerEm/v),b=null;if(u){var w=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof ms||w)&&(b=mt(-s.italic))}var _;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var T=h.defaultRuleThickness,E=4*T;if(f-l.depth-(u.height-d)0&&(f+=L,d-=L)}var C=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];_=Ie.makeVList({positionType:"individualShift",children:C},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var A=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];_=Ie.makeVList({positionType:"shift",positionData:d,children:A},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),_=Ie.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=kC(s,"right")||"mord";return Ie.makeSpan([I],[s,Ie.makeSpan(["msupsub"],[_])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[mn(t.base,e)];t.sub&&a.push(mn(t.sub,e)),t.sup&&a.push(mn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===rr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===rr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===rr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===rr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===rr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===rr.DISPLAY)?s="mover":s="msup"}return new st.MathNode(s,a)}});Xf({type:"atom",htmlBuilder(t,e){return Ie.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new st.MathNode("mo",[Ao(t.text,t.mode)]);if(t.family==="bin"){var n=OC(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});E$={mi:"italic",mn:"normal",mtext:"normal"};Xf({type:"mathord",htmlBuilder(t,e){return Ie.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new st.MathNode("mi",[Ao(t.text,t.mode,e)]),n=OC(t,e)||"italic";return n!==E$[r.type]&&r.setAttribute("mathvariant",n),r}});Xf({type:"textord",htmlBuilder(t,e){return Ie.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Ao(t.text,t.mode,e),n=OC(t,e)||"normal",i;return t.mode==="text"?i=new st.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new st.MathNode("mn",[r]):t.text==="\\prime"?i=new st.MathNode("mo",[r]):i=new st.MathNode("mi",[r]),n!==E$[i.type]&&i.setAttribute("mathvariant",n),i}});gC={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},yC={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Xf({type:"spacing",htmlBuilder(t,e){if(yC.hasOwnProperty(t.text)){var r=yC[t.text].className||"";if(t.mode==="text"){var n=Ie.makeOrd(t,e,"textord");return n.classes.push(r),n}else return Ie.makeSpan(["mspace",r],[Ie.mathsym(t.text,t.mode,e)],e)}else{if(gC.hasOwnProperty(t.text))return Ie.makeSpan(["mspace",gC[t.text]],[],e);throw new ut('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(yC.hasOwnProperty(t.text))r=new st.MathNode("mtext",[new st.TextNode("\xA0")]);else{if(gC.hasOwnProperty(t.text))return new st.MathNode("mspace");throw new ut('Unknown type of space "'+t.text+'"')}return r}});AG=o(()=>{var t=new st.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");Xf({type:"tag",mathmlBuilder(t,e){var r=new st.MathNode("mtable",[new st.MathNode("mtr",[AG(),new st.MathNode("mtd",[ch(t.body,e)]),AG(),new st.MathNode("mtd",[ch(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});_G={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},LG={"\\textbf":"textbf","\\textmd":"textmd"},a3e={"\\textit":"textit","\\textup":"textup"},DG=o((t,e)=>{var r=t.font;if(r){if(_G[r])return e.withTextFontFamily(_G[r]);if(LG[r])return e.withTextFontWeight(LG[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(a3e[r])},"optionsWithFont");Ct({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:di(i),font:n}},htmlBuilder(t,e){var r=DG(t,e),n=Ii(t.body,r,!0);return Ie.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=DG(t,e);return ch(t.body,r)}});Ct({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Or(t.body,e),n=Ie.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Ie.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return Ie.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new st.MathNode("mo",[new st.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new st.MathNode("munder",[mn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Ct({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Or(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return Ie.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new st.MathNode("mpadded",[mn(t.body,e)],["vcenter"])}});Ct({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new ut("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=NG(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),oh=qG,S$=`[ \r + ]`,s3e="\\\\[a-zA-Z@]+",o3e="\\\\[^\uD800-\uDFFF]",l3e="("+s3e+")"+S$+"*",c3e=`\\\\( +|[ \r ]+ +?)[ \r ]*`,_C="[\u0300-\u036F]",u3e=new RegExp(_C+"+$"),h3e="("+S$+"+)|"+(c3e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(_C+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(_C+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+l3e)+("|"+o3e+")"),m4=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(h3e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Co("EOF",new Ys(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new ut("Unexpected character: '"+e[r]+"'",new Co(e[r],new Ys(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Co(i,new Ys(this,r,this.tokenRegex.lastIndex))}},LC=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new ut("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},f3e=p$;le("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});le("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});le("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});le("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});le("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});le("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");le("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});RG={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};le("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new ut("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=RG[e.text],n==null||n>=r)throw new ut("Invalid base-"+r+" digit "+e.text);for(var i;(i=RG[t.future().text])!=null&&i{var n=t.consumeArg().tokens;if(n.length!==1)throw new ut("\\newcommand's first argument must be a macro name");var i=n[0].text,a=t.isDefined(i);if(a&&!e)throw new ut("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new ut("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var s=0;if(n=t.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",u=t.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new ut("Invalid number of arguments: "+l);s=parseInt(l),n=t.consumeArg().tokens}return t.macros.set(i,{tokens:n,numArgs:s}),""},"newcommand");le("\\newcommand",t=>WC(t,!1,!0));le("\\renewcommand",t=>WC(t,!0,!1));le("\\providecommand",t=>WC(t,!0,!0));le("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});le("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});le("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),oh[r],En.math[r],En.text[r]),""});le("\\bgroup","{");le("\\egroup","}");le("~","\\nobreakspace");le("\\lq","`");le("\\rq","'");le("\\aa","\\r a");le("\\AA","\\r A");le("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");le("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");le("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");le("\u212C","\\mathscr{B}");le("\u2130","\\mathscr{E}");le("\u2131","\\mathscr{F}");le("\u210B","\\mathscr{H}");le("\u2110","\\mathscr{I}");le("\u2112","\\mathscr{L}");le("\u2133","\\mathscr{M}");le("\u211B","\\mathscr{R}");le("\u212D","\\mathfrak{C}");le("\u210C","\\mathfrak{H}");le("\u2128","\\mathfrak{Z}");le("\\Bbbk","\\Bbb{k}");le("\xB7","\\cdotp");le("\\llap","\\mathllap{\\textrm{#1}}");le("\\rlap","\\mathrlap{\\textrm{#1}}");le("\\clap","\\mathclap{\\textrm{#1}}");le("\\mathstrut","\\vphantom{(}");le("\\underbar","\\underline{\\text{#1}}");le("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');le("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");le("\\ne","\\neq");le("\u2260","\\neq");le("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");le("\u2209","\\notin");le("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");le("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");le("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");le("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");le("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");le("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");le("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");le("\u27C2","\\perp");le("\u203C","\\mathclose{!\\mkern-0.8mu!}");le("\u220C","\\notni");le("\u231C","\\ulcorner");le("\u231D","\\urcorner");le("\u231E","\\llcorner");le("\u231F","\\lrcorner");le("\xA9","\\copyright");le("\xAE","\\textregistered");le("\uFE0F","\\textregistered");le("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');le("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');le("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');le("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');le("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");le("\u22EE","\\vdots");le("\\varGamma","\\mathit{\\Gamma}");le("\\varDelta","\\mathit{\\Delta}");le("\\varTheta","\\mathit{\\Theta}");le("\\varLambda","\\mathit{\\Lambda}");le("\\varXi","\\mathit{\\Xi}");le("\\varPi","\\mathit{\\Pi}");le("\\varSigma","\\mathit{\\Sigma}");le("\\varUpsilon","\\mathit{\\Upsilon}");le("\\varPhi","\\mathit{\\Phi}");le("\\varPsi","\\mathit{\\Psi}");le("\\varOmega","\\mathit{\\Omega}");le("\\substack","\\begin{subarray}{c}#1\\end{subarray}");le("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");le("\\boxed","\\fbox{$\\displaystyle{#1}$}");le("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");le("\\implies","\\DOTSB\\;\\Longrightarrow\\;");le("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");MG={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};le("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in MG?e=MG[r]:(r.slice(0,4)==="\\not"||r in En.math&&Jt.contains(["bin","rel"],En.math[r].group))&&(e="\\dotsb"),e});YC={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};le("\\dotso",function(t){var e=t.future().text;return e in YC?"\\ldots\\,":"\\ldots"});le("\\dotsc",function(t){var e=t.future().text;return e in YC&&e!==","?"\\ldots\\,":"\\ldots"});le("\\cdots",function(t){var e=t.future().text;return e in YC?"\\@cdots\\,":"\\@cdots"});le("\\dotsb","\\cdots");le("\\dotsm","\\cdots");le("\\dotsi","\\!\\cdots");le("\\dotsx","\\ldots\\,");le("\\DOTSI","\\relax");le("\\DOTSB","\\relax");le("\\DOTSX","\\relax");le("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");le("\\,","\\tmspace+{3mu}{.1667em}");le("\\thinspace","\\,");le("\\>","\\mskip{4mu}");le("\\:","\\tmspace+{4mu}{.2222em}");le("\\medspace","\\:");le("\\;","\\tmspace+{5mu}{.2777em}");le("\\thickspace","\\;");le("\\!","\\tmspace-{3mu}{.1667em}");le("\\negthinspace","\\!");le("\\negmedspace","\\tmspace-{4mu}{.2222em}");le("\\negthickspace","\\tmspace-{5mu}{.277em}");le("\\enspace","\\kern.5em ");le("\\enskip","\\hskip.5em\\relax");le("\\quad","\\hskip1em\\relax");le("\\qquad","\\hskip2em\\relax");le("\\tag","\\@ifstar\\tag@literal\\tag@paren");le("\\tag@paren","\\tag@literal{({#1})}");le("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new ut("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});le("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");le("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");le("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");le("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");le("\\newline","\\\\\\relax");le("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");C$=mt(Zl["Main-Regular"][84][1]-.7*Zl["Main-Regular"][65][1]);le("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+C$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");le("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+C$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");le("\\hspace","\\@ifstar\\@hspacer\\@hspace");le("\\@hspace","\\hskip #1\\relax");le("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");le("\\ordinarycolon",":");le("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");le("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');le("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');le("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');le("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');le("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');le("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');le("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');le("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');le("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');le("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');le("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');le("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');le("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');le("\u2237","\\dblcolon");le("\u2239","\\eqcolon");le("\u2254","\\coloneqq");le("\u2255","\\eqqcolon");le("\u2A74","\\Coloneqq");le("\\ratio","\\vcentcolon");le("\\coloncolon","\\dblcolon");le("\\colonequals","\\coloneqq");le("\\coloncolonequals","\\Coloneqq");le("\\equalscolon","\\eqqcolon");le("\\equalscoloncolon","\\Eqqcolon");le("\\colonminus","\\coloneq");le("\\coloncolonminus","\\Coloneq");le("\\minuscolon","\\eqcolon");le("\\minuscoloncolon","\\Eqcolon");le("\\coloncolonapprox","\\Colonapprox");le("\\coloncolonsim","\\Colonsim");le("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");le("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");le("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");le("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");le("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");le("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");le("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");le("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");le("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");le("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");le("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");le("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");le("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");le("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");le("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");le("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");le("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");le("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");le("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");le("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");le("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");le("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");le("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");le("\\imath","\\html@mathml{\\@imath}{\u0131}");le("\\jmath","\\html@mathml{\\@jmath}{\u0237}");le("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");le("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");le("\u27E6","\\llbracket");le("\u27E7","\\rrbracket");le("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");le("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");le("\u2983","\\lBrace");le("\u2984","\\rBrace");le("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");le("\u29B5","\\minuso");le("\\darr","\\downarrow");le("\\dArr","\\Downarrow");le("\\Darr","\\Downarrow");le("\\lang","\\langle");le("\\rang","\\rangle");le("\\uarr","\\uparrow");le("\\uArr","\\Uparrow");le("\\Uarr","\\Uparrow");le("\\N","\\mathbb{N}");le("\\R","\\mathbb{R}");le("\\Z","\\mathbb{Z}");le("\\alef","\\aleph");le("\\alefsym","\\aleph");le("\\Alpha","\\mathrm{A}");le("\\Beta","\\mathrm{B}");le("\\bull","\\bullet");le("\\Chi","\\mathrm{X}");le("\\clubs","\\clubsuit");le("\\cnums","\\mathbb{C}");le("\\Complex","\\mathbb{C}");le("\\Dagger","\\ddagger");le("\\diamonds","\\diamondsuit");le("\\empty","\\emptyset");le("\\Epsilon","\\mathrm{E}");le("\\Eta","\\mathrm{H}");le("\\exist","\\exists");le("\\harr","\\leftrightarrow");le("\\hArr","\\Leftrightarrow");le("\\Harr","\\Leftrightarrow");le("\\hearts","\\heartsuit");le("\\image","\\Im");le("\\infin","\\infty");le("\\Iota","\\mathrm{I}");le("\\isin","\\in");le("\\Kappa","\\mathrm{K}");le("\\larr","\\leftarrow");le("\\lArr","\\Leftarrow");le("\\Larr","\\Leftarrow");le("\\lrarr","\\leftrightarrow");le("\\lrArr","\\Leftrightarrow");le("\\Lrarr","\\Leftrightarrow");le("\\Mu","\\mathrm{M}");le("\\natnums","\\mathbb{N}");le("\\Nu","\\mathrm{N}");le("\\Omicron","\\mathrm{O}");le("\\plusmn","\\pm");le("\\rarr","\\rightarrow");le("\\rArr","\\Rightarrow");le("\\Rarr","\\Rightarrow");le("\\real","\\Re");le("\\reals","\\mathbb{R}");le("\\Reals","\\mathbb{R}");le("\\Rho","\\mathrm{P}");le("\\sdot","\\cdot");le("\\sect","\\S");le("\\spades","\\spadesuit");le("\\sub","\\subset");le("\\sube","\\subseteq");le("\\supe","\\supseteq");le("\\Tau","\\mathrm{T}");le("\\thetasym","\\vartheta");le("\\weierp","\\wp");le("\\Zeta","\\mathrm{Z}");le("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");le("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");le("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");le("\\bra","\\mathinner{\\langle{#1}|}");le("\\ket","\\mathinner{|{#1}\\rangle}");le("\\braket","\\mathinner{\\langle{#1}\\rangle}");le("\\Bra","\\left\\langle#1\\right|");le("\\Ket","\\left|#1\\right\\rangle");A$=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");le("\\bra@ket",A$(!1));le("\\bra@set",A$(!0));le("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");le("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");le("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");le("\\angln","{\\angl n}");le("\\blue","\\textcolor{##6495ed}{#1}");le("\\orange","\\textcolor{##ffa500}{#1}");le("\\pink","\\textcolor{##ff00af}{#1}");le("\\red","\\textcolor{##df0030}{#1}");le("\\green","\\textcolor{##28ae7b}{#1}");le("\\gray","\\textcolor{gray}{#1}");le("\\purple","\\textcolor{##9d38bd}{#1}");le("\\blueA","\\textcolor{##ccfaff}{#1}");le("\\blueB","\\textcolor{##80f6ff}{#1}");le("\\blueC","\\textcolor{##63d9ea}{#1}");le("\\blueD","\\textcolor{##11accd}{#1}");le("\\blueE","\\textcolor{##0c7f99}{#1}");le("\\tealA","\\textcolor{##94fff5}{#1}");le("\\tealB","\\textcolor{##26edd5}{#1}");le("\\tealC","\\textcolor{##01d1c1}{#1}");le("\\tealD","\\textcolor{##01a995}{#1}");le("\\tealE","\\textcolor{##208170}{#1}");le("\\greenA","\\textcolor{##b6ffb0}{#1}");le("\\greenB","\\textcolor{##8af281}{#1}");le("\\greenC","\\textcolor{##74cf70}{#1}");le("\\greenD","\\textcolor{##1fab54}{#1}");le("\\greenE","\\textcolor{##0d923f}{#1}");le("\\goldA","\\textcolor{##ffd0a9}{#1}");le("\\goldB","\\textcolor{##ffbb71}{#1}");le("\\goldC","\\textcolor{##ff9c39}{#1}");le("\\goldD","\\textcolor{##e07d10}{#1}");le("\\goldE","\\textcolor{##a75a05}{#1}");le("\\redA","\\textcolor{##fca9a9}{#1}");le("\\redB","\\textcolor{##ff8482}{#1}");le("\\redC","\\textcolor{##f9685d}{#1}");le("\\redD","\\textcolor{##e84d39}{#1}");le("\\redE","\\textcolor{##bc2612}{#1}");le("\\maroonA","\\textcolor{##ffbde0}{#1}");le("\\maroonB","\\textcolor{##ff92c6}{#1}");le("\\maroonC","\\textcolor{##ed5fa6}{#1}");le("\\maroonD","\\textcolor{##ca337c}{#1}");le("\\maroonE","\\textcolor{##9e034e}{#1}");le("\\purpleA","\\textcolor{##ddd7ff}{#1}");le("\\purpleB","\\textcolor{##c6b9fc}{#1}");le("\\purpleC","\\textcolor{##aa87ff}{#1}");le("\\purpleD","\\textcolor{##7854ab}{#1}");le("\\purpleE","\\textcolor{##543b78}{#1}");le("\\mintA","\\textcolor{##f5f9e8}{#1}");le("\\mintB","\\textcolor{##edf2df}{#1}");le("\\mintC","\\textcolor{##e0e5cc}{#1}");le("\\grayA","\\textcolor{##f6f7f7}{#1}");le("\\grayB","\\textcolor{##f0f1f2}{#1}");le("\\grayC","\\textcolor{##e3e5e6}{#1}");le("\\grayD","\\textcolor{##d6d8da}{#1}");le("\\grayE","\\textcolor{##babec2}{#1}");le("\\grayF","\\textcolor{##888d93}{#1}");le("\\grayG","\\textcolor{##626569}{#1}");le("\\grayH","\\textcolor{##3b3e40}{#1}");le("\\grayI","\\textcolor{##21242c}{#1}");le("\\kaBlue","\\textcolor{##314453}{#1}");le("\\kaGreen","\\textcolor{##71B307}{#1}");_$={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},DC=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new LC(f3e,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new m4(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Co("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new ut("Extra }",a)}else if(a.text==="EOF")throw new ut("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new ut("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new ut("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new ut("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new ut("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new ut("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Co(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new m4(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||oh.hasOwnProperty(e)||En.math.hasOwnProperty(e)||En.text.hasOwnProperty(e)||_$.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:oh.hasOwnProperty(e)&&!oh[e].primitive}},IG=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,s4=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),vC={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},OG={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},g4=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new DC(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new ut("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Co("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&oh[i.text]&&oh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=En[this.mode][r].group,u=Ys.range(e),h;if(n4e.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(BG(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Ys.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e instanceof Element&&e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),ah.addHook("afterSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var jf,y3e,v3e,O$,M$,Tr,b3e,w3e,T3e,k3e,P$,E3e,xr,S3e,C3e,ou,jC,A3e,_3e,I$,KC,pi,Kf,hh,je,fr=M(()=>{"use strict";sC();jf=//gi,y3e=o(t=>t?P$(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),v3e=(()=>{let t=!1;return()=>{t||(x3e(),t=!0)}})();o(x3e,"setupDompurifyHooks");O$=o(t=>(v3e(),ah.sanitize(t)),"removeScript"),M$=o((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=O$(t):r!=="loose"&&(t=P$(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=k3e(t))}return t},"sanitizeMore"),Tr=o((t,e)=>t&&(e.dompurifyConfig?t=ah.sanitize(M$(t,e),e.dompurifyConfig).toString():t=ah.sanitize(M$(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),b3e=o((t,e)=>typeof t=="string"?Tr(t,e):t.flat().map(r=>Tr(r,e)),"sanitizeTextOrArray"),w3e=o(t=>jf.test(t),"hasBreaks"),T3e=o(t=>t.split(jf),"splitBreaks"),k3e=o(t=>t.replace(/#br#/g,"
    "),"placeholderToBreak"),P$=o(t=>t.replace(jf,"#br#"),"breakToPlaceholder"),E3e=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},"getUrl"),xr=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),S3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),C3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),ou=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),A3e=o((t,e)=>{let r=jC(t,"~"),n=jC(e,"~");return r===1&&n===1},"shouldCombineSets"),_3e=o(t=>{let e=jC(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),I$=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),KC=/\$\$(.*)\$\$/g,pi=o(t=>(t.match(KC)?.length??0)>0,"hasKatex"),Kf=o(async(t,e)=>{t=await hh(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),hh=o(async(t,e)=>{if(!pi(t))return t;if(!(I$()||e.legacyMathML||e.forceLegacyMathML))return t.replace(KC,"MathML is unsupported in this environment.");let{default:r}=await Promise.resolve().then(()=>(R$(),N$)),n=e.forceLegacyMathML||!I$()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(jf).map(i=>pi(i)?`
    ${i}
    `:`
    ${i}
    `).join("").replace(KC,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),je={getRows:y3e,sanitizeText:Tr,sanitizeTextOrArray:b3e,hasBreaks:w3e,splitBreaks:T3e,lineBreakRegex:jf,removeScript:O$,getUrl:E3e,evaluate:xr,getMax:S3e,getMin:C3e}});var L3e,D3e,Zr,_o,ni=M(()=>{"use strict";ht();L3e=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),D3e=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Zr=o(function(t,e,r,n){let i=D3e(e,r,n);L3e(t,i)},"configureSvgSize"),_o=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;Y.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;Y.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,Y.info(`Calculated bounds: ${l}x${u}`),Zr(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var k4,N3e,B$,F$,QC=M(()=>{"use strict";ht();k4={},N3e=o((t,e,r)=>{let n="";return t in k4&&k4[t]?n=k4[t](r):Y.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),B$=o((t,e)=>{e!==void 0&&(k4[t]=e)},"addStylesForDiagram"),F$=N3e});var iy={};vr(iy,{clear:()=>_r,getAccDescription:()=>Fr,getAccTitle:()=>Pr,getDiagramTitle:()=>Jr,setAccDescription:()=>Br,setAccTitle:()=>Rr,setDiagramTitle:()=>ln});var ZC,JC,e7,t7,_r,Rr,Pr,Br,Fr,ln,Jr,ki=M(()=>{"use strict";fr();Ua();ZC="",JC="",e7="",t7=o(t=>Tr(t,Sr()),"sanitizeText"),_r=o(()=>{ZC="",e7="",JC=""},"clear"),Rr=o(t=>{ZC=t7(t).replace(/^\s+/g,"")},"setAccTitle"),Pr=o(()=>ZC,"getAccTitle"),Br=o(t=>{e7=t7(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Fr=o(()=>e7,"getAccDescription"),ln=o(t=>{JC=t7(t)},"setDiagramTitle"),Jr=o(()=>JC,"getDiagramTitle")});var z$,R3e,de,n7,S4,i7,a7,M3e,E4,Qf,ay,r7,Vt=M(()=>{"use strict";$f();ht();Ua();fr();ni();QC();ki();z$=Y,R3e=M1,de=Sr,n7=Yb,S4=ih,i7=o(t=>Tr(t,de()),"sanitizeText"),a7=_o,M3e=o(()=>iy,"getCommonDb"),E4={},Qf=o((t,e,r)=>{E4[t]&&z$.warn(`Diagram with id ${t} already registered. Overwriting.`),E4[t]=e,r&&OS(t,r),B$(t,e.styles),e.injectUtils?.(z$,R3e,de,i7,a7,M3e(),()=>{})},"registerDiagram"),ay=o(t=>{if(t in E4)return E4[t];throw new r7(t)},"getDiagram"),r7=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var pl,fh,Xa,dl,nc,sy,s7,o7,C4,A4,G$,I3e,O3e,P3e,B3e,F3e,z3e,G3e,$3e,V3e,U3e,H3e,W3e,Y3e,q3e,X3e,j3e,K3e,$$,Q3e,Z3e,V$,J3e,e5e,t5e,r5e,dh,n5e,i5e,a5e,s5e,o5e,oy,l7=M(()=>{"use strict";Vt();fr();ki();pl=[],fh=[""],Xa="global",dl="",nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],sy=[],s7="",o7=!1,C4=4,A4=2,I3e=o(function(){return G$},"getC4Type"),O3e=o(function(t){G$=Tr(t,de())},"setC4Type"),P3e=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=sy.find(d=>d.from===e&&d.to===r);if(f?h=f:sy.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=dh()},"addRel"),B3e=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=pl.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,pl.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=Xa,l.wrap=dh()},"addPersonOrSystem"),F3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=pl.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,pl.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=dh(),u.typeC4Shape={text:t},u.parentBoundary=Xa},"addContainer"),z3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=pl.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,pl.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=dh(),u.typeC4Shape={text:t},u.parentBoundary=Xa},"addComponent"),G3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Xa,a.wrap=dh(),dl=Xa,Xa=t,fh.push(dl)},"addPersonOrSystemBoundary"),$3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Xa,a.wrap=dh(),dl=Xa,Xa=t,fh.push(dl)},"addContainerBoundary"),V3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=nc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,nc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=Xa,u.wrap=dh(),dl=Xa,Xa=e,fh.push(dl)},"addDeploymentNode"),U3e=o(function(){Xa=dl,fh.pop(),dl=fh.pop(),fh.push(dl)},"popBoundaryParseStack"),H3e=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=pl.find(p=>p.alias===e);if(!(d===void 0&&(d=nc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),W3e=o(function(t,e,r,n,i,a,s){let l=sy.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),Y3e=o(function(t,e,r){let n=C4,i=A4;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(C4=n),i>=1&&(A4=i)},"updateLayoutConfig"),q3e=o(function(){return C4},"getC4ShapeInRow"),X3e=o(function(){return A4},"getC4BoundaryInRow"),j3e=o(function(){return Xa},"getCurrentBoundaryParse"),K3e=o(function(){return dl},"getParentBoundaryParse"),$$=o(function(t){return t==null?pl:pl.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),Q3e=o(function(t){return pl.find(e=>e.alias===t)},"getC4Shape"),Z3e=o(function(t){return Object.keys($$(t))},"getC4ShapeKeys"),V$=o(function(t){return t==null?nc:nc.filter(e=>e.parentBoundary===t)},"getBoundaries"),J3e=V$,e5e=o(function(){return sy},"getRels"),t5e=o(function(){return s7},"getTitle"),r5e=o(function(t){o7=t},"setWrap"),dh=o(function(){return o7},"autoWrap"),n5e=o(function(){pl=[],nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],dl="",Xa="global",fh=[""],sy=[],fh=[""],s7="",o7=!1,C4=4,A4=2},"clear"),i5e={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},a5e={FILLED:0,OPEN:1},s5e={LEFTOF:0,RIGHTOF:1,OVER:2},o5e=o(function(t){s7=Tr(t,de())},"setTitle"),oy={addPersonOrSystem:B3e,addPersonOrSystemBoundary:G3e,addContainer:F3e,addContainerBoundary:$3e,addComponent:z3e,addDeploymentNode:V3e,popBoundaryParseStack:U3e,addRel:P3e,updateElStyle:H3e,updateRelStyle:W3e,updateLayoutConfig:Y3e,autoWrap:dh,setWrap:r5e,getC4ShapeArray:$$,getC4Shape:Q3e,getC4ShapeKeys:Z3e,getBoundaries:V$,getBoundarys:J3e,getCurrentBoundaryParse:j3e,getParentBoundaryParse:K3e,getRels:e5e,getTitle:t5e,getC4Type:I3e,getC4ShapeInRow:q3e,getC4BoundaryInRow:X3e,setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,getConfig:o(()=>de().c4,"getConfig"),clear:n5e,LINETYPE:i5e,ARROWTYPE:a5e,PLACEMENT:s5e,setTitle:o5e,setC4Type:O3e}});function Zf(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var c7=M(()=>{"use strict";o(Zf,"ascending")});function u7(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var U$=M(()=>{"use strict";o(u7,"descending")});function Jf(t){let e,r,n;t.length!==2?(e=Zf,r=o((l,u)=>Zf(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===Zf||t===u7?t:l5e,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function l5e(){return 0}var h7=M(()=>{"use strict";c7();U$();o(Jf,"bisector");o(l5e,"zero")});function f7(t){return t===null?NaN:+t}var H$=M(()=>{"use strict";o(f7,"number")});var W$,Y$,c5e,u5e,d7,q$=M(()=>{"use strict";c7();h7();H$();W$=Jf(Zf),Y$=W$.right,c5e=W$.left,u5e=Jf(f7).center,d7=Y$});function X$({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function h5e({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function f5e({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function d5e(t){return t!==null&&typeof t=="object"?t.valueOf():t}var mp,j$=M(()=>{"use strict";mp=class extends Map{static{o(this,"InternMap")}constructor(e,r=d5e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(X$(this,e))}has(e){return super.has(X$(this,e))}set(e,r){return super.set(h5e(this,e),r)}delete(e){return super.delete(f5e(this,e))}};o(X$,"intern_get");o(h5e,"intern_set");o(f5e,"intern_delete");o(d5e,"keyof")});function _4(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=p5e?10:a>=m5e?5:a>=g5e?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";p5e=Math.sqrt(50),m5e=Math.sqrt(10),g5e=Math.sqrt(2);o(_4,"tickSpec");o(L4,"ticks");o(ly,"tickIncrement");o(gp,"tickStep")});function D4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var Q$=M(()=>{"use strict";o(D4,"max")});function N4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var Z$=M(()=>{"use strict";o(N4,"min")});function R4(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(R4,"range")});var ph=M(()=>{"use strict";q$();h7();Q$();Z$();J$();K$();j$()});function p7(t){return t}var eV=M(()=>{"use strict";o(p7,"default")});function y5e(t){return"translate("+t+",0)"}function v5e(t){return"translate(0,"+t+")"}function x5e(t){return e=>+t(e)}function b5e(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function w5e(){return!this.__axis}function rV(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===I4||t===M4?-1:1,f=t===M4||t===m7?"x":"y",d=t===I4||t===g7?y5e:v5e;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):p7),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,w=+x[x.length-1]+u,_=(e.bandwidth?b5e:x5e)(e.copy(),u),T=m.selection?m.selection():m,E=T.selectAll(".domain").data([null]),L=T.selectAll(".tick").data(g,e).order(),C=L.exit(),A=L.enter().append("g").attr("class","tick"),I=L.select("line"),D=L.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),L=L.merge(A),I=I.merge(A.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),D=D.merge(A.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===I4?"0em":t===g7?"0.71em":"0.32em")),m!==T&&(E=E.transition(m),L=L.transition(m),I=I.transition(m),D=D.transition(m),C=C.transition(m).attr("opacity",tV).attr("transform",function(k){return isFinite(k=_(k))?d(k+u):this.getAttribute("transform")}),A.attr("opacity",tV).attr("transform",function(k){var R=this.parentNode.__axis;return d((R&&isFinite(R=R(k))?R:_(k))+u)})),C.remove(),E.attr("d",t===M4||t===m7?s?"M"+h*s+","+b+"H"+u+"V"+w+"H"+h*s:"M"+u+","+b+"V"+w:s?"M"+b+","+h*s+"V"+u+"H"+w+"V"+h*s:"M"+b+","+u+"H"+w),L.attr("opacity",1).attr("transform",function(k){return d(_(k)+u)}),I.attr(f+"2",h*a),D.attr(f,h*v).text(y),T.filter(w5e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===m7?"start":t===M4?"end":"middle"),T.each(function(){this.__axis=_})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function y7(t){return rV(I4,t)}function v7(t){return rV(g7,t)}var I4,m7,g7,M4,tV,nV=M(()=>{"use strict";eV();I4=1,m7=2,g7=3,M4=4,tV=1e-6;o(y5e,"translateX");o(v5e,"translateY");o(x5e,"number");o(b5e,"center");o(w5e,"entering");o(rV,"axis");o(y7,"axisTop");o(v7,"axisBottom")});var iV=M(()=>{"use strict";nV()});function sV(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function E5e(t,e){for(var r=0,n=t.length,i;r{"use strict";T5e={value:o(()=>{},"value")};o(sV,"dispatch");o(O4,"Dispatch");o(k5e,"parseTypenames");O4.prototype=sV.prototype={constructor:O4,on:o(function(t,e){var r=this._,n=k5e(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";oV()});var P4,w7,T7=M(()=>{"use strict";P4="http://www.w3.org/1999/xhtml",w7={svg:"http://www.w3.org/2000/svg",xhtml:P4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function ic(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),w7.hasOwnProperty(e)?{space:w7[e],local:t}:t}var B4=M(()=>{"use strict";T7();o(ic,"default")});function S5e(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===P4&&e.documentElement.namespaceURI===P4?e.createElement(t):e.createElementNS(r,t)}}function C5e(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function cy(t){var e=ic(t);return(e.local?C5e:S5e)(e)}var k7=M(()=>{"use strict";B4();T7();o(S5e,"creatorInherit");o(C5e,"creatorFixed");o(cy,"default")});function A5e(){}function mh(t){return t==null?A5e:function(){return this.querySelector(t)}}var F4=M(()=>{"use strict";o(A5e,"none");o(mh,"default")});function E7(t){typeof t!="function"&&(t=mh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";ml();F4();o(E7,"default")});function S7(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var cV=M(()=>{"use strict";o(S7,"array")});function _5e(){return[]}function yp(t){return t==null?_5e:function(){return this.querySelectorAll(t)}}var C7=M(()=>{"use strict";o(_5e,"empty");o(yp,"default")});function L5e(t){return function(){return S7(t.apply(this,arguments))}}function A7(t){typeof t=="function"?t=L5e(t):t=yp(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";ml();cV();C7();o(L5e,"arrayAll");o(A7,"default")});function vp(t){return function(){return this.matches(t)}}function z4(t){return function(e){return e.matches(t)}}var uy=M(()=>{"use strict";o(vp,"default");o(z4,"childMatcher")});function N5e(t){return function(){return D5e.call(this.children,t)}}function R5e(){return this.firstElementChild}function _7(t){return this.select(t==null?R5e:N5e(typeof t=="function"?t:z4(t)))}var D5e,hV=M(()=>{"use strict";uy();D5e=Array.prototype.find;o(N5e,"childFind");o(R5e,"childFirst");o(_7,"default")});function I5e(){return Array.from(this.children)}function O5e(t){return function(){return M5e.call(this.children,t)}}function L7(t){return this.selectAll(t==null?I5e:O5e(typeof t=="function"?t:z4(t)))}var M5e,fV=M(()=>{"use strict";uy();M5e=Array.prototype.filter;o(I5e,"children");o(O5e,"childrenFilter");o(L7,"default")});function D7(t){typeof t!="function"&&(t=vp(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";ml();uy();o(D7,"default")});function hy(t){return new Array(t.length)}var N7=M(()=>{"use strict";o(hy,"default")});function R7(){return new ii(this._enter||this._groups.map(hy),this._parents)}function fy(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var M7=M(()=>{"use strict";N7();ml();o(R7,"default");o(fy,"EnterNode");fy.prototype={constructor:fy,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function I7(t){return function(){return t}}var pV=M(()=>{"use strict";o(I7,"default")});function P5e(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=w&&(w=b+1);!(T=v[w])&&++w{"use strict";ml();M7();pV();o(P5e,"bindIndex");o(B5e,"bindKey");o(F5e,"datum");o(O7,"default");o(z5e,"arraylike")});function P7(){return new ii(this._exit||this._groups.map(hy),this._parents)}var gV=M(()=>{"use strict";N7();ml();o(P7,"default")});function B7(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var yV=M(()=>{"use strict";o(B7,"default")});function F7(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";ml();o(F7,"default")});function z7(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var xV=M(()=>{"use strict";o(z7,"default")});function G7(t){t||(t=G5e);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var bV=M(()=>{"use strict";ml();o(G7,"default");o(G5e,"ascending")});function $7(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var wV=M(()=>{"use strict";o($7,"default")});function V7(){return Array.from(this)}var TV=M(()=>{"use strict";o(V7,"default")});function U7(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(U7,"default")});function H7(){let t=0;for(let e of this)++t;return t}var EV=M(()=>{"use strict";o(H7,"default")});function W7(){return!this.node()}var SV=M(()=>{"use strict";o(W7,"default")});function Y7(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(Y7,"default")});function $5e(t){return function(){this.removeAttribute(t)}}function V5e(t){return function(){this.removeAttributeNS(t.space,t.local)}}function U5e(t,e){return function(){this.setAttribute(t,e)}}function H5e(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function W5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function Y5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function q7(t,e){var r=ic(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?V5e:$5e:typeof e=="function"?r.local?Y5e:W5e:r.local?H5e:U5e)(r,e))}var AV=M(()=>{"use strict";B4();o($5e,"attrRemove");o(V5e,"attrRemoveNS");o(U5e,"attrConstant");o(H5e,"attrConstantNS");o(W5e,"attrFunction");o(Y5e,"attrFunctionNS");o(q7,"default")});function dy(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var X7=M(()=>{"use strict";o(dy,"default")});function q5e(t){return function(){this.style.removeProperty(t)}}function X5e(t,e,r){return function(){this.style.setProperty(t,e,r)}}function j5e(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function j7(t,e,r){return arguments.length>1?this.each((e==null?q5e:typeof e=="function"?j5e:X5e)(t,e,r??"")):gh(this.node(),t)}function gh(t,e){return t.style.getPropertyValue(e)||dy(t).getComputedStyle(t,null).getPropertyValue(e)}var K7=M(()=>{"use strict";X7();o(q5e,"styleRemove");o(X5e,"styleConstant");o(j5e,"styleFunction");o(j7,"default");o(gh,"styleValue")});function K5e(t){return function(){delete this[t]}}function Q5e(t,e){return function(){this[t]=e}}function Z5e(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Q7(t,e){return arguments.length>1?this.each((e==null?K5e:typeof e=="function"?Z5e:Q5e)(t,e)):this.node()[t]}var _V=M(()=>{"use strict";o(K5e,"propertyRemove");o(Q5e,"propertyConstant");o(Z5e,"propertyFunction");o(Q7,"default")});function LV(t){return t.trim().split(/^|\s+/)}function Z7(t){return t.classList||new DV(t)}function DV(t){this._node=t,this._names=LV(t.getAttribute("class")||"")}function NV(t,e){for(var r=Z7(t),n=-1,i=e.length;++n{"use strict";o(LV,"classArray");o(Z7,"classList");o(DV,"ClassList");DV.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(NV,"classedAdd");o(RV,"classedRemove");o(J5e,"classedTrue");o(ewe,"classedFalse");o(twe,"classedFunction");o(J7,"default")});function rwe(){this.textContent=""}function nwe(t){return function(){this.textContent=t}}function iwe(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function eA(t){return arguments.length?this.each(t==null?rwe:(typeof t=="function"?iwe:nwe)(t)):this.node().textContent}var IV=M(()=>{"use strict";o(rwe,"textRemove");o(nwe,"textConstant");o(iwe,"textFunction");o(eA,"default")});function awe(){this.innerHTML=""}function swe(t){return function(){this.innerHTML=t}}function owe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function tA(t){return arguments.length?this.each(t==null?awe:(typeof t=="function"?owe:swe)(t)):this.node().innerHTML}var OV=M(()=>{"use strict";o(awe,"htmlRemove");o(swe,"htmlConstant");o(owe,"htmlFunction");o(tA,"default")});function lwe(){this.nextSibling&&this.parentNode.appendChild(this)}function rA(){return this.each(lwe)}var PV=M(()=>{"use strict";o(lwe,"raise");o(rA,"default")});function cwe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nA(){return this.each(cwe)}var BV=M(()=>{"use strict";o(cwe,"lower");o(nA,"default")});function iA(t){var e=typeof t=="function"?t:cy(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var FV=M(()=>{"use strict";k7();o(iA,"default")});function uwe(){return null}function aA(t,e){var r=typeof t=="function"?t:cy(t),n=e==null?uwe:typeof e=="function"?e:mh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var zV=M(()=>{"use strict";k7();F4();o(uwe,"constantNull");o(aA,"default")});function hwe(){var t=this.parentNode;t&&t.removeChild(this)}function sA(){return this.each(hwe)}var GV=M(()=>{"use strict";o(hwe,"remove");o(sA,"default")});function fwe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function dwe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function oA(t){return this.select(t?dwe:fwe)}var $V=M(()=>{"use strict";o(fwe,"selection_cloneShallow");o(dwe,"selection_cloneDeep");o(oA,"default")});function lA(t){return arguments.length?this.property("__data__",t):this.node().__data__}var VV=M(()=>{"use strict";o(lA,"default")});function pwe(t){return function(e){t.call(this,e,this.__data__)}}function mwe(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function gwe(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(pwe,"contextListener");o(mwe,"parseTypenames");o(gwe,"onRemove");o(ywe,"onAdd");o(cA,"default")});function HV(t,e,r){var n=dy(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function vwe(t,e){return function(){return HV(this,t,e)}}function xwe(t,e){return function(){return HV(this,t,e.apply(this,arguments))}}function uA(t,e){return this.each((typeof e=="function"?xwe:vwe)(t,e))}var WV=M(()=>{"use strict";X7();o(HV,"dispatchEvent");o(vwe,"dispatchConstant");o(xwe,"dispatchFunction");o(uA,"default")});function*hA(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(hA,"default")});function ii(t,e){this._groups=t,this._parents=e}function qV(){return new ii([[document.documentElement]],fA)}function bwe(){return this}var fA,lu,ml=M(()=>{"use strict";lV();uV();hV();fV();dV();mV();M7();gV();yV();vV();xV();bV();wV();TV();kV();EV();SV();CV();AV();K7();_V();MV();IV();OV();PV();BV();FV();zV();GV();$V();VV();UV();WV();YV();fA=[null];o(ii,"Selection");o(qV,"selection");o(bwe,"selection_selection");ii.prototype=qV.prototype={constructor:ii,select:E7,selectAll:A7,selectChild:_7,selectChildren:L7,filter:D7,data:O7,enter:R7,exit:P7,join:B7,merge:F7,selection:bwe,order:z7,sort:G7,call:$7,nodes:V7,node:U7,size:H7,empty:W7,each:Y7,attr:q7,style:j7,property:Q7,classed:J7,text:eA,html:tA,raise:rA,lower:nA,append:iA,insert:aA,remove:sA,clone:oA,datum:lA,on:cA,dispatch:uA,[Symbol.iterator]:hA};lu=qV});function ze(t){return typeof t=="string"?new ii([[document.querySelector(t)]],[document.documentElement]):new ii([[t]],fA)}var XV=M(()=>{"use strict";ml();o(ze,"default")});var gl=M(()=>{"use strict";uy();B4();XV();ml();F4();C7();K7()});var jV=M(()=>{"use strict"});function yh(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function xp(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var dA=M(()=>{"use strict";o(yh,"default");o(xp,"extend")});function vh(){}function QV(){return this.rgb().formatHex()}function _we(){return this.rgb().formatHex8()}function Lwe(){return iU(this).formatHsl()}function ZV(){return this.rgb().formatRgb()}function vl(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=wwe.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?JV(e):r===3?new sa(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?G4(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?G4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Twe.exec(t))?new sa(e[1],e[2],e[3],1):(e=kwe.exec(t))?new sa(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ewe.exec(t))?G4(e[1],e[2],e[3],e[4]):(e=Swe.exec(t))?G4(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Cwe.exec(t))?rU(e[1],e[2]/100,e[3]/100,1):(e=Awe.exec(t))?rU(e[1],e[2]/100,e[3]/100,e[4]):KV.hasOwnProperty(t)?JV(KV[t]):t==="transparent"?new sa(NaN,NaN,NaN,0):null}function JV(t){return new sa(t>>16&255,t>>8&255,t&255,1)}function G4(t,e,r,n){return n<=0&&(t=e=r=NaN),new sa(t,e,r,n)}function mA(t){return t instanceof vh||(t=vl(t)),t?(t=t.rgb(),new sa(t.r,t.g,t.b,t.opacity)):new sa}function wp(t,e,r,n){return arguments.length===1?mA(t):new sa(t,e,r,n??1)}function sa(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function eU(){return`#${ed(this.r)}${ed(this.g)}${ed(this.b)}`}function Dwe(){return`#${ed(this.r)}${ed(this.g)}${ed(this.b)}${ed((isNaN(this.opacity)?1:this.opacity)*255)}`}function tU(){let t=U4(this.opacity);return`${t===1?"rgb(":"rgba("}${td(this.r)}, ${td(this.g)}, ${td(this.b)}${t===1?")":`, ${t})`}`}function U4(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function td(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ed(t){return t=td(t),(t<16?"0":"")+t.toString(16)}function rU(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new yl(t,e,r,n)}function iU(t){if(t instanceof yl)return new yl(t.h,t.s,t.l,t.opacity);if(t instanceof vh||(t=vl(t)),!t)return new yl;if(t instanceof yl)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new yl(s,l,u,t.opacity)}function aU(t,e,r,n){return arguments.length===1?iU(t):new yl(t,e,r,n??1)}function yl(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function nU(t){return t=(t||0)%360,t<0?t+360:t}function $4(t){return Math.max(0,Math.min(1,t||0))}function pA(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var py,V4,bp,my,ac,wwe,Twe,kwe,Ewe,Swe,Cwe,Awe,KV,gA=M(()=>{"use strict";dA();o(vh,"Color");py=.7,V4=1/py,bp="\\s*([+-]?\\d+)\\s*",my="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ac="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",wwe=/^#([0-9a-f]{3,8})$/,Twe=new RegExp(`^rgb\\(${bp},${bp},${bp}\\)$`),kwe=new RegExp(`^rgb\\(${ac},${ac},${ac}\\)$`),Ewe=new RegExp(`^rgba\\(${bp},${bp},${bp},${my}\\)$`),Swe=new RegExp(`^rgba\\(${ac},${ac},${ac},${my}\\)$`),Cwe=new RegExp(`^hsl\\(${my},${ac},${ac}\\)$`),Awe=new RegExp(`^hsla\\(${my},${ac},${ac},${my}\\)$`),KV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};yh(vh,vl,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:QV,formatHex:QV,formatHex8:_we,formatHsl:Lwe,formatRgb:ZV,toString:ZV});o(QV,"color_formatHex");o(_we,"color_formatHex8");o(Lwe,"color_formatHsl");o(ZV,"color_formatRgb");o(vl,"color");o(JV,"rgbn");o(G4,"rgba");o(mA,"rgbConvert");o(wp,"rgb");o(sa,"Rgb");yh(sa,wp,xp(vh,{brighter(t){return t=t==null?V4:Math.pow(V4,t),new sa(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?py:Math.pow(py,t),new sa(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new sa(td(this.r),td(this.g),td(this.b),U4(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:eU,formatHex:eU,formatHex8:Dwe,formatRgb:tU,toString:tU}));o(eU,"rgb_formatHex");o(Dwe,"rgb_formatHex8");o(tU,"rgb_formatRgb");o(U4,"clampa");o(td,"clampi");o(ed,"hex");o(rU,"hsla");o(iU,"hslConvert");o(aU,"hsl");o(yl,"Hsl");yh(yl,aU,xp(vh,{brighter(t){return t=t==null?V4:Math.pow(V4,t),new yl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?py:Math.pow(py,t),new yl(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new sa(pA(t>=240?t-240:t+120,i,n),pA(t,i,n),pA(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new yl(nU(this.h),$4(this.s),$4(this.l),U4(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=U4(this.opacity);return`${t===1?"hsl(":"hsla("}${nU(this.h)}, ${$4(this.s)*100}%, ${$4(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(nU,"clamph");o($4,"clampt");o(pA,"hsl2rgb")});var sU,oU,lU=M(()=>{"use strict";sU=Math.PI/180,oU=180/Math.PI});function pU(t){if(t instanceof sc)return new sc(t.l,t.a,t.b,t.opacity);if(t instanceof cu)return mU(t);t instanceof sa||(t=mA(t));var e=bA(t.r),r=bA(t.g),n=bA(t.b),i=yA((.2225045*e+.7168786*r+.0606169*n)/uU),a,s;return e===r&&r===n?a=s=i:(a=yA((.4360747*e+.3850649*r+.1430804*n)/cU),s=yA((.0139322*e+.0971045*r+.7141733*n)/hU)),new sc(116*i-16,500*(a-i),200*(i-s),t.opacity)}function wA(t,e,r,n){return arguments.length===1?pU(t):new sc(t,e,r,n??1)}function sc(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function yA(t){return t>Nwe?Math.pow(t,1/3):t/dU+fU}function vA(t){return t>Tp?t*t*t:dU*(t-fU)}function xA(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function bA(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Rwe(t){if(t instanceof cu)return new cu(t.h,t.c,t.l,t.opacity);if(t instanceof sc||(t=pU(t)),t.a===0&&t.b===0)return new cu(NaN,0{"use strict";dA();gA();lU();H4=18,cU=.96422,uU=1,hU=.82521,fU=4/29,Tp=6/29,dU=3*Tp*Tp,Nwe=Tp*Tp*Tp;o(pU,"labConvert");o(wA,"lab");o(sc,"Lab");yh(sc,wA,xp(vh,{brighter(t){return new sc(this.l+H4*(t??1),this.a,this.b,this.opacity)},darker(t){return new sc(this.l-H4*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=cU*vA(e),t=uU*vA(t),r=hU*vA(r),new sa(xA(3.1338561*e-1.6168667*t-.4906146*r),xA(-.9787684*e+1.9161415*t+.033454*r),xA(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(yA,"xyz2lab");o(vA,"lab2xyz");o(xA,"lrgb2rgb");o(bA,"rgb2lrgb");o(Rwe,"hclConvert");o(gy,"hcl");o(cu,"Hcl");o(mU,"hcl2lab");yh(cu,gy,xp(vh,{brighter(t){return new cu(this.h,this.c,this.l+H4*(t??1),this.opacity)},darker(t){return new cu(this.h,this.c,this.l-H4*(t??1),this.opacity)},rgb(){return mU(this).rgb()}}))});var kp=M(()=>{"use strict";gA();gU()});function TA(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function kA(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(TA,"basis");o(kA,"default")});function SA(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return TA((r-n/e)*e,i,a,s,l)}}var yU=M(()=>{"use strict";EA();o(SA,"default")});var Ep,CA=M(()=>{"use strict";Ep=o(t=>()=>t,"default")});function vU(t,e){return function(r){return t+r*e}}function Mwe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function xU(t,e){var r=e-t;return r?vU(t,r>180||r<-180?r-360*Math.round(r/360):r):Ep(isNaN(t)?e:t)}function bU(t){return(t=+t)==1?uu:function(e,r){return r-e?Mwe(e,r,t):Ep(isNaN(e)?r:e)}}function uu(t,e){var r=e-t;return r?vU(t,r):Ep(isNaN(t)?e:t)}var AA=M(()=>{"use strict";CA();o(vU,"linear");o(Mwe,"exponential");o(xU,"hue");o(bU,"gamma");o(uu,"nogamma")});function wU(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";kp();EA();yU();AA();rd=o(function t(e){var r=bU(e);function n(i,a){var s=r((i=wp(i)).r,(a=wp(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=uu(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n},"rgbGamma")(1);o(wU,"rgbSpline");Iwe=wU(kA),Owe=wU(SA)});function LA(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(LA,"default");o(TU,"isNumberArray")});function EU(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";W4();o(EU,"genericArray")});function DA(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var CU=M(()=>{"use strict";o(DA,"default")});function Ki(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var yy=M(()=>{"use strict";o(Ki,"default")});function NA(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=xh(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var AU=M(()=>{"use strict";W4();o(NA,"default")});function Pwe(t){return function(){return t}}function Bwe(t){return function(e){return t(e)+""}}function Sp(t,e){var r=MA.lastIndex=RA.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=MA.exec(t))&&(i=RA.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Ki(n,i)})),r=RA.lastIndex;return r{"use strict";yy();MA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,RA=new RegExp(MA.source,"g");o(Pwe,"zero");o(Bwe,"one");o(Sp,"default")});function xh(t,e){var r=typeof e,n;return e==null||r==="boolean"?Ep(e):(r==="number"?Ki:r==="string"?(n=vl(e))?(e=n,rd):Sp:e instanceof vl?rd:e instanceof Date?DA:TU(e)?LA:Array.isArray(e)?EU:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?NA:Ki)(t,e)}var W4=M(()=>{"use strict";kp();_A();SU();CU();yy();AU();IA();CA();kU();o(xh,"default")});function Y4(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var _U=M(()=>{"use strict";o(Y4,"default")});function X4(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";LU=180/Math.PI,q4={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(X4,"default")});function NU(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?q4:X4(e.a,e.b,e.c,e.d,e.e,e.f)}function RU(t){return t==null?q4:(j4||(j4=document.createElementNS("http://www.w3.org/2000/svg","g")),j4.setAttribute("transform",t),(t=j4.transform.baseVal.consolidate())?(t=t.matrix,X4(t.a,t.b,t.c,t.d,t.e,t.f)):q4)}var j4,MU=M(()=>{"use strict";DU();o(NU,"parseCss");o(RU,"parseSvg")});function IU(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Ki(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Ki(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";yy();MU();o(IU,"interpolateTransform");OA=IU(NU,"px, ","px)","deg)"),PA=IU(RU,", ",")",")")});function PU(t){return function(e,r){var n=t((e=gy(e)).h,(r=gy(r)).h),i=uu(e.c,r.c),a=uu(e.l,r.l),s=uu(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var BA,Fwe,BU=M(()=>{"use strict";kp();AA();o(PU,"hcl");BA=PU(xU),Fwe=PU(uu)});var Cp=M(()=>{"use strict";W4();yy();_U();IA();OU();_A();BU()});function ky(){return nd||(GU(zwe),nd=wy.now()+Z4)}function zwe(){nd=0}function Ty(){this._call=this._time=this._next=null}function J4(t,e,r){var n=new Ty;return n.restart(t,e,r),n}function $U(){ky(),++Ap;for(var t=K4,e;t;)(e=nd-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Ap}function FU(){nd=(Q4=wy.now())+Z4,Ap=xy=0;try{$U()}finally{Ap=0,$we(),nd=0}}function Gwe(){var t=wy.now(),e=t-Q4;e>zU&&(Z4-=e,Q4=t)}function $we(){for(var t,e=K4,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:K4=r);by=t,FA(n)}function FA(t){if(!Ap){xy&&(xy=clearTimeout(xy));var e=t-nd;e>24?(t<1/0&&(xy=setTimeout(FU,t-wy.now()-Z4)),vy&&(vy=clearInterval(vy))):(vy||(Q4=wy.now(),vy=setInterval(Gwe,zU)),Ap=1,GU(FU))}}var Ap,xy,vy,zU,K4,by,Q4,nd,Z4,wy,GU,zA=M(()=>{"use strict";Ap=0,xy=0,vy=0,zU=1e3,Q4=0,nd=0,Z4=0,wy=typeof performance=="object"&&performance.now?performance:Date,GU=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(ky,"now");o(zwe,"clearNow");o(Ty,"Timer");Ty.prototype=J4.prototype={constructor:Ty,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?ky():+r)+(e==null?0:+e),!this._next&&by!==this&&(by?by._next=this:K4=this,by=this),this._call=t,this._time=r,FA()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,FA())},"stop")};o(J4,"timer");o($U,"timerFlush");o(FU,"wake");o(Gwe,"poke");o($we,"nap");o(FA,"sleep")});function Ey(t,e,r){var n=new Ty;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var VU=M(()=>{"use strict";zA();o(Ey,"default")});var e3=M(()=>{"use strict";zA();VU()});function hu(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;Hwe(t,r,{name:e,index:n,group:i,on:Vwe,tween:Uwe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:WU})}function Cy(t,e){var r=Oi(t,e);if(r.state>WU)throw new Error("too late; already scheduled");return r}function oa(t,e){var r=Oi(t,e);if(r.state>t3)throw new Error("too late; already running");return r}function Oi(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function Hwe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=J4(a,0,r.time);function a(h){r.state=UU,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==UU)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===t3)return Ey(s);m.state===HU?(m.state=Sy,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";b7();e3();Vwe=x7("start","end","cancel","interrupt"),Uwe=[],WU=0,UU=1,r3=2,t3=3,HU=4,n3=5,Sy=6;o(hu,"default");o(Cy,"init");o(oa,"set");o(Oi,"get");o(Hwe,"create")});function Ay(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>r3&&n.state{"use strict";ys();o(Ay,"default")});function GA(t){return this.each(function(){Ay(this,t)})}var qU=M(()=>{"use strict";YU();o(GA,"default")});function Wwe(t,e){var r,n;return function(){var i=oa(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";ys();o(Wwe,"tweenRemove");o(Ywe,"tweenFunction");o($A,"default");o(_p,"tweenValue")});function Ly(t,e){var r;return(typeof e=="number"?Ki:e instanceof vl?rd:(r=vl(e))?(e=r,rd):Sp)(t,e)}var VA=M(()=>{"use strict";kp();Cp();o(Ly,"default")});function qwe(t){return function(){this.removeAttribute(t)}}function Xwe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function jwe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function Kwe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function Qwe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function Zwe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function UA(t,e){var r=ic(t),n=r==="transform"?PA:Ly;return this.attrTween(t,typeof e=="function"?(r.local?Zwe:Qwe)(r,n,_p(this,"attr."+t,e)):e==null?(r.local?Xwe:qwe)(r):(r.local?Kwe:jwe)(r,n,e))}var XU=M(()=>{"use strict";Cp();gl();_y();VA();o(qwe,"attrRemove");o(Xwe,"attrRemoveNS");o(jwe,"attrConstant");o(Kwe,"attrConstantNS");o(Qwe,"attrFunction");o(Zwe,"attrFunctionNS");o(UA,"default")});function Jwe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function eTe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function tTe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&eTe(t,a)),r}return o(i,"tween"),i._value=e,i}function rTe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&Jwe(t,a)),r}return o(i,"tween"),i._value=e,i}function HA(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=ic(t);return this.tween(r,(n.local?tTe:rTe)(n,e))}var jU=M(()=>{"use strict";gl();o(Jwe,"attrInterpolate");o(eTe,"attrInterpolateNS");o(tTe,"attrTweenNS");o(rTe,"attrTween");o(HA,"default")});function nTe(t,e){return function(){Cy(this,t).delay=+e.apply(this,arguments)}}function iTe(t,e){return e=+e,function(){Cy(this,t).delay=e}}function WA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?nTe:iTe)(e,t)):Oi(this.node(),e).delay}var KU=M(()=>{"use strict";ys();o(nTe,"delayFunction");o(iTe,"delayConstant");o(WA,"default")});function aTe(t,e){return function(){oa(this,t).duration=+e.apply(this,arguments)}}function sTe(t,e){return e=+e,function(){oa(this,t).duration=e}}function YA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?aTe:sTe)(e,t)):Oi(this.node(),e).duration}var QU=M(()=>{"use strict";ys();o(aTe,"durationFunction");o(sTe,"durationConstant");o(YA,"default")});function oTe(t,e){if(typeof e!="function")throw new Error;return function(){oa(this,t).ease=e}}function qA(t){var e=this._id;return arguments.length?this.each(oTe(e,t)):Oi(this.node(),e).ease}var ZU=M(()=>{"use strict";ys();o(oTe,"easeConstant");o(qA,"default")});function lTe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;oa(this,t).ease=r}}function XA(t){if(typeof t!="function")throw new Error;return this.each(lTe(this._id,t))}var JU=M(()=>{"use strict";ys();o(lTe,"easeVarying");o(XA,"default")});function jA(t){typeof t!="function"&&(t=vp(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";gl();id();o(jA,"default")});function KA(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";id();o(KA,"default")});function cTe(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function uTe(t,e,r){var n,i,a=cTe(e)?Cy:oa;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function QA(t,e){var r=this._id;return arguments.length<2?Oi(this.node(),r).on.on(t):this.each(uTe(r,t,e))}var rH=M(()=>{"use strict";ys();o(cTe,"start");o(uTe,"onFunction");o(QA,"default")});function hTe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function ZA(){return this.on("end.remove",hTe(this._id))}var nH=M(()=>{"use strict";o(hTe,"removeFunction");o(ZA,"default")});function JA(t){var e=this._name,r=this._id;typeof t!="function"&&(t=mh(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";gl();id();ys();o(JA,"default")});function e8(t){var e=this._name,r=this._id;typeof t!="function"&&(t=yp(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";gl();id();ys();o(e8,"default")});function t8(){return new fTe(this._groups,this._parents)}var fTe,sH=M(()=>{"use strict";gl();fTe=lu.prototype.constructor;o(t8,"default")});function dTe(t,e){var r,n,i;return function(){var a=gh(this,t),s=(this.style.removeProperty(t),gh(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function oH(t){return function(){this.style.removeProperty(t)}}function pTe(t,e,r){var n,i=r+"",a;return function(){var s=gh(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function mTe(t,e,r){var n,i,a;return function(){var s=gh(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),gh(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function gTe(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=oa(this,t),h=u.on,f=u.value[a]==null?l||(l=oH(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function r8(t,e,r){var n=(t+="")=="transform"?OA:Ly;return e==null?this.styleTween(t,dTe(t,n)).on("end.style."+t,oH(t)):typeof e=="function"?this.styleTween(t,mTe(t,n,_p(this,"style."+t,e))).each(gTe(this._id,t)):this.styleTween(t,pTe(t,n,e),r).on("end.style."+t,null)}var lH=M(()=>{"use strict";Cp();gl();ys();_y();VA();o(dTe,"styleNull");o(oH,"styleRemove");o(pTe,"styleConstant");o(mTe,"styleFunction");o(gTe,"styleMaybeRemove");o(r8,"default")});function yTe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function vTe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&yTe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function n8(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,vTe(t,e,r??""))}var cH=M(()=>{"use strict";o(yTe,"styleInterpolate");o(vTe,"styleTween");o(n8,"default")});function xTe(t){return function(){this.textContent=t}}function bTe(t){return function(){var e=t(this);this.textContent=e??""}}function i8(t){return this.tween("text",typeof t=="function"?bTe(_p(this,"text",t)):xTe(t==null?"":t+""))}var uH=M(()=>{"use strict";_y();o(xTe,"textConstant");o(bTe,"textFunction");o(i8,"default")});function wTe(t){return function(e){this.textContent=t.call(this,e)}}function TTe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&wTe(i)),e}return o(n,"tween"),n._value=t,n}function a8(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,TTe(t))}var hH=M(()=>{"use strict";o(wTe,"textInterpolate");o(TTe,"textTween");o(a8,"default")});function s8(){for(var t=this._name,e=this._id,r=i3(),n=this._groups,i=n.length,a=0;a{"use strict";id();ys();o(s8,"default")});function o8(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=oa(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var dH=M(()=>{"use strict";ys();o(o8,"default")});function ja(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function pH(t){return lu().transition(t)}function i3(){return++kTe}var kTe,fu,id=M(()=>{"use strict";gl();XU();jU();KU();QU();ZU();JU();eH();tH();rH();nH();iH();aH();sH();lH();cH();uH();hH();fH();_y();dH();kTe=0;o(ja,"Transition");o(pH,"transition");o(i3,"newId");fu=lu.prototype;ja.prototype=pH.prototype={constructor:ja,select:JA,selectAll:e8,selectChild:fu.selectChild,selectChildren:fu.selectChildren,filter:jA,merge:KA,selection:t8,transition:s8,call:fu.call,nodes:fu.nodes,node:fu.node,size:fu.size,empty:fu.empty,each:fu.each,on:QA,attr:UA,attrTween:HA,style:r8,styleTween:n8,text:i8,textTween:a8,remove:ZA,tween:$A,delay:WA,duration:YA,ease:qA,easeVarying:XA,end:o8,[Symbol.iterator]:fu[Symbol.iterator]}});function a3(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var mH=M(()=>{"use strict";o(a3,"cubicInOut")});var l8=M(()=>{"use strict";mH()});function STe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function c8(t){var e,r;t instanceof ja?(e=t._id,t=t._name):(e=i3(),(r=ETe).time=ky(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";id();ys();l8();e3();ETe={time:null,delay:0,duration:250,ease:a3};o(STe,"inherit");o(c8,"default")});var yH=M(()=>{"use strict";gl();qU();gH();lu.prototype.interrupt=GA;lu.prototype.transition=c8});var s3=M(()=>{"use strict";yH()});var vH=M(()=>{"use strict"});var xH=M(()=>{"use strict"});var bH=M(()=>{"use strict"});function wH(t){return[+t[0],+t[1]]}function CTe(t){return[wH(t[0]),wH(t[1])]}function u8(t){return{type:t}}var t1t,r1t,n1t,i1t,a1t,s1t,TH=M(()=>{"use strict";s3();vH();xH();bH();({abs:t1t,max:r1t,min:n1t}=Math);o(wH,"number1");o(CTe,"number2");i1t={name:"x",handles:["w","e"].map(u8),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},a1t={name:"y",handles:["n","s"].map(u8),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},s1t={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(u8),input:o(function(t){return t==null?null:CTe(t)},"input"),output:o(function(t){return t},"output")};o(u8,"type")});var kH=M(()=>{"use strict";TH()});function EH(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return EH;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";h8=Math.PI,f8=2*h8,ad=1e-6,ATe=f8-ad;o(EH,"append");o(_Te,"appendRound");sd=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?EH:_Te(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>ad)if(!(Math.abs(d*u-h*f)>ad)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),w=a*Math.tan((h8-Math.acos((y+p-v)/(2*x*b)))/2),_=w/b,T=w/x;Math.abs(_-1)>ad&&this._append`L${e+_*f},${r+_*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+T*u},${this._y1=r+T*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>ad||Math.abs(this._y1-f)>ad)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%f8+f8),p>ATe?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>ad&&this._append`A${n},${n},0,${+(p>=h8)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(SH,"path");SH.prototype=sd.prototype});var d8=M(()=>{"use strict";CH()});var AH=M(()=>{"use strict"});var _H=M(()=>{"use strict"});var LH=M(()=>{"use strict"});var DH=M(()=>{"use strict"});var NH=M(()=>{"use strict"});var RH=M(()=>{"use strict"});var MH=M(()=>{"use strict"});function p8(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function od(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var Dy=M(()=>{"use strict";o(p8,"default");o(od,"formatDecimalParts")});function xl(t){return t=od(Math.abs(t)),t?t[1]:NaN}var Ny=M(()=>{"use strict";Dy();o(xl,"default")});function m8(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var IH=M(()=>{"use strict";o(m8,"default")});function g8(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var OH=M(()=>{"use strict";o(g8,"default")});function bh(t){if(!(e=LTe.exec(t)))throw new Error("invalid format: "+t);var e;return new o3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function o3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var LTe,y8=M(()=>{"use strict";LTe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(bh,"formatSpecifier");bh.prototype=o3.prototype;o(o3,"FormatSpecifier");o3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function v8(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var PH=M(()=>{"use strict";o(v8,"default")});function b8(t,e){var r=od(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(x8=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+od(t,Math.max(0,e+a-1))[0]}var x8,w8=M(()=>{"use strict";Dy();o(b8,"default")});function l3(t,e){var r=od(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var BH=M(()=>{"use strict";Dy();o(l3,"default")});var T8,FH=M(()=>{"use strict";Dy();w8();BH();T8={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:p8,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>l3(t*100,e),"p"),r:l3,s:b8,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function c3(t){return t}var zH=M(()=>{"use strict";o(c3,"default")});function k8(t){var e=t.grouping===void 0||t.thousands===void 0?c3:m8(GH.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?c3:g8(GH.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=bh(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,w=d.precision,_=d.trim,T=d.type;T==="n"?(b=!0,T="g"):T8[T]||(w===void 0&&(w=12),_=!0,T="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var E=y==="$"?r:y==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",L=y==="$"?n:/[%p]/.test(T)?s:"",C=T8[T],A=/[defgprs%]/.test(T);w=w===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function I(D){var k=E,R=L,S,O,N;if(T==="c")R=C(D)+R,D="";else{D=+D;var P=D<0||1/D<0;if(D=isNaN(D)?u:C(Math.abs(D),w),_&&(D=v8(D)),P&&+D==0&&g!=="+"&&(P=!1),k=(P?g==="("?g:l:g==="-"||g==="("?"":g)+k,R=(T==="s"?$H[8+x8/3]:"")+R+(P&&g==="("?")":""),A){for(S=-1,O=D.length;++SN||N>57){R=(N===46?i+D.slice(S+1):D.slice(S))+R,D=D.slice(0,S);break}}}b&&!v&&(D=e(D,1/0));var F=k.length+D.length+R.length,B=F>1)+k+D+R+B.slice(F);break;default:D=B+k+D+R;break}return a(D)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=bh(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(xl(p)/3)))*3,y=Math.pow(10,-g),v=$H[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var GH,$H,VH=M(()=>{"use strict";Ny();IH();OH();y8();PH();FH();w8();zH();GH=Array.prototype.map,$H=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(k8,"default")});function E8(t){return u3=k8(t),h3=u3.format,f3=u3.formatPrefix,u3}var u3,h3,f3,UH=M(()=>{"use strict";VH();E8({thousands:",",grouping:[3],currency:["$",""]});o(E8,"defaultLocale")});function d3(t){return Math.max(0,-xl(Math.abs(t)))}var HH=M(()=>{"use strict";Ny();o(d3,"default")});function p3(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(xl(e)/3)))*3-xl(Math.abs(t)))}var WH=M(()=>{"use strict";Ny();o(p3,"default")});function m3(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,xl(e)-xl(t))+1}var YH=M(()=>{"use strict";Ny();o(m3,"default")});var S8=M(()=>{"use strict";UH();y8();HH();WH();YH()});var qH=M(()=>{"use strict"});var XH=M(()=>{"use strict"});var jH=M(()=>{"use strict"});var KH=M(()=>{"use strict"});function wh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var Ry=M(()=>{"use strict";o(wh,"initRange")});function du(){var t=new mp,e=[],r=[],n=C8;function i(a){let s=t.get(a);if(s===void 0){if(n!==C8)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new mp;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return du(e,r).unknown(n)},wh.apply(i,arguments),i}var C8,A8=M(()=>{"use strict";ph();Ry();C8=Symbol("implicit");o(du,"ordinal")});function Lp(){var t=du().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";ph();Ry();A8();o(Lp,"band")});function _8(t){return function(){return t}}var ZH=M(()=>{"use strict";o(_8,"constants")});function L8(t){return+t}var JH=M(()=>{"use strict";o(L8,"number")});function Dp(t){return t}function D8(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:_8(isNaN(e)?NaN:.5)}function DTe(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function NTe(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?RTe:NTe,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),Ki)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,L8),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=Y4,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Dp,f()):s!==Dp},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function My(){return MTe()(Dp,Dp)}var eW,N8=M(()=>{"use strict";ph();Cp();ZH();JH();eW=[0,1];o(Dp,"identity");o(D8,"normalize");o(DTe,"clamper");o(NTe,"bimap");o(RTe,"polymap");o(g3,"copy");o(MTe,"transformer");o(My,"continuous")});function R8(t,e,r,n){var i=gp(t,e,r),a;switch(n=bh(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=p3(i,s))&&(n.precision=a),f3(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=m3(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=d3(i))&&(n.precision=a-(n.type==="%")*2);break}}return h3(n)}var tW=M(()=>{"use strict";ph();S8();o(R8,"tickFormat")});function ITe(t){var e=t.domain;return t.ticks=function(r){var n=e();return L4(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return R8(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=ly(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function bl(){var t=My();return t.copy=function(){return g3(t,bl())},wh.apply(t,arguments),ITe(t)}var rW=M(()=>{"use strict";ph();N8();Ry();tW();o(ITe,"linearish");o(bl,"linear")});function M8(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(M8,"nice")});function gn(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hgn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(I8.setTime(+a),O8.setTime(+s),t(I8),t(O8),Math.floor(r(I8,O8))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var I8,O8,pu=M(()=>{"use strict";I8=new Date,O8=new Date;o(gn,"timeInterval")});var oc,iW,P8=M(()=>{"use strict";pu();oc=gn(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);oc.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?gn(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):oc);iW=oc.range});var Xs,aW,B8=M(()=>{"use strict";pu();Xs=gn(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),aW=Xs.range});var mu,OTe,y3,PTe,F8=M(()=>{"use strict";pu();mu=gn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),OTe=mu.range,y3=gn(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),PTe=y3.range});var gu,BTe,v3,FTe,z8=M(()=>{"use strict";pu();gu=gn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),BTe=gu.range,v3=gn(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),FTe=v3.range});var Lo,zTe,Oy,GTe,x3,$Te,G8=M(()=>{"use strict";pu();Lo=gn(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),zTe=Lo.range,Oy=gn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),GTe=Oy.range,x3=gn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),$Te=x3.range});function ud(t){return gn(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function hd(t){return gn(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var wl,Th,b3,w3,cc,T3,k3,oW,VTe,UTe,HTe,WTe,YTe,qTe,fd,Np,lW,cW,kh,uW,hW,fW,XTe,jTe,KTe,QTe,ZTe,JTe,$8=M(()=>{"use strict";pu();o(ud,"timeWeekday");wl=ud(0),Th=ud(1),b3=ud(2),w3=ud(3),cc=ud(4),T3=ud(5),k3=ud(6),oW=wl.range,VTe=Th.range,UTe=b3.range,HTe=w3.range,WTe=cc.range,YTe=T3.range,qTe=k3.range;o(hd,"utcWeekday");fd=hd(0),Np=hd(1),lW=hd(2),cW=hd(3),kh=hd(4),uW=hd(5),hW=hd(6),fW=fd.range,XTe=Np.range,jTe=lW.range,KTe=cW.range,QTe=kh.range,ZTe=uW.range,JTe=hW.range});var yu,eke,E3,tke,V8=M(()=>{"use strict";pu();yu=gn(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),eke=yu.range,E3=gn(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),tke=E3.range});var js,rke,Tl,nke,U8=M(()=>{"use strict";pu();js=gn(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());js.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:gn(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});rke=js.range,Tl=gn(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Tl.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:gn(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});nke=Tl.range});function pW(t,e,r,n,i,a){let s=[[Xs,1,1e3],[Xs,5,5*1e3],[Xs,15,15*1e3],[Xs,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(gp(h/31536e6,f/31536e6,d));if(m===0)return oc.every(Math.max(gp(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";ph();P8();B8();F8();z8();G8();$8();V8();U8();o(pW,"ticker");[ake,ske]=pW(Tl,E3,fd,x3,v3,y3),[H8,W8]=pW(js,yu,wl,Lo,gu,mu)});var S3=M(()=>{"use strict";P8();B8();F8();z8();G8();$8();V8();U8();mW()});function Y8(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function q8(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Py(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function X8(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=By(i),f=Fy(i),d=By(a),p=Fy(a),m=By(s),g=Fy(s),y=By(l),v=Fy(l),x=By(u),b=Fy(u),w={a:P,A:F,b:B,B:$,c:null,d:wW,e:wW,f:Lke,g:zke,G:$ke,H:Cke,I:Ake,j:_ke,L:CW,m:Dke,M:Nke,p:z,q:W,Q:EW,s:SW,S:Rke,u:Mke,U:Ike,V:Oke,w:Pke,W:Bke,x:null,X:null,y:Fke,Y:Gke,Z:Vke,"%":kW},_={a:j,A:K,b:ie,B:Q,c:null,d:TW,e:TW,f:Yke,g:rEe,G:iEe,H:Uke,I:Hke,j:Wke,L:_W,m:qke,M:Xke,p:ee,q:J,Q:EW,s:SW,S:jke,u:Kke,U:Qke,V:Zke,w:Jke,W:eEe,x:null,X:null,y:tEe,Y:nEe,Z:aEe,"%":kW},T={a:I,A:D,b:k,B:R,c:S,d:xW,e:xW,f:Tke,g:vW,G:yW,H:bW,I:bW,j:vke,L:wke,m:yke,M:xke,p:A,q:gke,Q:Eke,s:Ske,S:bke,u:hke,U:fke,V:dke,w:uke,W:pke,x:O,X:N,y:vW,Y:yW,Z:mke,"%":kke};w.x=E(r,w),w.X=E(n,w),w.c=E(e,w),_.x=E(r,_),_.X=E(n,_),_.c=E(e,_);function E(H,q){return function(Z){var ae=[],ue=-1,ce=0,te=H.length,De,oe,ke;for(Z instanceof Date||(Z=new Date(+Z));++ue53)return null;"w"in ae||(ae.w=1),"Z"in ae?(ce=q8(Py(ae.y,0,1)),te=ce.getUTCDay(),ce=te>4||te===0?Np.ceil(ce):Np(ce),ce=Oy.offset(ce,(ae.V-1)*7),ae.y=ce.getUTCFullYear(),ae.m=ce.getUTCMonth(),ae.d=ce.getUTCDate()+(ae.w+6)%7):(ce=Y8(Py(ae.y,0,1)),te=ce.getDay(),ce=te>4||te===0?Th.ceil(ce):Th(ce),ce=Lo.offset(ce,(ae.V-1)*7),ae.y=ce.getFullYear(),ae.m=ce.getMonth(),ae.d=ce.getDate()+(ae.w+6)%7)}else("W"in ae||"U"in ae)&&("w"in ae||(ae.w="u"in ae?ae.u%7:"W"in ae?1:0),te="Z"in ae?q8(Py(ae.y,0,1)).getUTCDay():Y8(Py(ae.y,0,1)).getDay(),ae.m=0,ae.d="W"in ae?(ae.w+6)%7+ae.W*7-(te+5)%7:ae.w+ae.U*7-(te+6)%7);return"Z"in ae?(ae.H+=ae.Z/100|0,ae.M+=ae.Z%100,q8(ae)):Y8(ae)}}o(L,"newParse");function C(H,q,Z,ae){for(var ue=0,ce=q.length,te=Z.length,De,oe;ue=te)return-1;if(De=q.charCodeAt(ue++),De===37){if(De=q.charAt(ue++),oe=T[De in gW?q.charAt(ue++):De],!oe||(ae=oe(H,Z,ae))<0)return-1}else if(De!=Z.charCodeAt(ae++))return-1}return ae}o(C,"parseSpecifier");function A(H,q,Z){var ae=h.exec(q.slice(Z));return ae?(H.p=f.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(A,"parsePeriod");function I(H,q,Z){var ae=m.exec(q.slice(Z));return ae?(H.w=g.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(I,"parseShortWeekday");function D(H,q,Z){var ae=d.exec(q.slice(Z));return ae?(H.w=p.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(D,"parseWeekday");function k(H,q,Z){var ae=x.exec(q.slice(Z));return ae?(H.m=b.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(k,"parseShortMonth");function R(H,q,Z){var ae=y.exec(q.slice(Z));return ae?(H.m=v.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(R,"parseMonth");function S(H,q,Z){return C(H,e,q,Z)}o(S,"parseLocaleDateTime");function O(H,q,Z){return C(H,r,q,Z)}o(O,"parseLocaleDate");function N(H,q,Z){return C(H,n,q,Z)}o(N,"parseLocaleTime");function P(H){return s[H.getDay()]}o(P,"formatShortWeekday");function F(H){return a[H.getDay()]}o(F,"formatWeekday");function B(H){return u[H.getMonth()]}o(B,"formatShortMonth");function $(H){return l[H.getMonth()]}o($,"formatMonth");function z(H){return i[+(H.getHours()>=12)]}o(z,"formatPeriod");function W(H){return 1+~~(H.getMonth()/3)}o(W,"formatQuarter");function j(H){return s[H.getUTCDay()]}o(j,"formatUTCShortWeekday");function K(H){return a[H.getUTCDay()]}o(K,"formatUTCWeekday");function ie(H){return u[H.getUTCMonth()]}o(ie,"formatUTCShortMonth");function Q(H){return l[H.getUTCMonth()]}o(Q,"formatUTCMonth");function ee(H){return i[+(H.getUTCHours()>=12)]}o(ee,"formatUTCPeriod");function J(H){return 1+~~(H.getUTCMonth()/3)}return o(J,"formatUTCQuarter"),{format:o(function(H){var q=E(H+="",w);return q.toString=function(){return H},q},"format"),parse:o(function(H){var q=L(H+="",!1);return q.toString=function(){return H},q},"parse"),utcFormat:o(function(H){var q=E(H+="",_);return q.toString=function(){return H},q},"utcFormat"),utcParse:o(function(H){var q=L(H+="",!0);return q.toString=function(){return H},q},"utcParse")}}function Hr(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function uke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function hke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function fke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function dke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function pke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function yW(t,e,r){var n=Qi.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function vW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function mke(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function gke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function yke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function xW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function vke(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function bW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function xke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function bke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function wke(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Tke(t,e,r){var n=Qi.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function kke(t,e,r){var n=oke.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Eke(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Ske(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function wW(t,e){return Hr(t.getDate(),e,2)}function Cke(t,e){return Hr(t.getHours(),e,2)}function Ake(t,e){return Hr(t.getHours()%12||12,e,2)}function _ke(t,e){return Hr(1+Lo.count(js(t),t),e,3)}function CW(t,e){return Hr(t.getMilliseconds(),e,3)}function Lke(t,e){return CW(t,e)+"000"}function Dke(t,e){return Hr(t.getMonth()+1,e,2)}function Nke(t,e){return Hr(t.getMinutes(),e,2)}function Rke(t,e){return Hr(t.getSeconds(),e,2)}function Mke(t){var e=t.getDay();return e===0?7:e}function Ike(t,e){return Hr(wl.count(js(t)-1,t),e,2)}function AW(t){var e=t.getDay();return e>=4||e===0?cc(t):cc.ceil(t)}function Oke(t,e){return t=AW(t),Hr(cc.count(js(t),t)+(js(t).getDay()===4),e,2)}function Pke(t){return t.getDay()}function Bke(t,e){return Hr(Th.count(js(t)-1,t),e,2)}function Fke(t,e){return Hr(t.getFullYear()%100,e,2)}function zke(t,e){return t=AW(t),Hr(t.getFullYear()%100,e,2)}function Gke(t,e){return Hr(t.getFullYear()%1e4,e,4)}function $ke(t,e){var r=t.getDay();return t=r>=4||r===0?cc(t):cc.ceil(t),Hr(t.getFullYear()%1e4,e,4)}function Vke(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Hr(e/60|0,"0",2)+Hr(e%60,"0",2)}function TW(t,e){return Hr(t.getUTCDate(),e,2)}function Uke(t,e){return Hr(t.getUTCHours(),e,2)}function Hke(t,e){return Hr(t.getUTCHours()%12||12,e,2)}function Wke(t,e){return Hr(1+Oy.count(Tl(t),t),e,3)}function _W(t,e){return Hr(t.getUTCMilliseconds(),e,3)}function Yke(t,e){return _W(t,e)+"000"}function qke(t,e){return Hr(t.getUTCMonth()+1,e,2)}function Xke(t,e){return Hr(t.getUTCMinutes(),e,2)}function jke(t,e){return Hr(t.getUTCSeconds(),e,2)}function Kke(t){var e=t.getUTCDay();return e===0?7:e}function Qke(t,e){return Hr(fd.count(Tl(t)-1,t),e,2)}function LW(t){var e=t.getUTCDay();return e>=4||e===0?kh(t):kh.ceil(t)}function Zke(t,e){return t=LW(t),Hr(kh.count(Tl(t),t)+(Tl(t).getUTCDay()===4),e,2)}function Jke(t){return t.getUTCDay()}function eEe(t,e){return Hr(Np.count(Tl(t)-1,t),e,2)}function tEe(t,e){return Hr(t.getUTCFullYear()%100,e,2)}function rEe(t,e){return t=LW(t),Hr(t.getUTCFullYear()%100,e,2)}function nEe(t,e){return Hr(t.getUTCFullYear()%1e4,e,4)}function iEe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?kh(t):kh.ceil(t),Hr(t.getUTCFullYear()%1e4,e,4)}function aEe(){return"+0000"}function kW(){return"%"}function EW(t){return+t}function SW(t){return Math.floor(+t/1e3)}var gW,Qi,oke,lke,DW=M(()=>{"use strict";S3();o(Y8,"localDate");o(q8,"utcDate");o(Py,"newDate");o(X8,"formatLocale");gW={"-":"",_:" ",0:"0"},Qi=/^\s*\d+/,oke=/^%/,lke=/[\\^$*+?|[\]().{}]/g;o(Hr,"pad");o(cke,"requote");o(By,"formatRe");o(Fy,"formatLookup");o(uke,"parseWeekdayNumberSunday");o(hke,"parseWeekdayNumberMonday");o(fke,"parseWeekNumberSunday");o(dke,"parseWeekNumberISO");o(pke,"parseWeekNumberMonday");o(yW,"parseFullYear");o(vW,"parseYear");o(mke,"parseZone");o(gke,"parseQuarter");o(yke,"parseMonthNumber");o(xW,"parseDayOfMonth");o(vke,"parseDayOfYear");o(bW,"parseHour24");o(xke,"parseMinutes");o(bke,"parseSeconds");o(wke,"parseMilliseconds");o(Tke,"parseMicroseconds");o(kke,"parseLiteralPercent");o(Eke,"parseUnixTimestamp");o(Ske,"parseUnixTimestampSeconds");o(wW,"formatDayOfMonth");o(Cke,"formatHour24");o(Ake,"formatHour12");o(_ke,"formatDayOfYear");o(CW,"formatMilliseconds");o(Lke,"formatMicroseconds");o(Dke,"formatMonthNumber");o(Nke,"formatMinutes");o(Rke,"formatSeconds");o(Mke,"formatWeekdayNumberMonday");o(Ike,"formatWeekNumberSunday");o(AW,"dISO");o(Oke,"formatWeekNumberISO");o(Pke,"formatWeekdayNumberSunday");o(Bke,"formatWeekNumberMonday");o(Fke,"formatYear");o(zke,"formatYearISO");o(Gke,"formatFullYear");o($ke,"formatFullYearISO");o(Vke,"formatZone");o(TW,"formatUTCDayOfMonth");o(Uke,"formatUTCHour24");o(Hke,"formatUTCHour12");o(Wke,"formatUTCDayOfYear");o(_W,"formatUTCMilliseconds");o(Yke,"formatUTCMicroseconds");o(qke,"formatUTCMonthNumber");o(Xke,"formatUTCMinutes");o(jke,"formatUTCSeconds");o(Kke,"formatUTCWeekdayNumberMonday");o(Qke,"formatUTCWeekNumberSunday");o(LW,"UTCdISO");o(Zke,"formatUTCWeekNumberISO");o(Jke,"formatUTCWeekdayNumberSunday");o(eEe,"formatUTCWeekNumberMonday");o(tEe,"formatUTCYear");o(rEe,"formatUTCYearISO");o(nEe,"formatUTCFullYear");o(iEe,"formatUTCFullYearISO");o(aEe,"formatUTCZone");o(kW,"formatLiteralPercent");o(EW,"formatUnixTimestamp");o(SW,"formatUnixTimestampSeconds")});function j8(t){return Rp=X8(t),dd=Rp.format,NW=Rp.parse,RW=Rp.utcFormat,MW=Rp.utcParse,Rp}var Rp,dd,NW,RW,MW,IW=M(()=>{"use strict";DW();j8({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(j8,"defaultLocale")});var K8=M(()=>{"use strict";IW()});function sEe(t){return new Date(t)}function oEe(t){return t instanceof Date?+t:+new Date(+t)}function OW(t,e,r,n,i,a,s,l,u,h){var f=My(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),w=h("%B"),_=h("%Y");function T(E){return(u(E){"use strict";S3();K8();N8();Ry();nW();o(sEe,"date");o(oEe,"number");o(OW,"calendar");o(C3,"time")});var BW=M(()=>{"use strict";QH();rW();A8();PW()});function Q8(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(Q8,"default")});var Z8,zW=M(()=>{"use strict";FW();Z8=Q8("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var GW=M(()=>{"use strict";zW()});function Pn(t){return o(function(){return t},"constant")}var A3=M(()=>{"use strict";o(Pn,"default")});function VW(t){return t>1?0:t<-1?Mp:Math.acos(t)}function e_(t){return t>=1?zy:t<=-1?-zy:Math.asin(t)}var J8,la,Eh,$W,_3,kl,pd,Zi,Mp,zy,Ip,L3=M(()=>{"use strict";J8=Math.abs,la=Math.atan2,Eh=Math.cos,$W=Math.max,_3=Math.min,kl=Math.sin,pd=Math.sqrt,Zi=1e-12,Mp=Math.PI,zy=Mp/2,Ip=2*Mp;o(VW,"acos");o(e_,"asin")});function D3(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new sd(e)}var t_=M(()=>{"use strict";d8();o(D3,"withPath")});function lEe(t){return t.innerRadius}function cEe(t){return t.outerRadius}function uEe(t){return t.startAngle}function hEe(t){return t.endAngle}function fEe(t){return t&&t.padAngle}function dEe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pS*S+O*O&&(C=I,A=D),{cx:C,cy:A,x01:-f,y01:-d,x11:C*(i/T-1),y11:A*(i/T-1)}}function El(){var t=lEe,e=cEe,r=Pn(0),n=null,i=uEe,a=hEe,s=fEe,l=null,u=D3(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-zy,y=a.apply(this,arguments)-zy,v=J8(y-g),x=y>g;if(l||(l=f=u()),mZi))l.moveTo(0,0);else if(v>Ip-Zi)l.moveTo(m*Eh(g),m*kl(g)),l.arc(0,0,m,g,y,!x),p>Zi&&(l.moveTo(p*Eh(y),p*kl(y)),l.arc(0,0,p,y,g,x));else{var b=g,w=y,_=g,T=y,E=v,L=v,C=s.apply(this,arguments)/2,A=C>Zi&&(n?+n.apply(this,arguments):pd(p*p+m*m)),I=_3(J8(m-p)/2,+r.apply(this,arguments)),D=I,k=I,R,S;if(A>Zi){var O=e_(A/p*kl(C)),N=e_(A/m*kl(C));(E-=O*2)>Zi?(O*=x?1:-1,_+=O,T-=O):(E=0,_=T=(g+y)/2),(L-=N*2)>Zi?(N*=x?1:-1,b+=N,w-=N):(L=0,b=w=(g+y)/2)}var P=m*Eh(b),F=m*kl(b),B=p*Eh(T),$=p*kl(T);if(I>Zi){var z=m*Eh(w),W=m*kl(w),j=p*Eh(_),K=p*kl(_),ie;if(vZi?k>Zi?(R=N3(j,K,P,F,m,k,x),S=N3(z,W,B,$,m,k,x),l.moveTo(R.cx+R.x01,R.cy+R.y01),kZi)||!(E>Zi)?l.lineTo(B,$):D>Zi?(R=N3(B,$,z,W,p,-D,x),S=N3(P,F,j,K,p,-D,x),l.lineTo(R.cx+R.x01,R.cy+R.y01),D{"use strict";A3();L3();t_();o(lEe,"arcInnerRadius");o(cEe,"arcOuterRadius");o(uEe,"arcStartAngle");o(hEe,"arcEndAngle");o(fEe,"arcPadAngle");o(dEe,"intersect");o(N3,"cornerTangents");o(El,"default")});function Gy(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var O2t,r_=M(()=>{"use strict";O2t=Array.prototype.slice;o(Gy,"default")});function HW(t){this._context=t}function Op(t){return new HW(t)}var n_=M(()=>{"use strict";o(HW,"Linear");HW.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(Op,"default")});function WW(t){return t[0]}function YW(t){return t[1]}var qW=M(()=>{"use strict";o(WW,"x");o(YW,"y")});function Ka(t,e){var r=Pn(!0),n=null,i=Op,a=null,s=D3(l);t=typeof t=="function"?t:t===void 0?WW:Pn(t),e=typeof e=="function"?e:e===void 0?YW:Pn(e);function l(u){var h,f=(u=Gy(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";r_();A3();n_();t_();qW();o(Ka,"default")});function i_(t,e){return et?1:e>=t?0:NaN}var jW=M(()=>{"use strict";o(i_,"default")});function a_(t){return t}var KW=M(()=>{"use strict";o(a_,"default")});function R3(){var t=a_,e=i_,r=null,n=Pn(0),i=Pn(Ip),a=Pn(0);function s(l){var u,h=(l=Gy(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(Ip,Math.max(-Ip,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),w=b*(v<0?-1:1),_;for(u=0;u0&&(p+=_);for(e!=null?m.sort(function(T,E){return e(g[T],g[E])}):r!=null&&m.sort(function(T,E){return r(l[T],l[E])}),u=0,d=p?(v-h*w)/p:0;u0?_*d:0)+w,g[f]={data:l[f],index:u,value:_,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:Pn(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:Pn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Pn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Pn(+l),s):a},s}var QW=M(()=>{"use strict";r_();A3();jW();KW();L3();o(R3,"default")});function s_(t){return new M3(t,!0)}function o_(t){return new M3(t,!1)}var M3,ZW=M(()=>{"use strict";M3=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(s_,"bumpX");o(o_,"bumpY")});function Ks(){}var $y=M(()=>{"use strict";o(Ks,"default")});function Pp(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Vy(t){this._context=t}function Do(t){return new Vy(t)}var Uy=M(()=>{"use strict";o(Pp,"point");o(Vy,"Basis");Vy.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:Pp(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Do,"default")});function JW(t){this._context=t}function I3(t){return new JW(t)}var eY=M(()=>{"use strict";$y();Uy();o(JW,"BasisClosed");JW.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(I3,"default")});function tY(t){this._context=t}function O3(t){return new tY(t)}var rY=M(()=>{"use strict";Uy();o(tY,"BasisOpen");tY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(O3,"default")});function nY(t,e){this._basis=new Vy(t),this._beta=e}var l_,iY=M(()=>{"use strict";Uy();o(nY,"Bundle");nY.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};l_=o(function t(e){function r(n){return e===1?new Vy(n):new nY(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r},"custom")(.85)});function Bp(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function P3(t,e){this._context=t,this._k=(1-e)/6}var c_,Hy=M(()=>{"use strict";o(Bp,"point");o(P3,"Cardinal");P3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Bp(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};c_=o(function t(e){function r(n){return new P3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function B3(t,e){this._context=t,this._k=(1-e)/6}var u_,h_=M(()=>{"use strict";$y();Hy();o(B3,"CardinalClosed");B3.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};u_=o(function t(e){function r(n){return new B3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function F3(t,e){this._context=t,this._k=(1-e)/6}var f_,d_=M(()=>{"use strict";Hy();o(F3,"CardinalOpen");F3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};f_=o(function t(e){function r(n){return new F3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function Wy(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Zi){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>Zi){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function aY(t,e){this._context=t,this._alpha=e}var p_,z3=M(()=>{"use strict";L3();Hy();o(Wy,"point");o(aY,"CatmullRom");aY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};p_=o(function t(e){function r(n){return e?new aY(n,e):new P3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function sY(t,e){this._context=t,this._alpha=e}var m_,oY=M(()=>{"use strict";h_();$y();z3();o(sY,"CatmullRomClosed");sY.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};m_=o(function t(e){function r(n){return e?new sY(n,e):new B3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function lY(t,e){this._context=t,this._alpha=e}var g_,cY=M(()=>{"use strict";d_();z3();o(lY,"CatmullRomOpen");lY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};g_=o(function t(e){function r(n){return e?new lY(n,e):new F3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function uY(t){this._context=t}function G3(t){return new uY(t)}var hY=M(()=>{"use strict";$y();o(uY,"LinearClosed");uY.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(G3,"default")});function fY(t){return t<0?-1:1}function dY(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(fY(a)+fY(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function pY(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function y_(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function $3(t){this._context=t}function mY(t){this._context=new gY(t)}function gY(t){this._context=t}function v_(t){return new $3(t)}function x_(t){return new mY(t)}var yY=M(()=>{"use strict";o(fY,"sign");o(dY,"slope3");o(pY,"slope2");o(y_,"point");o($3,"MonotoneX");$3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:y_(this,this._t0,pY(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,y_(this,pY(this,r=dY(this,t,e)),r);break;default:y_(this,this._t0,r=dY(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(mY,"MonotoneY");(mY.prototype=Object.create($3.prototype)).point=function(t,e){$3.prototype.point.call(this,e,t)};o(gY,"ReflectContext");gY.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(v_,"monotoneX");o(x_,"monotoneY")});function xY(t){this._context=t}function vY(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(xY,"Natural");xY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=vY(t),i=vY(e),a=0,s=1;s{"use strict";o(U3,"Step");U3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(H3,"default");o(b_,"stepBefore");o(w_,"stepAfter")});var TY=M(()=>{"use strict";UW();XW();QW();eY();rY();Uy();ZW();iY();h_();d_();Hy();oY();cY();z3();hY();n_();yY();bY();wY()});var kY=M(()=>{"use strict"});var EY=M(()=>{"use strict"});function Sh(t,e,r){this.k=t,this.x=e,this.y=r}function k_(t){for(;!t.__zoom;)if(!(t=t.parentNode))return T_;return t.__zoom}var T_,E_=M(()=>{"use strict";o(Sh,"Transform");Sh.prototype={constructor:Sh,scale:o(function(t){return t===1?this:new Sh(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Sh(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};T_=new Sh(1,0,0);k_.prototype=Sh.prototype;o(k_,"transform")});var SY=M(()=>{"use strict"});var CY=M(()=>{"use strict";s3();kY();EY();E_();SY()});var AY=M(()=>{"use strict";CY();E_()});var mr=M(()=>{"use strict";ph();iV();kH();AH();kp();_H();LH();b7();jV();DH();l8();NH();MH();S8();qH();XH();Cp();d8();jH();RH();KH();BW();GW();gl();TY();S3();K8();e3();s3();AY()});var _Y=Ni(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.BLANK_URL=Ji.relativeFirstCharacters=Ji.whitespaceEscapeCharsRegex=Ji.urlSchemeRegex=Ji.ctrlCharactersRegex=Ji.htmlCtrlEntityRegex=Ji.htmlEntitiesRegex=Ji.invalidProtocolRegex=void 0;Ji.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;Ji.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;Ji.htmlCtrlEntityRegex=/&(newline|tab);/gi;Ji.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;Ji.urlSchemeRegex=/^.+(:|:)/gim;Ji.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;Ji.relativeFirstCharacters=[".","/"];Ji.BLANK_URL="about:blank"});var Fp=Ni(W3=>{"use strict";Object.defineProperty(W3,"__esModule",{value:!0});W3.sanitizeUrl=void 0;var Sa=_Y();function pEe(t){return Sa.relativeFirstCharacters.indexOf(t[0])>-1}o(pEe,"isRelativeUrlWithoutProtocol");function mEe(t){var e=t.replace(Sa.ctrlCharactersRegex,"");return e.replace(Sa.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(mEe,"decodeHtmlCharacters");function gEe(t){return URL.canParse(t)}o(gEe,"isValidUrl");function LY(t){try{return decodeURIComponent(t)}catch{return t}}o(LY,"decodeURI");function yEe(t){if(!t)return Sa.BLANK_URL;var e,r=LY(t.trim());do r=mEe(r).replace(Sa.htmlCtrlEntityRegex,"").replace(Sa.ctrlCharactersRegex,"").replace(Sa.whitespaceEscapeCharsRegex,"").trim(),r=LY(r),e=r.match(Sa.ctrlCharactersRegex)||r.match(Sa.htmlEntitiesRegex)||r.match(Sa.htmlCtrlEntityRegex)||r.match(Sa.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Sa.BLANK_URL;if(pEe(n))return n;var i=n.trimStart(),a=i.match(Sa.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Sa.invalidProtocolRegex.test(s))return Sa.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!gEe(l))return Sa.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(yEe,"sanitizeUrl");W3.sanitizeUrl=yEe});var S_,md,Y3,DY,NY,RY,Sl,Yy,qy=M(()=>{"use strict";S_=ka(Fp(),1);fr();md=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),Y3=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};md(t,r).lower()},"drawBackgroundRect"),DY=o((t,e)=>{let r=e.text.replace(jf," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),NY=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,S_.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),RY=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,S_.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Sl=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Yy=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var MY,C_,IY,vEe,xEe,bEe,wEe,TEe,kEe,EEe,SEe,CEe,AEe,_Ee,LEe,vu,Cl,OY=M(()=>{"use strict";fr();qy();MY=ka(Fp(),1),C_=o(function(t,e){return md(t,e)},"drawRect"),IY=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,MY.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),vEe=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();vu(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),vu(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),xEe=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};C_(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,vu(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,vu(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,vu(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),bEe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=Sl();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},C_(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=LEe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":IY(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,vu(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?vu(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&vu(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,vu(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),wEe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),TEe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),kEe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),EEe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),SEe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),CEe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),AEe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),_Ee=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),LEe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),vu=function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(je.lineBreakRegex);for(let v=0;v{"use strict";DEe=typeof global=="object"&&global&&global.Object===Object&&global,X3=DEe});var NEe,REe,ai,No=M(()=>{"use strict";A_();NEe=typeof self=="object"&&self&&self.Object===Object&&self,REe=X3||NEe||Function("return this")(),ai=REe});var MEe,ea,gd=M(()=>{"use strict";No();MEe=ai.Symbol,ea=MEe});function PEe(t){var e=IEe.call(t,Xy),r=t[Xy];try{t[Xy]=void 0;var n=!0}catch{}var i=OEe.call(t);return n&&(e?t[Xy]=r:delete t[Xy]),i}var PY,IEe,OEe,Xy,BY,FY=M(()=>{"use strict";gd();PY=Object.prototype,IEe=PY.hasOwnProperty,OEe=PY.toString,Xy=ea?ea.toStringTag:void 0;o(PEe,"getRawTag");BY=PEe});function zEe(t){return FEe.call(t)}var BEe,FEe,zY,GY=M(()=>{"use strict";BEe=Object.prototype,FEe=BEe.toString;o(zEe,"objectToString");zY=zEe});function VEe(t){return t==null?t===void 0?$Ee:GEe:$Y&&$Y in Object(t)?BY(t):zY(t)}var GEe,$Ee,$Y,ca,xu=M(()=>{"use strict";gd();FY();GY();GEe="[object Null]",$Ee="[object Undefined]",$Y=ea?ea.toStringTag:void 0;o(VEe,"baseGetTag");ca=VEe});function UEe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var yn,Qs=M(()=>{"use strict";o(UEe,"isObject");yn=UEe});function XEe(t){if(!yn(t))return!1;var e=ca(t);return e==WEe||e==YEe||e==HEe||e==qEe}var HEe,WEe,YEe,qEe,Ei,jy=M(()=>{"use strict";xu();Qs();HEe="[object AsyncFunction]",WEe="[object Function]",YEe="[object GeneratorFunction]",qEe="[object Proxy]";o(XEe,"isFunction");Ei=XEe});var jEe,j3,VY=M(()=>{"use strict";No();jEe=ai["__core-js_shared__"],j3=jEe});function KEe(t){return!!UY&&UY in t}var UY,HY,WY=M(()=>{"use strict";VY();UY=function(){var t=/[^.]+$/.exec(j3&&j3.keys&&j3.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();o(KEe,"isMasked");HY=KEe});function JEe(t){if(t!=null){try{return ZEe.call(t)}catch{}try{return t+""}catch{}}return""}var QEe,ZEe,bu,__=M(()=>{"use strict";QEe=Function.prototype,ZEe=QEe.toString;o(JEe,"toSource");bu=JEe});function o6e(t){if(!yn(t)||HY(t))return!1;var e=Ei(t)?s6e:t6e;return e.test(bu(t))}var e6e,t6e,r6e,n6e,i6e,a6e,s6e,YY,qY=M(()=>{"use strict";jy();WY();Qs();__();e6e=/[\\^$.*+?()[\]{}|]/g,t6e=/^\[object .+?Constructor\]$/,r6e=Function.prototype,n6e=Object.prototype,i6e=r6e.toString,a6e=n6e.hasOwnProperty,s6e=RegExp("^"+i6e.call(a6e).replace(e6e,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(o6e,"baseIsNative");YY=o6e});function l6e(t,e){return t?.[e]}var XY,jY=M(()=>{"use strict";o(l6e,"getValue");XY=l6e});function c6e(t,e){var r=XY(t,e);return YY(r)?r:void 0}var vs,Ch=M(()=>{"use strict";qY();jY();o(c6e,"getNative");vs=c6e});var u6e,wu,Ky=M(()=>{"use strict";Ch();u6e=vs(Object,"create"),wu=u6e});function h6e(){this.__data__=wu?wu(null):{},this.size=0}var KY,QY=M(()=>{"use strict";Ky();o(h6e,"hashClear");KY=h6e});function f6e(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ZY,JY=M(()=>{"use strict";o(f6e,"hashDelete");ZY=f6e});function g6e(t){var e=this.__data__;if(wu){var r=e[t];return r===d6e?void 0:r}return m6e.call(e,t)?e[t]:void 0}var d6e,p6e,m6e,eq,tq=M(()=>{"use strict";Ky();d6e="__lodash_hash_undefined__",p6e=Object.prototype,m6e=p6e.hasOwnProperty;o(g6e,"hashGet");eq=g6e});function x6e(t){var e=this.__data__;return wu?e[t]!==void 0:v6e.call(e,t)}var y6e,v6e,rq,nq=M(()=>{"use strict";Ky();y6e=Object.prototype,v6e=y6e.hasOwnProperty;o(x6e,"hashHas");rq=x6e});function w6e(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=wu&&e===void 0?b6e:e,this}var b6e,iq,aq=M(()=>{"use strict";Ky();b6e="__lodash_hash_undefined__";o(w6e,"hashSet");iq=w6e});function zp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";QY();JY();tq();nq();aq();o(zp,"Hash");zp.prototype.clear=KY;zp.prototype.delete=ZY;zp.prototype.get=eq;zp.prototype.has=rq;zp.prototype.set=iq;L_=zp});function T6e(){this.__data__=[],this.size=0}var oq,lq=M(()=>{"use strict";o(T6e,"listCacheClear");oq=T6e});function k6e(t,e){return t===e||t!==t&&e!==e}var Ro,yd=M(()=>{"use strict";o(k6e,"eq");Ro=k6e});function E6e(t,e){for(var r=t.length;r--;)if(Ro(t[r][0],e))return r;return-1}var Ah,Qy=M(()=>{"use strict";yd();o(E6e,"assocIndexOf");Ah=E6e});function A6e(t){var e=this.__data__,r=Ah(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():C6e.call(e,r,1),--this.size,!0}var S6e,C6e,cq,uq=M(()=>{"use strict";Qy();S6e=Array.prototype,C6e=S6e.splice;o(A6e,"listCacheDelete");cq=A6e});function _6e(t){var e=this.__data__,r=Ah(e,t);return r<0?void 0:e[r][1]}var hq,fq=M(()=>{"use strict";Qy();o(_6e,"listCacheGet");hq=_6e});function L6e(t){return Ah(this.__data__,t)>-1}var dq,pq=M(()=>{"use strict";Qy();o(L6e,"listCacheHas");dq=L6e});function D6e(t,e){var r=this.__data__,n=Ah(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var mq,gq=M(()=>{"use strict";Qy();o(D6e,"listCacheSet");mq=D6e});function Gp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";lq();uq();fq();pq();gq();o(Gp,"ListCache");Gp.prototype.clear=oq;Gp.prototype.delete=cq;Gp.prototype.get=hq;Gp.prototype.has=dq;Gp.prototype.set=mq;_h=Gp});var N6e,Lh,K3=M(()=>{"use strict";Ch();No();N6e=vs(ai,"Map"),Lh=N6e});function R6e(){this.size=0,this.__data__={hash:new L_,map:new(Lh||_h),string:new L_}}var yq,vq=M(()=>{"use strict";sq();Zy();K3();o(R6e,"mapCacheClear");yq=R6e});function M6e(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var xq,bq=M(()=>{"use strict";o(M6e,"isKeyable");xq=M6e});function I6e(t,e){var r=t.__data__;return xq(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Dh,Jy=M(()=>{"use strict";bq();o(I6e,"getMapData");Dh=I6e});function O6e(t){var e=Dh(this,t).delete(t);return this.size-=e?1:0,e}var wq,Tq=M(()=>{"use strict";Jy();o(O6e,"mapCacheDelete");wq=O6e});function P6e(t){return Dh(this,t).get(t)}var kq,Eq=M(()=>{"use strict";Jy();o(P6e,"mapCacheGet");kq=P6e});function B6e(t){return Dh(this,t).has(t)}var Sq,Cq=M(()=>{"use strict";Jy();o(B6e,"mapCacheHas");Sq=B6e});function F6e(t,e){var r=Dh(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var Aq,_q=M(()=>{"use strict";Jy();o(F6e,"mapCacheSet");Aq=F6e});function $p(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";vq();Tq();Eq();Cq();_q();o($p,"MapCache");$p.prototype.clear=yq;$p.prototype.delete=wq;$p.prototype.get=kq;$p.prototype.has=Sq;$p.prototype.set=Aq;vd=$p});function D_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(z6e);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(D_.Cache||vd),r}var z6e,Vp,N_=M(()=>{"use strict";Q3();z6e="Expected a function";o(D_,"memoize");D_.Cache=vd;Vp=D_});function G6e(){this.__data__=new _h,this.size=0}var Lq,Dq=M(()=>{"use strict";Zy();o(G6e,"stackClear");Lq=G6e});function $6e(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Nq,Rq=M(()=>{"use strict";o($6e,"stackDelete");Nq=$6e});function V6e(t){return this.__data__.get(t)}var Mq,Iq=M(()=>{"use strict";o(V6e,"stackGet");Mq=V6e});function U6e(t){return this.__data__.has(t)}var Oq,Pq=M(()=>{"use strict";o(U6e,"stackHas");Oq=U6e});function W6e(t,e){var r=this.__data__;if(r instanceof _h){var n=r.__data__;if(!Lh||n.length{"use strict";Zy();K3();Q3();H6e=200;o(W6e,"stackSet");Bq=W6e});function Up(t){var e=this.__data__=new _h(t);this.size=e.size}var uc,ev=M(()=>{"use strict";Zy();Dq();Rq();Iq();Pq();Fq();o(Up,"Stack");Up.prototype.clear=Lq;Up.prototype.delete=Nq;Up.prototype.get=Mq;Up.prototype.has=Oq;Up.prototype.set=Bq;uc=Up});var Y6e,Hp,R_=M(()=>{"use strict";Ch();Y6e=function(){try{var t=vs(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Hp=Y6e});function q6e(t,e,r){e=="__proto__"&&Hp?Hp(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var hc,Wp=M(()=>{"use strict";R_();o(q6e,"baseAssignValue");hc=q6e});function X6e(t,e,r){(r!==void 0&&!Ro(t[e],r)||r===void 0&&!(e in t))&&hc(t,e,r)}var tv,M_=M(()=>{"use strict";Wp();yd();o(X6e,"assignMergeValue");tv=X6e});function j6e(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var zq,Gq=M(()=>{"use strict";o(j6e,"createBaseFor");zq=j6e});var K6e,Yp,Z3=M(()=>{"use strict";Gq();K6e=zq(),Yp=K6e});function Z6e(t,e){if(e)return t.slice();var r=t.length,n=Uq?Uq(r):new t.constructor(r);return t.copy(n),n}var Hq,$q,Q6e,Vq,Uq,J3,I_=M(()=>{"use strict";No();Hq=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$q=Hq&&typeof module=="object"&&module&&!module.nodeType&&module,Q6e=$q&&$q.exports===Hq,Vq=Q6e?ai.Buffer:void 0,Uq=Vq?Vq.allocUnsafe:void 0;o(Z6e,"cloneBuffer");J3=Z6e});var J6e,qp,O_=M(()=>{"use strict";No();J6e=ai.Uint8Array,qp=J6e});function eSe(t){var e=new t.constructor(t.byteLength);return new qp(e).set(new qp(t)),e}var Xp,e5=M(()=>{"use strict";O_();o(eSe,"cloneArrayBuffer");Xp=eSe});function tSe(t,e){var r=e?Xp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var t5,P_=M(()=>{"use strict";e5();o(tSe,"cloneTypedArray");t5=tSe});function rSe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(rSe,"copyArray");r5=rSe});var Wq,nSe,Yq,qq=M(()=>{"use strict";Qs();Wq=Object.create,nSe=function(){function t(){}return o(t,"object"),function(e){if(!yn(e))return{};if(Wq)return Wq(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),Yq=nSe});function iSe(t,e){return function(r){return t(e(r))}}var n5,F_=M(()=>{"use strict";o(iSe,"overArg");n5=iSe});var aSe,jp,i5=M(()=>{"use strict";F_();aSe=n5(Object.getPrototypeOf,Object),jp=aSe});function oSe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||sSe;return t===r}var sSe,fc,Kp=M(()=>{"use strict";sSe=Object.prototype;o(oSe,"isPrototype");fc=oSe});function lSe(t){return typeof t.constructor=="function"&&!fc(t)?Yq(jp(t)):{}}var a5,z_=M(()=>{"use strict";qq();i5();Kp();o(lSe,"initCloneObject");a5=lSe});function cSe(t){return t!=null&&typeof t=="object"}var Zn,Mo=M(()=>{"use strict";o(cSe,"isObjectLike");Zn=cSe});function hSe(t){return Zn(t)&&ca(t)==uSe}var uSe,G_,Xq=M(()=>{"use strict";xu();Mo();uSe="[object Arguments]";o(hSe,"baseIsArguments");G_=hSe});var jq,fSe,dSe,pSe,Al,Qp=M(()=>{"use strict";Xq();Mo();jq=Object.prototype,fSe=jq.hasOwnProperty,dSe=jq.propertyIsEnumerable,pSe=G_(function(){return arguments}())?G_:function(t){return Zn(t)&&fSe.call(t,"callee")&&!dSe.call(t,"callee")},Al=pSe});var mSe,Mt,Vn=M(()=>{"use strict";mSe=Array.isArray,Mt=mSe});function ySe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=gSe}var gSe,Zp,s5=M(()=>{"use strict";gSe=9007199254740991;o(ySe,"isLength");Zp=ySe});function vSe(t){return t!=null&&Zp(t.length)&&!Ei(t)}var si,Io=M(()=>{"use strict";jy();s5();o(vSe,"isArrayLike");si=vSe});function xSe(t){return Zn(t)&&si(t)}var xd,o5=M(()=>{"use strict";Io();Mo();o(xSe,"isArrayLikeObject");xd=xSe});function bSe(){return!1}var Kq,Qq=M(()=>{"use strict";o(bSe,"stubFalse");Kq=bSe});var eX,Zq,wSe,Jq,TSe,kSe,_l,Jp=M(()=>{"use strict";No();Qq();eX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zq=eX&&typeof module=="object"&&module&&!module.nodeType&&module,wSe=Zq&&Zq.exports===eX,Jq=wSe?ai.Buffer:void 0,TSe=Jq?Jq.isBuffer:void 0,kSe=TSe||Kq,_l=kSe});function LSe(t){if(!Zn(t)||ca(t)!=ESe)return!1;var e=jp(t);if(e===null)return!0;var r=ASe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&tX.call(r)==_Se}var ESe,SSe,CSe,tX,ASe,_Se,rX,nX=M(()=>{"use strict";xu();i5();Mo();ESe="[object Object]",SSe=Function.prototype,CSe=Object.prototype,tX=SSe.toString,ASe=CSe.hasOwnProperty,_Se=tX.call(Object);o(LSe,"isPlainObject");rX=LSe});function eCe(t){return Zn(t)&&Zp(t.length)&&!!Bn[ca(t)]}var DSe,NSe,RSe,MSe,ISe,OSe,PSe,BSe,FSe,zSe,GSe,$Se,VSe,USe,HSe,WSe,YSe,qSe,XSe,jSe,KSe,QSe,ZSe,JSe,Bn,iX,aX=M(()=>{"use strict";xu();s5();Mo();DSe="[object Arguments]",NSe="[object Array]",RSe="[object Boolean]",MSe="[object Date]",ISe="[object Error]",OSe="[object Function]",PSe="[object Map]",BSe="[object Number]",FSe="[object Object]",zSe="[object RegExp]",GSe="[object Set]",$Se="[object String]",VSe="[object WeakMap]",USe="[object ArrayBuffer]",HSe="[object DataView]",WSe="[object Float32Array]",YSe="[object Float64Array]",qSe="[object Int8Array]",XSe="[object Int16Array]",jSe="[object Int32Array]",KSe="[object Uint8Array]",QSe="[object Uint8ClampedArray]",ZSe="[object Uint16Array]",JSe="[object Uint32Array]",Bn={};Bn[WSe]=Bn[YSe]=Bn[qSe]=Bn[XSe]=Bn[jSe]=Bn[KSe]=Bn[QSe]=Bn[ZSe]=Bn[JSe]=!0;Bn[DSe]=Bn[NSe]=Bn[USe]=Bn[RSe]=Bn[HSe]=Bn[MSe]=Bn[ISe]=Bn[OSe]=Bn[PSe]=Bn[BSe]=Bn[FSe]=Bn[zSe]=Bn[GSe]=Bn[$Se]=Bn[VSe]=!1;o(eCe,"baseIsTypedArray");iX=eCe});function tCe(t){return function(e){return t(e)}}var Oo,bd=M(()=>{"use strict";o(tCe,"baseUnary");Oo=tCe});var sX,rv,rCe,$_,nCe,Po,nv=M(()=>{"use strict";A_();sX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rv=sX&&typeof module=="object"&&module&&!module.nodeType&&module,rCe=rv&&rv.exports===sX,$_=rCe&&X3.process,nCe=function(){try{var t=rv&&rv.require&&rv.require("util").types;return t||$_&&$_.binding&&$_.binding("util")}catch{}}(),Po=nCe});var oX,iCe,Nh,iv=M(()=>{"use strict";aX();bd();nv();oX=Po&&Po.isTypedArray,iCe=oX?Oo(oX):iX,Nh=iCe});function aCe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var av,V_=M(()=>{"use strict";o(aCe,"safeGet");av=aCe});function lCe(t,e,r){var n=t[e];(!(oCe.call(t,e)&&Ro(n,r))||r===void 0&&!(e in t))&&hc(t,e,r)}var sCe,oCe,dc,em=M(()=>{"use strict";Wp();yd();sCe=Object.prototype,oCe=sCe.hasOwnProperty;o(lCe,"assignValue");dc=lCe});function cCe(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";em();Wp();o(cCe,"copyObject");Bo=cCe});function uCe(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(uCe,"baseTimes");lX=uCe});function dCe(t,e){var r=typeof t;return e=e??hCe,!!e&&(r=="number"||r!="symbol"&&fCe.test(t))&&t>-1&&t%1==0&&t{"use strict";hCe=9007199254740991,fCe=/^(?:0|[1-9]\d*)$/;o(dCe,"isIndex");Rh=dCe});function gCe(t,e){var r=Mt(t),n=!r&&Al(t),i=!r&&!n&&_l(t),a=!r&&!n&&!i&&Nh(t),s=r||n||i||a,l=s?lX(t.length,String):[],u=l.length;for(var h in t)(e||mCe.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Rh(h,u)))&&l.push(h);return l}var pCe,mCe,l5,U_=M(()=>{"use strict";cX();Qp();Vn();Jp();sv();iv();pCe=Object.prototype,mCe=pCe.hasOwnProperty;o(gCe,"arrayLikeKeys");l5=gCe});function yCe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var uX,hX=M(()=>{"use strict";o(yCe,"nativeKeysIn");uX=yCe});function bCe(t){if(!yn(t))return uX(t);var e=fc(t),r=[];for(var n in t)n=="constructor"&&(e||!xCe.call(t,n))||r.push(n);return r}var vCe,xCe,fX,dX=M(()=>{"use strict";Qs();Kp();hX();vCe=Object.prototype,xCe=vCe.hasOwnProperty;o(bCe,"baseKeysIn");fX=bCe});function wCe(t){return si(t)?l5(t,!0):fX(t)}var xs,Mh=M(()=>{"use strict";U_();dX();Io();o(wCe,"keysIn");xs=wCe});function TCe(t){return Bo(t,xs(t))}var pX,mX=M(()=>{"use strict";wd();Mh();o(TCe,"toPlainObject");pX=TCe});function kCe(t,e,r,n,i,a,s){var l=av(t,r),u=av(e,r),h=s.get(u);if(h){tv(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=Mt(u),m=!p&&_l(u),g=!p&&!m&&Nh(u);f=u,p||m||g?Mt(l)?f=l:xd(l)?f=r5(l):m?(d=!1,f=J3(u,!0)):g?(d=!1,f=t5(u,!0)):f=[]:rX(u)||Al(u)?(f=l,Al(l)?f=pX(l):(!yn(l)||Ei(l))&&(f=a5(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),tv(t,r,f)}var gX,yX=M(()=>{"use strict";M_();I_();P_();B_();z_();Qp();Vn();o5();Jp();jy();Qs();nX();iv();V_();mX();o(kCe,"baseMergeDeep");gX=kCe});function vX(t,e,r,n,i){t!==e&&Yp(e,function(a,s){if(i||(i=new uc),yn(a))gX(t,e,s,r,vX,n,i);else{var l=n?n(av(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),tv(t,s,l)}},xs)}var xX,bX=M(()=>{"use strict";ev();M_();Z3();yX();Qs();Mh();V_();o(vX,"baseMerge");xX=vX});function ECe(t){return t}var ta,Tu=M(()=>{"use strict";o(ECe,"identity");ta=ECe});function SCe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var wX,TX=M(()=>{"use strict";o(SCe,"apply");wX=SCe});function CCe(t,e,r){return e=kX(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=kX(n.length-e,0),s=Array(a);++i{"use strict";TX();kX=Math.max;o(CCe,"overRest");c5=CCe});function ACe(t){return function(){return t}}var bs,W_=M(()=>{"use strict";o(ACe,"constant");bs=ACe});var _Ce,EX,SX=M(()=>{"use strict";W_();R_();Tu();_Ce=Hp?function(t,e){return Hp(t,"toString",{configurable:!0,enumerable:!1,value:bs(e),writable:!0})}:ta,EX=_Ce});function RCe(t){var e=0,r=0;return function(){var n=NCe(),i=DCe-(n-r);if(r=n,i>0){if(++e>=LCe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var LCe,DCe,NCe,CX,AX=M(()=>{"use strict";LCe=800,DCe=16,NCe=Date.now;o(RCe,"shortOut");CX=RCe});var MCe,u5,Y_=M(()=>{"use strict";SX();AX();MCe=CX(EX),u5=MCe});function ICe(t,e){return u5(c5(t,e,ta),t+"")}var pc,tm=M(()=>{"use strict";Tu();H_();Y_();o(ICe,"baseRest");pc=ICe});function OCe(t,e,r){if(!yn(r))return!1;var n=typeof e;return(n=="number"?si(r)&&Rh(e,r.length):n=="string"&&e in r)?Ro(r[e],t):!1}var Zs,Td=M(()=>{"use strict";yd();Io();sv();Qs();o(OCe,"isIterateeCall");Zs=OCe});function PCe(t){return pc(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&Zs(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";tm();Td();o(PCe,"createAssigner");h5=PCe});var BCe,Ih,X_=M(()=>{"use strict";bX();q_();BCe=h5(function(t,e,r){xX(t,e,r)}),Ih=BCe});function Q_(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return FCe[r]??e}function VCe(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,DX.sanitizeUrl)(r):r}function MX(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function HCe(t){let e,r=0;t.forEach(i=>{r+=MX(i,e),e=i});let n=r/2;return Z_(t,n)}function WCe(t){return t.length===1?t[0]:HCe(t)}function qCe(t,e,r){let n=structuredClone(r);Y.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=Z_(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function J_(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function XCe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;i{"use strict";DX=ka(Fp(),1);mr();fr();KS();ht();$f();ip();N_();X_();Pb();K_="\u200B",FCe={curveBasis:Do,curveBasisClosed:I3,curveBasisOpen:O3,curveBumpX:s_,curveBumpY:o_,curveBundle:l_,curveCardinalClosed:u_,curveCardinalOpen:f_,curveCardinal:c_,curveCatmullRomClosed:m_,curveCatmullRomOpen:g_,curveCatmullRom:p_,curveLinear:Op,curveLinearClosed:G3,curveMonotoneX:v_,curveMonotoneY:x_,curveNatural:V3,curveStep:H3,curveStepAfter:w_,curveStepBefore:b_},zCe=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,GCe=o(function(t,e){let r=NX(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);op(s),n=Gn(n,[...s])}else n=r.args;if(!n)return;let i=np(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),NX=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${zCe.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),Y.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=zf.exec(t))!==null;)if(n.index===zf.lastIndex&&zf.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return Y.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),RX=o(function(t){return t.replace(zf,"")},"removeDirectives"),$Ce=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(Q_,"interpolateToCurve");o(VCe,"formatUrl");UCe=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),Z_=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=MX(i,r);if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:_X((1-s)*r.x+s*i.x,5),y:_X((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),YCe=o((t,e,r)=>{Y.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=Z_(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(qCe,"calcTerminalLabelPosition");o(J_,"getStylesFromArray");LX=0,e9=o(()=>(LX++,"id-"+Math.random().toString(36).substr(2,12)+"-"+LX),"generateId");o(XCe,"makeRandomHex");t9=o(t=>XCe(t.length),"random"),jCe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),KCe=o(function(t,e){let r=e.text.replace(je.lineBreakRegex," "),[,n]=Fo(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),r9=Vp((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},r),je.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=Js(`${s} `,r),h=Js(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=QCe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),QCe=Vp((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(Js(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(d5,"calculateTextHeight");o(Js,"calculateTextWidth");n9=Vp((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=Fo(r),s=["sans-serif",n],l=t.split(je.lineBreakRegex),u=[],h=ze("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=jCe();v.text=y||K_;let x=KCe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),j_=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},ZCe=o(function(t){return f5=f5||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),f5.innerHTML=t,unescape(f5.textContent)},"entityDecode");o(i9,"isDetailedError");JCe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),Fo=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(ws,"cleanAndMerge");Ut={assignWithDepth:Gn,wrapLabel:r9,calculateTextHeight:d5,calculateTextWidth:Js,calculateTextDimensions:n9,cleanAndMerge:ws,detectInit:GCe,detectDirective:NX,isSubstringInArray:$Ce,interpolateToCurve:Q_,calcLabelPosition:WCe,calcCardinalityPosition:YCe,calcTerminalLabelPosition:qCe,formatUrl:VCe,getStylesFromArray:J_,generateId:e9,random:t9,runFunc:UCe,entityDecode:ZCe,insertTitle:JCe,parseFontSize:Fo,InitIDGenerator:j_},IX=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),Ca=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),p5=o((t,e,{counter:r=0,prefix:n,suffix:i})=>`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o(Fn,"handleUndefinedAttr")});function Ll(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=r9(e[t].text,i,n),e[t].textLines=e[t].text.split(je.lineBreakRegex).length,e[t].width=i,e[t].height=d5(e[t].text,n);else{let a=e[t].text.split(je.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(Js(l,n),e[t].width),s=d5(l,n),e[t].height=e[t].height+s}}function zX(t,e,r,n,i){let a=new v5(i);a.data.widthLimit=r.data.widthLimit/Math.min(a9,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Gt.wrap,f=m5(Gt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=m5(Gt);Ll("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=m5(Gt);g.fontSize=g.fontSize-2,Ll("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%a9===0){let g=r.data.startx+Gt.diagramMarginX,y=r.data.stopy+Gt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Gt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&FX(a,t,d,p),e=l.alias;let m=i.db.getBoundarys(e);m.length>0&&zX(t,e,a,m,i),l.alias!=="global"&&BX(t,l,a),r.data.stopy=Math.max(a.data.stopy+Gt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Gt.c4ShapeMargin,r.data.stopx),g5=Math.max(g5,r.data.stopx),y5=Math.max(y5,r.data.stopy)}}var g5,y5,PX,a9,Gt,v5,s9,ov,m5,e7e,BX,FX,Ts,OX,t7e,r7e,n7e,o9,GX=M(()=>{"use strict";mr();OY();ht();PS();fr();l7();Vt();ip();hr();ni();g5=0,y5=0,PX=4,a9=2;I1.yy=oy;Gt={},v5=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,s9(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>PX)&&(r=this.nextData.startx+e.margin+Gt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},s9(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},s9=o(function(t){Gn(Gt,t),t.fontFamily&&(Gt.personFontFamily=Gt.systemFontFamily=Gt.messageFontFamily=t.fontFamily),t.fontSize&&(Gt.personFontSize=Gt.systemFontSize=Gt.messageFontSize=t.fontSize),t.fontWeight&&(Gt.personFontWeight=Gt.systemFontWeight=Gt.messageFontWeight=t.fontWeight)},"setConf"),ov=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),m5=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),e7e=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(Ll,"calcC4ShapeTextWH");BX=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Gt.c4ShapeMargin-35;let n=e.wrap&&Gt.wrap,i=m5(Gt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=Js(e.label.text,i);Ll("label",e,n,i,a),Cl.drawBoundary(t,e,Gt)},"drawBoundary"),FX=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=ov(Gt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=Js("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Gt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Gt.wrap,h=Gt.width-Gt.c4ShapePadding*2,f=ov(Gt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=ov(Gt,s.typeC4Shape.text);Ll("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=ov(Gt,s.techn.text);Ll("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=ov(Gt,s.typeC4Shape.text);Ll("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Gt.c4ShapePadding,s.width=Math.max(s.width||Gt.width,p,Gt.width),s.height=Math.max(s.height||Gt.height,d,Gt.height),s.margin=s.margin||Gt.c4ShapeMargin,t.insert(s),Cl.drawC4Shape(e,s,Gt)}t.bumpLastMargin(Gt.c4ShapeMargin)},"drawC4ShapeArray"),Ts=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},OX=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new Ts(r,l):r==i&&na&&(p=new Ts(s,n)),r>i&&n=f?p=new Ts(r,l+f*t.width/2):p=new Ts(s-u/h*t.height/2,n+t.height):r=f?p=new Ts(r+t.width,l+f*t.width/2):p=new Ts(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new Ts(r+t.width,l-f*t.width/2):p=new Ts(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new Ts(r,l-t.width/2*f):p=new Ts(s-t.height/2*u/h,n)),p},"getIntersectPoint"),t7e=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=OX(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=OX(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),r7e=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Gt.wrap,l=e7e(Gt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=Js(a.label.text,l);Ll("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=Js(a.techn.text,l),Ll("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=Js(a.descr.text,l),Ll("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=t7e(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}Cl.drawRels(t,e,Gt)},"drawRels");o(zX,"drawInsideBoundary");n7e=o(function(t,e,r,n){Gt=de().c4;let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let s=i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body"),l=n.db;n.db.setWrap(Gt.wrap),PX=l.getC4ShapeInRow(),a9=l.getC4BoundaryInRow(),Y.debug(`C:${JSON.stringify(Gt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):ze(`[id="${e}"]`);Cl.insertComputerIcon(u),Cl.insertDatabaseIcon(u),Cl.insertClockIcon(u);let h=new v5(n);h.setData(Gt.diagramMarginX,Gt.diagramMarginX,Gt.diagramMarginY,Gt.diagramMarginY),h.data.widthLimit=screen.availWidth,g5=Gt.diagramMarginX,y5=Gt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundarys("");zX(u,"",h,d,n),Cl.insertArrowHead(u),Cl.insertArrowEnd(u),Cl.insertArrowCrossHead(u),Cl.insertArrowFilledHead(u),r7e(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=g5,h.data.stopy=y5;let p=h.data,g=p.stopy-p.starty+2*Gt.diagramMarginY,v=p.stopx-p.startx+2*Gt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Gt.diagramMarginX).attr("y",p.starty+Gt.diagramMarginY),Zr(u,g,v,Gt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Gt.diagramMarginX+" -"+(Gt.diagramMarginY+x)+" "+v+" "+(g+x)),Y.debug("models:",p)},"draw"),o9={drawPersonOrSystemArray:FX,drawBoundary:BX,setConf:s9,draw:n7e}});var i7e,$X,VX=M(()=>{"use strict";i7e=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),$X=i7e});var UX={};vr(UX,{diagram:()=>a7e});var a7e,HX=M(()=>{"use strict";PS();l7();GX();VX();a7e={parser:QF,db:oy,renderer:o9,styles:$X,init:o(({c4:t,wrap:e})=>{o9.setConf(t),oy.setWrap(e)},"init")}});function u9(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function ZX(t){Ed=t}function eo(t,e){if(e){if(JX.test(t))return t.replace(c7e,qX)}else if(ej.test(t))return t.replace(u7e,qX);return t}function d7e(t){return t.replace(f7e,(e,r)=>(r=r.toLowerCase(),r==="colon"?":":r.charAt(0)==="#"?r.charAt(1)==="x"?String.fromCharCode(parseInt(r.substring(2),16)):String.fromCharCode(+r.substring(1)):""))}function fn(t,e){let r=typeof t=="string"?t:t.source;e=e||"";let n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(p7e,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function XX(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}function jX(t,e){let r=t.replace(/\|/g,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(/ \|/),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length{let a=i.match(/^\s+/);if(a===null)return i;let[s]=a;return s.length>=n.length?i.slice(n.length):i}).join(` +`)}function en(t,e){return kd.parse(t,e)}var Ed,JX,c7e,ej,u7e,h7e,qX,f7e,p7e,uv,nm,y7e,v7e,x7e,fv,b7e,tj,rj,h9,w7e,f9,T7e,k7e,w5,d9,E7e,nj,S7e,p9,QX,C7e,A7e,ij,_7e,aj,L7e,dv,D7e,N7e,R7e,M7e,I7e,O7e,P7e,B7e,F7e,b5,z7e,sj,oj,G7e,m9,$7e,l9,V7e,x5,cv,ku,im,hv,Eu,rm,c9,kd,u6t,h6t,f6t,d6t,p6t,m6t,g6t,lj=M(()=>{"use strict";o(u9,"_getDefaults");Ed=u9();o(ZX,"changeDefaults");JX=/[&<>"']/,c7e=new RegExp(JX.source,"g"),ej=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,u7e=new RegExp(ej.source,"g"),h7e={"&":"&","<":"<",">":">",'"':""","'":"'"},qX=o(t=>h7e[t],"getEscapeReplacement");o(eo,"escape$1");f7e=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;o(d7e,"unescape");p7e=/(^|[^\[])\^/g;o(fn,"edit");o(XX,"cleanUrl");uv={exec:o(()=>null,"exec")};o(jX,"splitCells");o(lv,"rtrim");o(m7e,"findClosingBracket");o(KX,"outputLink");o(g7e,"indentCodeCompensation");nm=class{static{o(this,"_Tokenizer")}options;rules;lexer;constructor(e){this.options=e||Ed}space(e){let r=this.rules.block.newline.exec(e);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(e){let r=this.rules.block.code.exec(e);if(r){let n=r[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?n:lv(n,` +`)}}}fences(e){let r=this.rules.block.fences.exec(e);if(r){let n=r[0],i=g7e(n,r[3]||"");return{type:"code",raw:n,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(e){let r=this.rules.block.heading.exec(e);if(r){let n=r[2].trim();if(/#$/.test(n)){let i=lv(n,"#");(this.options.pedantic||!i||/ $/.test(i))&&(n=i.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let r=this.rules.block.hr.exec(e);if(r)return{type:"hr",raw:lv(r[0],` +`)}}blockquote(e){let r=this.rules.block.blockquote.exec(e);if(r){let n=lv(r[0],` +`).split(` +`),i="",a="",s=[];for(;n.length>0;){let l=!1,u=[],h;for(h=0;h/.test(n[h]))u.push(n[h]),l=!0;else if(!l)u.push(n[h]);else break;n=n.slice(h);let f=u.join(` +`),d=f.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");i=i?`${i} +${f}`:f,a=a?`${a} +${d}`:d;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(d,s,!0),this.lexer.state.top=p,n.length===0)break;let m=s[s.length-1];if(m?.type==="code")break;if(m?.type==="blockquote"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.blockquote(y);s[s.length-1]=v,i=i.substring(0,i.length-g.raw.length)+v.raw,a=a.substring(0,a.length-g.text.length)+v.text;break}else if(m?.type==="list"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.list(y);s[s.length-1]=v,i=i.substring(0,i.length-m.raw.length)+v.raw,a=a.substring(0,a.length-g.raw.length)+v.raw,n=y.substring(s[s.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(e){let r=this.rules.block.list.exec(e);if(r){let n=r[1].trim(),i=n.length>1,a={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),l=!1;for(;e;){let u=!1,h="",f="";if(!(r=s.exec(e))||this.rules.block.hr.test(e))break;h=r[0],e=e.substring(h.length);let d=r[2].split(` +`,1)[0].replace(/^\t+/,x=>" ".repeat(3*x.length)),p=e.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=r[1].length+1:(g=r[2].search(/[^ ]/),g=g>4?1:g,f=d.slice(g),g+=r[1].length),m&&/^ *$/.test(p)&&(h+=p+` +`,e=e.substring(p.length+1),u=!0),!u){let x=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),b=new RegExp(`^ {0,${Math.min(3,g-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),w=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:\`\`\`|~~~)`),_=new RegExp(`^ {0,${Math.min(3,g-1)}}#`);for(;e;){let T=e.split(` +`,1)[0];if(p=T,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),w.test(p)||_.test(p)||x.test(p)||b.test(e))break;if(p.search(/[^ ]/)>=g||!p.trim())f+=` +`+p.slice(g);else{if(m||d.search(/[^ ]/)>=4||w.test(d)||_.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=T+` +`,e=e.substring(T.length+1),d=p.slice(g)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(h)&&(l=!0));let y=null,v;this.options.gfm&&(y=/^\[[ xX]\] /.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),a.raw+=h}a.items[a.items.length-1].raw=a.items[a.items.length-1].raw.trimEnd(),a.items[a.items.length-1].text=a.items[a.items.length-1].text.trimEnd(),a.raw=a.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>/\n.*\n/.test(d.raw));a.loose=f}if(a.loose)for(let u=0;u$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:n,raw:r[0],href:i,title:a}}}table(e){let r=this.rules.block.table.exec(e);if(!r||!/[:|]/.test(r[2]))return;let n=jX(r[1]),i=r[2].replace(/^\||\| *$/g,"").split("|"),a=r[3]&&r[3].trim()?r[3].replace(/\n[ \t]*$/,"").split(` +`):[],s={type:"table",raw:r[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let l of i)/^ *-+: *$/.test(l)?s.align.push("right"):/^ *:-+: *$/.test(l)?s.align.push("center"):/^ *:-+ *$/.test(l)?s.align.push("left"):s.align.push(null);for(let l=0;l({text:u,tokens:this.lexer.inline(u),header:!1,align:s.align[h]})));return s}}lheading(e){let r=this.rules.block.lheading.exec(e);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(e){let r=this.rules.block.paragraph.exec(e);if(r){let n=r[1].charAt(r[1].length-1)===` +`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let r=this.rules.block.text.exec(e);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(e){let r=this.rules.inline.escape.exec(e);if(r)return{type:"escape",raw:r[0],text:eo(r[1])}}tag(e){let r=this.rules.inline.tag.exec(e);if(r)return!this.lexer.state.inLink&&/^
    /i.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(e){let r=this.rules.inline.link.exec(e);if(r){let n=r[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;let s=lv(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=m7e(r[2],"()");if(s>-1){let u=(r[0].indexOf("!")===0?5:4)+r[1].length+s;r[2]=r[2].substring(0,s),r[0]=r[0].substring(0,u).trim(),r[3]=""}}let i=r[2],a="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],a=s[3])}else a=r[3]?r[3].slice(1,-1):"";return i=i.trim(),/^$/.test(n)?i=i.slice(1):i=i.slice(1,-1)),KX(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer)}}reflink(e,r){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(/\s+/g," "),a=r[i.toLowerCase()];if(!a){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return KX(n,a,n[0],this.lexer)}}emStrong(e,r,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...i[0]].length-1,l,u,h=s,f=0,d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,r=r.slice(-1*e.length+s);(i=d.exec(r))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(u=[...l].length,i[3]||i[4]){h+=u;continue}else if((i[5]||i[6])&&s%3&&!((s+u)%3)){f+=u;continue}if(h-=u,h>0)continue;u=Math.min(u,u+h+f);let p=[...i[0]][0].length,m=e.slice(0,s+i.index+p+u);if(Math.min(s,u)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let r=this.rules.inline.code.exec(e);if(r){let n=r[2].replace(/\n/g," "),i=/[^ ]/.test(n),a=/^ /.test(n)&&/ $/.test(n);return i&&a&&(n=n.substring(1,n.length-1)),n=eo(n,!0),{type:"codespan",raw:r[0],text:n}}}br(e){let r=this.rules.inline.br.exec(e);if(r)return{type:"br",raw:r[0]}}del(e){let r=this.rules.inline.del.exec(e);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(e){let r=this.rules.inline.autolink.exec(e);if(r){let n,i;return r[2]==="@"?(n=eo(r[1]),i="mailto:"+n):(n=eo(r[1]),i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let r;if(r=this.rules.inline.url.exec(e)){let n,i;if(r[2]==="@")n=eo(r[0]),i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"";while(a!==r[0]);n=eo(r[0]),r[1]==="www."?i="http://"+r[0]:i=r[0]}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let r=this.rules.inline.text.exec(e);if(r){let n;return this.lexer.state.inRawBlock?n=r[0]:n=eo(r[0]),{type:"text",raw:r[0],text:n}}}},y7e=/^(?: *(?:\n|$))+/,v7e=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,x7e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,fv=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,b7e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,tj=/(?:[*+-]|\d{1,9}[.)])/,rj=fn(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,tj).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),h9=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,w7e=/^[^\n]+/,f9=/(?!\s*\])(?:\\.|[^\[\]\\])+/,T7e=fn(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",f9).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),k7e=fn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,tj).getRegex(),w5="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",d9=/|$))/,E7e=fn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",d9).replace("tag",w5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),nj=fn(h9).replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex(),S7e=fn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",nj).getRegex(),p9={blockquote:S7e,code:v7e,def:T7e,fences:x7e,heading:b7e,hr:fv,html:E7e,lheading:rj,list:k7e,newline:y7e,paragraph:nj,table:uv,text:w7e},QX=fn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex(),C7e={...p9,table:QX,paragraph:fn(h9).replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",QX).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex()},A7e={...p9,html:fn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",d9).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:uv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:fn(h9).replace("hr",fv).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",rj).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ij=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_7e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,aj=/^( {2,}|\\)\n(?!\s*$)/,L7e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,R7e=fn(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,dv).getRegex(),M7e=fn("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,dv).getRegex(),I7e=fn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,dv).getRegex(),O7e=fn(/\\([punct])/,"gu").replace(/punct/g,dv).getRegex(),P7e=fn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),B7e=fn(d9).replace("(?:-->|$)","-->").getRegex(),F7e=fn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",B7e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),b5=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,z7e=fn(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",b5).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),sj=fn(/^!?\[(label)\]\[(ref)\]/).replace("label",b5).replace("ref",f9).getRegex(),oj=fn(/^!?\[(ref)\](?:\[\])?/).replace("ref",f9).getRegex(),G7e=fn("reflink|nolink(?!\\()","g").replace("reflink",sj).replace("nolink",oj).getRegex(),m9={_backpedal:uv,anyPunctuation:O7e,autolink:P7e,blockSkip:N7e,br:aj,code:_7e,del:uv,emStrongLDelim:R7e,emStrongRDelimAst:M7e,emStrongRDelimUnd:I7e,escape:ij,link:z7e,nolink:oj,punctuation:D7e,reflink:sj,reflinkSearch:G7e,tag:F7e,text:L7e,url:uv},$7e={...m9,link:fn(/^!?\[(label)\]\((.*?)\)/).replace("label",b5).getRegex(),reflink:fn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",b5).getRegex()},l9={...m9,escape:fn(ij).replace("])","~|])").getRegex(),url:fn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\u+" ".repeat(h.length));let i,a,s;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(i=l.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))){if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length),i.raw.length===1&&r.length>0?r[r.length-1].raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(s=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,u=e.slice(1),h;this.options.extensions.startBlock.forEach(f=>{h=f.call({lexer:this},u),typeof h=="number"&&h>=0&&(l=Math.min(l,h))}),l<1/0&&l>=0&&(s=e.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){a=r[r.length-1],n&&a?.type==="paragraph"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i),n=s.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&a.type==="text"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(e){let l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n,i,a,s=e,l,u,h;if(this.tokens.links){let f=Object.keys(this.tokens.links);if(f.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(u||(h=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(n=f.call({lexer:this},e,r))?(e=e.substring(n.raw.length),r.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.emStrong(e,s,h)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),r.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),r.push(n);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline){let f=1/0,d=e.slice(1),p;this.options.extensions.startInline.forEach(m=>{p=m.call({lexer:this},d),typeof p=="number"&&p>=0&&(f=Math.min(f,p))}),f<1/0&&f>=0&&(a=e.substring(0,f+1))}if(n=this.tokenizer.inlineText(a)){e=e.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(h=n.raw.slice(-1)),u=!0,i=r[r.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(e){let f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return r}},im=class{static{o(this,"_Renderer")}options;parser;constructor(e){this.options=e||Ed}space(e){return""}code({text:e,lang:r,escaped:n}){let i=(r||"").match(/^\S*/)?.[0],a=e.replace(/\n$/,"")+` +`;return i?'
    '+(n?a:eo(a,!0))+`
    +`:"
    "+(n?a:eo(a,!0))+`
    +`}blockquote({tokens:e}){return`
    +${this.parser.parse(e)}
    +`}html({text:e}){return e}heading({tokens:e,depth:r}){return`${this.parser.parseInline(e)} +`}hr(e){return`
    +`}list(e){let r=e.ordered,n=e.start,i="";for(let l=0;l +`+i+" +`}listitem(e){let r="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&e.tokens[0].type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):r+=n+" "}return r+=this.parser.parse(e.tokens,!!e.loose),`
  • ${r}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let r="",n="";for(let a=0;a${i}`),` + +`+r+` +`+i+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let r=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+r+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${e}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),a=XX(e);if(a===null)return i;e=a;let s='
    ",s}image({href:e,title:r,text:n}){let i=XX(e);if(i===null)return n;e=i;let a=`${n}{let l=a[s].flat(1/0);n=n.concat(this.walkTokens(l,r))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...l){let u=a.renderer.apply(this,l);return u===!1&&(u=s.apply(this,l)),u}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new im(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let l=s,u=n.renderer[l];n.useNewRenderer||(u=this.#t(u,l,a));let h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new nm(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let l=s,u=n.tokenizer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new rm;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let l=s,u=n.hooks[l],h=a[l];rm.passThroughHooks.has(s)?a[l]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(p=>h.call(a,p));let d=u.call(a,f);return h.call(a,d)}:a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let u=[];return u.push(s.call(this,l)),a&&(u=u.concat(a.call(this,l))),u}}this.defaults={...this.defaults,...i}}),this}#t(e,r,n){switch(r){case"heading":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,n.parser.parseInline(i.tokens),i.depth,d7e(n.parser.parseInline(i.tokens,n.parser.textRenderer)))};case"code":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.lang,!!i.escaped)};case"table":return function(i){if(!i.type||i.type!==r)return e.apply(this,arguments);let a="",s="";for(let u=0;u0&&f.tokens[0].type==="paragraph"?(f.tokens[0].text=g+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&f.tokens[0].tokens[0].type==="text"&&(f.tokens[0].tokens[0].text=g+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:g+" "}):m+=g+" "}m+=this.parser.parse(f.tokens,l),u+=this.listitem({type:"list_item",raw:m,text:m,task:p,checked:!!d,loose:l,tokens:f.tokens})}return e.call(this,u,a,s)};case"html":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.block)};case"paragraph":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"escape":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"link":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,this.parser.parseInline(i.tokens))};case"image":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,i.text)};case"strong":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"em":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"codespan":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"del":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"text":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)}}return e}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return ku.lex(e,r??this.defaults)}parser(e,r){return Eu.parse(e,r??this.defaults)}#e(e,r){return(n,i)=>{let a={...i},s={...this.defaults,...a};this.defaults.async===!0&&a.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);let l=this.#r(!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(u=>e(u,s)).then(u=>s.hooks?s.hooks.processAllTokens(u):u).then(u=>s.walkTokens?Promise.all(this.walkTokens(u,s.walkTokens)).then(()=>u):u).then(u=>r(u,s)).then(u=>s.hooks?s.hooks.postprocess(u):u).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let u=e(n,s);s.hooks&&(u=s.hooks.processAllTokens(u)),s.walkTokens&&this.walkTokens(u,s.walkTokens);let h=r(u,s);return s.hooks&&(h=s.hooks.postprocess(h)),h}catch(u){return l(u)}}}#r(e,r){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+eo(n.message+"",!0)+"
    ";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},kd=new c9;o(en,"marked");en.options=en.setOptions=function(t){return kd.setOptions(t),en.defaults=kd.defaults,ZX(en.defaults),en};en.getDefaults=u9;en.defaults=Ed;en.use=function(...t){return kd.use(...t),en.defaults=kd.defaults,ZX(en.defaults),en};en.walkTokens=function(t,e){return kd.walkTokens(t,e)};en.parseInline=kd.parseInline;en.Parser=Eu;en.parser=Eu.parse;en.Renderer=im;en.TextRenderer=hv;en.Lexer=ku;en.lexer=ku.lex;en.Tokenizer=nm;en.Hooks=rm;en.parse=en;u6t=en.options,h6t=en.setOptions,f6t=en.use,d6t=en.walkTokens,p6t=en.parseInline,m6t=Eu.parse,g6t=ku.lex});function U7e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=Ib(n);return e===!1?i.replace(/ /g," "):i}function cj(t,e={}){let r=U7e(t,e),n=en.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}),i}function uj(t,{markdownAutoWrap:e}={}){let r=en.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:`Unsupported markdown: ${i.type}`}return o(n,"output"),r.map(n).join("")}var hj=M(()=>{"use strict";lj();MS();o(U7e,"preprocessMarkdown");o(cj,"markdownToLines");o(uj,"markdownToHTML")});function H7e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function W7e(t,e){let r=H7e(e.content);return fj(t,[],r,e.type)}function fj(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?fj(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function dj(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return g9(t,e)}function g9(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return g9(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=W7e(e,a);r.push([l]),u.content&&t.unshift(u)}return g9(t,e,r)}var pj=M(()=>{"use strict";o(H7e,"splitTextToChars");o(W7e,"splitWordToFitWidth");o(fj,"splitWordToFitWidthRecursion");o(dj,"splitLineToFitWidth");o(g9,"splitLineToFitWidthRecursion")});function mj(t,e){e&&t.attr("style",e)}async function Y7e(t,e,r,n,i=!1){let a=t.append("foreignObject");a.attr("width",`${10*r}px`),a.attr("height",`${10*r}px`);let s=a.append("xhtml:div"),l=e.label;e.label&&pi(e.label)&&(l=await hh(e.label.replace(je.lineBreakRegex,` +`),de()));let u=e.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),mj(h,e.labelStyle),h.attr("class",`${u} ${n}`),mj(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&s.attr("class","labelBkg");let f=s.node().getBoundingClientRect();return f.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),f=s.node().getBoundingClientRect()),a.node()}function y9(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function q7e(t,e,r){let n=t.append("text"),i=y9(n,1,e);v9(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function gj(t,e,r){let n=t.append("text"),i=y9(n,1,e);v9(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function X7e(t,e,r,n=!1){let a=e.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>q7e(a,1.1,p)<=t,"checkWidth"),d=f(h)?[h]:dj(h,f);for(let p of d){let m=y9(l,u,1.1);v9(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",h.x-f).attr("y",h.y-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function v9(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}function x9(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,e=>``)}var Si,Dl=M(()=>{"use strict";Vt();fr();mr();ht();hj();hr();pj();o(mj,"applyStyle");o(Y7e,"addHtmlSpan");o(y9,"createTspan");o(q7e,"computeWidthOfText");o(gj,"computeDimensionOfText");o(X7e,"createFormattedText");o(v9,"updateTextContentAndStyles");o(x9,"replaceIconSubstring");Si=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(Y.debug("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",u),a){let f=uj(e,h),d=x9(Ca(f)),p=e.replace(/\\\\/g,"\\"),m={isNode:s,label:pi(e)?p:d,labelStyle:r.replace("fill:","color:")};return await Y7e(t,m,l,i,u)}else{let f=e.replace(//g,"
    "),d=cj(f.replace("
    ","
    "),h),p=X7e(l,t,d,e?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ze(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");ze(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ze(p).select("text").attr("style",g)}return p}},"createText")});function Wt(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function zo(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function k5(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Dl();Vt();mr();hs();fr();hr();ot=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||xr(de()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",Fn(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=await Si(s,Tr(Ca(l),de()),{useHtmlLabels:i,width:e.width||de().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img}),h=u.getBBox(),f=(e?.padding??0)/2;if(i){let d=u.children[0],p=ze(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=de().fontSize?de().fontSize:window.getComputedStyle(document.body).fontSize,w=5,[_=ur.fontSize]=Fo(b),T=_*w+"px";y.style.minWidth=T,y.style.maxWidth=T}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),T5=o(async(t,e,r)=>{let n=r.useHtmlLabels||xr(de()?.flowchart?.htmlLabels),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await Si(i,Tr(Ca(e),de()),{useHtmlLabels:n,width:r.width||de()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(xr(de()?.flowchart?.htmlLabels)){let u=a.children[0],h=ze(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),Qe=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),lt=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(Wt,"createPathFromPoints");o(zo,"generateFullSineWavePoints");o(k5,"generateCirclePoints")});function j7e(t,e){return t.intersect(e)}var yj,vj=M(()=>{"use strict";o(j7e,"intersectNode");yj=j7e});function K7e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(K7e,"intersectEllipse");E5=K7e});function Q7e(t,e,r){return E5(t,e,e,r)}var xj,bj=M(()=>{"use strict";b9();o(Q7e,"intersectCircle");xj=Q7e});function Z7e(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&wj(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&wj(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function wj(t,e){return t*e>0}var Tj,kj=M(()=>{"use strict";o(Z7e,"intersectLine");o(wj,"sameSign");Tj=Z7e});function J7e(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";kj();o(J7e,"intersectPolygon");Ej=J7e});var eAe,Oh,w9=M(()=>{"use strict";eAe=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Oh=eAe});var qe,qt=M(()=>{"use strict";vj();bj();b9();Sj();w9();qe={node:yj,circle:xj,ellipse:E5,polygon:Ej,rect:Oh}});var Cj,mc,tAe,et,Ze,Xt=M(()=>{"use strict";Vt();Cj=o(t=>{let{handDrawnSeed:e}=de();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),mc=o(t=>{let e=tAe([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),tAe=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),et=o(t=>{let{stylesArray:e}=mc(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];l==="color"||l==="font-size"||l==="font-family"||l==="font-weight"||l==="font-style"||l==="text-decoration"||l==="text-align"||l==="text-transform"||l==="line-height"||l==="letter-spacing"||l==="word-spacing"||l==="text-shadow"||l==="text-overflow"||l==="white-space"||l==="word-wrap"||l==="word-break"||l==="overflow-wrap"||l==="hyphens"?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),Ze=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=de(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=mc(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e)},"userNodeOverrides")});function T9(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function rAe(t,e){return t[0]===e[0]&&t[1]===e[1]}function nAe(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)T9(h,l,i);let u=function(h,f,d){let p=[];for(let b of h){let w=[...b];rAe(w[0],w[w.length-1])||w.push([w[0][0],w[0][1]]),w.length>2&&p.push(w)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let w=0;wb.yminw.ymin?1:b.xw.x?1:b.ymax===w.ymax?0:(b.ymax-w.ymax)/Math.abs(b.ymax-w.ymax)),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let w=0;wv);w++)b=w;g.splice(0,b+1).forEach(w=>{y.push({s:v,edge:w})})}if(y=y.filter(b=>!(b.edge.ymax<=v)),y.sort((b,w)=>b.edge.x===w.edge.x?0:(b.edge.x-w.edge.x)/Math.abs(b.edge.x-w.edge.x)),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let _=y[b].edge,T=y[w].edge;m.push([[Math.round(_.x),v],[Math.round(T.x),v]])}v+=d,y.forEach(b=>{b.edge.x=b.edge.x+d*b.edge.islope}),x++}return m}(s,a,n);if(i){for(let h of s)T9(h,l,-i);(function(h,f,d){let p=[];h.forEach(m=>p.push(...m)),T9(p,f,d)})(u,l,-i)}return u}function yv(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),nAe(t,i,n,a||1)}function M5(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function E9(t,e){return t.type===e}function F9(t){let e=[],r=function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:iAe,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:k9,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:Aj,text:""},l}(t),n="BOD",i=0,a=r[i];for(;!E9(a,Aj);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return F9("M0,0"+t);i++,s=S5[a.text],n=a.text}else E9(a,k9)?s=S5[n]:(i++,s=S5[a.text],n=a.text);if(!(i+sf%2?h+r:h+e);a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function Pj(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(Bj(n,i,v,x,d,p,m,g,y).forEach(function(b){e.push({key:"C",data:b})}),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function pv(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function Bj(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=pv(t,e,-f),[r,n]=pv(r,n,-f);let R=(t-r)/2,S=(e-n)/2,O=R*R/(i*i)+S*S/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let N=i*i,P=a*a,F=N*P-N*S*S-P*R*R,B=N*S*S+P*R*R,$=(l===u?-1:1)*Math.sqrt(Math.abs(F/B));y=$*i*S/a+(t+r)/2,v=$*-a*R/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let R=g,S=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=Bj(r=y+i*Math.cos(g),n=v+a*Math.sin(g),S,O,i,a,s,0,u,[g,R,y,v])}x=g-m;let b=Math.cos(m),w=Math.sin(m),_=Math.cos(g),T=Math.sin(g),E=Math.tan(x/4),L=4/3*i*E,C=4/3*a*E,A=[t,e],I=[t+L*w,e-C*b],D=[r+L*T,n-C*_],k=[r,n];if(I[0]=2*A[0]-I[0],I[1]=2*A[1]-I[1],h)return[I,D,k].concat(p);{p=[I,D,k].concat(p);let R=[];for(let S=0;S2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=Mj(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=Mj(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Ph(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Ph(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function Dj(t,e){let r=Pj(Oj(F9(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Ph(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...oAe(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Ph(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function S9(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+nr(i,e),n[0][1]+nr(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*Gj(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=nr(m,i,h),g=nr(g,i,h);let y=[],v=o(()=>nr(d,i,h),"M"),x=o(()=>nr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:nr(f,i,h)),e+(b?0:nr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function C5(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]),n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=Sd(u,h,.5),m=Sd(h,f,.5),g=Sd(f,d,.5),y=Sd(p,m,.5),v=Sd(m,g,.5),x=Sd(y,v,.5);O9([u,p,y,x],0,r,i),O9([x,v,g,d],0,r,i)}var a,s;return i}function cAe(t,e){return R5(t,0,t.length,e)}function R5(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(R5(t,e,h+1,n,a),R5(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function C9(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?R5(n,0,n.length,r):n}var gv,A9,_9,L9,D9,N9,ks,R9,iAe,k9,Aj,S5,aAe,to,sm,P9,A5,B9,Ke,jt=M(()=>{"use strict";o(T9,"t");o(rAe,"e");o(nAe,"s");o(yv,"n");gv=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=yv(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(M5,"a");A9=class extends gv{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=yv(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)M5([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},_9=class extends gv{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},L9=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=yv(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=M5(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=M5(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=M5(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(L=0,C=2*Math.PI);let A=(C-L)/b.curveStepCount,I=[];for(let D=L;D<=C;D+=A)I.push([w+T*Math.cos(D),_+E*Math.sin(D)]);return I.push([w+T*Math.cos(C),_+E*Math.sin(C)]),I.push([w,_]),am([I],b)}(e,r,n,i,a,s,h));return h.stroke!==to&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=_j(e,n);if(n.fill&&n.fill!==to)if(n.fillStyle==="solid"){let s=_j(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...C9(Ij([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...C9(Ij(h),10,(1+n.roughness)/2))}s.length&&i.push(am([s],n))}return n.stroke!==to&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=_5(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(S9([e],n)):i.push(am([e],n))),n.stroke!==to&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==to,s=n.stroke!==to,l=!!(n.simplification&&n.simplification<1),u=function(f,d,p){let m=Pj(Oj(F9(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...C9(x,d)),x=[]},"i"),w=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:T,data:E}of m)switch(T){case"M":w(),v=[E[0],E[1]],y.push(v);break;case"L":b(),y.push([E[0],E[1]]);break;case"C":if(!x.length){let L=y.length?y[y.length-1]:v;x.push([L[0],L[1]])}x.push([E[0],E[1]]),x.push([E[2],E[3]]),x.push([E[4],E[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(w(),!p)return g;let _=[];for(let T of g){let E=cAe(T,p);E.length&&_.push(E)}return _}(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=Dj(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=Dj(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(S9(u,n));else i.push(am(u,n));return s&&(l?u.forEach(f=>{i.push(_5(f,!1,n))}):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map(s=>+s.toFixed(r)):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:to};break;case"fillPath":s={d:this.opsToPath(a),stroke:to,strokeWidth:0,fill:n.fill||to};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||to,strokeWidth:n,fill:to}}_mergedShape(e){return e.filter((r,n)=>n===0||r.op!=="move")}},P9=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new sm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map(l=>+l.toFixed(n)):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},A5="http://www.w3.org/2000/svg",B9=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new sm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(A5,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(A5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(A5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(A5,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Ke={canvas:o((t,e)=>new P9(t,e),"canvas"),svg:o((t,e)=>new B9(t,e),"svg"),generator:o(t=>new sm(t),"generator"),newSeed:o(()=>sm.newSeed(),"newSeed")}});function $j(t,e){let{labelStyles:r}=et(e);e.labelStyle=r;let n=lt(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Ke.svg(a),h=Ze(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",Fn(l)),Qe(e,d),e.intersect=function(p){return Y.info("Circle intersect",e,s,p),qe.circle(e,s,p)},a}var Vj=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o($j,"anchor")});function Uj(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),w=Math.atan2((e-b)/a,(t-x)/i),T=Math.atan2((n-b)/a,(r-x)/i)-w;s&&T<0&&(T+=2*Math.PI),!s&&T>0&&(T-=2*Math.PI);let E=[];for(let L=0;L<20;L++){let C=L/19,A=w+C*T,I=x+i*Math.cos(A),D=b+a*Math.sin(A);E.push({x:I,y:D})}return E}async function Hj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...Uj(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...Uj(s/2,l/2,s/2,-l/2,h,u,!0)],p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Wt(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),Qe(e,v),e.intersect=function(x){return qe.polygon(e,d,x)},i}var Wj=M(()=>{"use strict";Ft();qt();Xt();jt();o(Uj,"generateArcPoints");o(Hj,"bowTieRect")});function Aa(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Su=M(()=>{"use strict";o(Aa,"insertPolygonShape")});async function Yj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Ke.svg(i),x=Ze(e,{}),b=Wt(m),w=v.path(b,x);g=i.insert(()=>w,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=Aa(i,u,s,m);return n&&g.attr("style",n),Qe(e,g),e.intersect=function(v){return qe.polygon(e,m,v)},i}var qj=M(()=>{"use strict";Ft();qt();Xt();jt();Su();Ft();o(Yj,"card")});function Xj(t,e){let{nodeStyles:r}=et(e);e.label="";let n=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Ke.svg(n),u=Ze(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=Wt(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return qe.polygon(e,s,p)},n}var jj=M(()=>{"use strict";qt();jt();Xt();Ft();o(Xj,"choice")});async function Kj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await ot(t,e,lt(e)),l=a.width/2+s,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Ke.svg(i),d=Ze(e,{}),p=f.circle(0,0,l*2,d);u=i.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",Fn(h))}else u=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",l).attr("cx",0).attr("cy",0);return Qe(e,u),e.intersect=function(f){return Y.info("Circle intersect",e,l,f),qe.circle(e,l,f)},i}var Qj=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o(Kj,"circle")});function uAe(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}function Zj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Ke.svg(i),u=Ze(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=uAe(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),Qe(e,p),e.intersect=function(m){return Y.info("crossedCircle intersect",e,{radius:a,point:m}),qe.circle(e,a,m)},i}var Jj=M(()=>{"use strict";ht();Ft();Xt();jt();qt();o(uAe,"createLine");o(Zj,"crossedCircle")});function Bh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dw,":first-child").attr("stroke-opacity",0),_.insert(()=>x,":first-child"),_.attr("class","text"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,p,T)},i}var tK=M(()=>{"use strict";Ft();qt();Xt();jt();o(Bh,"generateCirclePoints");o(eK,"curlyBraceLeft")});function Fh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dw,":first-child").attr("stroke-opacity",0),_.insert(()=>x,":first-child"),_.attr("class","text"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,p,T)},i}var nK=M(()=>{"use strict";Ft();qt();Xt();jt();o(Fh,"generateCirclePoints");o(rK,"curlyBraceRight")});function _a(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dL,":first-child").attr("stroke-opacity",0),C.insert(()=>b,":first-child"),C.insert(()=>T,":first-child"),C.attr("class","text"),f&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,C),e.intersect=function(A){return qe.polygon(e,m,A)},i}var aK=M(()=>{"use strict";Ft();qt();Xt();jt();o(_a,"generateCirclePoints");o(iK,"curlyBraces")});async function sK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...k5(-v,-y/2,f,50,270,90)],w=Wt(b),_=p.path(w,m),T=i.insert(()=>_,":first-child");return T.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",n),T.attr("transform",`translate(${-u/2}, ${-h/2})`),Qe(e,T),e.intersect=function(E){return qe.polygon(e,b,E)},i}var oK=M(()=>{"use strict";Ft();qt();Xt();jt();o(sK,"curvedTrapezoid")});async function lK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ke.svg(i),g=fAe(0,0,l,f,u,h),y=dAe(0,h,l,f,u,h),v=m.path(g,Ze(e,{})),x=m.path(y,Ze(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=hAe(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Fn(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=qe.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var hAe,fAe,dAe,cK=M(()=>{"use strict";Ft();qt();Xt();jt();hr();hAe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),fAe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),dAe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(lK,"cylinder")});async function uK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.rect(e,b)},i}var hK=M(()=>{"use strict";Ft();qt();Xt();jt();o(uK,"dividedRectangle")});async function fK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await ot(t,e,lt(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{roughness:.2,strokeWidth:2.5}),g=Ze(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",Fn(e.cssClasses)).attr("style",Fn(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return Qe(e,f),e.intersect=function(p){return Y.info("DoubleCircle intersect",e,u,p),qe.circle(e,u,p)},i}var dK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o(fK,"doublecircle")});function pK(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Ke.svg(a),{nodeBorder:h}=r,f=Ze(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),Qe(e,p),e.intersect=function(m){return Y.info("filledCircle intersect",e,{radius:s,point:m}),qe.circle(e,s,m)},a}var mK=M(()=>{"use strict";jt();ht();qt();Xt();Ft();o(pK,"filledCircle")});async function gK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Wt(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,Qe(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return Y.info("Triangle intersect",e,f,x),qe.polygon(e,f,x)},i}var yK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Ft();o(gK,"flippedTriangle")});function vK(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=et(e);e.label="";let s=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Ke.svg(s),m=Ze(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),Qe(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return qe.rect(e,x)},s}var xK=M(()=>{"use strict";jt();qt();Xt();Ft();o(vK,"forkJoin")});async function bK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await ot(t,e,lt(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ke.svg(s),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...k5(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=Wt(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),Qe(e,x),e.intersect=function(b){return Y.info("Pill intersect",e,{radius:f,point:b}),qe.polygon(e,g,b)},s}var wK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();o(bK,"halfRoundedRectangle")});async function TK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ke.svg(i),g=Ze(e,{}),y=pAe(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=Aa(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,Qe(e,d),e.intersect=function(m){return qe.polygon(e,f,m)},i}var pAe,kK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();pAe=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD");o(TK,"hexagon")});async function EK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await ot(t,e,lt(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Ke.svg(i),h=Ze(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=Wt(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),Qe(e,m),e.intersect=function(g){return Y.info("Pill intersect",e,{points:f}),qe.polygon(e,f,g)},i}var SK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();o(EK,"hourglass")});async function CK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ot(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=mc(e),x=-g/2,b=-m/2,w=e.label?8:0,_=Ke.svg(h),T=Ze(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=_.rectangle(x,b,g,m,T),L=Math.max(g,f.width),C=m+f.height+w,A=_.rectangle(-L/2,-C/2,L,C,{...T,fill:"transparent",stroke:"none"}),I=h.insert(()=>E,":first-child"),D=h.insert(()=>A);if(e.icon){let k=h.append("g");k.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=k.node().getBBox(),S=R.width,O=R.height,N=R.x,P=R.y;k.attr("transform",`translate(${-S/2-N},${p?f.height/2+w/2-O/2-P:-f.height/2-w/2-O/2-P})`),k.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-C/2:C/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+w/2:-f.height/2-w/2})`),Qe(e,D),e.intersect=function(k){if(Y.info("iconSquare intersect",e,k),!e.label)return qe.rect(e,k);let R=e.x??0,S=e.y??0,O=e.height??0,N=[];return p?N=[{x:R-f.width/2,y:S-O/2},{x:R+f.width/2,y:S-O/2},{x:R+f.width/2,y:S-O/2+f.height+w},{x:R+g/2,y:S-O/2+f.height+w},{x:R+g/2,y:S+O/2},{x:R-g/2,y:S+O/2},{x:R-g/2,y:S-O/2+f.height+w},{x:R-f.width/2,y:S-O/2+f.height+w}]:N=[{x:R-g/2,y:S-O/2},{x:R+g/2,y:S-O/2},{x:R+g/2,y:S-O/2+m},{x:R+f.width/2,y:S-O/2+m},{x:R+f.width/2/2,y:S+O/2},{x:R-f.width/2,y:S+O/2},{x:R-f.width/2,y:S-O/2+m},{x:R-g/2,y:S-O/2+m}],qe.polygon(e,N,k)},h}var AK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();Ft();o(CK,"icon")});async function _K(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ot(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=mc(e),b=Ke.svg(h),w=Ze(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let _=x.get("fill");w.stroke=_??v;let T=h.append("g");e.icon&&T.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let E=T.node().getBBox(),L=E.width,C=E.height,A=E.x,I=E.y,D=Math.max(L,C)*Math.SQRT2+p*2,k=b.circle(0,0,D,w),R=Math.max(D,f.width),S=D+f.height+m,O=b.rectangle(-R/2,-S/2,R,S,{...w,fill:"transparent",stroke:"none"}),N=h.insert(()=>k,":first-child"),P=h.insert(()=>O);return T.attr("transform",`translate(${-L/2-A},${g?f.height/2+m/2-C/2-I:-f.height/2-m/2-C/2-I})`),T.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-S/2:S/2-f.height})`),N.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),Qe(e,P),e.intersect=function(F){return Y.info("iconSquare intersect",e,F),qe.rect(e,F)},h}var LK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();Ft();o(_K,"iconCircle")});var La,zh=M(()=>{"use strict";La=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function DK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ot(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,_=-g/2,T=e.label?8:0,E=Ke.svg(h),L=Ze(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let C=b.get("fill");L.stroke=C??x;let A=E.path(La(w,_,y,g,5),L),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...L,fill:"transparent",stroke:"none"}),R=h.insert(()=>A,":first-child").attr("class","icon-shape2"),S=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,F=N.height,B=N.x,$=N.y;O.attr("transform",`translate(${-P/2-B},${m?f.height/2+T/2-F/2-$:-f.height/2-T/2-F/2-$})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qe(e,S),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return qe.rect(e,O);let N=e.x??0,P=e.y??0,F=e.height??0,B=[];return m?B=[{x:N-f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2+f.height+T},{x:N+y/2,y:P-F/2+f.height+T},{x:N+y/2,y:P+F/2},{x:N-y/2,y:P+F/2},{x:N-y/2,y:P-F/2+f.height+T},{x:N-f.width/2,y:P-F/2+f.height+T}]:B=[{x:N-y/2,y:P-F/2},{x:N+y/2,y:P-F/2},{x:N+y/2,y:P-F/2+g},{x:N+f.width/2,y:P-F/2+g},{x:N+f.width/2/2,y:P+F/2},{x:N-f.width/2,y:P+F/2},{x:N-f.width/2,y:P-F/2+g},{x:N-y/2,y:P-F/2+g}],qe.polygon(e,B,O)},h}var NK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();zh();Ft();o(DK,"iconRounded")});async function RK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ot(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,_=-g/2,T=e.label?8:0,E=Ke.svg(h),L=Ze(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let C=b.get("fill");L.stroke=C??x;let A=E.path(La(w,_,y,g,.1),L),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...L,fill:"transparent",stroke:"none"}),R=h.insert(()=>A,":first-child"),S=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,F=N.height,B=N.x,$=N.y;O.attr("transform",`translate(${-P/2-B},${m?f.height/2+T/2-F/2-$:-f.height/2-T/2-F/2-$})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qe(e,S),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return qe.rect(e,O);let N=e.x??0,P=e.y??0,F=e.height??0,B=[];return m?B=[{x:N-f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2+f.height+T},{x:N+y/2,y:P-F/2+f.height+T},{x:N+y/2,y:P+F/2},{x:N-y/2,y:P+F/2},{x:N-y/2,y:P-F/2+f.height+T},{x:N-f.width/2,y:P-F/2+f.height+T}]:B=[{x:N-y/2,y:P-F/2},{x:N+y/2,y:P-F/2},{x:N+y/2,y:P-F/2+g},{x:N+f.width/2,y:P-F/2+g},{x:N+f.width/2/2,y:P+F/2},{x:N-f.width/2,y:P+F/2},{x:N-f.width/2,y:P-F/2+g},{x:N-y/2,y:P-F/2+g}],qe.polygon(e,B,O)},h}var MK=M(()=>{"use strict";jt();ht();Kc();qt();zh();Xt();Ft();o(RK,"iconSquare")});async function IK(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=et(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await ot(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Ke.svg(d),w=Ze(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let _=b.rectangle(y,v,h,f,w),T=Math.max(h,p.width),E=f+p.height+x,L=b.rectangle(-T/2,-E/2,T,E,{...w,fill:"none",stroke:"none"}),C=d.insert(()=>_,":first-child"),A=d.insert(()=>L);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?E/2-f:-E/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),C.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),Qe(e,A),e.intersect=function(I){if(Y.info("iconSquare intersect",e,I),!e.label)return qe.rect(e,I);let D=e.x??0,k=e.y??0,R=e.height??0,S=[];return g?S=[{x:D-p.width/2,y:k-R/2},{x:D+p.width/2,y:k-R/2},{x:D+p.width/2,y:k-R/2+p.height+x},{x:D+h/2,y:k-R/2+p.height+x},{x:D+h/2,y:k+R/2},{x:D-h/2,y:k+R/2},{x:D-h/2,y:k-R/2+p.height+x},{x:D-p.width/2,y:k-R/2+p.height+x}]:S=[{x:D-h/2,y:k-R/2},{x:D+h/2,y:k-R/2},{x:D+h/2,y:k-R/2+f},{x:D+p.width/2,y:k-R/2+f},{x:D+p.width/2/2,y:k+R/2},{x:D-p.width/2,y:k+R/2},{x:D-p.width/2,y:k-R/2+f},{x:D-h/2,y:k-R/2+f}],qe.polygon(e,S,I)},d}var OK=M(()=>{"use strict";jt();ht();qt();Xt();Ft();o(IK,"imageSquare")});async function PK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var BK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(PK,"inv_trapezoid")});async function Cd(t,e,r){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await ot(t,e,lt(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Ke.svg(a),v=Ze(e,{}),x=p||m?y.path(La(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Fn(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Fn(p)).attr("ry",Fn(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return Qe(e,d),e.intersect=function(y){return qe.rect(e,y)},a}var vv=M(()=>{"use strict";Ft();qt();zh();Xt();jt();hr();o(Cd,"drawRect")});async function FK(t,e){let{shapeSvg:r,bbox:n,label:i}=await ot(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Qe(e,a),e.intersect=function(u){return qe.rect(e,u)},r}var zK=M(()=>{"use strict";vv();Ft();qt();o(FK,"labelRect")});async function GK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var $K=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(GK,"lean_left")});async function VK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var UK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(VK,"lean_right")});function HK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Ke.svg(i),d=Ze(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=Wt(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),Qe(e,g),e.intersect=function(y){return Y.info("lightningBolt intersect",e,y),qe.polygon(e,h,y)},i}var WK=M(()=>{"use strict";ht();Ft();Xt();jt();qt();Ft();o(HK,"lightningBolt")});async function YK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Ke.svg(i),y=gAe(0,0,l,f,u,h,d),v=yAe(0,h,l,f,u,h),x=Ze(e,{}),b=g.path(y,x),w=g.path(v,x);i.insert(()=>w,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=mAe(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",Fn(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=qe.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var mAe,gAe,yAe,qK=M(()=>{"use strict";Ft();qt();Xt();jt();hr();mAe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),gAe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),yAe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(YK,"linedCylinder")});async function XK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...zo(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,v),e.intersect=function(x){return qe.polygon(e,g,x)},i}var jK=M(()=>{"use strict";Ft();qt();jt();Xt();o(XK,"linedWaveEdgedRect")});async function KK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Wt(y),b=m.path(x,g),w=Wt(v),_=m.path(w,{...g,fill:"none"}),T=i.insert(()=>_,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),Qe(e,T),e.intersect=function(E){return qe.polygon(e,y,E)},i}var QK=M(()=>{"use strict";Ft();Xt();jt();qt();o(KK,"multiRect")});async function ZK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=zo(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],w=Ke.svg(i),_=Ze(e,{});e.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");let T=Wt(x),E=w.path(T,_),L=Wt(b),C=w.path(L,_),A=i.insert(()=>E,":first-child");return A.insert(()=>C),A.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),Qe(e,A),e.intersect=function(I){return qe.polygon(e,x,I)},i}var JK=M(()=>{"use strict";Ft();qt();jt();Xt();o(ZK,"multiWaveEdgedRectangle")});async function eQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n,e.useHtmlLabels||Sr().flowchart?.htmlLabels!==!1||(e.centerLabel=!0);let{shapeSvg:s,bbox:l}=await ot(t,e,lt(e)),u=Math.max(l.width+(e.padding??0)*2,e?.width??0),h=Math.max(l.height+(e.padding??0)*2,e?.height??0),f=-u/2,d=-h/2,{cssStyles:p}=e,m=Ke.svg(s),g=Ze(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=m.rectangle(f,d,u,h,g),v=s.insert(()=>y,":first-child");return v.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",p),i&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",i),Qe(e,v),e.intersect=function(x){return qe.rect(e,x)},s}var tQ=M(()=>{"use strict";jt();qt();Xt();Ft();Ua();o(eQ,"note")});async function rQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{}),g=vAe(0,0,u),y=p.path(g,m);f=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),d&&f.attr("style",d)}else f=Aa(i,u,u,h);return n&&f.attr("style",n),Qe(e,f),e.intersect=function(p){return Y.debug(`APA12 Intersect called SPLIT +point:`,p,` +node: +`,e,` +res:`,qe.polygon(e,h,p)),qe.polygon(e,h,p)},i}var vAe,nQ=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Su();vAe=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(rQ,"question")});async function iQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Ke.svg(i),y=Ze(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=Wt(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(w){return qe.polygon(e,p,w)},i}var aQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(iQ,"rect_left_inv_arrow")});function xAe(t,e){e&&t.attr("style",e)}async function bAe(t){let e=ze(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label;t.label&&pi(t.label)&&(n=await hh(t.label.replace(je.lineBreakRegex,` +`),de()));let i=t.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),xAe(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var wAe,gc,I5=M(()=>{"use strict";mr();ht();Vt();fr();hr();o(xAe,"applyStyle");o(bAe,"addHtmlLabel");wAe=o(async(t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),xr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),Y.info("vertexText"+i);let a={isNode:n,label:Ca(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:e&&e.replace("fill:","color:")};return await bAe(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),gc=wAe});async function sQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=l.node().appendChild(await gc(h,e.labelStyle,!0,!0)),d={width:0,height:0};if(xr(de()?.flowchart?.htmlLabels)){let C=f.children[0],A=ze(f);d=C.getBoundingClientRect(),A.attr("width",d.width),A.attr("height",d.height)}Y.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await gc(p.join?p.join("
    "):p,e.labelStyle,!0,!0)),y=g.children[0],v=ze(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;ze(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),ze(f).attr("transform","translate( "+(d.width(Y.debug("Rough node insert CXC",I),D),":first-child"),E=a.insert(()=>(Y.debug("Rough node insert CXC",I),I),":first-child")}else E=s.insert("rect",":first-child"),L=s.insert("line"),E.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),L.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return Qe(e,E),e.intersect=function(C){return qe.rect(e,C)},a}var oQ=M(()=>{"use strict";mr();fr();Ft();I5();qt();Xt();jt();Vt();zh();ht();o(sQ,"rectWithTitle")});async function lQ(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Cd(t,e,r)}var cQ=M(()=>{"use strict";vv();o(lQ,"roundedRect")});async function uQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Fn(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.rect(e,b)},i}var hQ=M(()=>{"use strict";Ft();qt();Xt();jt();hr();o(uQ,"shadedProcess")});async function fQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=Wt(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.polygon(e,g,b)},i}var dQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(fQ,"slopedRect")});async function pQ(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Cd(t,e,r)}var mQ=M(()=>{"use strict";vv();o(pQ,"squareRect")});async function gQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Ke.svg(i),d=Ze(e,{}),p=La(-l/2,-s/2,l,s,s/2),m=f.path(p,d);u=i.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",Fn(h))}else u=i.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return Qe(e,u),e.intersect=function(f){return qe.rect(e,f)},i}var yQ=M(()=>{"use strict";Ft();qt();Xt();jt();zh();hr();o(gQ,"stadium")});async function vQ(t,e){return Cd(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var xQ=M(()=>{"use strict";vv();o(vQ,"state")});function bQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Ke.svg(h),d=Ze(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),Qe(e,y),e.intersect=function(v){return qe.circle(e,7,v)},h}var wQ=M(()=>{"use strict";jt();qt();Xt();Ft();o(bQ,"stateEnd")});function TQ(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Ke.svg(i).circle(0,0,14,Cj(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return Qe(e,a),e.intersect=function(s){return qe.circle(e,7,s)},i}var kQ=M(()=>{"use strict";jt();qt();Xt();Ft();o(TQ,"stateStart")});async function EQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",Fn(b)),Qe(e,x)}else{let p=Aa(i,l,u,d);n&&p.attr("style",n),Qe(e,p)}return e.intersect=function(p){return qe.polygon(e,d,p)},i}var SQ=M(()=>{"use strict";Ft();qt();Xt();jt();Su();hr();o(EQ,"subroutine")});async function CQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Wt(y),b=m.path(x,g),w=Wt(v),_=m.path(w,{...g,fillStyle:"solid"}),T=i.insert(()=>_,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qe(e,T),e.intersect=function(E){return qe.polygon(e,y,E)},i}var AQ=M(()=>{"use strict";Ft();Xt();jt();qt();o(CQ,"taggedRect")});async function _Q(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Ke.svg(i),y=Ze(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...zo(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,w=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...zo(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],_=Wt(v),T=g.path(_,y),E=Wt(w),L=g.path(E,{...y,fillStyle:"solid"}),C=i.insert(()=>L,":first-child");return C.insert(()=>T,":first-child"),C.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,C),e.intersect=function(A){return qe.polygon(e,v,A)},i}var LQ=M(()=>{"use strict";Ft();qt();jt();Xt();o(_Q,"taggedWaveEdgedRectangle")});async function DQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),Qe(e,f),e.intersect=function(d){return qe.rect(e,d)},i}var NQ=M(()=>{"use strict";Ft();qt();Xt();o(DQ,"text")});async function RQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await ot(t,e,lt(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Ke.svg(i),v=kAe(0,0,p,h,d,f),x=EAe(0,0,p,h,d,f),b=y.path(v,Ze(e,{})),w=y.path(x,Ze(e,{fill:"none"}));g=i.insert(()=>w,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=TAe(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",Fn(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,g),e.intersect=function(y){let v=qe.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var TAe,kAe,EAe,MQ=M(()=>{"use strict";Ft();Xt();jt();qt();hr();TAe=o((t,e,r,n,i,a)=>`M${t},${e} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),kAe=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),EAe=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(RQ,"tiltedCylinder")});async function IQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var OQ=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(IQ,"trapezoid")});async function PQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Ke.svg(i),p=Ze(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=Wt(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),Qe(e,v),e.intersect=function(x){return qe.polygon(e,m,x)},i}var BQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(PQ,"trapezoidalPentagon")});async function FQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=xr(de().flowchart?.htmlLabels),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=Wt(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,Qe(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return Y.info("Triangle intersect",e,d,b),qe.polygon(e,d,b)},i}var zQ=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Ft();fr();Vt();o(FQ,"triangle")});async function GQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Ke.svg(i),v=Ze(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...zo(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=Wt(x),w=y.path(b,v),_=i.insert(()=>w,":first-child");return _.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,x,T)},i}var $Q=M(()=>{"use strict";Ft();qt();jt();Xt();o(GQ,"waveEdgedRectangle")});async function VQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Ke.svg(i),x=Ze(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...zo(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...zo(d/2,-g/2,-d/2,-g/2,m,-1)],w=Wt(b),_=v.path(w,x),T=i.insert(()=>_,":first-child");return T.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qe(e,T),e.intersect=function(E){return qe.polygon(e,b,E)},i}var UQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(VQ,"waveRectangle")});async function HQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(w){return qe.polygon(e,y,w)},i}var WQ=M(()=>{"use strict";Ft();Xt();jt();qt();o(HQ,"windowPane")});async function YQ(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",lt(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await O5(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await O5(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let w=await O5(h,b,y,[b.parseClassifier()]);y+=w+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let w=await O5(f,b,v,[b.parseClassifier()]);v+=w+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function O5(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=Sr(),s="useHtmlLabels"in e?e.useHtmlLabels:xr(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),pi(l)&&(s=!0);let u=await Si(i,i7(Ca(l)),{width:Js(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=ze(u);f=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(f+=d.innerHTML.split("").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,_=parseInt(b,10)*5+"px";y.style.minWidth=_,y.style.maxWidth=_}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&ze(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(d.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var qQ=M(()=>{"use strict";mr();Ua();Ft();hr();Vt();Dl();fr();o(YQ,"textHelper");o(O5,"addText")});async function XQ(t,e){let r=de(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??xr(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await YQ(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=et(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Ke.svg(l),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,w=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),_=l.insert(()=>w,":first-child");_.attr("class","basic label-container");let T=_.node().getBBox();l.selectAll(".text").each((A,I,D)=>{let k=ze(D[I]),R=k.attr("transform"),S=0;if(R){let F=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(R);F&&(S=parseFloat(F[2]))}let O=S+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(O-=4);let N=x;(k.attr("class").includes("label-group")||k.attr("class").includes("annotation-group"))&&(N=-k.node()?.getBBox().width/2||0,l.selectAll("text").each(function(P,F,B){window.getComputedStyle(B[F]).textAnchor==="middle"&&(N=0)})),k.attr("transform",`translate(${N}, ${O})`)});let E=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,L=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,C=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let A=m.line(T.x,E+L+b+n,T.x+T.width,E+L+b+n,g);l.insert(()=>A).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let A=m.line(T.x,E+L+C+b+i*2+n,T.x+T.width,E+L+C+b+n+i*2,g);l.insert(()=>A).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),_.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let A=RegExp(/color\s*:\s*([^;]*)/),I=A.exec(d);if(I){let D=I[0].replace("color","fill");l.selectAll("tspan").attr("style",D)}else if(h){let D=A.exec(h);if(D){let k=D[0].replace("color","fill");l.selectAll("tspan").attr("style",k)}}}return Qe(e,_),e.intersect=function(A){return qe.rect(e,A)},l}var jQ=M(()=>{"use strict";Ft();Vt();mr();jt();Xt();qt();qQ();fr();o(XQ,"classBox")});async function KQ(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await ot(t,e,lt(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await T5(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await T5(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await T5(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,w=e?.width||0,_=Math.max(y.height,x.height)/2,T=Math.max(u.height+b*2,e?.height||0)+_,E=-w/2,L=-T/2;h.attr("transform","translate("+(f-w/2)+", "+(-_-u.height/2)+")"),g.attr("transform","translate("+(f-w/2)+", "+(-_+u.height/2)+")"),v.attr("transform","translate("+(f+w/2-x.width-2*a)+", "+(-_+u.height/2)+")");let C,{rx:A,ry:I}=e,{cssStyles:D}=e;if(e.look==="handDrawn"){let k=Ke.svg(l),R=Ze(e,{}),S=A||I?k.path(La(E,L,w,T,A||0),R):k.rectangle(E,L,w,T,R);C=l.insert(()=>S,":first-child"),C.attr("class","basic label-container").attr("style",D||null)}else{C=l.insert("rect",":first-child"),C.attr("class","basic label-container __APA__").attr("style",i).attr("rx",A??5).attr("ry",I??5).attr("x",E).attr("y",L).attr("width",w).attr("height",T);let k="priority"in e&&e.priority;if(k){let R=l.append("line"),S=E+2,O=L+Math.floor((A??0)/2),N=L+T-Math.floor((A??0)/2);R.attr("x1",S).attr("y1",O).attr("x2",S).attr("y2",N).attr("stroke-width","4").attr("stroke",SAe(k))}}return Qe(e,C),e.height=T,e.intersect=function(k){return qe.rect(e,k)},l}var SAe,QQ=M(()=>{"use strict";Ft();qt();zh();Xt();jt();SAe=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(KQ,"kanbanItem")});function ZQ(t){return t in z9}var CAe,AAe,z9,G9=M(()=>{"use strict";Vj();Wj();qj();jj();Qj();Jj();tK();nK();aK();oK();cK();hK();dK();mK();yK();xK();wK();kK();SK();AK();LK();NK();MK();OK();BK();zK();$K();UK();WK();qK();jK();QK();JK();tQ();nQ();aQ();oQ();cQ();hQ();dQ();mQ();yQ();xQ();wQ();kQ();SQ();AQ();LQ();NQ();MQ();OQ();BQ();zQ();$Q();UQ();WQ();jQ();QQ();CAe=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:pQ},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:lQ},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:gQ},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:EQ},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:lK},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:Kj},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:rQ},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:TK},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:VK},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:GK},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:IQ},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:PK},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:fK},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:DQ},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Yj},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:uQ},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:TQ},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:bQ},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:vK},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:EK},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:eK},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:rK},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:iK},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:HK},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:GQ},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:bK},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:RQ},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:YK},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:sK},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:uK},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:FQ},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:HQ},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:pK},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:PQ},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:gK},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:fQ},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:ZK},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:KK},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Hj},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Zj},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:_Q},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:CQ},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:VQ},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:iQ},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:XK}],AAe=o(()=>{let e=[...Object.entries({state:vQ,choice:Xj,note:eQ,rectWithTitle:sQ,labelRect:FK,iconSquare:RK,iconCircle:_K,icon:CK,iconRounded:DK,imageSquare:IK,anchor:$j,kanbanItem:KQ,classBox:XQ}),...CAe.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),z9=AAe();o(ZQ,"isValidShape")});function pZ(t){return typeof t>"u"||t===null}function _Ae(t){return typeof t=="object"&&t!==null}function LAe(t){return Array.isArray(t)?t:pZ(t)?[]:[t]}function DAe(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function V9(t,e){return Pi.repeat(" ",e-t.length)+t}function zAe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=$9(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=Pi.repeat(" ",e.indent)+V9((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=$9(t.buffer,n[s],i[s],t.position,d),l+=Pi.repeat(" ",e.indent)+V9((t.line+1).toString(),f)+" | "+h.str+` +`,l+=Pi.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=$9(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=Pi.repeat(" ",e.indent)+V9((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function UAe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function HAe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if($Ae.indexOf(r)===-1)throw new Es('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=UAe(e.styleAliases||null),VAe.indexOf(this.kind)===-1)throw new Es('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function JQ(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function WAe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function g8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Pi.isNegativeZero(t))return"-0.0";return r=t.toString(10),m8e.test(r)?r.replace("e",".e"):r}function y8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Pi.isNegativeZero(t))}function b8e(t){return t===null?!1:yZ.exec(t)!==null||vZ.exec(t)!==null}function w8e(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=yZ.exec(t),e===null&&(e=vZ.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function T8e(t){return t.toISOString()}function E8e(t){return t==="<<"||t===null}function C8e(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=j9;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}function A8e(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=j9,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function _8e(t){var e="",r=0,n,i,a=t.length,s=j9;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function L8e(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function M8e(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}function Z8e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||xZ,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function CZ(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=GAe(r),new Es(e,r)}function Qt(t,e){throw CZ(t,e)}function F5(t,e){t.onWarning&&t.onWarning.call(null,CZ(t,e))}function Gh(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=Pi.repeat(` +`,e-1))}function J8e(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),Ss(m)||lm(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),Ss(i)||r&&lm(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),Ss(i)||r&&lm(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),Ss(n))break}else{if(t.position===t.lineStart&&$5(t)||r&&lm(m))break;if(yc(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,Ci(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Gh(t,a,s,!1),Q9(t,t.line-u),a=s=t.position,l=!1),_d(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Gh(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function e_e(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Gh(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else yc(r)?(Gh(t,n,i,!0),Q9(t,Ci(t,!1,e)),n=i=t.position):t.position===t.lineStart&&$5(t)?Qt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Qt(t,"unexpected end of the stream within a single quoted scalar")}function t_e(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Gh(t,r,t.position,!0),t.position++,!0;if(l===92){if(Gh(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),yc(l))Ci(t,!1,e);else if(l<256&&EZ[l])t.result+=SZ[l],t.position++;else if((s=j8e(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=X8e(l))>=0?a=(a<<4)+s:Qt(t,"expected hexadecimal character");t.result+=Q8e(a),t.position++}else Qt(t,"unknown escape sequence");r=n=t.position}else yc(l)?(Gh(t,r,n,!0),Q9(t,Ci(t,!1,e)),r=n=t.position):t.position===t.lineStart&&$5(t)?Qt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Qt(t,"unexpected end of the stream within a double quoted scalar")}function r_e(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&Qt(t,"expected the node content, but found ','"):Qt(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),Ss(h)&&(d=p=!0,t.position++,Ci(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,um(t,e,P5,!1,!0),v=t.tag,y=t.result,Ci(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),Ci(t,!0,e),um(t,e,P5,!1,!0),x=t.result),m?cm(t,l,g,v,y,x,n,i,a):d?l.push(cm(t,null,g,v,y,x,n,i,a)):l.push(y),Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}Qt(t,"unexpected end of the stream within a flow collection")}function n_e(t,e){var r,n,i=U9,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)U9===i?i=d===43?eZ:H8e:Qt(t,"repeat of a chomping mode identifier");else if((f=K8e(d))>=0)f===0?Qt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Qt(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(_d(d)){do d=t.input.charCodeAt(++t.position);while(_d(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!yc(d)&&d!==0)}for(;d!==0;){for(K9(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),yc(d)){u++;continue}if(t.lineIndente)&&u!==0)Qt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),um(t,e,B5,!0,i)&&(v?g=t.result:y=t.result),v||(cm(t,d,p,m,g,y,s,l,u),m=g=y=null),Ci(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)Qt(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&Qt(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function l_e(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Ci(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!Ss(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Qt(t,"directive name must not be less than one character in length");s!==0;){for(;_d(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!yc(s));break}if(yc(s))break;for(r=t.position;s!==0&&!Ss(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&K9(t),$h.call(nZ,n)?nZ[n](t,n,i):F5(t,'unknown document directive "'+n+'"')}if(Ci(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Ci(t,!0,-1)):a&&Qt(t,"directives end mark is expected"),um(t,t.lineIndent-1,B5,!1,!0),Ci(t,!0,-1),t.checkLineBreaks&&Y8e.test(t.input.slice(e,t.position))&&F5(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&$5(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Ci(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=AZ(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function PZ(t){var e=/^\n* /;return e.test(t)}function F_e(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=P_e(xv(t,0))&&B_e(xv(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=xv(t,u),!kv(h))return om;y=y&&lZ(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=xv(t,u),h===wv)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!kv(h))return om;y=y&&lZ(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?BZ:a===Tv?om:q9:r>9&&PZ(t)?om:s?a===Tv?om:q9:p?zZ:FZ}function z_e(t,e,r,n,i){t.dump=function(){if(e.length===0)return t.quotingType===Tv?'""':"''";if(!t.noCompatMode&&(L_e.indexOf(e)!==-1||D_e.test(e)))return t.quotingType===Tv?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return O_e(t,h)}switch(o(u,"testAmbiguity"),F_e(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case BZ:return e;case q9:return"'"+e.replace(/'/g,"''")+"'";case FZ:return"|"+cZ(e,t.indent)+uZ(sZ(e,a));case zZ:return">"+cZ(e,t.indent)+uZ(sZ(G_e(e,s),a));case om:return'"'+$_e(e)+'"';default:throw new Es("impossible error: invalid scalar style")}}()}function cZ(t,e){var r=PZ(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}function uZ(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function G_e(t,e){for(var r=/(\n+)([^\n]*)/g,n=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,hZ(t.slice(0,h),e)}(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+hZ(u,e),i=a}return n}function hZ(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function $_e(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=xv(t,i),n=Na[r],!n&&kv(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||R_e(r);return e}function V_e(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&Cu(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function fZ(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&Cu(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=Y9(t,e)),t.dump&&wv===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function U_e(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Cu(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function H_e(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new Es("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&wv===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=Y9(t,e)),Cu(t,e+1,f,!0,d)&&(t.dump&&wv===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function dZ(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Cu(t,e,r,n,i,a,s){t.tag=null,t.dump=r,dZ(t,r,!1)||dZ(t,r,!0);var l=LZ.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(H_e(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(U_e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?fZ(t,e-1,t.dump,i):fZ(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(V_e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&z_e(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Es("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function W_e(t,e){var r=[],n=[],i,a;for(X9(t,r,n),i=0,a=n.length;i{"use strict";o(pZ,"isNothing");o(_Ae,"isObject");o(LAe,"toArray");o(DAe,"extend");o(NAe,"repeat");o(RAe,"isNegativeZero");MAe=pZ,IAe=_Ae,OAe=LAe,PAe=NAe,BAe=RAe,FAe=DAe,Pi={isNothing:MAe,isObject:IAe,toArray:OAe,repeat:PAe,isNegativeZero:BAe,extend:FAe};o(mZ,"formatError");o(bv,"YAMLException$1");bv.prototype=Object.create(Error.prototype);bv.prototype.constructor=bv;bv.prototype.toString=o(function(e){return this.name+": "+mZ(this,e)},"toString");Es=bv;o($9,"getLine");o(V9,"padStart");o(zAe,"makeSnippet");GAe=zAe,$Ae=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],VAe=["scalar","sequence","mapping"];o(UAe,"compileStyleAliases");o(HAe,"Type$1");Da=HAe;o(JQ,"compileList");o(WAe,"compileMap");o(H9,"Schema$1");H9.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof Da)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new Es("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof Da))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new Es("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new Es("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof Da))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(H9.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=JQ(i,"implicit"),i.compiledExplicit=JQ(i,"explicit"),i.compiledTypeMap=WAe(i.compiledImplicit,i.compiledExplicit),i},"extend");YAe=H9,qAe=new Da("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),XAe=new Da("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),jAe=new Da("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),KAe=new YAe({explicit:[qAe,XAe,jAe]});o(QAe,"resolveYamlNull");o(ZAe,"constructYamlNull");o(JAe,"isNull");e8e=new Da("tag:yaml.org,2002:null",{kind:"scalar",resolve:QAe,construct:ZAe,predicate:JAe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(t8e,"resolveYamlBoolean");o(r8e,"constructYamlBoolean");o(n8e,"isBoolean");i8e=new Da("tag:yaml.org,2002:bool",{kind:"scalar",resolve:t8e,construct:r8e,predicate:n8e,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(a8e,"isHexCode");o(s8e,"isOctCode");o(o8e,"isDecCode");o(l8e,"resolveYamlInteger");o(c8e,"constructYamlInteger");o(u8e,"isInteger");h8e=new Da("tag:yaml.org,2002:int",{kind:"scalar",resolve:l8e,construct:c8e,predicate:u8e,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),f8e=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(d8e,"resolveYamlFloat");o(p8e,"constructYamlFloat");m8e=/^[-+]?[0-9]+e/;o(g8e,"representYamlFloat");o(y8e,"isFloat");v8e=new Da("tag:yaml.org,2002:float",{kind:"scalar",resolve:d8e,construct:p8e,predicate:y8e,represent:g8e,defaultStyle:"lowercase"}),gZ=KAe.extend({implicit:[e8e,i8e,h8e,v8e]}),x8e=gZ,yZ=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),vZ=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(b8e,"resolveYamlTimestamp");o(w8e,"constructYamlTimestamp");o(T8e,"representYamlTimestamp");k8e=new Da("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:b8e,construct:w8e,instanceOf:Date,represent:T8e});o(E8e,"resolveYamlMerge");S8e=new Da("tag:yaml.org,2002:merge",{kind:"scalar",resolve:E8e}),j9=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(C8e,"resolveYamlBinary");o(A8e,"constructYamlBinary");o(_8e,"representYamlBinary");o(L8e,"isBinary");D8e=new Da("tag:yaml.org,2002:binary",{kind:"scalar",resolve:C8e,construct:A8e,predicate:L8e,represent:_8e}),N8e=Object.prototype.hasOwnProperty,R8e=Object.prototype.toString;o(M8e,"resolveYamlOmap");o(I8e,"constructYamlOmap");O8e=new Da("tag:yaml.org,2002:omap",{kind:"sequence",resolve:M8e,construct:I8e}),P8e=Object.prototype.toString;o(B8e,"resolveYamlPairs");o(F8e,"constructYamlPairs");z8e=new Da("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:B8e,construct:F8e}),G8e=Object.prototype.hasOwnProperty;o($8e,"resolveYamlSet");o(V8e,"constructYamlSet");U8e=new Da("tag:yaml.org,2002:set",{kind:"mapping",resolve:$8e,construct:V8e}),xZ=x8e.extend({implicit:[k8e,S8e],explicit:[D8e,O8e,z8e,U8e]}),$h=Object.prototype.hasOwnProperty,P5=1,bZ=2,wZ=3,B5=4,U9=1,H8e=2,eZ=3,W8e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Y8e=/[\x85\u2028\u2029]/,q8e=/[,\[\]\{\}]/,TZ=/^(?:!|!!|![a-z\-]+!)$/i,kZ=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(tZ,"_class");o(yc,"is_EOL");o(_d,"is_WHITE_SPACE");o(Ss,"is_WS_OR_EOL");o(lm,"is_FLOW_INDICATOR");o(X8e,"fromHexCode");o(j8e,"escapedHexLen");o(K8e,"fromDecimalCode");o(rZ,"simpleEscapeSequence");o(Q8e,"charFromCodepoint");EZ=new Array(256),SZ=new Array(256);for(Ad=0;Ad<256;Ad++)EZ[Ad]=rZ(Ad)?1:0,SZ[Ad]=rZ(Ad);o(Z8e,"State$1");o(CZ,"generateError");o(Qt,"throwError");o(F5,"throwWarning");nZ={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&Qt(e,"duplication of %YAML directive"),n.length!==1&&Qt(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Qt(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Qt(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&F5(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&Qt(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],TZ.test(i)||Qt(e,"ill-formed tag handle (first argument) of the TAG directive"),$h.call(e.tagMap,i)&&Qt(e,'there is a previously declared suffix for "'+i+'" tag handle'),kZ.test(a)||Qt(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Qt(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(Gh,"captureSegment");o(iZ,"mergeMappings");o(cm,"storeMappingPair");o(K9,"readLineBreak");o(Ci,"skipSeparationSpace");o($5,"testDocumentSeparator");o(Q9,"writeFoldedLines");o(J8e,"readPlainScalar");o(e_e,"readSingleQuotedScalar");o(t_e,"readDoubleQuotedScalar");o(r_e,"readFlowCollection");o(n_e,"readBlockScalar");o(aZ,"readBlockSequence");o(i_e,"readBlockMapping");o(a_e,"readTagProperty");o(s_e,"readAnchorProperty");o(o_e,"readAlias");o(um,"composeNode");o(l_e,"readDocument");o(AZ,"loadDocuments");o(c_e,"loadAll$1");o(u_e,"load$1");h_e=c_e,f_e=u_e,_Z={loadAll:h_e,load:f_e},LZ=Object.prototype.toString,DZ=Object.prototype.hasOwnProperty,Z9=65279,d_e=9,wv=10,p_e=13,m_e=32,g_e=33,y_e=34,W9=35,v_e=37,x_e=38,b_e=39,w_e=42,NZ=44,T_e=45,z5=58,k_e=61,E_e=62,S_e=63,C_e=64,RZ=91,MZ=93,A_e=96,IZ=123,__e=124,OZ=125,Na={};Na[0]="\\0";Na[7]="\\a";Na[8]="\\b";Na[9]="\\t";Na[10]="\\n";Na[11]="\\v";Na[12]="\\f";Na[13]="\\r";Na[27]="\\e";Na[34]='\\"';Na[92]="\\\\";Na[133]="\\N";Na[160]="\\_";Na[8232]="\\L";Na[8233]="\\P";L_e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],D_e=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(N_e,"compileStyleMap");o(R_e,"encodeHex");M_e=1,Tv=2;o(I_e,"State");o(sZ,"indentString");o(Y9,"generateNextLine");o(O_e,"testImplicitResolving");o(G5,"isWhitespace");o(kv,"isPrintable");o(oZ,"isNsCharOrWhitespace");o(lZ,"isPlainSafe");o(P_e,"isPlainSafeFirst");o(B_e,"isPlainSafeLast");o(xv,"codePointAt");o(PZ,"needIndentIndicator");BZ=1,q9=2,FZ=3,zZ=4,om=5;o(F_e,"chooseScalarStyle");o(z_e,"writeScalar");o(cZ,"blockHeader");o(uZ,"dropEndingNewline");o(G_e,"foldString");o(hZ,"foldLine");o($_e,"escapeString");o(V_e,"writeFlowSequence");o(fZ,"writeBlockSequence");o(U_e,"writeFlowMapping");o(H_e,"writeBlockMapping");o(dZ,"detectType");o(Cu,"writeNode");o(W_e,"getDuplicateReferences");o(X9,"inspectNode");o(Y_e,"dump$1");q_e=Y_e,X_e={dump:q_e};o(J9,"renamed");hm=gZ,fm=_Z.load,uNt=_Z.loadAll,hNt=X_e.dump,fNt=J9("safeLoad","load"),dNt=J9("safeLoadAll","loadAll"),pNt=J9("safeDump","dump")});function rL(t){let e=[];for(let r of t){let n=Sv.get(r);n?.styles&&(e=[...e,...n.styles??[]].map(i=>i.trim())),n?.textStyles&&(e=[...e,...n.textStyles??[]].map(i=>i.trim()))}return e}var j_e,GZ,dm,Vh,Cs,Sv,Au,nL,iL,U5,tL,Go,H5,W5,Y5,q5,K_e,Q_e,Z_e,J_e,e9e,t9e,r9e,aL,n9e,i9e,a9e,$Z,s9e,o9e,sL,VZ,UZ,l9e,HZ,c9e,u9e,h9e,f9e,d9e,Ev,WZ,YZ,p9e,m9e,qZ,g9e,y9e,v9e,x9e,b9e,XZ,jZ,w9e,T9e,k9e,E9e,S9e,C9e,X5,oL=M(()=>{"use strict";mr();hr();Vt();fr();G9();ht();V5();ki();j_e="flowchart-",GZ=0,dm=de(),Vh=new Map,Cs=[],Sv=new Map,Au=[],nL=new Map,iL=new Map,U5=0,tL=!0,W5=[],Y5=o(t=>je.sanitizeText(t,dm),"sanitizeText"),q5=o(function(t){for(let e of Vh.values())if(e.id===t)return e.domId;return t},"lookUpDomId"),K_e=o(function(t,e,r,n,i,a,s={},l){if(!t||t.trim().length===0)return;let u,h=Vh.get(t);if(h===void 0&&(h={id:t,labelType:"text",domId:j_e+t+"-"+GZ,styles:[],classes:[]},Vh.set(t,h)),GZ++,e!==void 0?(dm=de(),u=Y5(e.text.trim()),h.labelType=e.type,u.startsWith('"')&&u.endsWith('"')&&(u=u.substring(1,u.length-1)),h.text=u):h.text===void 0&&(h.text=t),r!==void 0&&(h.type=r),n?.forEach(function(f){h.styles.push(f)}),i?.forEach(function(f){h.classes.push(f)}),a!==void 0&&(h.dir=a),h.props===void 0?h.props=s:s!==void 0&&Object.assign(h.props,s),l!==void 0){let f;l.includes(` +`)?f=l+` +`:f=`{ +`+l+` +}`;let d=fm(f,{schema:hm});if(d.shape){if(d.shape!==d.shape.toLowerCase()||d.shape.includes("_"))throw new Error(`No such shape: ${d.shape}. Shape names should be lowercase.`);if(!ZQ(d.shape))throw new Error(`No such shape: ${d.shape}.`);h.type=d?.shape}d?.label&&(h.text=d?.label),d?.icon&&(h.icon=d?.icon,!d.label?.trim()&&h.text===t&&(h.text="")),d?.form&&(h.form=d?.form),d?.pos&&(h.pos=d?.pos),d?.img&&(h.img=d?.img,!d.label?.trim()&&h.text===t&&(h.text="")),d?.constraint&&(h.constraint=d.constraint),d.w&&(h.assetWidth=Number(d.w)),d.h&&(h.assetHeight=Number(d.h))}},"addVertex"),Q_e=o(function(t,e,r){let a={start:t,end:e,type:void 0,text:"",labelType:"text"};Y.info("abc78 Got edge...",a);let s=r.text;if(s!==void 0&&(a.text=Y5(s.text.trim()),a.text.startsWith('"')&&a.text.endsWith('"')&&(a.text=a.text.substring(1,a.text.length-1)),a.labelType=s.type),r!==void 0&&(a.type=r.type,a.stroke=r.stroke,a.length=r.length>10?10:r.length),Cs.length<(dm.maxEdges??500))Y.info("Pushing edge..."),Cs.push(a);else throw new Error(`Edge limit exceeded. ${Cs.length} edges found, but the limit is ${dm.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},"addSingleLink"),Z_e=o(function(t,e,r){Y.info("addLink",t,e,r);for(let n of t)for(let i of e)Q_e(n,i,r)},"addLink"),J_e=o(function(t,e){t.forEach(function(r){r==="default"?Cs.defaultInterpolate=e:Cs[r].interpolate=e})},"updateLinkInterpolate"),e9e=o(function(t,e){t.forEach(function(r){if(typeof r=="number"&&r>=Cs.length)throw new Error(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${Cs.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);r==="default"?Cs.defaultStyle=e:(Cs[r].style=e,(Cs[r]?.style?.length??0)>0&&!Cs[r]?.style?.some(n=>n?.startsWith("fill"))&&Cs[r]?.style?.push("fill:none"))})},"updateLink"),t9e=o(function(t,e){t.split(",").forEach(function(r){let n=Sv.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},Sv.set(r,n)),e?.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)})})},"addClass"),r9e=o(function(t){Go=t,/.*/.exec(Go)&&(Go="LR"),/.*v/.exec(Go)&&(Go="TB"),Go==="TD"&&(Go="TB")},"setDirection"),aL=o(function(t,e){for(let r of t.split(",")){let n=Vh.get(r);n&&n.classes.push(e);let i=nL.get(r);i&&i.classes.push(e)}},"setClass"),n9e=o(function(t,e){if(e!==void 0){e=Y5(e);for(let r of t.split(","))iL.set(H5==="gen-1"?q5(r):r,e)}},"setTooltip"),i9e=o(function(t,e,r){let n=q5(t);if(de().securityLevel!=="loose"||e===void 0)return;let i=[];if(typeof r=="string"){i=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),ze(this).classed("hover",!1)})},"setupToolTips");W5.push(HZ);c9e=o(function(t="gen-1"){Vh=new Map,Sv=new Map,Cs=[],W5=[HZ],Au=[],nL=new Map,U5=0,iL=new Map,tL=!0,H5=t,dm=de(),_r()},"clear"),u9e=o(t=>{H5=t||"gen-2"},"setGen"),h9e=o(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),f9e=o(function(t,e,r){let n=t.text.trim(),i=r.text;t===r&&/\s/.exec(r.text)&&(n=void 0);function a(h){let f={boolean:{},number:{},string:{}},d=[],p;return{nodeList:h.filter(function(g){let y=typeof g;return g.stmt&&g.stmt==="dir"?(p=g.value,!1):g.trim()===""?!1:y in f?f[y].hasOwnProperty(g)?!1:f[y][g]=!0:d.includes(g)?!1:d.push(g)}),dir:p}}o(a,"uniq");let{nodeList:s,dir:l}=a(e.flat());if(H5==="gen-1")for(let h=0;h2e3)return{result:!1,count:0};if(WZ[Ev]=e,Au[e].id===t)return{result:!0,count:0};let n=0,i=1;for(;n=0){let s=YZ(t,a);if(s.result)return{result:!0,count:i+s.count};i=i+s.count}n=n+1}return{result:!1,count:i}},"indexNodes2"),p9e=o(function(t){return WZ[t]},"getDepthFirstPos"),m9e=o(function(){Ev=-1,Au.length>0&&YZ("none",Au.length-1)},"indexNodes"),qZ=o(function(){return Au},"getSubGraphs"),g9e=o(()=>tL?(tL=!1,!0):!1,"firstGraph"),y9e=o(t=>{let e=t.trim(),r="arrow_open";switch(e[0]){case"<":r="arrow_point",e=e.slice(1);break;case"x":r="arrow_cross",e=e.slice(1);break;case"o":r="arrow_circle",e=e.slice(1);break}let n="normal";return e.includes("=")&&(n="thick"),e.includes(".")&&(n="dotted"),{type:r,stroke:n}},"destructStartLink"),v9e=o((t,e)=>{let r=e.length,n=0;for(let i=0;i{let e=t.trim(),r=e.slice(0,-1),n="arrow_open";switch(e.slice(-1)){case"x":n="arrow_cross",e.startsWith("x")&&(n="double_"+n,r=r.slice(1));break;case">":n="arrow_point",e.startsWith("<")&&(n="double_"+n,r=r.slice(1));break;case"o":n="arrow_circle",e.startsWith("o")&&(n="double_"+n,r=r.slice(1));break}let i="normal",a=r.length-1;r.startsWith("=")&&(i="thick"),r.startsWith("~")&&(i="invisible");let s=v9e(".",r);return s&&(i="dotted",a=s),{type:n,stroke:i,length:a}},"destructEndLink"),b9e=o((t,e)=>{let r=x9e(t),n;if(e){if(n=y9e(e),n.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=r.type;else{if(n.type!==r.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=r.length,n}return r},"destructLink"),XZ=o((t,e)=>{for(let r of t)if(r.nodes.includes(e))return!0;return!1},"exists"),jZ=o((t,e)=>{let r=[];return t.nodes.forEach((n,i)=>{XZ(e,n)||r.push(t.nodes[i])}),{nodes:r}},"makeUniq"),w9e={firstGraph:g9e},T9e=o(t=>{if(t.img)return"imageSquare";if(t.icon)return t.form==="circle"?"iconCircle":t.form==="square"?"iconSquare":t.form==="rounded"?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}},"getTypeFromVertex"),k9e=o((t,e)=>t.find(r=>r.id===e),"findNode"),E9e=o(t=>{let e="none",r="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":r=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":e=t.replace("double_",""),r=e;break}return{arrowTypeStart:e,arrowTypeEnd:r}},"destructEdgeType"),S9e=o((t,e,r,n,i,a)=>{let s=r.get(t.id),l=n.get(t.id)??!1,u=k9e(e,t.id);if(u)u.cssStyles=t.styles,u.cssCompiledStyles=rL(t.classes),u.cssClasses=t.classes.join(" ");else{let h={id:t.id,label:t.text,labelStyle:"",parentId:s,padding:i.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:rL(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:a,link:t.link,linkTarget:t.linkTarget,tooltip:$Z(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint};l?e.push({...h,isGroup:!0,shape:"rect"}):e.push({...h,isGroup:!1,shape:T9e(t)})}},"addNodeFromVertex");o(rL,"getCompiledStyles");C9e=o(()=>{let t=de(),e=[],r=[],n=qZ(),i=new Map,a=new Map;for(let u=n.length-1;u>=0;u--){let h=n[u];h.nodes.length>0&&a.set(h.id,!0);for(let f of h.nodes)i.set(f,h.id)}for(let u=n.length-1;u>=0;u--){let h=n[u];e.push({id:h.id,label:h.title,labelStyle:"",parentId:i.get(h.id),padding:8,cssCompiledStyles:rL(h.classes),cssClasses:h.classes.join(" "),shape:"rect",dir:h.dir,isGroup:!0,look:t.look})}VZ().forEach(u=>{S9e(u,e,i,a,t,t.look||"classic")});let l=UZ();return l.forEach((u,h)=>{let{arrowTypeStart:f,arrowTypeEnd:d}=E9e(u.type),p=[...l.defaultStyle??[]];u.style&&p.push(...u.style);let m={id:p5(u.start,u.end,{counter:h,prefix:"L"}),start:u.start,end:u.end,type:u.type??"normal",label:u.text,labelpos:"c",thickness:u.stroke,minlen:u.length,classes:u?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:u?.stroke==="invisible"?"none":f,arrowTypeEnd:u?.stroke==="invisible"?"none":d,arrowheadStyle:"fill: #333",labelStyle:p,style:p,pattern:u.stroke,look:t.look};r.push(m)}),{nodes:e,edges:r,other:{},config:t}},"getData"),X5={defaultConfig:o(()=>S4.flowchart,"defaultConfig"),setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,getData:C9e,setAccDescription:Br,addVertex:K_e,lookUpDomId:q5,addLink:Z_e,updateLinkInterpolate:J_e,updateLink:e9e,addClass:t9e,setDirection:r9e,setClass:aL,setTooltip:n9e,getTooltip:$Z,setClickEvent:s9e,setLink:a9e,bindFunctions:o9e,getDirection:sL,getVertices:VZ,getEdges:UZ,getClasses:l9e,clear:c9e,setGen:u9e,defaultStyle:h9e,addSubGraph:f9e,getDepthFirstPos:p9e,indexNodes:m9e,getSubGraphs:qZ,destructLink:b9e,lex:w9e,exists:XZ,makeUniq:jZ,setDiagramTitle:ln,getDiagramTitle:Jr}});var pm,j5=M(()=>{"use strict";mr();pm=o((t,e)=>{let r;return e==="sandbox"&&(r=ze("#i"+t)),(e==="sandbox"?ze(r.nodes()[0].contentDocument.body):ze("body")).select(`[id="${t}"]`)},"getDiagramElement")});var _u,Cv=M(()=>{"use strict";_u=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var KZ,A9e,_9e,L9e,D9e,N9e,R9e,QZ,mm,ZZ,K5=M(()=>{"use strict";Vt();fr();ht();Cv();mr();jt();Dl();w9();I5();zh();Xt();KZ=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=et(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=xr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Si(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(xr(r.flowchart.htmlLabels)){let L=g.children[0],C=ze(g);y=L.getBoundingClientRect(),C.attr("width",y.width),C.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let _;if(e.look==="handDrawn"){let L=Ke.svg(d),C=Ze(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),A=L.path(La(b,w,v,x,0),C);_=d.insert(()=>(Y.debug("Rough node insert CXC",A),A),":first-child"),_.select("path:nth-child(2)").attr("style",h.join(";")),_.select("path").attr("style",f.join(";").replace("fill","stroke"))}else _=d.insert("rect",":first-child"),_.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=_u(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let L=m.select("span");L&&L.attr("style",l)}let E=_.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(L){return Oh(e,L)},{cluster:d,labelBBox:y}},"rect"),A9e=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Oh(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),_9e=o(async(t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await gc(e.label,e.labelStyle,void 0,!0)),g=m.getBBox();if(xr(r.flowchart.htmlLabels)){let A=m.children[0],I=ze(m);g=A.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,w=e.height+y-g.height-6,_=e.x-x/2,T=e.y-b/2;e.width=x;let E=e.y-e.height/2-v+g.height+2,L;if(e.look==="handDrawn"){let A=e.cssClasses.includes("statediagram-cluster-alt"),I=Ke.svg(h),D=e.rx||e.ry?I.path(La(_,T,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(_,T,x,b,{seed:i});L=h.insert(()=>D,":first-child");let k=I.rectangle(_,E,x,w,{fill:A?a:s,fillStyle:A?"hachure":"solid",stroke:u,seed:i});L=h.insert(()=>D,":first-child"),p=h.insert(()=>k)}else L=f.insert("rect",":first-child"),L.attr("class","outer").attr("x",_).attr("y",T).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",_).attr("y",E).attr("width",x).attr("height",w);d.attr("transform",`translate(${e.x-g.width/2}, ${T+1-(xr(r.flowchart.htmlLabels)?0:3)})`);let C=L.node().getBBox();return e.height=C.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(A){return Oh(e,A)},{cluster:h,labelBBox:g}},"roundedWithTitle"),L9e=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=et(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=xr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Si(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(xr(r.flowchart.htmlLabels)){let L=g.children[0],C=ze(g);y=L.getBoundingClientRect(),C.attr("width",y.width),C.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let _;if(e.look==="handDrawn"){let L=Ke.svg(d),C=Ze(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),A=L.path(La(b,w,v,x,e.rx),C);_=d.insert(()=>(Y.debug("Rough node insert CXC",A),A),":first-child"),_.select("path:nth-child(2)").attr("style",h.join(";")),_.select("path").attr("style",f.join(";").replace("fill","stroke"))}else _=d.insert("rect",":first-child"),_.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=_u(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let L=m.select("span");L&&L.attr("style",l)}let E=_.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(L){return Oh(e,L)},{cluster:d,labelBBox:y}},"kanbanSection"),D9e=o((t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Ke.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Oh(e,y)},{cluster:s,labelBBox:{}}},"divider"),N9e=KZ,R9e={rect:KZ,squareRect:N9e,roundedWithTitle:_9e,noteGroup:A9e,divider:D9e,kanbanSection:L9e},QZ=new Map,mm=o(async(t,e)=>{let r=e.shape||"rect",n=await R9e[r](t,e);return QZ.set(e.id,n),n},"insertCluster"),ZZ=o(()=>{QZ=new Map},"clear")});function Q5(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=Un(t),e=Un(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var $o,Un,Z5,lL=M(()=>{"use strict";$o={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};o(Q5,"calculateDeltaAndAngle");Un=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),Z5=o(t=>({x:o(function(e,r,n){let i=0,a=Un(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaX:g}=Q5(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(Un(e).x-Un(n[n.length-1]).x),l=Math.abs(Un(e).y-Un(n[n.length-1]).y),u=Math.abs(Un(e).x-Un(n[0]).x),h=Math.abs(Un(e).y-Un(n[0]).y),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaY:g}=Q5(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(Un(e).y-Un(n[n.length-1]).y),l=Math.abs(Un(e).x-Un(n[n.length-1]).x),u=Math.abs(Un(e).y-Un(n[0]).y),h=Math.abs(Un(e).x-Un(n[0]).x),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";ht();eJ=o((t,e,r,n,i)=>{e.arrowTypeStart&&JZ(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&JZ(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),M9e={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},JZ=o((t,e,r,n,i,a)=>{let s=M9e[r];if(!s){Y.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function J5(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function P9e(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}var ew,ua,iJ,Av,tw,rw,I9e,O9e,rJ,nJ,B9e,nw,cL=M(()=>{"use strict";Vt();fr();ht();Dl();hr();lL();Cv();mr();jt();I5();tJ();ew=new Map,ua=new Map,iJ=o(()=>{ew.clear(),ua.clear()},"clear"),Av=o(t=>t?t.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),tw=o(async(t,e)=>{let r=xr(de().flowchart.htmlLabels),n=await Si(t,e.label,{style:Av(e.labelStyle),useHtmlLabels:r,addSvgBackground:!0,isNode:!1});Y.info("abc82",e,e.labelType);let i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let s=n.getBBox();if(r){let u=n.children[0],h=ze(n);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}a.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),ew.set(e.id,i),e.width=s.width,e.height=s.height;let l;if(e.startLabelLeft){let u=await gc(e.startLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).startLeft=h,J5(l,e.startLabelLeft)}if(e.startLabelRight){let u=await gc(e.startLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=h.node().appendChild(u),f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).startRight=h,J5(l,e.startLabelRight)}if(e.endLabelLeft){let u=await gc(e.endLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).endLeft=h,J5(l,e.endLabelLeft)}if(e.endLabelRight){let u=await gc(e.endLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).endRight=h,J5(l,e.endLabelRight)}return n},"insertEdgeLabel");o(J5,"setTerminalWidth");rw=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,ew.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=_u(n);if(t.label){let a=ew.get(t.id),s=t.x,l=t.y;if(r){let u=Ut.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=ua.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=ua.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=ua.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=ua.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),I9e=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),O9e=o((t,e,r)=>{Y.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{Y.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(Y.info("abc88 checking point",a,e),!I9e(e,a)&&!i){let s=O9e(e,n,a);Y.debug("abc88 inside",a,n,s),Y.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?Y.warn("abc88 no intersect",s,r):r.push(s),i=!0}else Y.warn("abc88 outside",a,n),n=a,i||r.push(a)}),Y.debug("returning points",r),r},"cutPathAtIntersect");o(P9e,"extractCornerPoints");nJ=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),B9e=o(function(t){let{cornerPointPositions:e}=P9e(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){Y.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else Y.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),nw=o(function(t,e,r,n,i,a,s){let{handDrawnSeed:l}=de(),u=e.points,h=!1,f=i;var d=a;d.intersect&&f.intersect&&(u=u.slice(1,e.points.length-1),u.unshift(f.intersect(u[0])),Y.debug("Last point APA12",e.start,"-->",e.end,u[u.length-1],d,d.intersect(u[u.length-1])),u.push(d.intersect(u[u.length-1]))),e.toCluster&&(Y.info("to cluster abc88",r.get(e.toCluster)),u=rJ(e.points,r.get(e.toCluster).node),h=!0),e.fromCluster&&(Y.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(u,null,2)),u=rJ(u.reverse(),r.get(e.fromCluster).node).reverse(),h=!0);let p=u.filter(L=>!Number.isNaN(L.y));p=B9e(p);let m=Do;e.curve&&(m=e.curve);let{x:g,y}=Z5(e),v=Ka().x(g).y(y).curve(m),x;switch(e.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-invisible";break;default:x="edge-thickness-normal"}switch(e.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break;default:x+=" edge-pattern-solid"}let b,w=v(p),_=Array.isArray(e.style)?e.style:[e.style];if(e.look==="handDrawn"){let L=Ke.svg(t);Object.assign([],p);let C=L.path(w,{roughness:.3,seed:l});x+=" transition",b=ze(C).select("path").attr("id",e.id).attr("class"," "+x+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((I,D)=>I+";"+D,""):"");let A=b.attr("d");b.attr("d",A),t.node().appendChild(b.node())}else b=t.append("path").attr("d",w).attr("id",e.id).attr("class"," "+x+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((L,C)=>L+";"+C,""):"");let T="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,T=T.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),Y.info("arrowTypeStart",e.arrowTypeStart),Y.info("arrowTypeEnd",e.arrowTypeEnd),eJ(b,e,T,s,n);let E={};return h&&(E.updatedPath=u),E.originalPath=e.points,E},"insertEdge")});var F9e,z9e,G9e,$9e,V9e,U9e,H9e,W9e,Y9e,q9e,X9e,iw,uL=M(()=>{"use strict";ht();F9e=o((t,e,r,n)=>{e.forEach(i=>{X9e[i](t,r,n)})},"insertMarkers"),z9e=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),G9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),$9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),V9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),U9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),H9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),W9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),Y9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),q9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),X9e={extension:z9e,composition:G9e,aggregation:$9e,dependency:V9e,lollipop:U9e,point:H9e,circle:W9e,cross:Y9e,barb:q9e},iw=F9e});async function gm(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?z9[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),aw.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var aw,aJ,sJ,_v,sw=M(()=>{"use strict";ht();G9();aw=new Map;o(gm,"insertNode");aJ=o((t,e)=>{aw.set(e.id,t)},"setNodeElem"),sJ=o(()=>{aw.clear()},"clear"),_v=o(t=>{let e=aw.get(t.id);Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var oJ,lJ=M(()=>{"use strict";Ua();fr();ht();K5();cL();uL();sw();Ft();hr();oJ={common:je,getConfig:Sr,insertCluster:mm,insertEdge:nw,insertEdgeLabel:tw,insertMarkers:iw,insertNode:gm,interpolateToCurve:Q_,labelHelper:ot,log:Y,positionEdgeLabel:rw}});function K9e(t){return typeof t=="symbol"||Zn(t)&&ca(t)==j9e}var j9e,ro,Ld=M(()=>{"use strict";xu();Mo();j9e="[object Symbol]";o(K9e,"isSymbol");ro=K9e});function Q9e(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(Q9e,"arrayMap");As=Q9e});function hJ(t){if(typeof t=="string")return t;if(Mt(t))return As(t,hJ)+"";if(ro(t))return uJ?uJ.call(t):"";var e=t+"";return e=="0"&&1/t==-Z9e?"-0":e}var Z9e,cJ,uJ,fJ,dJ=M(()=>{"use strict";gd();Dd();Vn();Ld();Z9e=1/0,cJ=ea?ea.prototype:void 0,uJ=cJ?cJ.toString:void 0;o(hJ,"baseToString");fJ=hJ});function eLe(t){for(var e=t.length;e--&&J9e.test(t.charAt(e)););return e}var J9e,pJ,mJ=M(()=>{"use strict";J9e=/\s/;o(eLe,"trimmedEndIndex");pJ=eLe});function rLe(t){return t&&t.slice(0,pJ(t)+1).replace(tLe,"")}var tLe,gJ,yJ=M(()=>{"use strict";mJ();tLe=/^\s+/;o(rLe,"baseTrim");gJ=rLe});function oLe(t){if(typeof t=="number")return t;if(ro(t))return vJ;if(yn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=yn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=gJ(t);var r=iLe.test(t);return r||aLe.test(t)?sLe(t.slice(2),r?2:8):nLe.test(t)?vJ:+t}var vJ,nLe,iLe,aLe,sLe,xJ,bJ=M(()=>{"use strict";yJ();Qs();Ld();vJ=NaN,nLe=/^[-+]0x[0-9a-f]+$/i,iLe=/^0b[01]+$/i,aLe=/^0o[0-7]+$/i,sLe=parseInt;o(oLe,"toNumber");xJ=oLe});function cLe(t){if(!t)return t===0?t:0;if(t=xJ(t),t===wJ||t===-wJ){var e=t<0?-1:1;return e*lLe}return t===t?t:0}var wJ,lLe,ym,hL=M(()=>{"use strict";bJ();wJ=1/0,lLe=17976931348623157e292;o(cLe,"toFinite");ym=cLe});function uLe(t){var e=ym(t),r=e%1;return e===e?r?e-r:e:0}var vc,vm=M(()=>{"use strict";hL();o(uLe,"toInteger");vc=uLe});var hLe,ow,TJ=M(()=>{"use strict";Ch();No();hLe=vs(ai,"WeakMap"),ow=hLe});function fLe(){}var Jn,fL=M(()=>{"use strict";o(fLe,"noop");Jn=fLe});function dLe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(dLe,"arrayEach");lw=dLe});function pLe(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(pLe,"baseFindIndex");cw=pLe});function mLe(t){return t!==t}var kJ,EJ=M(()=>{"use strict";o(mLe,"baseIsNaN");kJ=mLe});function gLe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(gLe,"strictIndexOf");SJ=gLe});function yLe(t,e,r){return e===e?SJ(t,e,r):cw(t,kJ,r)}var xm,uw=M(()=>{"use strict";pL();EJ();CJ();o(yLe,"baseIndexOf");xm=yLe});function vLe(t,e){var r=t==null?0:t.length;return!!r&&xm(t,e,0)>-1}var hw,mL=M(()=>{"use strict";uw();o(vLe,"arrayIncludes");hw=vLe});var xLe,AJ,_J=M(()=>{"use strict";F_();xLe=n5(Object.keys,Object),AJ=xLe});function TLe(t){if(!fc(t))return AJ(t);var e=[];for(var r in Object(t))wLe.call(t,r)&&r!="constructor"&&e.push(r);return e}var bLe,wLe,bm,fw=M(()=>{"use strict";Kp();_J();bLe=Object.prototype,wLe=bLe.hasOwnProperty;o(TLe,"baseKeys");bm=TLe});function kLe(t){return si(t)?l5(t):bm(t)}var zr,xc=M(()=>{"use strict";U_();fw();Io();o(kLe,"keys");zr=kLe});var ELe,SLe,CLe,ha,LJ=M(()=>{"use strict";em();wd();q_();Io();Kp();xc();ELe=Object.prototype,SLe=ELe.hasOwnProperty,CLe=h5(function(t,e){if(fc(e)||si(e)){Bo(e,zr(e),t);return}for(var r in e)SLe.call(e,r)&&dc(t,r,e[r])}),ha=CLe});function LLe(t,e){if(Mt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||ro(t)?!0:_Le.test(t)||!ALe.test(t)||e!=null&&t in Object(e)}var ALe,_Le,wm,dw=M(()=>{"use strict";Vn();Ld();ALe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_Le=/^\w*$/;o(LLe,"isKey");wm=LLe});function NLe(t){var e=Vp(t,function(n){return r.size===DLe&&r.clear(),n}),r=e.cache;return e}var DLe,DJ,NJ=M(()=>{"use strict";N_();DLe=500;o(NLe,"memoizeCapped");DJ=NLe});var RLe,MLe,ILe,RJ,MJ=M(()=>{"use strict";NJ();RLe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,MLe=/\\(\\)?/g,ILe=DJ(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(RLe,function(r,n,i,a){e.push(i?a.replace(MLe,"$1"):n||r)}),e}),RJ=ILe});function OLe(t){return t==null?"":fJ(t)}var pw,gL=M(()=>{"use strict";dJ();o(OLe,"toString");pw=OLe});function PLe(t,e){return Mt(t)?t:wm(t,e)?[t]:RJ(pw(t))}var Uh,Lv=M(()=>{"use strict";Vn();dw();MJ();gL();o(PLe,"castPath");Uh=PLe});function FLe(t){if(typeof t=="string"||ro(t))return t;var e=t+"";return e=="0"&&1/t==-BLe?"-0":e}var BLe,bc,Tm=M(()=>{"use strict";Ld();BLe=1/0;o(FLe,"toKey");bc=FLe});function zLe(t,e){e=Uh(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";Lv();Tm();o(zLe,"baseGet");Hh=zLe});function GLe(t,e,r){var n=t==null?void 0:Hh(t,e);return n===void 0?r:n}var IJ,OJ=M(()=>{"use strict";Dv();o(GLe,"get");IJ=GLe});function $Le(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o($Le,"arrayPush");km=$Le});function VLe(t){return Mt(t)||Al(t)||!!(PJ&&t&&t[PJ])}var PJ,BJ,FJ=M(()=>{"use strict";gd();Qp();Vn();PJ=ea?ea.isConcatSpreadable:void 0;o(VLe,"isFlattenable");BJ=VLe});function zJ(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=BJ),i||(i=[]);++a0&&r(l)?e>1?zJ(l,e-1,r,n,i):km(i,l):n||(i[i.length]=l)}return i}var wc,Em=M(()=>{"use strict";mw();FJ();o(zJ,"baseFlatten");wc=zJ});function ULe(t){var e=t==null?0:t.length;return e?wc(t,1):[]}var Wr,gw=M(()=>{"use strict";Em();o(ULe,"flatten");Wr=ULe});function HLe(t){return u5(c5(t,void 0,Wr),t+"")}var GJ,$J=M(()=>{"use strict";gw();H_();Y_();o(HLe,"flatRest");GJ=HLe});function WLe(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(WLe,"baseSlice");yw=WLe});function eDe(t){return JLe.test(t)}var YLe,qLe,XLe,jLe,KLe,QLe,ZLe,JLe,VJ,UJ=M(()=>{"use strict";YLe="\\ud800-\\udfff",qLe="\\u0300-\\u036f",XLe="\\ufe20-\\ufe2f",jLe="\\u20d0-\\u20ff",KLe=qLe+XLe+jLe,QLe="\\ufe0e\\ufe0f",ZLe="\\u200d",JLe=RegExp("["+ZLe+YLe+KLe+QLe+"]");o(eDe,"hasUnicode");VJ=eDe});function tDe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(tDe,"arrayReduce");HJ=tDe});function rDe(t,e){return t&&Bo(e,zr(e),t)}var YJ,qJ=M(()=>{"use strict";wd();xc();o(rDe,"baseAssign");YJ=rDe});function nDe(t,e){return t&&Bo(e,xs(e),t)}var XJ,jJ=M(()=>{"use strict";wd();Mh();o(nDe,"baseAssignIn");XJ=nDe});function iDe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(iDe,"arrayFilter");Sm=iDe});function aDe(){return[]}var xw,vL=M(()=>{"use strict";o(aDe,"stubArray");xw=aDe});var sDe,oDe,KJ,lDe,Cm,bw=M(()=>{"use strict";vw();vL();sDe=Object.prototype,oDe=sDe.propertyIsEnumerable,KJ=Object.getOwnPropertySymbols,lDe=KJ?function(t){return t==null?[]:(t=Object(t),Sm(KJ(t),function(e){return oDe.call(t,e)}))}:xw,Cm=lDe});function cDe(t,e){return Bo(t,Cm(t),e)}var QJ,ZJ=M(()=>{"use strict";wd();bw();o(cDe,"copySymbols");QJ=cDe});var uDe,hDe,ww,xL=M(()=>{"use strict";mw();i5();bw();vL();uDe=Object.getOwnPropertySymbols,hDe=uDe?function(t){for(var e=[];t;)km(e,Cm(t)),t=jp(t);return e}:xw,ww=hDe});function fDe(t,e){return Bo(t,ww(t),e)}var JJ,eee=M(()=>{"use strict";wd();xL();o(fDe,"copySymbolsIn");JJ=fDe});function dDe(t,e,r){var n=e(t);return Mt(t)?n:km(n,r(t))}var Tw,bL=M(()=>{"use strict";mw();Vn();o(dDe,"baseGetAllKeys");Tw=dDe});function pDe(t){return Tw(t,zr,Cm)}var Nv,wL=M(()=>{"use strict";bL();bw();xc();o(pDe,"getAllKeys");Nv=pDe});function mDe(t){return Tw(t,xs,ww)}var kw,TL=M(()=>{"use strict";bL();xL();Mh();o(mDe,"getAllKeysIn");kw=mDe});var gDe,Ew,tee=M(()=>{"use strict";Ch();No();gDe=vs(ai,"DataView"),Ew=gDe});var yDe,Sw,ree=M(()=>{"use strict";Ch();No();yDe=vs(ai,"Promise"),Sw=yDe});var vDe,Wh,kL=M(()=>{"use strict";Ch();No();vDe=vs(ai,"Set"),Wh=vDe});var nee,xDe,iee,aee,see,oee,bDe,wDe,TDe,kDe,EDe,Nd,no,Rd=M(()=>{"use strict";tee();K3();ree();kL();TJ();xu();__();nee="[object Map]",xDe="[object Object]",iee="[object Promise]",aee="[object Set]",see="[object WeakMap]",oee="[object DataView]",bDe=bu(Ew),wDe=bu(Lh),TDe=bu(Sw),kDe=bu(Wh),EDe=bu(ow),Nd=ca;(Ew&&Nd(new Ew(new ArrayBuffer(1)))!=oee||Lh&&Nd(new Lh)!=nee||Sw&&Nd(Sw.resolve())!=iee||Wh&&Nd(new Wh)!=aee||ow&&Nd(new ow)!=see)&&(Nd=o(function(t){var e=ca(t),r=e==xDe?t.constructor:void 0,n=r?bu(r):"";if(n)switch(n){case bDe:return oee;case wDe:return nee;case TDe:return iee;case kDe:return aee;case EDe:return see}return e},"getTag"));no=Nd});function ADe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&CDe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var SDe,CDe,lee,cee=M(()=>{"use strict";SDe=Object.prototype,CDe=SDe.hasOwnProperty;o(ADe,"initCloneArray");lee=ADe});function _De(t,e){var r=e?Xp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var uee,hee=M(()=>{"use strict";e5();o(_De,"cloneDataView");uee=_De});function DDe(t){var e=new t.constructor(t.source,LDe.exec(t));return e.lastIndex=t.lastIndex,e}var LDe,fee,dee=M(()=>{"use strict";LDe=/\w*$/;o(DDe,"cloneRegExp");fee=DDe});function NDe(t){return mee?Object(mee.call(t)):{}}var pee,mee,gee,yee=M(()=>{"use strict";gd();pee=ea?ea.prototype:void 0,mee=pee?pee.valueOf:void 0;o(NDe,"cloneSymbol");gee=NDe});function QDe(t,e,r){var n=t.constructor;switch(e){case GDe:return Xp(t);case RDe:case MDe:return new n(+t);case $De:return uee(t,r);case VDe:case UDe:case HDe:case WDe:case YDe:case qDe:case XDe:case jDe:case KDe:return t5(t,r);case IDe:return new n;case ODe:case FDe:return new n(t);case PDe:return fee(t);case BDe:return new n;case zDe:return gee(t)}}var RDe,MDe,IDe,ODe,PDe,BDe,FDe,zDe,GDe,$De,VDe,UDe,HDe,WDe,YDe,qDe,XDe,jDe,KDe,vee,xee=M(()=>{"use strict";e5();hee();dee();yee();P_();RDe="[object Boolean]",MDe="[object Date]",IDe="[object Map]",ODe="[object Number]",PDe="[object RegExp]",BDe="[object Set]",FDe="[object String]",zDe="[object Symbol]",GDe="[object ArrayBuffer]",$De="[object DataView]",VDe="[object Float32Array]",UDe="[object Float64Array]",HDe="[object Int8Array]",WDe="[object Int16Array]",YDe="[object Int32Array]",qDe="[object Uint8Array]",XDe="[object Uint8ClampedArray]",jDe="[object Uint16Array]",KDe="[object Uint32Array]";o(QDe,"initCloneByTag");vee=QDe});function JDe(t){return Zn(t)&&no(t)==ZDe}var ZDe,bee,wee=M(()=>{"use strict";Rd();Mo();ZDe="[object Map]";o(JDe,"baseIsMap");bee=JDe});var Tee,eNe,kee,Eee=M(()=>{"use strict";wee();bd();nv();Tee=Po&&Po.isMap,eNe=Tee?Oo(Tee):bee,kee=eNe});function rNe(t){return Zn(t)&&no(t)==tNe}var tNe,See,Cee=M(()=>{"use strict";Rd();Mo();tNe="[object Set]";o(rNe,"baseIsSet");See=rNe});var Aee,nNe,_ee,Lee=M(()=>{"use strict";Cee();bd();nv();Aee=Po&&Po.isSet,nNe=Aee?Oo(Aee):See,_ee=nNe});function Cw(t,e,r,n,i,a){var s,l=e&iNe,u=e&aNe,h=e&sNe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!yn(t))return t;var f=Mt(t);if(f){if(s=lee(t),!l)return r5(t,s)}else{var d=no(t),p=d==Nee||d==hNe;if(_l(t))return J3(t,l);if(d==Ree||d==Dee||p&&!i){if(s=u||p?{}:a5(t),!l)return u?JJ(t,XJ(s,t)):QJ(t,YJ(s,t))}else{if(!Sn[d])return i?t:{};s=vee(t,d,l)}}a||(a=new uc);var m=a.get(t);if(m)return m;a.set(t,s),_ee(t)?t.forEach(function(v){s.add(Cw(v,e,r,v,t,a))}):kee(t)&&t.forEach(function(v,x){s.set(x,Cw(v,e,r,x,t,a))});var g=h?u?kw:Nv:u?xs:zr,y=f?void 0:g(t);return lw(y||t,function(v,x){y&&(x=v,v=t[x]),dc(s,x,Cw(v,e,r,x,t,a))}),s}var iNe,aNe,sNe,Dee,oNe,lNe,cNe,uNe,Nee,hNe,fNe,dNe,Ree,pNe,mNe,gNe,yNe,vNe,xNe,bNe,wNe,TNe,kNe,ENe,SNe,CNe,ANe,_Ne,LNe,Sn,Aw,EL=M(()=>{"use strict";ev();dL();em();qJ();jJ();I_();B_();ZJ();eee();wL();TL();Rd();cee();xee();z_();Vn();Jp();Eee();Qs();Lee();xc();Mh();iNe=1,aNe=2,sNe=4,Dee="[object Arguments]",oNe="[object Array]",lNe="[object Boolean]",cNe="[object Date]",uNe="[object Error]",Nee="[object Function]",hNe="[object GeneratorFunction]",fNe="[object Map]",dNe="[object Number]",Ree="[object Object]",pNe="[object RegExp]",mNe="[object Set]",gNe="[object String]",yNe="[object Symbol]",vNe="[object WeakMap]",xNe="[object ArrayBuffer]",bNe="[object DataView]",wNe="[object Float32Array]",TNe="[object Float64Array]",kNe="[object Int8Array]",ENe="[object Int16Array]",SNe="[object Int32Array]",CNe="[object Uint8Array]",ANe="[object Uint8ClampedArray]",_Ne="[object Uint16Array]",LNe="[object Uint32Array]",Sn={};Sn[Dee]=Sn[oNe]=Sn[xNe]=Sn[bNe]=Sn[lNe]=Sn[cNe]=Sn[wNe]=Sn[TNe]=Sn[kNe]=Sn[ENe]=Sn[SNe]=Sn[fNe]=Sn[dNe]=Sn[Ree]=Sn[pNe]=Sn[mNe]=Sn[gNe]=Sn[yNe]=Sn[CNe]=Sn[ANe]=Sn[_Ne]=Sn[LNe]=!0;Sn[uNe]=Sn[Nee]=Sn[vNe]=!1;o(Cw,"baseClone");Aw=Cw});function NNe(t){return Aw(t,DNe)}var DNe,rn,SL=M(()=>{"use strict";EL();DNe=4;o(NNe,"clone");rn=NNe});function INe(t){return Aw(t,RNe|MNe)}var RNe,MNe,CL,Mee=M(()=>{"use strict";EL();RNe=1,MNe=4;o(INe,"cloneDeep");CL=INe});function ONe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(ONe,"compact");Tc=ONe});function BNe(t){return this.__data__.set(t,PNe),this}var PNe,Oee,Pee=M(()=>{"use strict";PNe="__lodash_hash_undefined__";o(BNe,"setCacheAdd");Oee=BNe});function FNe(t){return this.__data__.has(t)}var Bee,Fee=M(()=>{"use strict";o(FNe,"setCacheHas");Bee=FNe});function _w(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new vd;++e{"use strict";Q3();Pee();Fee();o(_w,"SetCache");_w.prototype.add=_w.prototype.push=Oee;_w.prototype.has=Bee;Am=_w});function zNe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(zNe,"arraySome");Dw=zNe});function GNe(t,e){return t.has(e)}var _m,Nw=M(()=>{"use strict";o(GNe,"cacheHas");_m=GNe});function UNe(t,e,r,n,i,a){var s=r&$Ne,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&VNe?new Am:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";Lw();AL();Nw();$Ne=1,VNe=2;o(UNe,"equalArrays");Rw=UNe});function HNe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var zee,Gee=M(()=>{"use strict";o(HNe,"mapToArray");zee=HNe});function WNe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var Lm,Mw=M(()=>{"use strict";o(WNe,"setToArray");Lm=WNe});function aRe(t,e,r,n,i,a,s){switch(r){case iRe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case nRe:return!(t.byteLength!=e.byteLength||!a(new qp(t),new qp(e)));case XNe:case jNe:case ZNe:return Ro(+t,+e);case KNe:return t.name==e.name&&t.message==e.message;case JNe:case tRe:return t==e+"";case QNe:var l=zee;case eRe:var u=n&YNe;if(l||(l=Lm),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=qNe,s.set(t,e);var f=Rw(l(t),l(e),n,i,a,s);return s.delete(t),f;case rRe:if(LL)return LL.call(t)==LL.call(e)}return!1}var YNe,qNe,XNe,jNe,KNe,QNe,ZNe,JNe,eRe,tRe,rRe,nRe,iRe,$ee,LL,Vee,Uee=M(()=>{"use strict";gd();O_();yd();_L();Gee();Mw();YNe=1,qNe=2,XNe="[object Boolean]",jNe="[object Date]",KNe="[object Error]",QNe="[object Map]",ZNe="[object Number]",JNe="[object RegExp]",eRe="[object Set]",tRe="[object String]",rRe="[object Symbol]",nRe="[object ArrayBuffer]",iRe="[object DataView]",$ee=ea?ea.prototype:void 0,LL=$ee?$ee.valueOf:void 0;o(aRe,"equalByTag");Vee=aRe});function cRe(t,e,r,n,i,a){var s=r&sRe,l=Nv(t),u=l.length,h=Nv(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:lRe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";wL();sRe=1,oRe=Object.prototype,lRe=oRe.hasOwnProperty;o(cRe,"equalObjects");Hee=cRe});function fRe(t,e,r,n,i,a){var s=Mt(t),l=Mt(e),u=s?qee:no(t),h=l?qee:no(e);u=u==Yee?Iw:u,h=h==Yee?Iw:h;var f=u==Iw,d=h==Iw,p=u==h;if(p&&_l(t)){if(!_l(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new uc),s||Nh(t)?Rw(t,e,r,n,i,a):Vee(t,e,u,r,n,i,a);if(!(r&uRe)){var m=f&&Xee.call(t,"__wrapped__"),g=d&&Xee.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new uc),i(y,v,r,n,a)}}return p?(a||(a=new uc),Hee(t,e,r,n,i,a)):!1}var uRe,Yee,qee,Iw,hRe,Xee,jee,Kee=M(()=>{"use strict";ev();_L();Uee();Wee();Rd();Vn();Jp();iv();uRe=1,Yee="[object Arguments]",qee="[object Array]",Iw="[object Object]",hRe=Object.prototype,Xee=hRe.hasOwnProperty;o(fRe,"baseIsEqualDeep");jee=fRe});function Qee(t,e,r,n,i){return t===e?!0:t==null||e==null||!Zn(t)&&!Zn(e)?t!==t&&e!==e:jee(t,e,r,n,Qee,i)}var Ow,DL=M(()=>{"use strict";Kee();Mo();o(Qee,"baseIsEqual");Ow=Qee});function mRe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";ev();DL();dRe=1,pRe=2;o(mRe,"baseIsMatch");Zee=mRe});function gRe(t){return t===t&&!yn(t)}var Pw,NL=M(()=>{"use strict";Qs();o(gRe,"isStrictComparable");Pw=gRe});function yRe(t){for(var e=zr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Pw(i)]}return e}var ete,tte=M(()=>{"use strict";NL();xc();o(yRe,"getMatchData");ete=yRe});function vRe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var Bw,RL=M(()=>{"use strict";o(vRe,"matchesStrictComparable");Bw=vRe});function xRe(t){var e=ete(t);return e.length==1&&e[0][2]?Bw(e[0][0],e[0][1]):function(r){return r===t||Zee(r,t,e)}}var rte,nte=M(()=>{"use strict";Jee();tte();RL();o(xRe,"baseMatches");rte=xRe});function bRe(t,e){return t!=null&&e in Object(t)}var ite,ate=M(()=>{"use strict";o(bRe,"baseHasIn");ite=bRe});function wRe(t,e,r){e=Uh(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";Lv();Qp();Vn();sv();s5();Tm();o(wRe,"hasPath");Fw=wRe});function TRe(t,e){return t!=null&&Fw(t,e,ite)}var zw,IL=M(()=>{"use strict";ate();ML();o(TRe,"hasIn");zw=TRe});function SRe(t,e){return wm(t)&&Pw(e)?Bw(bc(t),e):function(r){var n=IJ(r,t);return n===void 0&&n===e?zw(r,t):Ow(e,n,kRe|ERe)}}var kRe,ERe,ste,ote=M(()=>{"use strict";DL();OJ();IL();dw();NL();RL();Tm();kRe=1,ERe=2;o(SRe,"baseMatchesProperty");ste=SRe});function CRe(t){return function(e){return e?.[t]}}var Gw,OL=M(()=>{"use strict";o(CRe,"baseProperty");Gw=CRe});function ARe(t){return function(e){return Hh(e,t)}}var lte,cte=M(()=>{"use strict";Dv();o(ARe,"basePropertyDeep");lte=ARe});function _Re(t){return wm(t)?Gw(bc(t)):lte(t)}var ute,hte=M(()=>{"use strict";OL();cte();dw();Tm();o(_Re,"property");ute=_Re});function LRe(t){return typeof t=="function"?t:t==null?ta:typeof t=="object"?Mt(t)?ste(t[0],t[1]):rte(t):ute(t)}var dn,Qa=M(()=>{"use strict";nte();ote();Tu();Vn();hte();o(LRe,"baseIteratee");dn=LRe});function DRe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(DRe,"arrayAggregator");fte=DRe});function NRe(t,e){return t&&Yp(t,e,zr)}var Dm,$w=M(()=>{"use strict";Z3();xc();o(NRe,"baseForOwn");Dm=NRe});function RRe(t,e){return function(r,n){if(r==null)return r;if(!si(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";Io();o(RRe,"createBaseEach");pte=RRe});var MRe,_s,Yh=M(()=>{"use strict";$w();mte();MRe=pte(Dm),_s=MRe});function IRe(t,e,r,n){return _s(t,function(i,a,s){e(n,i,r(i),s)}),n}var gte,yte=M(()=>{"use strict";Yh();o(IRe,"baseAggregator");gte=IRe});function ORe(t,e){return function(r,n){var i=Mt(r)?fte:gte,a=e?e():{};return i(r,t,dn(n,2),a)}}var vte,xte=M(()=>{"use strict";dte();yte();Qa();Vn();o(ORe,"createAggregator");vte=ORe});var PRe,Vw,bte=M(()=>{"use strict";No();PRe=o(function(){return ai.Date.now()},"now"),Vw=PRe});var wte,BRe,FRe,qh,Tte=M(()=>{"use strict";tm();yd();Td();Mh();wte=Object.prototype,BRe=wte.hasOwnProperty,FRe=pc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&Zs(e[0],e[1],i)&&(n=1);++r{"use strict";o(zRe,"arrayIncludesWith");Uw=zRe});function $Re(t,e,r,n){var i=-1,a=hw,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=As(e,Oo(r))),n?(a=Uw,s=!1):e.length>=GRe&&(a=_m,s=!1,e=new Am(e));e:for(;++i{"use strict";Lw();mL();PL();Dd();bd();Nw();GRe=200;o($Re,"baseDifference");kte=$Re});var VRe,Xh,Ste=M(()=>{"use strict";Ete();Em();tm();o5();VRe=pc(function(t,e){return xd(t)?kte(t,wc(e,1,xd,!0)):[]}),Xh=VRe});function URe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var fa,Cte=M(()=>{"use strict";o(URe,"last");fa=URe});function HRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),yw(t,e<0?0:e,n)):[]}var mi,Ate=M(()=>{"use strict";yL();vm();o(HRe,"drop");mi=HRe});function WRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),e=n-e,yw(t,0,e<0?0:e)):[]}var Lu,_te=M(()=>{"use strict";yL();vm();o(WRe,"dropRight");Lu=WRe});function YRe(t){return typeof t=="function"?t:ta}var Nm,Hw=M(()=>{"use strict";Tu();o(YRe,"castFunction");Nm=YRe});function qRe(t,e){var r=Mt(t)?lw:_s;return r(t,Nm(e))}var Ce,Ww=M(()=>{"use strict";dL();Yh();Hw();Vn();o(qRe,"forEach");Ce=qRe});var Lte=M(()=>{"use strict";Ww()});function XRe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(XRe,"arrayEvery");Dte=XRe});function jRe(t,e){var r=!0;return _s(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Rte,Mte=M(()=>{"use strict";Yh();o(jRe,"baseEvery");Rte=jRe});function KRe(t,e,r){var n=Mt(t)?Dte:Rte;return r&&Zs(t,e,r)&&(e=void 0),n(t,dn(e,3))}var Ra,Ite=M(()=>{"use strict";Nte();Mte();Qa();Vn();Td();o(KRe,"every");Ra=KRe});function QRe(t,e){var r=[];return _s(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var Yw,BL=M(()=>{"use strict";Yh();o(QRe,"baseFilter");Yw=QRe});function ZRe(t,e){var r=Mt(t)?Sm:Yw;return r(t,dn(e,3))}var Yr,FL=M(()=>{"use strict";vw();BL();Qa();Vn();o(ZRe,"filter");Yr=ZRe});function JRe(t){return function(e,r,n){var i=Object(e);if(!si(e)){var a=dn(r,3);e=zr(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Ote,Pte=M(()=>{"use strict";Qa();Io();xc();o(JRe,"createFind");Ote=JRe});function tMe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=eMe(n+i,0)),cw(t,dn(e,3),i)}var eMe,Bte,Fte=M(()=>{"use strict";pL();Qa();vm();eMe=Math.max;o(tMe,"findIndex");Bte=tMe});var rMe,Za,zte=M(()=>{"use strict";Pte();Fte();rMe=Ote(Bte),Za=rMe});function nMe(t){return t&&t.length?t[0]:void 0}var ra,Gte=M(()=>{"use strict";o(nMe,"head");ra=nMe});var $te=M(()=>{"use strict";Gte()});function iMe(t,e){var r=-1,n=si(t)?Array(t.length):[];return _s(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var qw,zL=M(()=>{"use strict";Yh();Io();o(iMe,"baseMap");qw=iMe});function aMe(t,e){var r=Mt(t)?As:qw;return r(t,dn(e,3))}var Je,Rm=M(()=>{"use strict";Dd();Qa();zL();Vn();o(aMe,"map");Je=aMe});function sMe(t,e){return wc(Je(t,e),1)}var da,GL=M(()=>{"use strict";Em();Rm();o(sMe,"flatMap");da=sMe});function oMe(t,e){return t==null?t:Yp(t,Nm(e),xs)}var $L,Vte=M(()=>{"use strict";Z3();Hw();Mh();o(oMe,"forIn");$L=oMe});function lMe(t,e){return t&&Dm(t,Nm(e))}var VL,Ute=M(()=>{"use strict";$w();Hw();o(lMe,"forOwn");VL=lMe});var cMe,uMe,hMe,UL,Hte=M(()=>{"use strict";Wp();xte();cMe=Object.prototype,uMe=cMe.hasOwnProperty,hMe=vte(function(t,e,r){uMe.call(t,r)?t[r].push(e):hc(t,r,[e])}),UL=hMe});function fMe(t,e){return t>e}var Wte,Yte=M(()=>{"use strict";o(fMe,"baseGt");Wte=fMe});function mMe(t,e){return t!=null&&pMe.call(t,e)}var dMe,pMe,qte,Xte=M(()=>{"use strict";dMe=Object.prototype,pMe=dMe.hasOwnProperty;o(mMe,"baseHas");qte=mMe});function gMe(t,e){return t!=null&&Fw(t,e,qte)}var It,jte=M(()=>{"use strict";Xte();ML();o(gMe,"has");It=gMe});function vMe(t){return typeof t=="string"||!Mt(t)&&Zn(t)&&ca(t)==yMe}var yMe,gi,Xw=M(()=>{"use strict";xu();Vn();Mo();yMe="[object String]";o(vMe,"isString");gi=vMe});function xMe(t,e){return As(e,function(r){return t[r]})}var Kte,Qte=M(()=>{"use strict";Dd();o(xMe,"baseValues");Kte=xMe});function bMe(t){return t==null?[]:Kte(t,zr(t))}var br,HL=M(()=>{"use strict";Qte();xc();o(bMe,"values");br=bMe});function TMe(t,e,r,n){t=si(t)?t:br(t),r=r&&!n?vc(r):0;var i=t.length;return r<0&&(r=wMe(i+r,0)),gi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&xm(t,e,r)>-1}var wMe,Hn,Zte=M(()=>{"use strict";uw();Io();Xw();vm();HL();wMe=Math.max;o(TMe,"includes");Hn=TMe});function EMe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=kMe(n+i,0)),xm(t,e,i)}var kMe,jw,Jte=M(()=>{"use strict";uw();vm();kMe=Math.max;o(EMe,"indexOf");jw=EMe});function LMe(t){if(t==null)return!0;if(si(t)&&(Mt(t)||typeof t=="string"||typeof t.splice=="function"||_l(t)||Nh(t)||Al(t)))return!t.length;var e=no(t);if(e==SMe||e==CMe)return!t.size;if(fc(t))return!bm(t).length;for(var r in t)if(_Me.call(t,r))return!1;return!0}var SMe,CMe,AMe,_Me,cr,Kw=M(()=>{"use strict";fw();Rd();Qp();Vn();Io();Jp();Kp();iv();SMe="[object Map]",CMe="[object Set]",AMe=Object.prototype,_Me=AMe.hasOwnProperty;o(LMe,"isEmpty");cr=LMe});function NMe(t){return Zn(t)&&ca(t)==DMe}var DMe,ere,tre=M(()=>{"use strict";xu();Mo();DMe="[object RegExp]";o(NMe,"baseIsRegExp");ere=NMe});var rre,RMe,Vo,nre=M(()=>{"use strict";tre();bd();nv();rre=Po&&Po.isRegExp,RMe=rre?Oo(rre):ere,Vo=RMe});function MMe(t){return t===void 0}var dr,ire=M(()=>{"use strict";o(MMe,"isUndefined");dr=MMe});function IMe(t,e){return t{"use strict";o(IMe,"baseLt");Qw=IMe});function OMe(t,e){var r={};return e=dn(e,3),Dm(t,function(n,i,a){hc(r,i,e(n,i,a))}),r}var Md,are=M(()=>{"use strict";Wp();$w();Qa();o(OMe,"mapValues");Md=OMe});function PMe(t,e,r){for(var n=-1,i=t.length;++n{"use strict";Ld();o(PMe,"baseExtremum");Mm=PMe});function BMe(t){return t&&t.length?Mm(t,ta,Wte):void 0}var Ls,sre=M(()=>{"use strict";Zw();Yte();Tu();o(BMe,"max");Ls=BMe});function FMe(t){return t&&t.length?Mm(t,ta,Qw):void 0}var Nl,YL=M(()=>{"use strict";Zw();WL();Tu();o(FMe,"min");Nl=FMe});function zMe(t,e){return t&&t.length?Mm(t,dn(e,2),Qw):void 0}var Id,ore=M(()=>{"use strict";Zw();Qa();WL();o(zMe,"minBy");Id=zMe});function $Me(t){if(typeof t!="function")throw new TypeError(GMe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var GMe,lre,cre=M(()=>{"use strict";GMe="Expected a function";o($Me,"negate");lre=$Me});function VMe(t,e,r,n){if(!yn(t))return t;e=Uh(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";em();Lv();sv();Qs();Tm();o(VMe,"baseSet");ure=VMe});function UMe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";Dv();hre();Lv();o(UMe,"basePickBy");Jw=UMe});function HMe(t,e){if(t==null)return{};var r=As(kw(t),function(n){return[n]});return e=dn(e),Jw(t,r,function(n,i){return e(n,i[0])})}var Ds,fre=M(()=>{"use strict";Dd();Qa();qL();TL();o(HMe,"pickBy");Ds=HMe});function WMe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var dre,pre=M(()=>{"use strict";o(WMe,"baseSortBy");dre=WMe});function YMe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=ro(t),s=e!==void 0,l=e===null,u=e===e,h=ro(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";Ld();o(YMe,"compareAscending");mre=YMe});function qMe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var yre,vre=M(()=>{"use strict";gre();o(qMe,"compareMultiple");yre=qMe});function XMe(t,e,r){e.length?e=As(e,function(a){return Mt(a)?function(s){return Hh(s,a.length===1?a[0]:a)}:a}):e=[ta];var n=-1;e=As(e,Oo(dn));var i=qw(t,function(a,s,l){var u=As(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return dre(i,function(a,s){return yre(a,s,r)})}var xre,bre=M(()=>{"use strict";Dd();Dv();Qa();zL();pre();bd();vre();Tu();Vn();o(XMe,"baseOrderBy");xre=XMe});var jMe,wre,Tre=M(()=>{"use strict";OL();jMe=Gw("length"),wre=jMe});function oIe(t){for(var e=kre.lastIndex=0;kre.test(t);)++e;return e}var Ere,KMe,QMe,ZMe,JMe,eIe,tIe,XL,jL,rIe,Sre,Cre,Are,nIe,_re,Lre,iIe,aIe,sIe,kre,Dre,Nre=M(()=>{"use strict";Ere="\\ud800-\\udfff",KMe="\\u0300-\\u036f",QMe="\\ufe20-\\ufe2f",ZMe="\\u20d0-\\u20ff",JMe=KMe+QMe+ZMe,eIe="\\ufe0e\\ufe0f",tIe="["+Ere+"]",XL="["+JMe+"]",jL="\\ud83c[\\udffb-\\udfff]",rIe="(?:"+XL+"|"+jL+")",Sre="[^"+Ere+"]",Cre="(?:\\ud83c[\\udde6-\\uddff]){2}",Are="[\\ud800-\\udbff][\\udc00-\\udfff]",nIe="\\u200d",_re=rIe+"?",Lre="["+eIe+"]?",iIe="(?:"+nIe+"(?:"+[Sre,Cre,Are].join("|")+")"+Lre+_re+")*",aIe=Lre+_re+iIe,sIe="(?:"+[Sre+XL+"?",XL,Cre,Are,tIe].join("|")+")",kre=RegExp(jL+"(?="+jL+")|"+sIe+aIe,"g");o(oIe,"unicodeSize");Dre=oIe});function lIe(t){return VJ(t)?Dre(t):wre(t)}var Rre,Mre=M(()=>{"use strict";Tre();UJ();Nre();o(lIe,"stringSize");Rre=lIe});function cIe(t,e){return Jw(t,e,function(r,n){return zw(t,n)})}var Ire,Ore=M(()=>{"use strict";qL();IL();o(cIe,"basePick");Ire=cIe});var uIe,Od,Pre=M(()=>{"use strict";Ore();$J();uIe=GJ(function(t,e){return t==null?{}:Ire(t,e)}),Od=uIe});function dIe(t,e,r,n){for(var i=-1,a=fIe(hIe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var hIe,fIe,Bre,Fre=M(()=>{"use strict";hIe=Math.ceil,fIe=Math.max;o(dIe,"baseRange");Bre=dIe});function pIe(t){return function(e,r,n){return n&&typeof n!="number"&&Zs(e,r,n)&&(r=n=void 0),e=ym(e),r===void 0?(r=e,e=0):r=ym(r),n=n===void 0?e{"use strict";Fre();Td();hL();o(pIe,"createRange");zre=pIe});var mIe,Uo,$re=M(()=>{"use strict";Gre();mIe=zre(),Uo=mIe});function gIe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var Vre,Ure=M(()=>{"use strict";o(gIe,"baseReduce");Vre=gIe});function yIe(t,e,r){var n=Mt(t)?HJ:Vre,i=arguments.length<3;return n(t,dn(e,4),r,i,_s)}var qr,KL=M(()=>{"use strict";WJ();Yh();Qa();Ure();Vn();o(yIe,"reduce");qr=yIe});function vIe(t,e){var r=Mt(t)?Sm:Yw;return r(t,lre(dn(e,3)))}var jh,Hre=M(()=>{"use strict";vw();BL();Qa();Vn();cre();o(vIe,"reject");jh=vIe});function wIe(t){if(t==null)return 0;if(si(t))return gi(t)?Rre(t):t.length;var e=no(t);return e==xIe||e==bIe?t.size:bm(t).length}var xIe,bIe,QL,Wre=M(()=>{"use strict";fw();Rd();Io();Xw();Mre();xIe="[object Map]",bIe="[object Set]";o(wIe,"size");QL=wIe});function TIe(t,e){var r;return _s(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var Yre,qre=M(()=>{"use strict";Yh();o(TIe,"baseSome");Yre=TIe});function kIe(t,e,r){var n=Mt(t)?Dw:Yre;return r&&Zs(t,e,r)&&(e=void 0),n(t,dn(e,3))}var Rv,Xre=M(()=>{"use strict";AL();Qa();qre();Vn();Td();o(kIe,"some");Rv=kIe});var EIe,kc,jre=M(()=>{"use strict";Em();bre();tm();Td();EIe=pc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&Zs(t,e[0],e[1])?e=[]:r>2&&Zs(e[0],e[1],e[2])&&(e=[e[0]]),xre(t,wc(e,1),[])}),kc=EIe});var SIe,CIe,Kre,Qre=M(()=>{"use strict";kL();fL();Mw();SIe=1/0,CIe=Wh&&1/Lm(new Wh([,-0]))[1]==SIe?function(t){return new Wh(t)}:Jn,Kre=CIe});function _Ie(t,e,r){var n=-1,i=hw,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=Uw;else if(a>=AIe){var h=e?null:Kre(t);if(h)return Lm(h);s=!1,i=_m,u=new Am}else u=e?[]:l;e:for(;++n{"use strict";Lw();mL();PL();Nw();Qre();Mw();AIe=200;o(_Ie,"baseUniq");Im=_Ie});var LIe,ZL,Zre=M(()=>{"use strict";Em();tm();eT();o5();LIe=pc(function(t){return Im(wc(t,1,xd,!0))}),ZL=LIe});function DIe(t){return t&&t.length?Im(t):[]}var Om,Jre=M(()=>{"use strict";eT();o(DIe,"uniq");Om=DIe});function NIe(t,e){return t&&t.length?Im(t,dn(e,2)):[]}var ene,tne=M(()=>{"use strict";Qa();eT();o(NIe,"uniqBy");ene=NIe});function MIe(t){var e=++RIe;return pw(t)+e}var RIe,Pd,rne=M(()=>{"use strict";gL();RIe=0;o(MIe,"uniqueId");Pd=MIe});function IIe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(IIe,"baseZipObject");nne=IIe});function OIe(t,e){return nne(t||[],e||[],dc)}var tT,ane=M(()=>{"use strict";em();ine();o(OIe,"zipObject");tT=OIe});var Ht=M(()=>{"use strict";LJ();SL();Mee();Iee();W_();Tte();Ste();Ate();_te();Lte();Ite();FL();zte();$te();GL();gw();Ww();Vte();Ute();Hte();jte();Tu();Zte();Jte();Vn();Kw();jy();Qs();nre();Xw();ire();xc();Cte();Rm();are();sre();X_();YL();ore();fL();bte();Pre();fre();$re();KL();Hre();Wre();Xre();jre();Zre();Jre();rne();HL();ane();});function one(t,e){t[e]?t[e]++:t[e]=1}function lne(t,e){--t[e]||delete t[e]}function Mv(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+sne+a+sne+(dr(n)?PIe:n)}function BIe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function JL(t,e){return Mv(t,e.v,e.w,e.name)}var PIe,Bd,sne,Mr,rT=M(()=>{"use strict";Ht();PIe="\0",Bd="\0",sne="",Mr=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=bs(void 0),this._defaultEdgeLabelFn=bs(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Bd]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Ei(e)||(e=bs(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return zr(this._nodes)}sources(){var e=this;return Yr(this.nodes(),function(r){return cr(e._in[r])})}sinks(){var e=this;return Yr(this.nodes(),function(r){return cr(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Ce(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=Bd,this._children[e]={},this._children[Bd][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Ce(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Ce(zr(this._in[e]),r),delete this._in[e],delete this._preds[e],Ce(zr(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(dr(r))r=Bd;else{r+="";for(var n=r;!dr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==Bd)return r}}children(e){if(dr(e)&&(e=Bd),this._isCompound){var r=this._children[e];if(r)return zr(r)}else{if(e===Bd)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return zr(r)}successors(e){var r=this._sucs[e];if(r)return zr(r)}neighbors(e){var r=this.predecessors(e);if(r)return ZL(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Ce(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Ce(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Ce(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Ei(e)||(e=bs(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return br(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return qr(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,dr(n)||(n=""+n);var l=Mv(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!dr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=BIe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,one(this._preds[r],e),one(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],lne(this._preds[r],e),lne(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};Mr.prototype._nodeCount=0;Mr.prototype._edgeCount=0;o(one,"incrementOrInitEntry");o(lne,"decrementOrRemoveEntry");o(Mv,"edgeArgsToId");o(BIe,"edgeArgsToObj");o(JL,"edgeObjToId")});var Ns=M(()=>{"use strict";rT()});function cne(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function FIe(t,e){if(t!=="_next"&&t!=="_prev")return e}var nT,une=M(()=>{"use strict";nT=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return cne(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&cne(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,FIe)),n=n._prev;return"["+e.join(", ")+"]"}};o(cne,"unlink");o(FIe,"filterOutLinks")});function hne(t,e){if(t.nodeCount()<=1)return[];var r=$Ie(t,e||zIe),n=GIe(r.graph,r.buckets,r.zeroIdx);return Wr(Je(n,function(i){return t.outEdges(i.v,i.w)}))}function GIe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)eD(t,e,r,s);for(;s=i.dequeue();)eD(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(eD(t,e,r,s,!0));break}}}return n}function eD(t,e,r,n,i){var a=i?[]:void 0;return Ce(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,tD(e,r,u)}),Ce(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,tD(e,r,h)}),t.removeNode(n.v),a}function $Ie(t,e){var r=new Mr,n=0,i=0;Ce(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Ce(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Uo(i+n+3).map(function(){return new nT}),s=n+1;return Ce(r.nodes(),function(l){tD(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function tD(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var zIe,fne=M(()=>{"use strict";Ht();Ns();une();zIe=bs(1);o(hne,"greedyFAS");o(GIe,"doGreedyFAS");o(eD,"removeNode");o($Ie,"buildState");o(tD,"assignBucket")});function dne(t){var e=t.graph().acyclicer==="greedy"?hne(t,r(t)):VIe(t);Ce(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,Pd("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function VIe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Ce(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Ce(t.nodes(),i),e}function pne(t){Ce(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var rD=M(()=>{"use strict";Ht();fne();o(dne,"run");o(VIe,"dfsFAS");o(pne,"undo")});function Ec(t,e,r,n){var i;do i=Pd(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function gne(t){var e=new Mr().setGraph(t.graph());return Ce(t.nodes(),function(r){e.setNode(r,t.node(r))}),Ce(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function iT(t){var e=new Mr({multigraph:t.isMultigraph()}).setGraph(t.graph());return Ce(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Ce(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function nD(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function Kh(t){var e=Je(Uo(aD(t)+1),function(){return[]});return Ce(t.nodes(),function(r){var n=t.node(r),i=n.rank;dr(i)||(e[i][n.order]=r)}),e}function yne(t){var e=Nl(Je(t.nodes(),function(r){return t.node(r).rank}));Ce(t.nodes(),function(r){var n=t.node(r);It(n,"rank")&&(n.rank-=e)})}function vne(t){var e=Nl(Je(t.nodes(),function(a){return t.node(a).rank})),r=[];Ce(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Ce(r,function(a,s){dr(a)&&s%i!==0?--n:n&&Ce(a,function(l){t.node(l).rank+=n})})}function iD(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Ec(t,"border",i,e)}function aD(t){return Ls(Je(t.nodes(),function(e){var r=t.node(e).rank;if(!dr(r))return r}))}function xne(t,e){var r={lhs:[],rhs:[]};return Ce(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function bne(t,e){var r=Vw();try{return e()}finally{console.log(t+" time: "+(Vw()-r)+"ms")}}function wne(t,e){return e()}var Sc=M(()=>{"use strict";Ht();Ns();o(Ec,"addDummyNode");o(gne,"simplify");o(iT,"asNonCompoundGraph");o(nD,"intersectRect");o(Kh,"buildLayerMatrix");o(yne,"normalizeRanks");o(vne,"removeEmptyRanks");o(iD,"addBorderNode");o(aD,"maxRank");o(xne,"partition");o(bne,"time");o(wne,"notime")});function kne(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Ce(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";Ht();Sc();o(kne,"addBorderSegments");o(Tne,"addBorderNode")});function Cne(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&_ne(t)}function Ane(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&UIe(t),(e==="lr"||e==="rl")&&(HIe(t),_ne(t))}function _ne(t){Ce(t.nodes(),function(e){Sne(t.node(e))}),Ce(t.edges(),function(e){Sne(t.edge(e))})}function Sne(t){var e=t.width;t.width=t.height,t.height=e}function UIe(t){Ce(t.nodes(),function(e){sD(t.node(e))}),Ce(t.edges(),function(e){var r=t.edge(e);Ce(r.points,sD),Object.prototype.hasOwnProperty.call(r,"y")&&sD(r)})}function sD(t){t.y=-t.y}function HIe(t){Ce(t.nodes(),function(e){oD(t.node(e))}),Ce(t.edges(),function(e){var r=t.edge(e);Ce(r.points,oD),Object.prototype.hasOwnProperty.call(r,"x")&&oD(r)})}function oD(t){var e=t.x;t.x=t.y,t.y=e}var Lne=M(()=>{"use strict";Ht();o(Cne,"adjust");o(Ane,"undo");o(_ne,"swapWidthHeight");o(Sne,"swapWidthHeightOne");o(UIe,"reverseY");o(sD,"reverseYOne");o(HIe,"swapXY");o(oD,"swapXYOne")});function Dne(t){t.graph().dummyChains=[],Ce(t.edges(),function(e){YIe(t,e)})}function YIe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n{"use strict";Ht();Sc();o(Dne,"run");o(YIe,"normalizeEdge");o(Nne,"undo")});function Iv(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=Nl(Je(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Ce(t.sources(),r)}function Fd(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var aT=M(()=>{"use strict";Ht();o(Iv,"longestPath");o(Fd,"slack")});function sT(t){var e=new Mr({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;qIe(e,t){"use strict";Ht();Ns();aT();o(sT,"feasibleTree");o(qIe,"tightTree");o(XIe,"findMinSlackEdge");o(jIe,"shiftRanks")});var Mne=M(()=>{"use strict"});var uD=M(()=>{"use strict"});var $Yt,hD=M(()=>{"use strict";Ht();uD();$Yt=bs(1)});var Ine=M(()=>{"use strict";hD()});var fD=M(()=>{"use strict"});var One=M(()=>{"use strict";fD()});var ZYt,Pne=M(()=>{"use strict";Ht();ZYt=bs(1)});function dD(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new Ov;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Ce(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Ce(t.sinks(),i),QL(e)!==t.nodeCount())throw new Ov;return n}function Ov(){}var pD=M(()=>{"use strict";Ht();dD.CycleException=Ov;o(dD,"topsort");o(Ov,"CycleException");Ov.prototype=new Error});var Bne=M(()=>{"use strict";pD()});function oT(t,e,r){Mt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Ce(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);Fne(t,s,r==="post",a,n,i)}),i}function Fne(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Ce(i(e),function(s){Fne(t,s,r,n,i,a)}),r&&a.push(e))}var mD=M(()=>{"use strict";Ht();o(oT,"dfs");o(Fne,"doDfs")});function gD(t,e){return oT(t,e,"post")}var zne=M(()=>{"use strict";mD();o(gD,"postorder")});function yD(t,e){return oT(t,e,"pre")}var Gne=M(()=>{"use strict";mD();o(yD,"preorder")});var $ne=M(()=>{"use strict";uD();rT()});var Vne=M(()=>{"use strict";Mne();hD();Ine();One();Pne();Bne();zne();Gne();$ne();fD();pD()});function Zh(t){t=gne(t),Iv(t);var e=sT(t);xD(e),vD(e,t);for(var r,n;r=Yne(e);)n=qne(e,t,r),Xne(e,t,r,n)}function vD(t,e){var r=gD(t,t.nodes());r=r.slice(0,r.length-1),Ce(r,function(n){eOe(t,e,n)})}function eOe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=Hne(t,e,r)}function Hne(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Ce(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,rOe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function xD(t,e){arguments.length<2&&(e=t.nodes()[0]),Wne(t,{},1,e)}function Wne(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Ce(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=Wne(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function Yne(t){return Za(t.edges(),function(e){return t.edge(e).cutvalue<0})}function qne(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=Yr(e.edges(),function(f){return u===Une(t,t.node(f.v),l)&&u!==Une(t,t.node(f.w),l)});return Id(h,function(f){return Fd(e,f)})}function Xne(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),xD(t),vD(t,e),tOe(t,e)}function tOe(t,e){var r=Za(t.nodes(),function(i){return!e.node(i).parent}),n=yD(t,r);n=n.slice(1),Ce(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function rOe(t,e,r){return t.hasEdge(e,r)}function Une(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var jne=M(()=>{"use strict";Ht();Vne();Sc();cD();aT();Zh.initLowLimValues=xD;Zh.initCutValues=vD;Zh.calcCutValue=Hne;Zh.leaveEdge=Yne;Zh.enterEdge=qne;Zh.exchangeEdges=Xne;o(Zh,"networkSimplex");o(vD,"initCutValues");o(eOe,"assignCutValue");o(Hne,"calcCutValue");o(xD,"initLowLimValues");o(Wne,"dfsAssignLowLim");o(Yne,"leaveEdge");o(qne,"enterEdge");o(Xne,"exchangeEdges");o(tOe,"updateRanks");o(rOe,"isTreeEdge");o(Une,"isDescendant")});function bD(t){switch(t.graph().ranker){case"network-simplex":Kne(t);break;case"tight-tree":iOe(t);break;case"longest-path":nOe(t);break;default:Kne(t)}}function iOe(t){Iv(t),sT(t)}function Kne(t){Zh(t)}var nOe,wD=M(()=>{"use strict";cD();jne();aT();o(bD,"rank");nOe=Iv;o(iOe,"tightTreeRanker");o(Kne,"networkSimplexRanker")});function Qne(t){var e=Ec(t,"root",{},"_root"),r=aOe(t),n=Ls(br(r))-1,i=2*n+1;t.graph().nestingRoot=e,Ce(t.edges(),function(s){t.edge(s).minlen*=i});var a=sOe(t)+1;Ce(t.children(),function(s){Zne(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function Zne(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=iD(t,"_bt"),h=iD(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Ce(l,function(d){Zne(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function aOe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Ce(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Ce(t.children(),function(n){r(n,1)}),e}function sOe(t){return qr(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function Jne(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Ce(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var eie=M(()=>{"use strict";Ht();Sc();o(Qne,"run");o(Zne,"dfs");o(aOe,"treeDepths");o(sOe,"sumWeights");o(Jne,"cleanup")});function tie(t,e,r){var n={},i;Ce(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var rie=M(()=>{"use strict";Ht();o(tie,"addSubgraphConstraints")});function nie(t,e,r){var n=lOe(t),i=new Mr({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Ce(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Ce(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=dr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function lOe(t){for(var e;t.hasNode(e=Pd("_root")););return e}var iie=M(()=>{"use strict";Ht();Ns();o(nie,"buildLayerGraph");o(lOe,"createRootNode")});function aie(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var sie=M(()=>{"use strict";Ht();o(aie,"crossCount");o(cOe,"twoLayerCrossCount")});function oie(t){var e={},r=Yr(t.nodes(),function(l){return!t.children(l).length}),n=Ls(Je(r,function(l){return t.node(l).rank})),i=Je(Uo(n+1),function(){return[]});function a(l){if(!It(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Ce(t.successors(l),a)}}o(a,"dfs");var s=kc(r,function(l){return t.node(l).rank});return Ce(s,a),i}var lie=M(()=>{"use strict";Ht();o(oie,"initOrder")});function cie(t,e){return Je(e,function(r){var n=t.inEdges(r);if(n.length){var i=qr(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var uie=M(()=>{"use strict";Ht();o(cie,"barycenter")});function hie(t,e){var r={};Ce(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};dr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Ce(e.edges(),function(i){var a=r[i.v],s=r[i.w];!dr(a)&&!dr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=Yr(r,function(i){return!i.indegree});return uOe(n)}function uOe(t){var e=[];function r(a){return function(s){s.merged||(dr(s.barycenter)||dr(a.barycenter)||s.barycenter>=a.barycenter)&&hOe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Ce(i.in.reverse(),r(i)),Ce(i.out,n(i))}return Je(Yr(e,function(a){return!a.merged}),function(a){return Od(a,["vs","i","barycenter","weight"])})}function hOe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var fie=M(()=>{"use strict";Ht();o(hie,"resolveConflicts");o(uOe,"doResolveConflicts");o(hOe,"mergeEntries")});function pie(t,e){var r=xne(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=kc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(fOe(!!e)),u=die(a,i,u),Ce(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=die(a,i,u)});var h={vs:Wr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function die(t,e,r){for(var n;e.length&&(n=fa(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function fOe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var mie=M(()=>{"use strict";Ht();Sc();o(pie,"sort");o(die,"consumeUnsortable");o(fOe,"compareWithBias")});function TD(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=Yr(i,function(g){return g!==s&&g!==l}));var h=cie(t,i);Ce(h,function(g){if(t.children(g.v).length){var y=TD(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&pOe(g,y)}});var f=hie(h,r);dOe(f,u);var d=pie(f,n);if(s&&(d.vs=Wr([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function dOe(t,e){Ce(t,function(r){r.vs=Wr(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function pOe(t,e){dr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var gie=M(()=>{"use strict";Ht();uie();fie();mie();o(TD,"sortSubgraph");o(dOe,"expandSubgraphs");o(pOe,"mergeBarycenters")});function xie(t){var e=aD(t),r=yie(t,Uo(1,e+1),"inEdges"),n=yie(t,Uo(e-1,-1,-1),"outEdges"),i=oie(t);vie(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){mOe(l%2?r:n,l%4>=2),i=Kh(t);var h=aie(t,i);h{"use strict";Ht();Ns();Sc();rie();iie();sie();lie();gie();o(xie,"order");o(yie,"buildLayerGraphs");o(mOe,"sweepLayerGraphs");o(vie,"assignOrder")});function wie(t){var e=yOe(t);Ce(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=gOe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function yOe(t){var e={},r=0;function n(i){var a=r;Ce(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Ce(t.children(),n),e}var Tie=M(()=>{"use strict";Ht();o(wie,"parentDummyChains");o(gOe,"findPath");o(yOe,"postorder")});function vOe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=fa(a);return Ce(a,function(f,d){var p=bOe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Ce(a.slice(l,d+1),function(g){Ce(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&kie(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Ce(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),qr(e,i),r}function bOe(t,e){if(t.node(e).dummy)return Za(t.predecessors(e),function(r){return t.node(r).dummy})}function kie(t,e,r){if(e>r){var n=e;e=r,r=n}var i=t[e];i||(t[e]=i={}),i[r]=!0}function wOe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function TOe(t,e,r,n){var i={},a={},s={};return Ce(e,function(l){Ce(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Ce(e,function(l){var u=-1;Ce(l,function(h){var f=n(h);if(f.length){f=kc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";Ht();Ns();Sc();o(vOe,"findType1Conflicts");o(xOe,"findType2Conflicts");o(bOe,"findOtherInnerSegmentNode");o(kie,"addConflict");o(wOe,"hasConflict");o(TOe,"verticalAlignment");o(kOe,"horizontalCompaction");o(EOe,"buildBlockGraph");o(SOe,"findSmallestWidthAlignment");o(COe,"alignCoordinates");o(AOe,"balance");o(Eie,"positionX");o(_Oe,"sep");o(LOe,"width")});function Cie(t){t=iT(t),DOe(t),VL(Eie(t),function(e,r){t.node(r).x=e})}function DOe(t){var e=Kh(t),r=t.graph().ranksep,n=0;Ce(e,function(i){var a=Ls(Je(i,function(s){return t.node(s).height}));Ce(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Aie=M(()=>{"use strict";Ht();Sc();Sie();o(Cie,"position");o(DOe,"positionY")});function Du(t,e){var r=e&&e.debugTiming?bne:wne;r("layout",()=>{var n=r(" buildLayoutGraph",()=>$Oe(t));r(" runLayout",()=>NOe(n,r)),r(" updateInputGraph",()=>ROe(t,n))})}function NOe(t,e){e(" makeSpaceForEdgeLabels",()=>VOe(t)),e(" removeSelfEdges",()=>QOe(t)),e(" acyclic",()=>dne(t)),e(" nestingGraph.run",()=>Qne(t)),e(" rank",()=>bD(iT(t))),e(" injectEdgeLabelProxies",()=>UOe(t)),e(" removeEmptyRanks",()=>vne(t)),e(" nestingGraph.cleanup",()=>Jne(t)),e(" normalizeRanks",()=>yne(t)),e(" assignRankMinMax",()=>HOe(t)),e(" removeEdgeLabelProxies",()=>WOe(t)),e(" normalize.run",()=>Dne(t)),e(" parentDummyChains",()=>wie(t)),e(" addBorderSegments",()=>kne(t)),e(" order",()=>xie(t)),e(" insertSelfEdges",()=>ZOe(t)),e(" adjustCoordinateSystem",()=>Cne(t)),e(" position",()=>Cie(t)),e(" positionSelfEdges",()=>JOe(t)),e(" removeBorderNodes",()=>KOe(t)),e(" normalize.undo",()=>Nne(t)),e(" fixupEdgeLabelCoords",()=>XOe(t)),e(" undoCoordinateSystem",()=>Ane(t)),e(" translateGraph",()=>YOe(t)),e(" assignNodeIntersects",()=>qOe(t)),e(" reversePoints",()=>jOe(t)),e(" acyclic.undo",()=>pne(t))}function ROe(t,e){Ce(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Ce(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function $Oe(t){var e=new Mr({multigraph:!0,compound:!0}),r=ED(t.graph());return e.setGraph(Ih({},IOe,kD(r,MOe),Od(r,OOe))),Ce(t.nodes(),function(n){var i=ED(t.node(n));e.setNode(n,qh(kD(i,POe),BOe)),e.setParent(n,t.parent(n))}),Ce(t.edges(),function(n){var i=ED(t.edge(n));e.setEdge(n,Ih({},zOe,kD(i,FOe),Od(i,GOe)))}),e}function VOe(t){var e=t.graph();e.ranksep/=2,Ce(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function UOe(t){Ce(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Ec(t,"edge-proxy",a,"_ep")}})}function HOe(t){var e=0;Ce(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=Ls(e,n.maxRank))}),t.graph().maxRank=e}function WOe(t){Ce(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function YOe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Ce(t.nodes(),function(h){u(t.node(h))}),Ce(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Ce(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Ce(t.edges(),function(h){var f=t.edge(h);Ce(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function qOe(t){Ce(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(nD(n,a)),r.points.push(nD(i,s))})}function XOe(t){Ce(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function jOe(t){Ce(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function KOe(t){Ce(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(fa(r.borderLeft)),s=t.node(fa(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Ce(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function QOe(t){Ce(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function ZOe(t){var e=Kh(t);Ce(e,function(r){var n=0;Ce(r,function(i,a){var s=t.node(i);s.order=a+n,Ce(s.selfEdges,function(l){Ec(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function JOe(t){Ce(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function kD(t,e){return Md(Od(t,e),Number)}function ED(t){var e={};return Ce(t,function(r,n){e[n.toLowerCase()]=r}),e}var MOe,IOe,OOe,POe,BOe,FOe,zOe,GOe,_ie=M(()=>{"use strict";Ht();Ns();Ene();Lne();rD();lD();wD();eie();bie();Tie();Aie();Sc();o(Du,"layout");o(NOe,"runLayout");o(ROe,"updateInputGraph");MOe=["nodesep","edgesep","ranksep","marginx","marginy"],IOe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},OOe=["acyclicer","ranker","rankdir","align"],POe=["width","height"],BOe={width:0,height:0},FOe=["minlen","weight","width","height","labeloffset"],zOe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},GOe=["labelpos"];o($Oe,"buildLayoutGraph");o(VOe,"makeSpaceForEdgeLabels");o(UOe,"injectEdgeLabelProxies");o(HOe,"assignRankMinMax");o(WOe,"removeEdgeLabelProxies");o(YOe,"translateGraph");o(qOe,"assignNodeIntersects");o(XOe,"fixupEdgeLabelCoords");o(jOe,"reversePointsForReversedEdges");o(KOe,"removeBorderNodes");o(QOe,"removeSelfEdges");o(ZOe,"insertSelfEdges");o(JOe,"positionSelfEdges");o(kD,"selectNumberAttrs");o(ED,"canonicalize")});var Pv=M(()=>{"use strict";rD();_ie();lD();wD()});function Ho(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:ePe(t),edges:tPe(t)};return dr(t.graph())||(e.value=rn(t.graph())),e}function ePe(t){return Je(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return dr(r)||(i.value=r),dr(n)||(i.parent=n),i})}function tPe(t){return Je(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return dr(e.name)||(n.name=e.name),dr(r)||(n.value=r),n})}var SD=M(()=>{"use strict";Ht();rT();o(Ho,"write");o(ePe,"writeNodes");o(tPe,"writeEdges")});var wr,zd,Nie,Rie,lT,rPe,Mie,Iie,nPe,Bm,Die,Oie,Pie,Bie,Fie,zie=M(()=>{"use strict";ht();Ns();SD();wr=new Map,zd=new Map,Nie=new Map,Rie=o(()=>{zd.clear(),Nie.clear(),wr.clear()},"clear"),lT=o((t,e)=>{let r=zd.get(e)||[];return Y.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),rPe=o((t,e)=>{let r=zd.get(e)||[];return Y.info("Descendants of ",e," is ",r),Y.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||lT(t.v,e)||lT(t.w,e)||r.includes(t.w):(Y.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Mie=o((t,e,r,n)=>{Y.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),Y.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Mie(a,e,r,n);else{let s=e.node(a);Y.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(Y.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(Y.debug("Setting parent",a,t),r.setParent(a,t)):(Y.info("In copy ",t,"root",n,"data",e.node(t),n),Y.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);Y.debug("Copying Edges",l),l.forEach(u=>{Y.info("Edge",u);let h=e.edge(u.v,u.w,u.name);Y.info("Edge data",h,n);try{rPe(u,n)?(Y.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),Y.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):Y.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){Y.error(f)}})}Y.debug("Removing node",a),e.removeNode(a)})},"copy"),Iie=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Nie.set(i,t),n=[...n,...Iie(i,e)];return n},"extractDescendants"),nPe=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Bm=o((t,e,r)=>{let n=e.children(t);if(Y.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=Bm(a,e,r),l=nPe(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Die=o(t=>!wr.has(t)||!wr.get(t).externalConnections?t:wr.has(t)?wr.get(t).id:t,"getAnchorId"),Oie=o((t,e)=>{if(!t||e>10){Y.debug("Opting out, no graph ");return}else Y.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(Y.warn("Cluster identified",r," Replacement id in edges: ",Bm(r,t,r)),zd.set(r,Iie(r,t)),wr.set(r,{id:Bm(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(Y.debug("Cluster identified",r,zd),i.forEach(a=>{let s=lT(a.v,r),l=lT(a.w,r);s^l&&(Y.warn("Edge: ",a," leaves cluster ",r),Y.warn("Descendants of XXX ",r,": ",zd.get(r)),wr.get(r).externalConnections=!0)})):Y.debug("Not a cluster ",r,zd)});for(let r of wr.keys()){let n=wr.get(r).id,i=t.parent(n);i!==r&&wr.has(i)&&!wr.get(i).externalConnections&&(wr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(Y.warn("Fix XXX",wr,"ids:",r.v,r.w,"Translating: ",wr.get(r.v)," --- ",wr.get(r.w)),wr.get(r.v)||wr.get(r.w)){if(Y.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Die(r.v),a=Die(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);wr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);wr.get(s).externalConnections=!0,n.toCluster=r.w}Y.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),Y.warn("Adjusted Graph",Ho(t)),Pie(t,0),Y.trace(wr)},"adjustClustersAndEdges"),Pie=o((t,e)=>{if(Y.warn("extractor - ",e,Ho(t),t.children("D")),e>10){Y.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){Y.debug("Done, no node has children",t.nodes());return}Y.debug("Nodes = ",r,e);for(let i of r)if(Y.debug("Extracting node",i,wr,wr.has(i)&&!wr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!wr.has(i))Y.debug("Not a cluster",i,e);else if(!wr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){Y.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";wr.get(i)?.clusterData?.dir&&(s=wr.get(i).clusterData.dir,Y.warn("Fixing dir",wr.get(i).clusterData.dir,s));let l=new Mr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Y.warn("Old graph before copy",Ho(t)),Mie(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:wr.get(i).clusterData,label:wr.get(i).label,graph:l}),Y.warn("New graph after copy node: (",i,")",Ho(l)),Y.debug("Old graph after copy",Ho(t))}else Y.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!wr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),Y.debug(wr);r=t.nodes(),Y.warn("New list of nodes",r);for(let i of r){let a=t.node(i);Y.warn(" Now next level",i,a),a?.clusterNode&&Pie(a.graph,e+1)}},"extractor"),Bie=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Bie(t,i);r=[...r,...a]}),r},"sorter"),Fie=o(t=>Bie(t,t.children()),"sortNodesByHierarchy")});var $ie={};vr($ie,{render:()=>iPe});var Gie,iPe,Vie=M(()=>{"use strict";Pv();SD();Ns();uL();Ft();zie();sw();K5();cL();ht();Cv();Vt();Gie=o(async(t,e,r,n,i,a)=>{Y.warn("Graph in recursive render:XAX",Ho(e),i);let s=e.graph().rankdir;Y.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?Y.info("Recursive render XXX",e.nodes()):Y.info("No nodes found for",e),e.edges().length>0&&Y.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));Y.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(Y.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(Y.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){Y.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let w=await Gie(d,v.graph,r,n,e.node(y),a),_=w.elem;Qe(v,_),v.diff=w.diff||0,Y.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),aJ(_,v)}else e.children(y).length>0?(Y.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),Y.trace(Bm(v.id,e)),wr.set(v.id,{id:Bm(v.id,e),node:v})):(Y.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await gm(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);Y.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),Y.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),Y.info("Fix",wr,"ids:",v.v,v.w,"Translating: ",wr.get(v.v),wr.get(v.w)),await tw(f,x)});await Promise.all(y)},"processEdges")(),Y.info("Graph before layout:",JSON.stringify(Ho(e))),Y.info("############################################# XXX"),Y.info("### Layout ### XXX"),Y.info("############################################# XXX"),Du(e),Y.info("Graph after layout:",JSON.stringify(Ho(e)));let m=0,{subGraphTitleTotalMargin:g}=_u(a);return await Promise.all(Fie(e).map(async function(y){let v=e.node(y);if(Y.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,Y.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),wr.get(v.id).node=v,_v(v);else if(e.children(y).length>0){Y.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,w=b-x||0;Y.debug("OffsetY",w,"labelHeight",b,"halfPadding",x),await mm(u,v),wr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,Y.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),_v(v)}})),e.edges().forEach(function(y){let v=e.edge(y);Y.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(_=>_.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let w=nw(h,v,wr,r,x,b,n);rw(v,w)}),e.nodes().forEach(function(y){let v=e.node(y);Y.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),Y.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),iPe=o(async(t,e)=>{let r=new Mr({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");iw(n,t.markers,t.type,t.diagramId),sJ(),iJ(),ZZ(),Rie(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),Y.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyc{"use strict";lJ();ht();Bv={},CD=o(t=>{for(let e of t)Bv[e.name]=e},"registerLayoutLoaders"),aPe=o(()=>{CD([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(Vie(),$ie)),"loader")}])},"registerDefaultLayoutLoaders");aPe();Fm=o(async(t,e)=>{if(!(t.layoutAlgorithm in Bv))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=Bv[t.layoutAlgorithm];return(await r.loader()).render(t,e,oJ,{algorithm:r.algorithm})},"render"),cT=o((t="",{fallback:e="dagre"}={})=>{if(t in Bv)return t;if(e in Bv)return Y.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var zm,sPe,oPe,uT=M(()=>{"use strict";ni();ht();zm=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=sPe(t,e);Zr(t,a,i,n);let u=oPe(s,l,i,a,e);t.attr("viewBox",u),Y.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),sPe=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),oPe=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var lPe,cPe,Uie,Hie=M(()=>{"use strict";mr();Vt();ht();j5();Fv();uT();hr();oL();lPe=o(function(t,e){return e.db.getClasses()},"getClasses"),cPe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=de(),l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;Y.debug("Before getData: ");let h=n.db.getData();Y.debug("Data: ",h);let f=pm(e,i),d=sL();h.type=n.type,h.layoutAlgorithm=cT(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&Y.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,Y.debug("REF1:",h),await Fm(h,f);let p=h.config.flowchart?.diagramPadding??8;Ut.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),zm(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=ze(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Uie={getClasses:lPe,draw:cPe}});var AD,Wie,Yie=M(()=>{"use strict";AD=function(){var t=o(function(kn,_t,St,bt){for(St=St||{},bt=kn.length;bt--;St[kn[bt]]=_t);return St},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],w=[1,32],_=[1,33],T=[1,44],E=[1,46],L=[1,42],C=[1,47],A=[1,43],I=[1,50],D=[1,45],k=[1,51],R=[1,52],S=[1,34],O=[1,35],N=[1,36],P=[1,37],F=[1,57],B=[1,8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],$=[1,61],z=[1,60],W=[1,62],j=[8,9,11,75,77],K=[1,77],ie=[1,90],Q=[1,95],ee=[1,94],J=[1,91],H=[1,87],q=[1,93],Z=[1,89],ae=[1,96],ue=[1,92],ce=[1,97],te=[1,88],De=[8,9,10,11,40,75,77],oe=[8,9,10,11,40,46,75,77],ke=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,88,101,104,105,108,110,113,114,115],Fe=[8,9,11,44,60,75,77,88,101,104,105,108,110,113,114,115],Be=[44,60,88,101,104,105,108,110,113,114,115],Ve=[1,123],Ge=[1,122],He=[1,130],xe=[1,144],X=[1,145],fe=[1,146],he=[1,147],ge=[1,132],ne=[1,134],ye=[1,138],U=[1,139],Te=[1,140],se=[1,141],Ee=[1,142],Ae=[1,143],Pe=[1,148],Me=[1,149],me=[1,128],We=[1,129],Re=[1,136],tt=[1,131],gt=[1,135],Et=[1,133],vt=[8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],Ye=[1,151],Tt=[1,153],$e=[8,9,11],rt=[8,9,10,11,14,44,60,88,104,105,108,110,113,114,115],ft=[1,173],kt=[1,169],er=[1,170],dt=[1,174],Xe=[1,171],ct=[1,172],Lt=[77,115,118],Rt=[8,9,10,11,12,14,27,29,32,44,60,75,83,84,85,86,87,88,89,104,108,110,113,114,115],zt=[10,105],Xn=[31,49,51,53,55,57,62,64,66,67,69,71,115,116,117],or=[1,242],hn=[1,240],Tn=[1,244],Ur=[1,238],ri=[1,239],Mn=[1,241],yt=[1,243],Se=[1,245],at=[1,263],At=[8,9,11,105],pr=[8,9,10,11,60,83,104,105,108,109,110,111],In={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,edgeTextToken:78,STR:79,MD_STR:80,textToken:81,keywords:82,STYLE:83,LINKSTYLE:84,CLASSDEF:85,CLASS:86,CLICK:87,DOWN:88,UP:89,textNoTagsToken:90,stylesOpt:91,"idString[vertex]":92,"idString[class]":93,CALLBACKNAME:94,CALLBACKARGS:95,HREF:96,LINK_TARGET:97,"STR[link]":98,"STR[tooltip]":99,alphaNum:100,DEFAULT:101,numList:102,INTERPOLATE:103,NUM:104,COMMA:105,style:106,styleComponent:107,NODE_STRING:108,UNIT:109,BRKT:110,PCT:111,idStringToken:112,MINUS:113,MULT:114,UNICODE_TEXT:115,TEXT:116,TAGSTART:117,EDGE_TEXT:118,alphaNumToken:119,direction_tb:120,direction_bt:121,direction_rl:122,direction_lr:123,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",79:"STR",80:"MD_STR",83:"STYLE",84:"LINKSTYLE",85:"CLASSDEF",86:"CLASS",87:"CLICK",88:"DOWN",89:"UP",92:"idString[vertex]",93:"idString[class]",94:"CALLBACKNAME",95:"CALLBACKARGS",96:"HREF",97:"LINK_TARGET",98:"STR[link]",99:"STR[tooltip]",101:"DEFAULT",103:"INTERPOLATE",104:"NUM",105:"COMMA",108:"NODE_STRING",109:"UNIT",110:"BRKT",111:"PCT",113:"MINUS",114:"MULT",115:"UNICODE_TEXT",116:"TEXT",117:"TAGSTART",118:"EDGE_TEXT",120:"direction_tb",121:"direction_bt",122:"direction_rl",123:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[76,1],[76,2],[76,1],[76,1],[72,1],[73,3],[30,1],[30,2],[30,1],[30,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[102,1],[102,3],[91,1],[91,3],[106,1],[106,2],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[81,1],[81,1],[81,1],[81,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[78,1],[78,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[47,1],[47,2],[100,1],[100,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(_t,St,bt,Ue,Kt,pe,bi){var be=pe.length-1;switch(Kt){case 2:this.$=[];break;case 3:(!Array.isArray(pe[be])||pe[be].length>0)&&pe[be-1].push(pe[be]),this.$=pe[be-1];break;case 4:case 181:this.$=pe[be];break;case 11:Ue.setDirection("TB"),this.$="TB";break;case 12:Ue.setDirection(pe[be-1]),this.$=pe[be-1];break;case 27:this.$=pe[be-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=Ue.addSubGraph(pe[be-6],pe[be-1],pe[be-4]);break;case 34:this.$=Ue.addSubGraph(pe[be-3],pe[be-1],pe[be-3]);break;case 35:this.$=Ue.addSubGraph(void 0,pe[be-1],void 0);break;case 37:this.$=pe[be].trim(),Ue.setAccTitle(this.$);break;case 38:case 39:this.$=pe[be].trim(),Ue.setAccDescription(this.$);break;case 43:this.$=pe[be-1]+pe[be];break;case 44:this.$=pe[be];break;case 45:Ue.addVertex(pe[be-1][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be]),Ue.addLink(pe[be-3].stmt,pe[be-1],pe[be-2]),this.$={stmt:pe[be-1],nodes:pe[be-1].concat(pe[be-3].nodes)};break;case 46:Ue.addLink(pe[be-2].stmt,pe[be],pe[be-1]),this.$={stmt:pe[be],nodes:pe[be].concat(pe[be-2].nodes)};break;case 47:Ue.addLink(pe[be-3].stmt,pe[be-1],pe[be-2]),this.$={stmt:pe[be-1],nodes:pe[be-1].concat(pe[be-3].nodes)};break;case 48:this.$={stmt:pe[be-1],nodes:pe[be-1]};break;case 49:Ue.addVertex(pe[be-1][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be]),this.$={stmt:pe[be-1],nodes:pe[be-1],shapeData:pe[be]};break;case 50:this.$={stmt:pe[be],nodes:pe[be]};break;case 51:this.$=[pe[be]];break;case 52:Ue.addVertex(pe[be-5][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be-4]),this.$=pe[be-5].concat(pe[be]);break;case 53:this.$=pe[be-4].concat(pe[be]);break;case 54:this.$=pe[be];break;case 55:this.$=pe[be-2],Ue.setClass(pe[be-2],pe[be]);break;case 56:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"square");break;case 57:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"doublecircle");break;case 58:this.$=pe[be-5],Ue.addVertex(pe[be-5],pe[be-2],"circle");break;case 59:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"ellipse");break;case 60:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"stadium");break;case 61:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"subroutine");break;case 62:this.$=pe[be-7],Ue.addVertex(pe[be-7],pe[be-1],"rect",void 0,void 0,void 0,Object.fromEntries([[pe[be-5],pe[be-3]]]));break;case 63:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"cylinder");break;case 64:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"round");break;case 65:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"diamond");break;case 66:this.$=pe[be-5],Ue.addVertex(pe[be-5],pe[be-2],"hexagon");break;case 67:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"odd");break;case 68:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"trapezoid");break;case 69:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"inv_trapezoid");break;case 70:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"lean_right");break;case 71:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"lean_left");break;case 72:this.$=pe[be],Ue.addVertex(pe[be]);break;case 73:pe[be-1].text=pe[be],this.$=pe[be-1];break;case 74:case 75:pe[be-2].text=pe[be-1],this.$=pe[be-2];break;case 76:this.$=pe[be];break;case 77:var vo=Ue.destructLink(pe[be],pe[be-2]);this.$={type:vo.type,stroke:vo.stroke,length:vo.length,text:pe[be-1]};break;case 78:this.$={text:pe[be],type:"text"};break;case 79:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 80:this.$={text:pe[be],type:"string"};break;case 81:this.$={text:pe[be],type:"markdown"};break;case 82:var vo=Ue.destructLink(pe[be]);this.$={type:vo.type,stroke:vo.stroke,length:vo.length};break;case 83:this.$=pe[be-1];break;case 84:this.$={text:pe[be],type:"text"};break;case 85:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 86:this.$={text:pe[be],type:"string"};break;case 87:case 102:this.$={text:pe[be],type:"markdown"};break;case 99:this.$={text:pe[be],type:"text"};break;case 100:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 101:this.$={text:pe[be],type:"text"};break;case 103:this.$=pe[be-4],Ue.addClass(pe[be-2],pe[be]);break;case 104:this.$=pe[be-4],Ue.setClass(pe[be-2],pe[be]);break;case 105:case 113:this.$=pe[be-1],Ue.setClickEvent(pe[be-1],pe[be]);break;case 106:case 114:this.$=pe[be-3],Ue.setClickEvent(pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-3],pe[be]);break;case 107:this.$=pe[be-2],Ue.setClickEvent(pe[be-2],pe[be-1],pe[be]);break;case 108:this.$=pe[be-4],Ue.setClickEvent(pe[be-4],pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-4],pe[be]);break;case 109:this.$=pe[be-2],Ue.setLink(pe[be-2],pe[be]);break;case 110:this.$=pe[be-4],Ue.setLink(pe[be-4],pe[be-2]),Ue.setTooltip(pe[be-4],pe[be]);break;case 111:this.$=pe[be-4],Ue.setLink(pe[be-4],pe[be-2],pe[be]);break;case 112:this.$=pe[be-6],Ue.setLink(pe[be-6],pe[be-4],pe[be]),Ue.setTooltip(pe[be-6],pe[be-2]);break;case 115:this.$=pe[be-1],Ue.setLink(pe[be-1],pe[be]);break;case 116:this.$=pe[be-3],Ue.setLink(pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-3],pe[be]);break;case 117:this.$=pe[be-3],Ue.setLink(pe[be-3],pe[be-2],pe[be]);break;case 118:this.$=pe[be-5],Ue.setLink(pe[be-5],pe[be-4],pe[be]),Ue.setTooltip(pe[be-5],pe[be-2]);break;case 119:this.$=pe[be-4],Ue.addVertex(pe[be-2],void 0,void 0,pe[be]);break;case 120:this.$=pe[be-4],Ue.updateLink([pe[be-2]],pe[be]);break;case 121:this.$=pe[be-4],Ue.updateLink(pe[be-2],pe[be]);break;case 122:this.$=pe[be-8],Ue.updateLinkInterpolate([pe[be-6]],pe[be-2]),Ue.updateLink([pe[be-6]],pe[be]);break;case 123:this.$=pe[be-8],Ue.updateLinkInterpolate(pe[be-6],pe[be-2]),Ue.updateLink(pe[be-6],pe[be]);break;case 124:this.$=pe[be-6],Ue.updateLinkInterpolate([pe[be-4]],pe[be]);break;case 125:this.$=pe[be-6],Ue.updateLinkInterpolate(pe[be-4],pe[be]);break;case 126:case 128:this.$=[pe[be]];break;case 127:case 129:pe[be-2].push(pe[be]),this.$=pe[be-2];break;case 131:this.$=pe[be-1]+pe[be];break;case 179:this.$=pe[be];break;case 180:this.$=pe[be-1]+""+pe[be];break;case 182:this.$=pe[be-1]+""+pe[be];break;case 183:this.$={stmt:"dir",value:"TB"};break;case 184:this.$={stmt:"dir",value:"BT"};break;case 185:this.$={stmt:"dir",value:"RL"};break;case 186:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},t(B,[2,3]),t(B,[2,4]),t(B,[2,5]),t(B,[2,6]),t(B,[2,7]),t(B,[2,8]),{8:$,9:z,11:W,21:58,41:59,72:63,75:[1,64],77:[1,65]},{8:$,9:z,11:W,21:66},{8:$,9:z,11:W,21:67},{8:$,9:z,11:W,21:68},{8:$,9:z,11:W,21:69},{8:$,9:z,11:W,21:70},{8:$,9:z,10:[1,71],11:W,21:72},t(B,[2,36]),{35:[1,73]},{37:[1,74]},t(B,[2,39]),t(j,[2,50],{18:75,39:76,10:F,40:K}),{10:[1,78]},{10:[1,79]},{10:[1,80]},{10:[1,81]},{14:ie,44:Q,60:ee,79:[1,85],88:J,94:[1,82],96:[1,83],100:84,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},t(B,[2,183]),t(B,[2,184]),t(B,[2,185]),t(B,[2,186]),t(De,[2,51]),t(De,[2,54],{46:[1,98]}),t(oe,[2,72],{112:111,29:[1,99],44:g,48:[1,100],50:[1,101],52:[1,102],54:[1,103],56:[1,104],58:[1,105],60:y,63:[1,106],65:[1,107],67:[1,108],68:[1,109],70:[1,110],88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),t(ke,[2,179]),t(ke,[2,140]),t(ke,[2,141]),t(ke,[2,142]),t(ke,[2,143]),t(ke,[2,144]),t(ke,[2,145]),t(ke,[2,146]),t(ke,[2,147]),t(ke,[2,148]),t(ke,[2,149]),t(ke,[2,150]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,112]},t(Fe,[2,26],{18:113,10:F}),t(B,[2,27]),{42:114,43:38,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t(B,[2,40]),t(B,[2,41]),t(B,[2,42]),t(Be,[2,76],{73:115,62:[1,117],74:[1,116]}),{76:118,78:119,79:[1,120],80:[1,121],115:Ve,118:Ge},t([44,60,62,74,88,101,104,105,108,110,113,114,115],[2,82]),t(B,[2,28]),t(B,[2,29]),t(B,[2,30]),t(B,[2,31]),t(B,[2,32]),{10:He,12:xe,14:X,27:fe,28:124,32:he,44:ge,60:ne,75:ye,79:[1,126],80:[1,127],82:137,83:U,84:Te,85:se,86:Ee,87:Ae,88:Pe,89:Me,90:125,104:me,108:We,110:Re,113:tt,114:gt,115:Et},t(vt,a,{5:150}),t(B,[2,37]),t(B,[2,38]),t(j,[2,48],{44:Ye}),t(j,[2,49],{18:152,10:F,40:Tt}),t(De,[2,44]),{44:g,47:154,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{101:[1,155],102:156,104:[1,157]},{44:g,47:158,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{44:g,47:159,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,105],{10:[1,160],95:[1,161]}),{79:[1,162]},t($e,[2,113],{119:164,10:[1,163],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,115],{10:[1,165]}),t(rt,[2,181]),t(rt,[2,168]),t(rt,[2,169]),t(rt,[2,170]),t(rt,[2,171]),t(rt,[2,172]),t(rt,[2,173]),t(rt,[2,174]),t(rt,[2,175]),t(rt,[2,176]),t(rt,[2,177]),t(rt,[2,178]),{44:g,47:166,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{30:167,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:175,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:177,50:[1,176],67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:178,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:179,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:180,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{108:[1,181]},{30:182,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:183,65:[1,184],67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:185,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:186,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:187,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(ke,[2,180]),t(i,[2,20]),t(Fe,[2,25]),t(j,[2,46],{39:188,18:189,10:F,40:K}),t(Be,[2,73],{10:[1,190]}),{10:[1,191]},{30:192,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{77:[1,193],78:194,115:Ve,118:Ge},t(Lt,[2,78]),t(Lt,[2,80]),t(Lt,[2,81]),t(Lt,[2,166]),t(Lt,[2,167]),{8:$,9:z,10:He,11:W,12:xe,14:X,21:196,27:fe,29:[1,195],32:he,44:ge,60:ne,75:ye,82:137,83:U,84:Te,85:se,86:Ee,87:Ae,88:Pe,89:Me,90:197,104:me,108:We,110:Re,113:tt,114:gt,115:Et},t(Rt,[2,99]),t(Rt,[2,101]),t(Rt,[2,102]),t(Rt,[2,155]),t(Rt,[2,156]),t(Rt,[2,157]),t(Rt,[2,158]),t(Rt,[2,159]),t(Rt,[2,160]),t(Rt,[2,161]),t(Rt,[2,162]),t(Rt,[2,163]),t(Rt,[2,164]),t(Rt,[2,165]),t(Rt,[2,88]),t(Rt,[2,89]),t(Rt,[2,90]),t(Rt,[2,91]),t(Rt,[2,92]),t(Rt,[2,93]),t(Rt,[2,94]),t(Rt,[2,95]),t(Rt,[2,96]),t(Rt,[2,97]),t(Rt,[2,98]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,198],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},{10:F,18:199},{44:[1,200]},t(De,[2,43]),{10:[1,201],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{10:[1,202]},{10:[1,203],105:[1,204]},t(zt,[2,126]),{10:[1,205],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{10:[1,206],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{79:[1,207]},t($e,[2,107],{10:[1,208]}),t($e,[2,109],{10:[1,209]}),{79:[1,210]},t(rt,[2,182]),{79:[1,211],97:[1,212]},t(De,[2,55],{112:111,44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),{31:[1,213],67:ft,81:214,115:dt,116:Xe,117:ct},t(Xn,[2,84]),t(Xn,[2,86]),t(Xn,[2,87]),t(Xn,[2,151]),t(Xn,[2,152]),t(Xn,[2,153]),t(Xn,[2,154]),{49:[1,215],67:ft,81:214,115:dt,116:Xe,117:ct},{30:216,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{51:[1,217],67:ft,81:214,115:dt,116:Xe,117:ct},{53:[1,218],67:ft,81:214,115:dt,116:Xe,117:ct},{55:[1,219],67:ft,81:214,115:dt,116:Xe,117:ct},{57:[1,220],67:ft,81:214,115:dt,116:Xe,117:ct},{60:[1,221]},{64:[1,222],67:ft,81:214,115:dt,116:Xe,117:ct},{66:[1,223],67:ft,81:214,115:dt,116:Xe,117:ct},{30:224,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{31:[1,225],67:ft,81:214,115:dt,116:Xe,117:ct},{67:ft,69:[1,226],71:[1,227],81:214,115:dt,116:Xe,117:ct},{67:ft,69:[1,229],71:[1,228],81:214,115:dt,116:Xe,117:ct},t(j,[2,45],{18:152,10:F,40:Tt}),t(j,[2,47],{44:Ye}),t(Be,[2,75]),t(Be,[2,74]),{62:[1,230],67:ft,81:214,115:dt,116:Xe,117:ct},t(Be,[2,77]),t(Lt,[2,79]),{30:231,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(vt,a,{5:232}),t(Rt,[2,100]),t(B,[2,35]),{43:233,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{10:F,18:234},{10:or,60:hn,83:Tn,91:235,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:246,103:[1,247],104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:248,103:[1,249],104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{104:[1,250]},{10:or,60:hn,83:Tn,91:251,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{44:g,47:252,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,106]),{79:[1,253]},{79:[1,254],97:[1,255]},t($e,[2,114]),t($e,[2,116],{10:[1,256]}),t($e,[2,117]),t(oe,[2,56]),t(Xn,[2,85]),t(oe,[2,57]),{51:[1,257],67:ft,81:214,115:dt,116:Xe,117:ct},t(oe,[2,64]),t(oe,[2,59]),t(oe,[2,60]),t(oe,[2,61]),{108:[1,258]},t(oe,[2,63]),t(oe,[2,65]),{66:[1,259],67:ft,81:214,115:dt,116:Xe,117:ct},t(oe,[2,67]),t(oe,[2,68]),t(oe,[2,70]),t(oe,[2,69]),t(oe,[2,71]),t([10,44,60,88,101,104,105,108,110,113,114,115],[2,83]),{31:[1,260],67:ft,81:214,115:dt,116:Xe,117:ct},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,261],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},t(De,[2,53]),{43:262,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,119],{105:at}),t(At,[2,128],{107:264,10:or,60:hn,83:Tn,104:Ur,108:ri,109:Mn,110:yt,111:Se}),t(pr,[2,130]),t(pr,[2,132]),t(pr,[2,133]),t(pr,[2,134]),t(pr,[2,135]),t(pr,[2,136]),t(pr,[2,137]),t(pr,[2,138]),t(pr,[2,139]),t($e,[2,120],{105:at}),{10:[1,265]},t($e,[2,121],{105:at}),{10:[1,266]},t(zt,[2,127]),t($e,[2,103],{105:at}),t($e,[2,104],{112:111,44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),t($e,[2,108]),t($e,[2,110],{10:[1,267]}),t($e,[2,111]),{97:[1,268]},{51:[1,269]},{62:[1,270]},{66:[1,271]},{8:$,9:z,11:W,21:272},t(B,[2,34]),t(De,[2,52]),{10:or,60:hn,83:Tn,104:Ur,106:273,107:237,108:ri,109:Mn,110:yt,111:Se},t(pr,[2,131]),{14:ie,44:Q,60:ee,88:J,100:274,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},{14:ie,44:Q,60:ee,88:J,100:275,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},{97:[1,276]},t($e,[2,118]),t(oe,[2,58]),{30:277,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(oe,[2,66]),t(vt,a,{5:278}),t(At,[2,129],{107:264,10:or,60:hn,83:Tn,104:Ur,108:ri,109:Mn,110:yt,111:Se}),t($e,[2,124],{119:164,10:[1,279],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,125],{119:164,10:[1,280],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,112]),{31:[1,281],67:ft,81:214,115:dt,116:Xe,117:ct},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,282],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},{10:or,60:hn,83:Tn,91:283,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:284,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},t(oe,[2,62]),t(B,[2,33]),t($e,[2,122],{105:at}),t($e,[2,123],{105:at})],defaultActions:{},parseError:o(function(_t,St){if(St.recoverable)this.trace(_t);else{var bt=new Error(_t);throw bt.hash=St,bt}},"parseError"),parse:o(function(_t){var St=this,bt=[0],Ue=[],Kt=[null],pe=[],bi=this.table,be="",vo=0,bF=0,wF=0,axe=2,TF=1,sxe=pe.slice.call(arguments,1),ji=Object.create(this.lexer),Pf={yy:{}};for(var gS in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gS)&&(Pf.yy[gS]=this.yy[gS]);ji.setInput(_t,Pf.yy),Pf.yy.lexer=ji,Pf.yy.parser=this,typeof ji.yylloc>"u"&&(ji.yylloc={});var yS=ji.yylloc;pe.push(yS);var oxe=ji.options&&ji.options.ranges;typeof Pf.yy.parseError=="function"?this.parseError=Pf.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Sat(Vs){bt.length=bt.length-2*Vs,Kt.length=Kt.length-Vs,pe.length=pe.length-Vs}o(Sat,"popStack");function lxe(){var Vs;return Vs=Ue.pop()||ji.lex()||TF,typeof Vs!="number"&&(Vs instanceof Array&&(Ue=Vs,Vs=Ue.pop()),Vs=St.symbols_[Vs]||Vs),Vs}o(lxe,"lex");for(var Va,vS,Bf,xo,Cat,xS,Q0={},Eb,Xc,kF,Sb;;){if(Bf=bt[bt.length-1],this.defaultActions[Bf]?xo=this.defaultActions[Bf]:((Va===null||typeof Va>"u")&&(Va=lxe()),xo=bi[Bf]&&bi[Bf][Va]),typeof xo>"u"||!xo.length||!xo[0]){var bS="";Sb=[];for(Eb in bi[Bf])this.terminals_[Eb]&&Eb>axe&&Sb.push("'"+this.terminals_[Eb]+"'");ji.showPosition?bS="Parse error on line "+(vo+1)+`: +`+ji.showPosition()+` +Expecting `+Sb.join(", ")+", got '"+(this.terminals_[Va]||Va)+"'":bS="Parse error on line "+(vo+1)+": Unexpected "+(Va==TF?"end of input":"'"+(this.terminals_[Va]||Va)+"'"),this.parseError(bS,{text:ji.match,token:this.terminals_[Va]||Va,line:ji.yylineno,loc:yS,expected:Sb})}if(xo[0]instanceof Array&&xo.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bf+", token: "+Va);switch(xo[0]){case 1:bt.push(Va),Kt.push(ji.yytext),pe.push(ji.yylloc),bt.push(xo[1]),Va=null,vS?(Va=vS,vS=null):(bF=ji.yyleng,be=ji.yytext,vo=ji.yylineno,yS=ji.yylloc,wF>0&&wF--);break;case 2:if(Xc=this.productions_[xo[1]][1],Q0.$=Kt[Kt.length-Xc],Q0._$={first_line:pe[pe.length-(Xc||1)].first_line,last_line:pe[pe.length-1].last_line,first_column:pe[pe.length-(Xc||1)].first_column,last_column:pe[pe.length-1].last_column},oxe&&(Q0._$.range=[pe[pe.length-(Xc||1)].range[0],pe[pe.length-1].range[1]]),xS=this.performAction.apply(Q0,[be,bF,vo,Pf.yy,xo[1],Kt,pe].concat(sxe)),typeof xS<"u")return xS;Xc&&(bt=bt.slice(0,-1*Xc*2),Kt=Kt.slice(0,-1*Xc),pe=pe.slice(0,-1*Xc)),bt.push(this.productions_[xo[1]][0]),Kt.push(Q0.$),pe.push(Q0._$),kF=bi[bt[bt.length-2]][bt[bt.length-1]],bt.push(kF);break;case 3:return!0}}return!0},"parse")},On=function(){var kn={EOF:1,parseError:o(function(St,bt){if(this.yy.parser)this.yy.parser.parseError(St,bt);else throw new Error(St)},"parseError"),setInput:o(function(_t,St){return this.yy=St||this.yy||{},this._input=_t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _t=this._input[0];this.yytext+=_t,this.yyleng++,this.offset++,this.match+=_t,this.matched+=_t;var St=_t.match(/(?:\r\n?|\n).*/g);return St?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_t},"input"),unput:o(function(_t){var St=_t.length,bt=_t.split(/(?:\r\n?|\n)/g);this._input=_t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-St),this.offset-=St;var Ue=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),bt.length-1&&(this.yylineno-=bt.length-1);var Kt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:bt?(bt.length===Ue.length?this.yylloc.first_column:0)+Ue[Ue.length-bt.length].length-bt[0].length:this.yylloc.first_column-St},this.options.ranges&&(this.yylloc.range=[Kt[0],Kt[0]+this.yyleng-St]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_t){this.unput(this.match.slice(_t))},"less"),pastInput:o(function(){var _t=this.matched.substr(0,this.matched.length-this.match.length);return(_t.length>20?"...":"")+_t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _t=this.match;return _t.length<20&&(_t+=this._input.substr(0,20-_t.length)),(_t.substr(0,20)+(_t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _t=this.pastInput(),St=new Array(_t.length+1).join("-");return _t+this.upcomingInput()+` +`+St+"^"},"showPosition"),test_match:o(function(_t,St){var bt,Ue,Kt;if(this.options.backtrack_lexer&&(Kt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Kt.yylloc.range=this.yylloc.range.slice(0))),Ue=_t[0].match(/(?:\r\n?|\n).*/g),Ue&&(this.yylineno+=Ue.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ue?Ue[Ue.length-1].length-Ue[Ue.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_t[0].length},this.yytext+=_t[0],this.match+=_t[0],this.matches=_t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_t[0].length),this.matched+=_t[0],bt=this.performAction.call(this,this.yy,this,St,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),bt)return bt;if(this._backtrack){for(var pe in Kt)this[pe]=Kt[pe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _t,St,bt,Ue;this._more||(this.yytext="",this.match="");for(var Kt=this._currentRules(),pe=0;peSt[0].length)){if(St=bt,Ue=pe,this.options.backtrack_lexer){if(_t=this.test_match(bt,Kt[pe]),_t!==!1)return _t;if(this._backtrack){St=!1;continue}else return!1}else if(!this.options.flex)break}return St?(_t=this.test_match(St,Kt[Ue]),_t!==!1?_t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var St=this.next();return St||this.lex()},"lex"),begin:o(function(St){this.conditionStack.push(St)},"begin"),popState:o(function(){var St=this.conditionStack.length-1;return St>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(St){return St=this.conditionStack.length-1-Math.abs(St||0),St>=0?this.conditionStack[St]:"INITIAL"},"topState"),pushState:o(function(St){this.begin(St)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(St,bt,Ue,Kt){var pe=Kt;switch(Ue){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),bt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let bi=/\n\s*/g;return bt.yytext=bt.yytext.replace(bi,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 94;case 17:this.popState();break;case 18:return 95;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 83;case 26:return 101;case 27:return 84;case 28:return 103;case 29:return 85;case 30:return 86;case 31:return 96;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 87;case 35:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 97;case 41:return 97;case 42:return 97;case 43:return 97;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 120;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 104;case 60:return 110;case 61:return 46;case 62:return 60;case 63:return 44;case 64:return 8;case 65:return 105;case 66:return 114;case 67:return this.popState(),77;break;case 68:return this.pushState("edgeText"),75;break;case 69:return 118;case 70:return this.popState(),77;break;case 71:return this.pushState("thickEdgeText"),75;break;case 72:return 118;case 73:return this.popState(),77;break;case 74:return this.pushState("dottedEdgeText"),75;break;case 75:return 118;case 76:return 77;case 77:return this.popState(),53;break;case 78:return"TEXT";case 79:return this.pushState("ellipseText"),52;break;case 80:return this.popState(),55;break;case 81:return this.pushState("text"),54;break;case 82:return this.popState(),57;break;case 83:return this.pushState("text"),56;break;case 84:return 58;case 85:return this.pushState("text"),67;break;case 86:return this.popState(),64;break;case 87:return this.pushState("text"),63;break;case 88:return this.popState(),49;break;case 89:return this.pushState("text"),48;break;case 90:return this.popState(),69;break;case 91:return this.popState(),71;break;case 92:return 116;case 93:return this.pushState("trapText"),68;break;case 94:return this.pushState("trapText"),70;break;case 95:return 117;case 96:return 67;case 97:return 89;case 98:return"SEP";case 99:return 88;case 100:return 114;case 101:return 110;case 102:return 44;case 103:return 108;case 104:return 113;case 105:return 115;case 106:return this.popState(),62;break;case 107:return this.pushState("text"),62;break;case 108:return this.popState(),51;break;case 109:return this.pushState("text"),50;break;case 110:return this.popState(),31;break;case 111:return this.pushState("text"),29;break;case 112:return this.popState(),66;break;case 113:return this.pushState("text"),65;break;case 114:return"TEXT";case 115:return"QUOTE";case 116:return 9;case 117:return 10;case 118:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeData:{rules:[8,11,12,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackargs:{rules:[17,18,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackname:{rules:[14,15,16,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},href:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},click:{rules:[21,24,33,34,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dottedEdgeText:{rules:[21,24,73,75,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},thickEdgeText:{rules:[21,24,70,72,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},edgeText:{rules:[21,24,67,69,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},trapText:{rules:[21,24,76,79,81,83,87,89,90,91,92,93,94,107,109,111,113],inclusive:!1},ellipseText:{rules:[21,24,76,77,78,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},text:{rules:[21,24,76,79,80,81,82,83,86,87,88,89,93,94,106,107,108,109,110,111,112,113,114],inclusive:!1},vertex:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr:{rules:[3,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_title:{rules:[1,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},md_string:{rules:[19,20,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},string:{rules:[21,22,23,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,76,79,81,83,84,85,87,89,93,94,95,96,97,98,99,100,101,102,103,104,105,107,109,111,113,115,116,117,118],inclusive:!0}}};return kn}();In.lexer=On;function Ir(){this.yy={}}return o(Ir,"Parser"),Ir.prototype=In,In.Parser=Ir,new Ir}();AD.parser=AD;Wie=AD});var uPe,hPe,qie,Xie=M(()=>{"use strict";To();uPe=o((t,e)=>{let r=z1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Hs(n,i,a,e)},"fade"),hPe=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${t.lineColor} !important; + stroke-width: 0; + stroke: ${t.lineColor}; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${uPe(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + padding: 2px; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } +`,"getStyles"),qie=hPe});var hT={};vr(hT,{diagram:()=>fPe});var fPe,fT=M(()=>{"use strict";Vt();oL();Hie();Yie();Xie();fPe={parser:Wie,db:X5,renderer:Uie,styles:qie,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&n7({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,n7({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),X5.clear(),X5.setGen("gen-2")},"init")}});var _D,Jie,eae=M(()=>{"use strict";_D=function(){var t=o(function(C,A,I,D){for(I=I||{},D=C.length;D--;I[C[D]]=A);return I},"o"),e=[6,8,10,20,22,24,26,27,28],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,14],l=[1,15],u=[1,21],h=[1,22],f=[1,23],d=[1,24],p=[1,25],m=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],g=[1,34],y=[27,28,46,47],v=[41,42,43,44,45],x=[17,34],b=[1,54],w=[1,53],_=[17,34,36,38],T={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:o(function(A,I,D,k,R,S,O){var N=S.length-1;switch(R){case 1:break;case 2:this.$=[];break;case 3:S[N-1].push(S[N]),this.$=S[N-1];break;case 4:case 5:this.$=S[N];break;case 6:case 7:this.$=[];break;case 8:k.addEntity(S[N-4]),k.addEntity(S[N-2]),k.addRelationship(S[N-4],S[N],S[N-2],S[N-3]);break;case 9:k.addEntity(S[N-3]),k.addAttributes(S[N-3],S[N-1]);break;case 10:k.addEntity(S[N-2]);break;case 11:k.addEntity(S[N]);break;case 12:k.addEntity(S[N-6],S[N-4]),k.addAttributes(S[N-6],S[N-1]);break;case 13:k.addEntity(S[N-5],S[N-3]);break;case 14:k.addEntity(S[N-3],S[N-1]);break;case 15:case 16:this.$=S[N].trim(),k.setAccTitle(this.$);break;case 17:case 18:this.$=S[N].trim(),k.setAccDescription(this.$);break;case 19:case 43:this.$=S[N];break;case 20:case 41:case 42:this.$=S[N].replace(/"/g,"");break;case 21:case 29:this.$=[S[N]];break;case 22:S[N].push(S[N-1]),this.$=S[N];break;case 23:this.$={attributeType:S[N-1],attributeName:S[N]};break;case 24:this.$={attributeType:S[N-2],attributeName:S[N-1],attributeKeyTypeList:S[N]};break;case 25:this.$={attributeType:S[N-2],attributeName:S[N-1],attributeComment:S[N]};break;case 26:this.$={attributeType:S[N-3],attributeName:S[N-2],attributeKeyTypeList:S[N-1],attributeComment:S[N]};break;case 27:case 28:case 31:this.$=S[N];break;case 30:S[N-2].push(S[N]),this.$=S[N-2];break;case 32:this.$=S[N].replace(/"/g,"");break;case 33:this.$={cardA:S[N],relType:S[N-1],cardB:S[N-2]};break;case 34:this.$=k.Cardinality.ZERO_OR_ONE;break;case 35:this.$=k.Cardinality.ZERO_OR_MORE;break;case 36:this.$=k.Cardinality.ONE_OR_MORE;break;case 37:this.$=k.Cardinality.ONLY_ONE;break;case 38:this.$=k.Cardinality.MD_PARENT;break;case 39:this.$=k.Identification.NON_IDENTIFYING;break;case 40:this.$=k.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:u,42:h,43:f,44:d,45:p}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(m,[2,19]),t(m,[2,20]),t(e,[2,4]),{11:29,27:s,28:l},{16:30,17:[1,31],29:32,30:33,34:g},{11:35,27:s,28:l},{40:36,46:[1,37],47:[1,38]},t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),t(y,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:g},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:u,42:h,43:f,44:d,45:p},t(v,[2,39]),t(v,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(x,[2,23],{32:50,33:51,35:52,37:b,38:w}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(x,[2,24],{33:56,36:[1,57],38:w}),t(x,[2,25]),t(_,[2,29]),t(x,[2,32]),t(_,[2,31]),{16:58,17:[1,59],29:32,30:33,34:g},t(x,[2,26]),{35:60,37:b},{17:[1,61]},t(e,[2,13]),t(_,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:o(function(A,I){if(I.recoverable)this.trace(A);else{var D=new Error(A);throw D.hash=I,D}},"parseError"),parse:o(function(A){var I=this,D=[0],k=[],R=[null],S=[],O=this.table,N="",P=0,F=0,B=0,$=2,z=1,W=S.slice.call(arguments,1),j=Object.create(this.lexer),K={yy:{}};for(var ie in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ie)&&(K.yy[ie]=this.yy[ie]);j.setInput(A,K.yy),K.yy.lexer=j,K.yy.parser=this,typeof j.yylloc>"u"&&(j.yylloc={});var Q=j.yylloc;S.push(Q);var ee=j.options&&j.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function J(Ge){D.length=D.length-2*Ge,R.length=R.length-Ge,S.length=S.length-Ge}o(J,"popStack");function H(){var Ge;return Ge=k.pop()||j.lex()||z,typeof Ge!="number"&&(Ge instanceof Array&&(k=Ge,Ge=k.pop()),Ge=I.symbols_[Ge]||Ge),Ge}o(H,"lex");for(var q,Z,ae,ue,ce,te,De={},oe,ke,Fe,Be;;){if(ae=D[D.length-1],this.defaultActions[ae]?ue=this.defaultActions[ae]:((q===null||typeof q>"u")&&(q=H()),ue=O[ae]&&O[ae][q]),typeof ue>"u"||!ue.length||!ue[0]){var Ve="";Be=[];for(oe in O[ae])this.terminals_[oe]&&oe>$&&Be.push("'"+this.terminals_[oe]+"'");j.showPosition?Ve="Parse error on line "+(P+1)+`: +`+j.showPosition()+` +Expecting `+Be.join(", ")+", got '"+(this.terminals_[q]||q)+"'":Ve="Parse error on line "+(P+1)+": Unexpected "+(q==z?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(Ve,{text:j.match,token:this.terminals_[q]||q,line:j.yylineno,loc:Q,expected:Be})}if(ue[0]instanceof Array&&ue.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ae+", token: "+q);switch(ue[0]){case 1:D.push(q),R.push(j.yytext),S.push(j.yylloc),D.push(ue[1]),q=null,Z?(q=Z,Z=null):(F=j.yyleng,N=j.yytext,P=j.yylineno,Q=j.yylloc,B>0&&B--);break;case 2:if(ke=this.productions_[ue[1]][1],De.$=R[R.length-ke],De._$={first_line:S[S.length-(ke||1)].first_line,last_line:S[S.length-1].last_line,first_column:S[S.length-(ke||1)].first_column,last_column:S[S.length-1].last_column},ee&&(De._$.range=[S[S.length-(ke||1)].range[0],S[S.length-1].range[1]]),te=this.performAction.apply(De,[N,F,P,K.yy,ue[1],R,S].concat(W)),typeof te<"u")return te;ke&&(D=D.slice(0,-1*ke*2),R=R.slice(0,-1*ke),S=S.slice(0,-1*ke)),D.push(this.productions_[ue[1]][0]),R.push(De.$),S.push(De._$),Fe=O[D[D.length-2]][D[D.length-1]],D.push(Fe);break;case 3:return!0}}return!0},"parse")},E=function(){var C={EOF:1,parseError:o(function(I,D){if(this.yy.parser)this.yy.parser.parseError(I,D);else throw new Error(I)},"parseError"),setInput:o(function(A,I){return this.yy=I||this.yy||{},this._input=A,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var I=A.match(/(?:\r\n?|\n).*/g);return I?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),A},"input"),unput:o(function(A){var I=A.length,D=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-I),this.offset-=I;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),D.length-1&&(this.yylineno-=D.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:D?(D.length===k.length?this.yylloc.first_column:0)+k[k.length-D.length].length-D[0].length:this.yylloc.first_column-I},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-I]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var A=this.match;return A.length<20&&(A+=this._input.substr(0,20-A.length)),(A.substr(0,20)+(A.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),I=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+I+"^"},"showPosition"),test_match:o(function(A,I){var D,k,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),k=A[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+A[0].length},this.yytext+=A[0],this.match+=A[0],this.matches=A,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(A[0].length),this.matched+=A[0],D=this.performAction.call(this,this.yy,this,I,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),D)return D;if(this._backtrack){for(var S in R)this[S]=R[S];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,I,D,k;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),S=0;SI[0].length)){if(I=D,k=S,this.options.backtrack_lexer){if(A=this.test_match(D,R[S]),A!==!1)return A;if(this._backtrack){I=!1;continue}else return!1}else if(!this.options.flex)break}return I?(A=this.test_match(I,R[k]),A!==!1?A:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var I=this.next();return I||this.lex()},"lex"),begin:o(function(I){this.conditionStack.push(I)},"begin"),popState:o(function(){var I=this.conditionStack.length-1;return I>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(I){return I=this.conditionStack.length-1-Math.abs(I||0),I>=0?this.conditionStack[I]:"INITIAL"},"topState"),pushState:o(function(I){this.begin(I)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(I,D,k,R){var S=R;switch(k){case 0:return this.begin("acc_title"),22;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),24;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;break;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;break;case 22:return D.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return D.yytext[0];case 55:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return C}();T.lexer=E;function L(){this.yy={}}return o(L,"Parser"),L.prototype=T,T.Parser=L,new L}();_D.parser=_D;Jie=_D});var Gd,LD,xPe,bPe,tae,wPe,TPe,kPe,EPe,SPe,rae,nae=M(()=>{"use strict";ht();Vt();ki();Gd=new Map,LD=[],xPe={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},bPe={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},tae=o(function(t,e=void 0){return Gd.has(t)?!Gd.get(t).alias&&e&&(Gd.get(t).alias=e,Y.info(`Add alias '${e}' to entity '${t}'`)):(Gd.set(t,{attributes:[],alias:e}),Y.info("Added new entity :",t)),Gd.get(t)},"addEntity"),wPe=o(()=>Gd,"getEntities"),TPe=o(function(t,e){let r=tae(t),n;for(n=e.length-1;n>=0;n--)r.attributes.push(e[n]),Y.debug("Added attribute ",e[n].attributeName)},"addAttributes"),kPe=o(function(t,e,r,n){let i={entityA:t,roleA:e,entityB:r,relSpec:n};LD.push(i),Y.debug("Added new relationship :",i)},"addRelationship"),EPe=o(()=>LD,"getRelationships"),SPe=o(function(){Gd=new Map,LD=[],_r()},"clear"),rae={Cardinality:xPe,Identification:bPe,getConfig:o(()=>de().er,"getConfig"),addEntity:tae,addAttributes:TPe,getEntities:wPe,addRelationship:kPe,getRelationships:EPe,clear:SPe,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,setDiagramTitle:ln,getDiagramTitle:Jr}});var Rl,CPe,Wo,iae=M(()=>{"use strict";Rl={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},CPe=o(function(t,e){let r;t.append("defs").append("marker").attr("id",Rl.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Rl.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Rl.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",Rl.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",Rl.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",Rl.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"insertMarkers"),Wo={ERMarkers:Rl,insertMarkers:CPe}});var aae,sae=M(()=>{"use strict";aae=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function APe(t){return typeof t=="string"&&aae.test(t)}var oae,lae=M(()=>{"use strict";sae();o(APe,"validate");oae=APe});function cae(t,e=0){return pa[t[e+0]]+pa[t[e+1]]+pa[t[e+2]]+pa[t[e+3]]+"-"+pa[t[e+4]]+pa[t[e+5]]+"-"+pa[t[e+6]]+pa[t[e+7]]+"-"+pa[t[e+8]]+pa[t[e+9]]+"-"+pa[t[e+10]]+pa[t[e+11]]+pa[t[e+12]]+pa[t[e+13]]+pa[t[e+14]]+pa[t[e+15]]}var pa,uae=M(()=>{"use strict";pa=[];for(let t=0;t<256;++t)pa.push((t+256).toString(16).slice(1));o(cae,"unsafeStringify")});function _Pe(t){if(!oae(t))throw TypeError("Invalid UUID");let e,r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}var hae,fae=M(()=>{"use strict";lae();o(_Pe,"parse");hae=_Pe});function LPe(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r{"use strict";uae();fae();o(LPe,"stringToBytes");DPe="6ba7b810-9dad-11d1-80b4-00c04fd430c8",NPe="6ba7b811-9dad-11d1-80b4-00c04fd430c8";o(DD,"v35")});function RPe(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function ND(t,e){return t<>>32-e}function MPe(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){let s=unescape(encodeURIComponent(t));t=[];for(let l=0;l>>0;p=d,d=f,f=ND(h,30)>>>0,h=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+h>>>0,r[2]=r[2]+f>>>0,r[3]=r[3]+d>>>0,r[4]=r[4]+p>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var pae,mae=M(()=>{"use strict";o(RPe,"f");o(ND,"ROTL");o(MPe,"sha1");pae=MPe});var IPe,RD,gae=M(()=>{"use strict";dae();mae();IPe=DD("v5",80,pae),RD=IPe});var yae=M(()=>{"use strict";gae()});function HPe(t="",e=""){let r=t.replace(OPe,"");return`${xae(e)}${xae(r)}${RD(t,UPe)}`}function xae(t=""){return t.length>0?`${t}-`:""}var OPe,Bi,zv,PPe,BPe,FPe,zPe,bae,GPe,vae,$Pe,VPe,UPe,wae,Tae=M(()=>{"use strict";Ns();mr();Pv();Vt();ht();hr();iae();ni();fr();yae();OPe=/[^\dA-Za-z](\W)*/g,Bi={},zv=new Map,PPe=o(function(t){let e=Object.keys(t);for(let r of e)Bi[r]=t[r]},"setConf"),BPe=o((t,e,r)=>{let n=Bi.entityPadding/3,i=Bi.entityPadding/3,a=Bi.fontSize*.85,s=e.node().getBBox(),l=[],u=!1,h=!1,f=0,d=0,p=0,m=0,g=s.height+n*2,y=1;r.forEach(w=>{w.attributeKeyTypeList!==void 0&&w.attributeKeyTypeList.length>0&&(u=!0),w.attributeComment!==void 0&&(h=!0)}),r.forEach(w=>{let _=`${e.node().id}-attr-${y}`,T=0,E=ou(w.attributeType),L=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(E),C=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeName),A={};A.tn=L,A.nn=C;let I=L.node().getBBox(),D=C.node().getBBox();if(f=Math.max(f,I.width),d=Math.max(d,D.width),T=Math.max(I.height,D.height),u){let k=w.attributeKeyTypeList!==void 0?w.attributeKeyTypeList.join(","):"",R=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(k);A.kn=R;let S=R.node().getBBox();p=Math.max(p,S.width),T=Math.max(T,S.height)}if(h){let k=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeComment||"");A.cn=k;let R=k.node().getBBox();m=Math.max(m,R.width),T=Math.max(T,R.height)}A.height=T,l.push(A),g+=T+n*2,y+=1});let v=4;u&&(v+=2),h&&(v+=2);let x=f+d+p+m,b={width:Math.max(Bi.minEntityWidth,Math.max(s.width+Bi.entityPadding*2,x+i*v)),height:r.length>0?g:Math.max(Bi.minEntityHeight,s.height+Bi.entityPadding*2)};if(r.length>0){let w=Math.max(0,(b.width-x-i*v)/(v/2));e.attr("transform","translate("+b.width/2+","+(n+s.height/2)+")");let _=s.height+n*2,T="attributeBoxOdd";l.forEach(E=>{let L=_+n+E.height/2;E.tn.attr("transform","translate("+i+","+L+")");let C=t.insert("rect","#"+E.tn.node().id).classed(`er ${T}`,!0).attr("x",0).attr("y",_).attr("width",f+i*2+w).attr("height",E.height+n*2),A=parseFloat(C.attr("x"))+parseFloat(C.attr("width"));E.nn.attr("transform","translate("+(A+i)+","+L+")");let I=t.insert("rect","#"+E.nn.node().id).classed(`er ${T}`,!0).attr("x",A).attr("y",_).attr("width",d+i*2+w).attr("height",E.height+n*2),D=parseFloat(I.attr("x"))+parseFloat(I.attr("width"));if(u){E.kn.attr("transform","translate("+(D+i)+","+L+")");let k=t.insert("rect","#"+E.kn.node().id).classed(`er ${T}`,!0).attr("x",D).attr("y",_).attr("width",p+i*2+w).attr("height",E.height+n*2);D=parseFloat(k.attr("x"))+parseFloat(k.attr("width"))}h&&(E.cn.attr("transform","translate("+(D+i)+","+L+")"),t.insert("rect","#"+E.cn.node().id).classed(`er ${T}`,"true").attr("x",D).attr("y",_).attr("width",m+i*2+w).attr("height",E.height+n*2)),_+=E.height+n*2,T=T==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else b.height=Math.max(Bi.minEntityHeight,g),e.attr("transform","translate("+b.width/2+","+b.height/2+")");return b},"drawAttributes"),FPe=o(function(t,e,r){let n=[...e.keys()],i;return n.forEach(function(a){let s=HPe(a,"entity");zv.set(a,s);let l=t.append("g").attr("id",s);i=i===void 0?s:i;let u="text-"+s,h=l.append("text").classed("er entityLabel",!0).attr("id",u).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",de().fontFamily).style("font-size",Bi.fontSize+"px").text(e.get(a).alias??a),{width:f,height:d}=BPe(l,h,e.get(a).attributes),m=l.insert("rect","#"+u).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",f).attr("height",d).node().getBBox();r.setNode(s,{width:m.width,height:m.height,shape:"rect",id:s})}),i},"drawEntities"),zPe=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},"adjustEntities"),bae=o(function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},"getEdgeName"),GPe=o(function(t,e){return t.forEach(function(r){e.setEdge(zv.get(r.entityA),zv.get(r.entityB),{relationship:r},bae(r))}),t},"addRelationships"),vae=0,$Pe=o(function(t,e,r,n,i){vae++;let a=r.edge(zv.get(e.entityA),zv.get(e.entityB),bae(e)),s=Ka().x(function(y){return y.x}).y(function(y){return y.y}).curve(Do),l=t.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",s(a.points)).style("stroke",Bi.stroke).style("fill","none");e.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let u="";switch(Bi.arrowMarkerAbsolute&&(u=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,u=u.replace(/\(/g,"\\("),u=u.replace(/\)/g,"\\)")),e.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_END+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_END+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_END+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_END+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_START+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_START+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_START+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_START+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.MD_PARENT_START+")");break}let h=l.node().getTotalLength(),f=l.node().getPointAtLength(h*.5),d="rel"+vae,p=e.roleA.split(/
    /g),m=t.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",f.x).attr("y",f.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",de().fontFamily).style("font-size",Bi.fontSize+"px");if(p.length==1)m.text(e.roleA);else{let y=-(p.length-1)*.5;p.forEach((v,x)=>{m.append("tspan").attr("x",f.x).attr("dy",`${x===0?y:1}em`).text(v)})}let g=m.node().getBBox();t.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",f.x-g.width/2).attr("y",f.y-g.height/2).attr("width",g.width).attr("height",g.height)},"drawRelationshipFromLayout"),VPe=o(function(t,e,r,n){Bi=de().er,Y.info("Drawing ER diagram");let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let l=(i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body")).select(`[id='${e}']`);Wo.insertMarkers(l,Bi);let u;u=new Mr({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:Bi.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let h=FPe(l,n.db.getEntities(),u),f=GPe(n.db.getRelationships(),u);Du(u),zPe(l,u),f.forEach(function(y){$Pe(l,y,u,h,n)});let d=Bi.diagramPadding;Ut.insertTitle(l,"entityTitleText",Bi.titleTopMargin,n.db.getDiagramTitle());let p=l.node().getBBox(),m=p.width+d*2,g=p.height+d*2;Zr(l,g,m,Bi.useMaxWidth),l.attr("viewBox",`${p.x-d} ${p.y-d} ${m} ${g}`)},"draw"),UPe="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";o(HPe,"generateId");o(xae,"strWithHyphen");wae={setConf:PPe,draw:VPe}});var WPe,kae,Eae=M(()=>{"use strict";WPe=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,"getStyles"),kae=WPe});var Sae={};vr(Sae,{diagram:()=>YPe});var YPe,Cae=M(()=>{"use strict";eae();nae();Tae();Eae();YPe={parser:Jie,db:rae,renderer:wae,styles:kae}});function ei(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function ma(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function MD(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Vd(t){return typeof t=="object"&&t!==null&&ei(t.container)&&ma(t.reference)&&typeof t.message=="string"}function io(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Jh(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function Gv(t){return io(t)&&typeof t.fullText=="string"}var $d,Yo=M(()=>{"use strict";o(ei,"isAstNode");o(ma,"isReference");o(MD,"isAstNodeDescription");o(Vd,"isLinkingError");$d=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,r){return ei(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(e,r);return n[r]=a,a}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(io,"isCompositeCstNode");o(Jh,"isLeafCstNode");o(Gv,"isRootCstNode")});function KPe(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function dT(t){return!!t&&typeof t[Symbol.iterator]=="function"}function tn(...t){if(t.length===1){let e=t[0];if(e instanceof ao)return e;if(dT(e))return new ao(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new ao(()=>({index:0}),r=>r.index1?new ao(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";ao=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){let r=e[Symbol.iterator]();return new t(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=r.next(),!i.done)return i;while(!i.done);return Ja})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=KPe(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?Ja:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return Ja})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(dT(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return Ja})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(dT(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return Ja})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?Ja:this.nextFn(r.state)))}distinct(e){let r=new Set;return this.filter(n=>{let i=e?e(n):n;return r.has(i)?!1:(r.add(i),!0)})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(KPe,"toString");o(dT,"isIterable");$v=new ao(()=>{},()=>Ja),Ja=Object.freeze({done:!0,value:void 0});o(tn,"stream");Cc=class extends ao{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return Ja})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(Gm||(Gm={}))});var mT={};vr(mT,{DefaultNameRegexp:()=>pT,RangeComparison:()=>Nu,compareRange:()=>Dae,findCommentNode:()=>BD,findDeclarationNodeAtOffset:()=>ZPe,findLeafNodeAtOffset:()=>FD,findLeafNodeBeforeOffset:()=>Nae,flattenCst:()=>QPe,getInteriorNodes:()=>tBe,getNextNode:()=>JPe,getPreviousNode:()=>Mae,getStartlineNode:()=>eBe,inRange:()=>PD,isChildNode:()=>OD,isCommentNode:()=>ID,streamCst:()=>Ud,toDocumentSegment:()=>Hd,tokenToRange:()=>$m});function Ud(t){return new Cc(t,e=>io(e)?e.content:[],{includeRoot:!0})}function QPe(t){return Ud(t).filter(Jh)}function OD(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function $m(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Hd(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function Dae(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>e.end.character)return Nu.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineNu.After}function ZPe(t,e,r=pT){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return FD(t,e)}}function BD(t,e){if(t){let r=Mae(t,!0);if(r&&ID(r,e))return r;if(Gv(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(ID(a,e))return a}}}}function ID(t,e){return Jh(t)&&e.includes(t.tokenType.name)}function FD(t,e){if(Jh(t))return t;if(io(t)){let r=Rae(t,e,!1);if(r)return FD(r,e)}}function Nae(t,e){if(Jh(t))return t;if(io(t)){let r=Rae(t,e,!0);if(r)return Nae(r,e)}}function Rae(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function Mae(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function JPe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";Yo();Rs();o(Ud,"streamCst");o(QPe,"flattenCst");o(OD,"isChildNode");o($m,"tokenToRange");o(Hd,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside"})(Nu||(Nu={}));o(Dae,"compareRange");o(PD,"inRange");pT=/^[\w\p{L}]$/u;o(ZPe,"findDeclarationNodeAtOffset");o(BD,"findCommentNode");o(ID,"isCommentNode");o(FD,"findLeafNodeAtOffset");o(Nae,"findLeafNodeBeforeOffset");o(Rae,"binarySearch");o(Mae,"getPreviousNode");o(JPe,"getNextNode");o(eBe,"getStartlineNode");o(tBe,"getInteriorNodes");o(rBe,"getCommonParent");o(Lae,"getParentChain")});function ef(t){throw new Error("Error! The input value was not handled.")}var Wd,gT=M(()=>{"use strict";Wd=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(ef,"assertUnreachable")});var Yv={};vr(Yv,{AbstractElement:()=>GD,AbstractRule:()=>Vv,AbstractType:()=>Uv,Action:()=>pN,Alternatives:()=>mN,ArrayLiteral:()=>$D,ArrayType:()=>VD,Assignment:()=>gN,BooleanLiteral:()=>HD,CharacterRange:()=>yN,Condition:()=>yT,Conjunction:()=>YD,CrossReference:()=>xN,Disjunction:()=>XD,EndOfFile:()=>bN,Grammar:()=>KD,GrammarImport:()=>Oae,Group:()=>TN,InferredType:()=>QD,Interface:()=>ZD,Keyword:()=>kN,LangiumGrammarAstReflection:()=>Vm,LangiumGrammarTerminals:()=>nBe,NamedArgument:()=>Pae,NegatedToken:()=>EN,Negation:()=>JD,NumberLiteral:()=>tN,Parameter:()=>rN,ParameterReference:()=>nN,ParserRule:()=>aN,ReferenceType:()=>sN,RegexToken:()=>CN,ReturnType:()=>Bae,RuleCall:()=>_N,SimpleType:()=>cN,StringLiteral:()=>uN,TerminalAlternatives:()=>LN,TerminalGroup:()=>NN,TerminalRule:()=>xT,TerminalRuleCall:()=>MN,Type:()=>hN,TypeAttribute:()=>Fae,TypeDefinition:()=>zD,UnionType:()=>fN,UnorderedGroup:()=>IN,UntilToken:()=>ON,ValueLiteral:()=>vT,Wildcard:()=>BN,isAbstractElement:()=>Hv,isAbstractRule:()=>iBe,isAbstractType:()=>aBe,isAction:()=>Ru,isAlternatives:()=>kT,isArrayLiteral:()=>uBe,isArrayType:()=>UD,isAssignment:()=>Il,isBooleanLiteral:()=>WD,isCharacterRange:()=>vN,isCondition:()=>sBe,isConjunction:()=>qD,isCrossReference:()=>Yd,isDisjunction:()=>jD,isEndOfFile:()=>wN,isFeatureName:()=>oBe,isGrammar:()=>hBe,isGrammarImport:()=>fBe,isGroup:()=>tf,isInferredType:()=>bT,isInterface:()=>wT,isKeyword:()=>Xo,isNamedArgument:()=>dBe,isNegatedToken:()=>SN,isNegation:()=>eN,isNumberLiteral:()=>pBe,isParameter:()=>mBe,isParameterReference:()=>iN,isParserRule:()=>Ma,isPrimitiveType:()=>Iae,isReferenceType:()=>oN,isRegexToken:()=>AN,isReturnType:()=>lN,isRuleCall:()=>Ol,isSimpleType:()=>TT,isStringLiteral:()=>gBe,isTerminalAlternatives:()=>DN,isTerminalGroup:()=>RN,isTerminalRule:()=>qo,isTerminalRuleCall:()=>ET,isType:()=>Wv,isTypeAttribute:()=>yBe,isTypeDefinition:()=>lBe,isUnionType:()=>dN,isUnorderedGroup:()=>ST,isUntilToken:()=>PN,isValueLiteral:()=>cBe,isWildcard:()=>FN,reflection:()=>lr});function iBe(t){return lr.isInstance(t,Vv)}function aBe(t){return lr.isInstance(t,Uv)}function sBe(t){return lr.isInstance(t,yT)}function oBe(t){return Iae(t)||t==="current"||t==="entry"||t==="extends"||t==="false"||t==="fragment"||t==="grammar"||t==="hidden"||t==="import"||t==="interface"||t==="returns"||t==="terminal"||t==="true"||t==="type"||t==="infer"||t==="infers"||t==="with"||typeof t=="string"&&/\^?[_a-zA-Z][\w_]*/.test(t)}function Iae(t){return t==="string"||t==="number"||t==="boolean"||t==="Date"||t==="bigint"}function lBe(t){return lr.isInstance(t,zD)}function cBe(t){return lr.isInstance(t,vT)}function Hv(t){return lr.isInstance(t,GD)}function uBe(t){return lr.isInstance(t,$D)}function UD(t){return lr.isInstance(t,VD)}function WD(t){return lr.isInstance(t,HD)}function qD(t){return lr.isInstance(t,YD)}function jD(t){return lr.isInstance(t,XD)}function hBe(t){return lr.isInstance(t,KD)}function fBe(t){return lr.isInstance(t,Oae)}function bT(t){return lr.isInstance(t,QD)}function wT(t){return lr.isInstance(t,ZD)}function dBe(t){return lr.isInstance(t,Pae)}function eN(t){return lr.isInstance(t,JD)}function pBe(t){return lr.isInstance(t,tN)}function mBe(t){return lr.isInstance(t,rN)}function iN(t){return lr.isInstance(t,nN)}function Ma(t){return lr.isInstance(t,aN)}function oN(t){return lr.isInstance(t,sN)}function lN(t){return lr.isInstance(t,Bae)}function TT(t){return lr.isInstance(t,cN)}function gBe(t){return lr.isInstance(t,uN)}function qo(t){return lr.isInstance(t,xT)}function Wv(t){return lr.isInstance(t,hN)}function yBe(t){return lr.isInstance(t,Fae)}function dN(t){return lr.isInstance(t,fN)}function Ru(t){return lr.isInstance(t,pN)}function kT(t){return lr.isInstance(t,mN)}function Il(t){return lr.isInstance(t,gN)}function vN(t){return lr.isInstance(t,yN)}function Yd(t){return lr.isInstance(t,xN)}function wN(t){return lr.isInstance(t,bN)}function tf(t){return lr.isInstance(t,TN)}function Xo(t){return lr.isInstance(t,kN)}function SN(t){return lr.isInstance(t,EN)}function AN(t){return lr.isInstance(t,CN)}function Ol(t){return lr.isInstance(t,_N)}function DN(t){return lr.isInstance(t,LN)}function RN(t){return lr.isInstance(t,NN)}function ET(t){return lr.isInstance(t,MN)}function ST(t){return lr.isInstance(t,IN)}function PN(t){return lr.isInstance(t,ON)}function FN(t){return lr.isInstance(t,BN)}var nBe,Vv,Uv,yT,zD,vT,GD,$D,VD,HD,YD,XD,KD,Oae,QD,ZD,Pae,JD,tN,rN,nN,aN,sN,Bae,cN,uN,xT,hN,Fae,fN,pN,mN,gN,yN,xN,bN,TN,kN,EN,CN,_N,LN,NN,MN,IN,ON,BN,Vm,lr,Ac=M(()=>{"use strict";Yo();nBe={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},Vv="AbstractRule";o(iBe,"isAbstractRule");Uv="AbstractType";o(aBe,"isAbstractType");yT="Condition";o(sBe,"isCondition");o(oBe,"isFeatureName");o(Iae,"isPrimitiveType");zD="TypeDefinition";o(lBe,"isTypeDefinition");vT="ValueLiteral";o(cBe,"isValueLiteral");GD="AbstractElement";o(Hv,"isAbstractElement");$D="ArrayLiteral";o(uBe,"isArrayLiteral");VD="ArrayType";o(UD,"isArrayType");HD="BooleanLiteral";o(WD,"isBooleanLiteral");YD="Conjunction";o(qD,"isConjunction");XD="Disjunction";o(jD,"isDisjunction");KD="Grammar";o(hBe,"isGrammar");Oae="GrammarImport";o(fBe,"isGrammarImport");QD="InferredType";o(bT,"isInferredType");ZD="Interface";o(wT,"isInterface");Pae="NamedArgument";o(dBe,"isNamedArgument");JD="Negation";o(eN,"isNegation");tN="NumberLiteral";o(pBe,"isNumberLiteral");rN="Parameter";o(mBe,"isParameter");nN="ParameterReference";o(iN,"isParameterReference");aN="ParserRule";o(Ma,"isParserRule");sN="ReferenceType";o(oN,"isReferenceType");Bae="ReturnType";o(lN,"isReturnType");cN="SimpleType";o(TT,"isSimpleType");uN="StringLiteral";o(gBe,"isStringLiteral");xT="TerminalRule";o(qo,"isTerminalRule");hN="Type";o(Wv,"isType");Fae="TypeAttribute";o(yBe,"isTypeAttribute");fN="UnionType";o(dN,"isUnionType");pN="Action";o(Ru,"isAction");mN="Alternatives";o(kT,"isAlternatives");gN="Assignment";o(Il,"isAssignment");yN="CharacterRange";o(vN,"isCharacterRange");xN="CrossReference";o(Yd,"isCrossReference");bN="EndOfFile";o(wN,"isEndOfFile");TN="Group";o(tf,"isGroup");kN="Keyword";o(Xo,"isKeyword");EN="NegatedToken";o(SN,"isNegatedToken");CN="RegexToken";o(AN,"isRegexToken");_N="RuleCall";o(Ol,"isRuleCall");LN="TerminalAlternatives";o(DN,"isTerminalAlternatives");NN="TerminalGroup";o(RN,"isTerminalGroup");MN="TerminalRuleCall";o(ET,"isTerminalRuleCall");IN="UnorderedGroup";o(ST,"isUnorderedGroup");ON="UntilToken";o(PN,"isUntilToken");BN="Wildcard";o(FN,"isWildcard");Vm=class extends $d{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,r){switch(e){case pN:case mN:case gN:case yN:case xN:case bN:case TN:case kN:case EN:case CN:case _N:case LN:case NN:case MN:case IN:case ON:case BN:return this.isSubtype(GD,r);case $D:case tN:case uN:return this.isSubtype(vT,r);case VD:case sN:case cN:case fN:return this.isSubtype(zD,r);case HD:return this.isSubtype(yT,r)||this.isSubtype(vT,r);case YD:case XD:case JD:case nN:return this.isSubtype(yT,r);case QD:case ZD:case hN:return this.isSubtype(Uv,r);case aN:return this.isSubtype(Vv,r)||this.isSubtype(Uv,r);case xT:return this.isSubtype(Vv,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Uv;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Vv;case"Grammar:usedGrammars":return KD;case"NamedArgument:parameter":case"ParameterReference:parameter":return rN;case"TerminalRuleCall:rule":return xT;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},lr=new Vm});var AT={};vr(AT,{assignMandatoryProperties:()=>$N,copyAstNode:()=>GN,findLocalReferences:()=>xBe,findRootNode:()=>zae,getContainerOfType:()=>qd,getDocument:()=>Fi,hasContainerOfType:()=>vBe,linkContentToContainer:()=>CT,streamAllContents:()=>_c,streamAst:()=>jo,streamContents:()=>qv,streamReferences:()=>Um});function CT(t){for(let[e,r]of Object.entries(t))e.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{ei(n)&&(n.$container=t,n.$containerProperty=e,n.$containerIndex=i)}):ei(r)&&(r.$container=t,r.$containerProperty=e))}function qd(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function vBe(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Fi(t){let r=zae(t).$document;if(!r)throw new Error("AST node has no document.");return r}function zae(t){for(;t.$container;)t=t.$container;return t}function qv(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexqv(r,e))}function jo(t,e){if(t){if(e?.range&&!zN(t,e.range))return new Cc(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Cc(t,r=>qv(r,e),{includeRoot:!0})}function zN(t,e){var r;if(!e)return!0;let n=(r=t.$cstNode)===null||r===void 0?void 0:r.range;return n?PD(n,e):!1}function Um(t){return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{Um(n).forEach(i=>{i.reference.ref===t&&r.push(i.reference)})}),tn(r)}function $N(t,e){let r=t.getTypeMetaData(e.$type),n=e;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Gae(i.defaultValue))}function Gae(t){return Array.isArray(t)?[...t.map(Gae)]:t}function GN(t,e){let r={$type:t.$type};for(let[n,i]of Object.entries(t))if(!n.startsWith("$"))if(ei(i))r[n]=GN(i,e);else if(ma(i))r[n]=e(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)ei(s)?a.push(GN(s,e)):ma(s)?a.push(e(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return CT(r),r}var es=M(()=>{"use strict";Yo();Rs();Ml();o(CT,"linkContentToContainer");o(qd,"getContainerOfType");o(vBe,"hasContainerOfType");o(Fi,"getDocument");o(zae,"findRootNode");o(qv,"streamContents");o(_c,"streamAllContents");o(jo,"streamAst");o(zN,"isAstNodeInRange");o(Um,"streamReferences");o(xBe,"findLocalReferences");o($N,"assignMandatoryProperties");o(Gae,"copyDefaultValue");o(GN,"copyAstNode")});function ar(t){return t.charCodeAt(0)}function _T(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function Hm(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function Xd(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function Xv(){throw Error("Internal Error - Should never get here!")}function VN(t){return t.type==="Character"}var UN=M(()=>{"use strict";o(ar,"cc");o(_T,"insertToSet");o(Hm,"addFlag");o(Xd,"ASSERT_EXISTS");o(Xv,"ASSERT_NEVER_REACH_HERE");o(VN,"isCharacter")});var jv,Kv,HN,$ae=M(()=>{"use strict";UN();jv=[];for(let t=ar("0");t<=ar("9");t++)jv.push(t);Kv=[ar("_")].concat(jv);for(let t=ar("a");t<=ar("z");t++)Kv.push(t);for(let t=ar("A");t<=ar("Z");t++)Kv.push(t);HN=[ar(" "),ar("\f"),ar(` +`),ar("\r"),ar(" "),ar("\v"),ar(" "),ar("\xA0"),ar("\u1680"),ar("\u2000"),ar("\u2001"),ar("\u2002"),ar("\u2003"),ar("\u2004"),ar("\u2005"),ar("\u2006"),ar("\u2007"),ar("\u2008"),ar("\u2009"),ar("\u200A"),ar("\u2028"),ar("\u2029"),ar("\u202F"),ar("\u205F"),ar("\u3000"),ar("\uFEFF")]});var bBe,LT,wBe,jd,Vae=M(()=>{"use strict";UN();$ae();bBe=/[0-9a-fA-F]/,LT=/[0-9]/,wBe=/[1-9]/,jd=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Hm(n,"global");break;case"i":Hm(n,"ignoreCase");break;case"m":Hm(n,"multiLine");break;case"u":Hm(n,"unicode");break;case"y":Hm(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}Xd(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return Xv()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;Xd(r);break}if(!(e===!0&&r===void 0)&&Xd(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Xd(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):Xv()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[ar(` +`),ar("\r"),ar("\u2028"),ar("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=jv;break;case"D":e=jv,r=!0;break;case"s":e=HN;break;case"S":e=HN,r=!0;break;case"w":e=Kv;break;case"W":e=Kv,r=!0;break}return Xd(e)?{type:"Set",value:e,complement:r}:Xv()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=ar("\f");break;case"n":e=ar(` +`);break;case"r":e=ar("\r");break;case"t":e=ar(" ");break;case"v":e=ar("\v");break}return Xd(e)?{type:"Character",value:e}:Xv()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:ar("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:ar(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:ar(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(VN(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(VN(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Lc,Uae=M(()=>{"use strict";Lc=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var Qv=M(()=>{"use strict";Vae();Uae()});var NT={};vr(NT,{NEWLINE_REGEXP:()=>YN,escapeRegExp:()=>Qd,getCaseInsensitivePattern:()=>XN,getTerminalParts:()=>TBe,isMultilineComment:()=>qN,isWhitespace:()=>DT,partialMatches:()=>jN,partialRegExp:()=>Wae});function TBe(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=Hae.pattern(t),r=[];for(let n of e.value.value)Kd.reset(t),Kd.visit(n),r.push({start:Kd.startRegexp,end:Kd.endRegex});return r}catch{return[]}}function qN(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),Kd.reset(t),Kd.visit(Hae.pattern(t)),Kd.multiline}catch{return!1}}function DT(t){return(typeof t=="string"?new RegExp(t):t).test(" ")}function Qd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function XN(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Qd(e)).join("")}function jN(t,e){let r=Wae(t),n=e.match(r);return!!n&&n[0].length>0}function Wae(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var YN,Hae,WN,Kd,Wm=M(()=>{"use strict";Qv();YN=/\r?\n/gm,Hae=new jd,WN=class extends Lc{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=Qd(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},Kd=new WN;o(TBe,"getTerminalParts");o(qN,"isMultilineComment");o(DT,"isWhitespace");o(Qd,"escapeRegExp");o(XN,"getCaseInsensitivePattern");o(jN,"partialMatches");o(Wae,"partialRegExp")});var MT={};vr(MT,{findAssignment:()=>iR,findNameAssignment:()=>RT,findNodeForKeyword:()=>rR,findNodeForProperty:()=>Jv,findNodesForKeyword:()=>kBe,findNodesForKeywordInternal:()=>nR,findNodesForProperty:()=>eR,getActionAtElement:()=>Kae,getActionType:()=>Zae,getAllReachableRules:()=>Zv,getCrossReferenceTerminal:()=>ZN,getEntryRule:()=>Yae,getExplicitRuleType:()=>aR,getHiddenRules:()=>qae,getRuleType:()=>sR,getTypeName:()=>Zd,isArrayCardinality:()=>SBe,isArrayOperator:()=>CBe,isCommentTerminal:()=>JN,isDataType:()=>ABe,isDataTypeRule:()=>e2,isOptionalCardinality:()=>EBe,terminalRegex:()=>Ym});function Yae(t){return t.rules.find(e=>Ma(e)&&e.entry)}function qae(t){return t.rules.filter(e=>qo(e)&&e.hidden)}function Zv(t,e){let r=new Set,n=Yae(t);if(!n)return new Set(t.rules);let i=[n].concat(qae(t));for(let s of i)Xae(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||qo(s)&&s.hidden)&&a.add(s);return a}function Xae(t,e,r){e.add(t.name),_c(t).forEach(n=>{if(Ol(n)||r&&ET(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Xae(i,e,r)}})}function ZN(t){if(t.terminal)return t.terminal;if(t.type.ref){let e=RT(t.type.ref);return e?.terminal}}function JN(t){return t.hidden&&!Ym(t).test(" ")}function eR(t,e){return!t||!e?[]:tR(t,e,t.astNode,!0)}function Jv(t,e,r){if(!t||!e)return;let n=tR(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function tR(t,e,r,n){if(!n){let i=qd(t.grammarSource,Il);if(i&&i.feature===e)return[t]}return io(t)&&t.astNode===r?t.content.flatMap(i=>tR(i,e,r,!1)):[]}function kBe(t,e){return t?nR(t,e,t?.astNode):[]}function rR(t,e,r){if(!t)return;let n=nR(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function nR(t,e,r){if(t.astNode!==r)return[];if(Xo(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=Ud(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Xo(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function iR(t){var e;let r=t.astNode;for(;r===((e=t.container)===null||e===void 0?void 0:e.astNode);){let n=qd(t.grammarSource,Il);if(n)return n;t=t.container}}function RT(t){let e=t;return bT(e)&&(Ru(e.$container)?e=e.$container.$container:Ma(e.$container)?e=e.$container:ef(e.$container)),jae(t,e,new Map)}function jae(t,e,r){var n;function i(a,s){let l;return qd(a,Il)||(l=jae(s,s,r)),r.set(t,l),l}if(o(i,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let a of _c(e)){if(Il(a)&&a.feature.toLowerCase()==="name")return r.set(t,a),a;if(Ol(a)&&Ma(a.rule.ref))return i(a,a.rule.ref);if(TT(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Kae(t){let e=t.$container;if(tf(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Ru(a))return a;{let s=_c(r[i]).find(Ru);if(s)return s}}}if(Hv(e))return Kae(e)}function EBe(t,e){return t==="?"||t==="*"||tf(e)&&!!e.guardCondition}function SBe(t){return t==="*"||t==="+"}function CBe(t){return t==="+="}function e2(t){return Qae(t,new Set)}function Qae(t,e){if(e.has(t))return!0;e.add(t);for(let r of _c(t))if(Ol(r)){if(!r.rule.ref||Ma(r.rule.ref)&&!Qae(r.rule.ref,e))return!1}else{if(Il(r))return!1;if(Ru(r))return!1}return!!t.definition}function ABe(t){return QN(t.type,new Set)}function QN(t,e){if(e.has(t))return!0;if(e.add(t),UD(t))return!1;if(oN(t))return!1;if(dN(t))return t.types.every(r=>QN(r,e));if(TT(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return Wv(r)?QN(r.type,e):!1}else return!1}else return!1}function aR(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e){if(Ma(e))return e.name;if(wT(e)||Wv(e))return e.name}}}function Zd(t){var e;if(Ma(t))return e2(t)?t.name:(e=aR(t))!==null&&e!==void 0?e:t.name;if(wT(t)||Wv(t)||lN(t))return t.name;if(Ru(t)){let r=Zae(t);if(r)return r}else if(bT(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function Zae(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return Zd(t.type.ref)}function sR(t){var e,r,n;return qo(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":e2(t)?t.name:(n=aR(t))!==null&&n!==void 0?n:t.name}function Ym(t){let e={s:!1,i:!1,u:!1},r=qm(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function qm(t,e){if(DN(t))return _Be(t);if(RN(t))return LBe(t);if(vN(t))return RBe(t);if(ET(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Mu(qm(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(SN(t))return NBe(t);if(PN(t))return DBe(t);if(AN(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Mu(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(FN(t))return Mu(oR,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function _Be(t){return Mu(t.elements.map(e=>qm(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function LBe(t){return Mu(t.elements.map(e=>qm(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function DBe(t){return Mu(`${oR}*?${qm(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function NBe(t){return Mu(`(?!${qm(t.terminal)})${oR}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function RBe(t){return t.right?Mu(`[${KN(t.left)}-${KN(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):Mu(KN(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function KN(t){return Qd(t.value)}function Mu(t,e){var r;return(e.wrap!==!1||e.lookahead)&&(t=`(${(r=e.lookahead)!==null&&r!==void 0?r:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var oR,Pl=M(()=>{"use strict";gT();Ac();Yo();es();Ml();Wm();o(Yae,"getEntryRule");o(qae,"getHiddenRules");o(Zv,"getAllReachableRules");o(Xae,"ruleDfs");o(ZN,"getCrossReferenceTerminal");o(JN,"isCommentTerminal");o(eR,"findNodesForProperty");o(Jv,"findNodeForProperty");o(tR,"findNodesForPropertyInternal");o(kBe,"findNodesForKeyword");o(rR,"findNodeForKeyword");o(nR,"findNodesForKeywordInternal");o(iR,"findAssignment");o(RT,"findNameAssignment");o(jae,"findNameAssignmentInternal");o(Kae,"getActionAtElement");o(EBe,"isOptionalCardinality");o(SBe,"isArrayCardinality");o(CBe,"isArrayOperator");o(e2,"isDataTypeRule");o(Qae,"isDataTypeRuleInternal");o(ABe,"isDataType");o(QN,"isDataTypeInternal");o(aR,"getExplicitRuleType");o(Zd,"getTypeName");o(Zae,"getActionType");o(sR,"getRuleType");o(Ym,"terminalRegex");oR=/[\s\S]/.source;o(qm,"abstractElementToRegex");o(_Be,"terminalAlternativesToRegex");o(LBe,"terminalGroupToRegex");o(DBe,"untilTokenToRegex");o(NBe,"negateTokenToRegex");o(RBe,"characterRangeToRegex");o(KN,"keywordToRegex");o(Mu,"withCardinality")});function lR(t){let e=[],r=t.Grammar;for(let n of r.rules)qo(n)&&JN(n)&&qN(Ym(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:pT}}var cR=M(()=>{"use strict";Ml();Pl();Wm();Ac();o(lR,"createGrammarConfig")});var uR=M(()=>{"use strict"});function Xm(t){console&&console.error&&console.error(`Error: ${t}`)}function t2(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var Jae=M(()=>{"use strict";o(Xm,"PRINT_ERROR");o(t2,"PRINT_WARNING")});function r2(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var ese=M(()=>{"use strict";o(r2,"timer")});function n2(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var tse=M(()=>{"use strict";o(n2,"toFastProperties")});var jm=M(()=>{"use strict";Jae();ese();tse()});function MBe(t){return IBe(t)?t.LABEL:t.name}function IBe(t){return gi(t.LABEL)&&t.LABEL!==""}function IT(t){return Je(t,Km)}function Km(t){function e(r){return Je(r,Km)}if(o(e,"convertDefinition"),t instanceof nn){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return gi(t.label)&&(r.label=t.label),r}else{if(t instanceof Cn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof an)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof An)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof _n)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Km(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof vn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Km(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Lr)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof xn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof kr){let r={type:"Terminal",name:t.terminalType.name,label:MBe(t.terminalType),idx:t.idx};gi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=Vo(n)?n.source:n),r}else{if(t instanceof ts)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var so,nn,ts,Cn,an,An,_n,Lr,vn,xn,kr,OT=M(()=>{"use strict";Ht();o(MBe,"tokenLabel");o(IBe,"hasTokenLabel");so=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Ce(this.definition,r=>{r.accept(e)})}},nn=class extends so{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},ts=class extends so{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",ha(this,Ds(e,r=>r!==void 0))}},Cn=class extends so{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ha(this,Ds(e,r=>r!==void 0))}},an=class extends so{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},An=class extends so{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},_n=class extends so{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},Lr=class extends so{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},vn=class extends so{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},xn=class extends so{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ha(this,Ds(e,r=>r!==void 0))}},kr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,ha(this,Ds(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(IT,"serializeGrammar");o(Km,"serializeProduction")});var rs,rse=M(()=>{"use strict";OT();rs=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case nn:return this.visitNonTerminal(r);case Cn:return this.visitAlternative(r);case an:return this.visitOption(r);case An:return this.visitRepetitionMandatory(r);case _n:return this.visitRepetitionMandatoryWithSeparator(r);case vn:return this.visitRepetitionWithSeparator(r);case Lr:return this.visitRepetition(r);case xn:return this.visitAlternation(r);case kr:return this.visitTerminal(r);case ts:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function hR(t){return t instanceof Cn||t instanceof an||t instanceof Lr||t instanceof An||t instanceof _n||t instanceof vn||t instanceof kr||t instanceof ts}function Jd(t,e=[]){return t instanceof an||t instanceof Lr||t instanceof vn?!0:t instanceof xn?Rv(t.definition,n=>Jd(n,e)):t instanceof nn&&Hn(e,t)?!1:t instanceof so?(t instanceof nn&&e.push(t),Ra(t.definition,n=>Jd(n,e))):!1}function fR(t){return t instanceof xn}function Ms(t){if(t instanceof nn)return"SUBRULE";if(t instanceof an)return"OPTION";if(t instanceof xn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof vn)return"MANY_SEP";if(t instanceof Lr)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}var nse=M(()=>{"use strict";Ht();OT();o(hR,"isSequenceProd");o(Jd,"isOptionalProd");o(fR,"isBranchingProd");o(Ms,"getProductionDslName")});var ns=M(()=>{"use strict";OT();rse();nse()});function ise(t,e,r){return[new an({definition:[new kr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Iu,PT=M(()=>{"use strict";Ht();ns();Iu=class{static{o(this,"RestWalker")}walk(e,r=[]){Ce(e.definition,(n,i)=>{let a=mi(e.definition,i+1);if(n instanceof nn)this.walkProdRef(n,a,r);else if(n instanceof kr)this.walkTerminal(n,a,r);else if(n instanceof Cn)this.walkFlat(n,a,r);else if(n instanceof an)this.walkOption(n,a,r);else if(n instanceof An)this.walkAtLeastOne(n,a,r);else if(n instanceof _n)this.walkAtLeastOneSep(n,a,r);else if(n instanceof vn)this.walkManySep(n,a,r);else if(n instanceof Lr)this.walkMany(n,a,r);else if(n instanceof xn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new an({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=ise(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new an({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=ise(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Ce(e.definition,a=>{let s=new Cn({definition:[a]});this.walk(s,i)})}};o(ise,"restForRepetitionWithSeparator")});function e0(t){if(t instanceof nn)return e0(t.referencedRule);if(t instanceof kr)return BBe(t);if(hR(t))return OBe(t);if(fR(t))return PBe(t);throw Error("non exhaustive match")}function OBe(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=Jd(a),e=e.concat(e0(a)),n=n+1,i=r.length>n;return Om(e)}function PBe(t){let e=Je(t.definition,r=>e0(r));return Om(Wr(e))}function BBe(t){return[t.terminalType]}var dR=M(()=>{"use strict";Ht();ns();o(e0,"first");o(OBe,"firstForSequence");o(PBe,"firstForBranching");o(BBe,"firstForTerminal")});var BT,pR=M(()=>{"use strict";BT="_~IN~_"});function ase(t){let e={};return Ce(t,r=>{let n=new mR(r).startWalking();ha(e,n)}),e}function FBe(t,e){return t.name+e+BT}var mR,sse=M(()=>{"use strict";PT();dR();Ht();pR();ns();mR=class extends Iu{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=FBe(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Cn({definition:a}),l=e0(s);this.follows[i]=l}};o(ase,"computeAllProdsFollows");o(FBe,"buildBetweenProdsFollowPrefix")});function Qm(t){let e=t.toString();if(FT.hasOwnProperty(e))return FT[e];{let r=zBe.pattern(e);return FT[e]=r,r}}function ose(){FT={}}var FT,zBe,zT=M(()=>{"use strict";Qv();FT={},zBe=new jd;o(Qm,"getRegExpAst");o(ose,"clearRegExpParserCache")});function use(t,e=!1){try{let r=Qm(t);return gR(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===cse)e&&t2(`${i2} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Xm(`${i2} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function gR(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")GT(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)GT(f,e,r);else{for(let f=h.from;f<=h.to&&f=Zm){let f=h.from>=Zm?h.from:Zm,d=h.to,p=Dc(f),m=Dc(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":gR(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&yR(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return br(e)}function GT(t,e,r){let n=Dc(t);e[n]=n,r===!0&&GBe(t,e)}function GBe(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Dc(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Dc(i.charCodeAt(0));e[a]=a}}}function lse(t,e){return Za(t.value,r=>{if(typeof r=="number")return Hn(e,r);{let n=r;return Za(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function yR(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Mt(t.value)?Ra(t.value,yR):yR(t.value):!1}function $T(t,e){if(e instanceof RegExp){let r=Qm(e),n=new vR(t);return n.visit(r),n.found}else return Za(e,r=>Hn(t,r.charCodeAt(0)))!==void 0}var cse,i2,vR,hse=M(()=>{"use strict";Qv();Ht();jm();zT();xR();cse="Complement Sets are not supported for first char optimization",i2=`Unable to use "first char" lexer optimizations: +`;o(use,"getOptimizedStartCodesIndices");o(gR,"firstCharOptimizedIndices");o(GT,"addOptimizedIdxToResult");o(GBe,"handleIgnoreCase");o(lse,"findCode");o(yR,"isWholeOptional");vR=class extends Lc{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){Hn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?lse(e,this.targetCharCodes)===void 0&&(this.found=!0):lse(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o($T,"canMatchCharCode")});function pse(t,e){e=qh(e,{useSticky:wR,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,w)=>w(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{iFe()});let n;r("Reject Lexer.NA",()=>{n=jh(t,b=>b[t0]===oi.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=Je(n,b=>{let w=b[t0];if(Vo(w)){let _=w.source;return _.length===1&&_!=="^"&&_!=="$"&&_!=="."&&!w.ignoreCase?_:_.length===2&&_[0]==="\\"&&!Hn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],_[1])?_[1]:e.useSticky?dse(w):fse(w)}else{if(Ei(w))return i=!0,{exec:w};if(typeof w=="object")return i=!0,w;if(typeof w=="string"){if(w.length===1)return w;{let _=w.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(_);return e.useSticky?dse(T):fse(T)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=Je(n,b=>b.tokenTypeIdx),l=Je(n,b=>{let w=b.GROUP;if(w!==oi.SKIPPED){if(gi(w))return w;if(dr(w))return!1;throw Error("non exhaustive match")}}),u=Je(n,b=>{let w=b.LONGER_ALT;if(w)return Mt(w)?Je(w,T=>jw(n,T)):[jw(n,w)]}),h=Je(n,b=>b.PUSH_MODE),f=Je(n,b=>It(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=Tse(e.lineTerminatorCharacters);d=Je(n,w=>!1),e.positionTracking!=="onlyOffset"&&(d=Je(n,w=>It(w,"LINE_BREAKS")?!!w.LINE_BREAKS:wse(w,b)===!1&&$T(b,w.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=Je(n,xse),m=Je(a,rFe),g=qr(n,(b,w)=>{let _=w.GROUP;return gi(_)&&_!==oi.SKIPPED&&(b[_]=[]),b},{}),y=Je(a,(b,w)=>({pattern:a[w],longerAlt:u[w],canLineTerminator:d[w],isCustom:p[w],short:m[w],group:l[w],push:h[w],pop:f[w],tokenTypeIdx:s[w],tokenType:n[w]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=qr(n,(b,w,_)=>{if(typeof w.PATTERN=="string"){let T=w.PATTERN.charCodeAt(0),E=Dc(T);bR(b,E,y[_])}else if(Mt(w.START_CHARS_HINT)){let T;Ce(w.START_CHARS_HINT,E=>{let L=typeof E=="string"?E.charCodeAt(0):E,C=Dc(L);T!==C&&(T=C,bR(b,C,y[_]))})}else if(Vo(w.PATTERN))if(w.PATTERN.unicode)v=!1,e.ensureOptimizations&&Xm(`${i2} Unable to analyze < ${w.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=use(w.PATTERN,e.ensureOptimizations);cr(T)&&(v=!1),Ce(T,E=>{bR(b,E,y[_])})}else e.ensureOptimizations&&Xm(`${i2} TokenType: <${w.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function mse(t,e){let r=[],n=VBe(t);r=r.concat(n.errors);let i=UBe(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat($Be(a)),r=r.concat(QBe(a)),r=r.concat(ZBe(a,e)),r=r.concat(JBe(a)),r}function $Be(t){let e=[],r=Yr(t,n=>Vo(n[t0]));return e=e.concat(WBe(r)),e=e.concat(XBe(r)),e=e.concat(jBe(r)),e=e.concat(KBe(r)),e=e.concat(YBe(r)),e}function VBe(t){let e=Yr(t,i=>!It(i,t0)),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:Wn.MISSING_PATTERN,tokenTypes:[i]})),n=Xh(t,e);return{errors:r,valid:n}}function UBe(t){let e=Yr(t,i=>{let a=i[t0];return!Vo(a)&&!Ei(a)&&!It(a,"exec")&&!gi(a)}),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Wn.INVALID_PATTERN,tokenTypes:[i]})),n=Xh(t,e);return{errors:r,valid:n}}function WBe(t){class e extends Lc{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Qm(a),l=new e;return l.visit(s),l.found}catch{return HBe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Wn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function YBe(t){let e=Yr(t,n=>n.PATTERN.test(""));return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Wn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function XBe(t){class e extends Lc{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Qm(a),l=new e;return l.visit(s),l.found}catch{return qBe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Wn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function jBe(t){let e=Yr(t,n=>{let i=n[t0];return i instanceof RegExp&&(i.multiline||i.global)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Wn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function KBe(t){let e=[],r=Je(t,a=>qr(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!Hn(e,l)&&l.PATTERN!==oi.NA&&(e.push(l),s.push(l)),s),[]));r=Tc(r);let n=Yr(r,a=>a.length>1);return Je(n,a=>{let s=Je(a,u=>u.name);return{message:`The same RegExp pattern ->${ra(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:Wn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function QBe(t){let e=Yr(t,n=>{if(!It(n,"GROUP"))return!1;let i=n.GROUP;return i!==oi.SKIPPED&&i!==oi.NA&&!gi(i)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Wn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function ZBe(t,e){let r=Yr(t,i=>i.PUSH_MODE!==void 0&&!Hn(e,i.PUSH_MODE));return Je(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Wn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function JBe(t){let e=[],r=qr(t,(n,i,a)=>{let s=i.PATTERN;return s===oi.NA||(gi(s)?n.push({str:s,idx:a,tokenType:i}):Vo(s)&&tFe(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Ce(t,(n,i)=>{Ce(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:Wn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function eFe(t,e){if(Vo(e)){let r=e.exec(t);return r!==null&&r.index===0}else{if(Ei(e))return e(t,0,[],{});if(It(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function tFe(t){return Za([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function fse(t){let e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function dse(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function gse(t,e,r){let n=[];return It(t,Jm)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Jm+`> property in its definition +`,type:Wn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),It(t,VT)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+VT+`> property in its definition +`,type:Wn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),It(t,VT)&&It(t,Jm)&&!It(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Jm}: <${t.defaultMode}>which does not exist +`,type:Wn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),It(t,VT)&&Ce(t.modes,(i,a)=>{Ce(i,(s,l)=>{if(dr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:Wn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(It(s,"LONGER_ALT")){let u=Mt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Ce(u,h=>{!dr(h)&&!Hn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:Wn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function yse(t,e,r){let n=[],i=!1,a=Tc(Wr(br(t.modes))),s=jh(a,u=>u[t0]===oi.NA),l=Tse(r);return e&&Ce(s,u=>{let h=wse(u,l);if(h!==!1){let d={message:nFe(u,h),type:h.issue,tokenType:u};n.push(d)}else It(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):$T(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Wn.NO_LINE_BREAKS_FLAGS}),n}function vse(t){let e={},r=zr(t);return Ce(r,n=>{let i=t[n];if(Mt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function xse(t){let e=t.PATTERN;if(Vo(e))return!1;if(Ei(e))return!0;if(It(e,"exec"))return!0;if(gi(e))return!1;throw Error("non exhaustive match")}function rFe(t){return gi(t)&&t.length===1?t.charCodeAt(0):!1}function wse(t,e){if(It(t,"LINE_BREAKS"))return!1;if(Vo(t.PATTERN)){try{$T(e,t.PATTERN)}catch(r){return{issue:Wn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(gi(t.PATTERN))return!1;if(xse(t))return{issue:Wn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function nFe(t,e){if(e.issue===Wn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Wn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Tse(t){return Je(t,r=>gi(r)?r.charCodeAt(0):r)}function bR(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Dc(t){return t255?255+~~(t/255):t}}var t0,Jm,VT,wR,HBe,qBe,bse,Zm,UT,xR=M(()=>{"use strict";Qv();a2();Ht();jm();hse();zT();t0="PATTERN",Jm="defaultMode",VT="modes",wR=typeof new RegExp("(?:)").sticky=="boolean";o(pse,"analyzeTokenTypes");o(mse,"validatePatterns");o($Be,"validateRegExpPattern");o(VBe,"findMissingPatterns");o(UBe,"findInvalidPatterns");HBe=/[^\\][$]/;o(WBe,"findEndOfInputAnchor");o(YBe,"findEmptyMatchRegExps");qBe=/[^\\[][\^]|^\^/;o(XBe,"findStartOfInputAnchor");o(jBe,"findUnsupportedFlags");o(KBe,"findDuplicatePatterns");o(QBe,"findInvalidGroupType");o(ZBe,"findModesThatDoNotExist");o(JBe,"findUnreachablePatterns");o(eFe,"testTokenType");o(tFe,"noMetaChar");o(fse,"addStartOfInput");o(dse,"addStickyFlag");o(gse,"performRuntimeChecks");o(yse,"performWarningRuntimeChecks");o(vse,"cloneEmptyGroups");o(xse,"isCustomPattern");o(rFe,"isShortPattern");bse={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function aFe(t){let e=rn(t),r=t,n=!0;for(;n;){r=Tc(Wr(Je(r,a=>a.CATEGORIES)));let i=Xh(r,e);e=e.concat(i),cr(i)?n=!1:r=i}return e}function sFe(t){Ce(t,e=>{TR(e)||(Sse[kse]=e,e.tokenTypeIdx=kse++),Ese(e)&&!Mt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ese(e)||(e.CATEGORIES=[]),cFe(e)||(e.categoryMatches=[]),uFe(e)||(e.categoryMatchesMap={})})}function oFe(t){Ce(t,e=>{e.categoryMatches=[],Ce(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(Sse[n].tokenTypeIdx)})})}function lFe(t){Ce(t,e=>{Cse([],e)})}function Cse(t,e){Ce(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Ce(e.CATEGORIES,r=>{let n=t.concat(e);Hn(n,r)||Cse(n,r)})}function TR(t){return It(t,"tokenTypeIdx")}function Ese(t){return It(t,"CATEGORIES")}function cFe(t){return It(t,"categoryMatches")}function uFe(t){return It(t,"categoryMatchesMap")}function Ase(t){return It(t,"tokenTypeIdx")}var kse,Sse,r0=M(()=>{"use strict";Ht();o(Ou,"tokenStructuredMatcher");o(eg,"tokenStructuredMatcherNoCategories");kse=1,Sse={};o(Pu,"augmentTokenTypes");o(aFe,"expandCategories");o(sFe,"assignTokenDefaultProps");o(oFe,"assignCategoriesTokensProp");o(lFe,"assignCategoriesMapProp");o(Cse,"singleAssignCategoriesToksMap");o(TR,"hasShortKeyProperty");o(Ese,"hasCategoriesProperty");o(cFe,"hasExtendingTokensTypesProperty");o(uFe,"hasExtendingTokensTypesMapProperty");o(Ase,"isTokenType")});var kR,ER=M(()=>{"use strict";kR={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var Wn,s2,oi,a2=M(()=>{"use strict";xR();Ht();jm();r0();ER();zT();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Wn||(Wn={}));s2={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:kR,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(s2);oi=class{static{o(this,"Lexer")}constructor(e,r=s2){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=r2(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=ha({},s2,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===s2.lineTerminatorsPattern)this.config.lineTerminatorsPattern=bse;else if(this.config.lineTerminatorCharacters===s2.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Mt(e)?i={modes:{defaultMode:rn(e)},defaultMode:Jm}:(a=!1,i=rn(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(gse(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(yse(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Ce(i.modes,(l,u)=>{i.modes[u]=jh(l,h=>dr(h))});let s=zr(i.modes);if(Ce(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(mse(l,s))}),cr(this.lexerDefinitionErrors)){Pu(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=pse(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=ha({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!cr(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=Je(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Ce(this.lexerDefinitionWarning,l=>{t2(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(wR?(this.chopInput=ta,this.match=this.matchWithTest):(this.updateLastIndex=Jn,this.match=this.matchWithExec),a&&(this.handleModes=Jn),this.trackStartLines===!1&&(this.computeNewColumn=ta),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Jn),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=qr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!cr(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{ose()}),this.TRACE_INIT("toFastProperties",()=>{n2(this)})})}tokenize(e,r=this.defaultMode){if(!cr(this.lexerDefinitionErrors)){let i=Je(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,w=e,_=w.length,T=0,E=0,L=this.hasCustom?0:Math.floor(e.length/10),C=new Array(L),A=[],I=this.trackStartLines?1:void 0,D=this.trackStartLines?1:void 0,k=vse(this.emptyGroups),R=this.trackStartLines,S=this.config.lineTerminatorsPattern,O=0,N=[],P=[],F=[],B=[];Object.freeze(B);let $;function z(){return N}o(z,"getPossiblePatternsSlow");function W(ee){let J=Dc(ee),H=P[J];return H===void 0?B:H}o(W,"getPossiblePatternsOptimized");let j=o(ee=>{if(F.length===1&&ee.tokenType.PUSH_MODE===void 0){let J=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ee);A.push({offset:ee.startOffset,line:ee.startLine,column:ee.startColumn,length:ee.image.length,message:J})}else{F.pop();let J=fa(F);N=this.patternIdxToConfig[J],P=this.charCodeToPatternIdxToConfig[J],O=N.length;let H=this.canModeBeOptimized[J]&&this.config.safeMode===!1;P&&H?$=W:$=z}},"pop_mode");function K(ee){F.push(ee),P=this.charCodeToPatternIdxToConfig[ee],N=this.patternIdxToConfig[ee],O=N.length,O=N.length;let J=this.canModeBeOptimized[ee]&&this.config.safeMode===!1;P&&J?$=W:$=z}o(K,"push_mode"),K.call(this,r);let ie,Q=this.config.recoveryEnabled;for(;T<_;){u=null;let ee=w.charCodeAt(T),J=$(ee),H=J.length;for(n=0;nu.length){u=s,h=f,ie=ue;break}}}break}}if(u!==null){if(d=u.length,p=ie.group,p!==void 0&&(m=ie.tokenTypeIdx,g=this.createTokenInstance(u,T,m,ie.tokenType,I,D,d),this.handlePayload(g,h),p===!1?E=this.addToken(C,E,g):k[p].push(g)),e=this.chopInput(e,d),T=T+d,D=this.computeNewColumn(D,d),R===!0&&ie.canLineTerminator===!0){let q=0,Z,ae;S.lastIndex=0;do Z=S.test(u),Z===!0&&(ae=S.lastIndex-1,q++);while(Z===!0);q!==0&&(I=I+q,D=d-ae,this.updateTokenEndLineColumnLocation(g,p,ae,q,I,D,d))}this.handleModes(ie,j,K,g)}else{let q=T,Z=I,ae=D,ue=Q===!1;for(;ue===!1&&T<_;)for(e=this.chopInput(e,1),T++,i=0;i{"use strict";Ht();a2();r0();o(Bu,"tokenLabel");o(SR,"hasTokenLabel");hFe="parent",_se="categories",Lse="label",Dse="group",Nse="push_mode",Rse="pop_mode",Mse="longer_alt",Ise="line_breaks",Ose="start_chars_hint";o(HT,"createToken");o(fFe,"createTokenInternal");oo=HT({name:"EOF",pattern:oi.NA});Pu([oo]);o(n0,"createTokenInstance");o(o2,"tokenMatcher")});var Fu,Pse,Bl,tg=M(()=>{"use strict";i0();Ht();ns();Fu={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${SR(t)?`--> ${Bu(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+ra(e).image+"'";if(n)return a+n+l;{let u=qr(t,(p,m)=>p.concat(m),[]),h=Je(u,p=>`[${Je(p,m=>Bu(m)).join(", ")}]`),d=`one of these possible Token sequences: +${Je(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+ra(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${Je(t,h=>`[${Je(h,f=>Bu(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Fu);Pse={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Bl={buildDuplicateFoundError(t,e){function r(f){return f instanceof kr?f.terminalType.name:f instanceof nn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=ra(e),a=i.idx,s=Ms(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=Je(t.prefixPath,i=>Bu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=Je(t.prefixPath,i=>Bu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=Ms(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=Je(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof ts?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function Bse(t,e){let r=new CR(t,e);return r.resolveRefs(),r.errors}var CR,Fse=M(()=>{"use strict";Is();Ht();ns();o(Bse,"resolveGrammar");CR=class extends rs{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Ce(br(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:zi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function XT(t,e,r=[]){r=rn(r);let n=[],i=0;function a(l){return l.concat(mi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=XT(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{cr(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof kr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:mi(t,i)}),n}function jT(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!cr(d);){let p=d.pop();if(p===s){l&&fa(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(cr(m))continue;let x=m[0];if(x===i){let b={idx:g,def:mi(m),ruleStack:Lu(y),occurrenceStack:Lu(v)};d.push(b)}else if(x instanceof kr)if(g=0;b--){let w=x.definition[b],_={idx:g,def:w.definition.concat(mi(m)),ruleStack:y,occurrenceStack:v};d.push(_),d.push(s)}else if(x instanceof Cn)d.push({idx:g,def:x.definition.concat(mi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof ts)d.push(dFe(x,g,y,v));else throw Error("non exhaustive match")}return f}function dFe(t,e,r,n){let i=rn(r);i.push(t.name);let a=rn(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var AR,WT,rg,YT,l2,qT,c2,u2=M(()=>{"use strict";Ht();dR();PT();ns();AR=class extends Iu{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=rn(this.path.ruleStack).reverse(),this.occurrenceStack=rn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){cr(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},WT=class extends AR{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Cn({definition:i});this.possibleTokTypes=e0(a),this.found=!0}}},rg=class extends Iu{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},YT=class extends rg{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},l2=class extends rg{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},qT=class extends rg{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},c2=class extends rg{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(XT,"possiblePathsFrom");o(jT,"nextPossibleTokensAfter");o(dFe,"expandTopLevelRule")});function h2(t){if(t instanceof an||t==="Option")return Yn.OPTION;if(t instanceof Lr||t==="Repetition")return Yn.REPETITION;if(t instanceof An||t==="RepetitionMandatory")return Yn.REPETITION_MANDATORY;if(t instanceof _n||t==="RepetitionMandatoryWithSeparator")return Yn.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof vn||t==="RepetitionWithSeparator")return Yn.REPETITION_WITH_SEPARATOR;if(t instanceof xn||t==="Alternation")return Yn.ALTERNATION;throw Error("non exhaustive match")}function QT(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=h2(n);return a===Yn.ALTERNATION?ng(e,r,i):ig(e,r,a,i)}function Gse(t,e,r,n,i,a){let s=ng(t,e,r),l=Yse(s)?eg:Ou;return a(s,n,l,i)}function $se(t,e,r,n,i,a){let s=ig(t,e,i,r),l=Yse(s)?eg:Ou;return a(s[0],l,n)}function Vse(t,e,r,n){let i=t.length,a=Ra(t,s=>Ra(s,l=>l.length===1));if(e)return function(s){let l=Je(s,u=>u.GATE);for(let u=0;uWr(u)),l=qr(s,(u,h,f)=>(Ce(h,d=>{It(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Ce(d.categoryMatches,p=>{It(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=Wr(t);if(a.length===1&&cr(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=qr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Ce(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;aXT([s],1)),n=zse(r.length),i=Je(r,s=>{let l={};return Ce(s,u=>{let h=_R(u.partialPath);Ce(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=zse(l.length);for(let u=0;u{let x=_R(v.partialPath);Ce(x,b=>{i[u][b]=!0})})}}}}return n}function ng(t,e,r,n){let i=new KT(t,Yn.ALTERNATION,n);return e.accept(i),Hse(i.result,r)}function ig(t,e,r,n){let i=new KT(t,r);e.accept(i);let a=i.result,l=new LR(e,t,r).startWalking(),u=new Cn({definition:a}),h=new Cn({definition:l});return Hse([u,h],n)}function ZT(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function Yse(t){return Ra(t,e=>Ra(e,r=>Ra(r,n=>cr(n.categoryMatches))))}var Yn,LR,KT,ag=M(()=>{"use strict";Ht();u2();PT();r0();ns();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(Yn||(Yn={}));o(h2,"getProdType");o(QT,"getLookaheadPaths");o(Gse,"buildLookaheadFuncForOr");o($se,"buildLookaheadFuncForOptionalProd");o(Vse,"buildAlternativesLookAheadFunc");o(Use,"buildSingleAlternativeLookaheadFunction");LR=class extends Iu{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,Yn.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,Yn.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,Yn.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,Yn.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},KT=class extends rs{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Yn.OPTION)}visitRepetition(e){this.checkIsTarget(e,Yn.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Yn.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Yn.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Yn.ALTERNATION)}};o(zse,"initializeArrayOfArrays");o(_R,"pathToHashKeys");o(pFe,"isUniquePrefixHash");o(Hse,"lookAheadSequenceFromAlternatives");o(ng,"getLookaheadPathsForOr");o(ig,"getLookaheadPathsForOptionalProd");o(ZT,"containsPath");o(Wse,"isStrictPrefixOfPath");o(Yse,"areTokenCategoriesNotUsed")});function qse(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return Je(e,r=>Object.assign({type:zi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function Xse(t,e,r,n){let i=da(t,u=>mFe(u,r)),a=wFe(t,e,r),s=da(t,u=>vFe(u,r)),l=da(t,u=>yFe(u,t,n,r));return i.concat(a,s,l)}function mFe(t,e){let r=new DR;t.accept(r);let n=r.allProductions,i=UL(n,gFe),a=Ds(i,l=>l.length>1);return Je(br(a),l=>{let u=ra(l),h=e.buildDuplicateFoundError(t,l),f=Ms(u),d={message:h,type:zi.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=jse(u);return p&&(d.parameter=p),d})}function gFe(t){return`${Ms(t)}_#_${t.idx}_#_${jse(t)}`}function jse(t){return t instanceof kr?t.terminalType.name:t instanceof nn?t.nonTerminalName:""}function yFe(t,e,r,n){let i=[];if(qr(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:zi.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Kse(t,e,r){let n=[],i;return Hn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:zi.INVALID_RULE_OVERRIDE,ruleName:t})),n}function RR(t,e,r,n=[]){let i=[],a=JT(e.definition);if(cr(a))return[];{let s=t.name;Hn(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:zi.LEFT_RECURSION,ruleName:s});let u=Xh(a,n.concat([t])),h=da(u,f=>{let d=rn(n);return d.push(f),RR(t,f,r,d)});return i.concat(h)}}function JT(t){let e=[];if(cr(t))return e;let r=ra(t);if(r instanceof nn)e.push(r.referencedRule);else if(r instanceof Cn||r instanceof an||r instanceof An||r instanceof _n||r instanceof vn||r instanceof Lr)e=e.concat(JT(r.definition));else if(r instanceof xn)e=Wr(Je(r.definition,a=>JT(a.definition)));else if(!(r instanceof kr))throw Error("non exhaustive match");let n=Jd(r),i=t.length>1;if(n&&i){let a=mi(t);return e.concat(JT(a))}else return e}function Qse(t,e){let r=new f2;t.accept(r);let n=r.alternations;return da(n,a=>{let s=Lu(a.definition);return da(s,(l,u)=>{let h=jT([l],[],Ou,1);return cr(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:zi.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function Zse(t,e,r){let n=new f2;t.accept(n);let i=n.alternations;return i=jh(i,s=>s.ignoreAmbiguities===!0),da(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=ng(l,t,u,s),f=xFe(h,s,t,r),d=bFe(h,s,t,r);return f.concat(d)})}function vFe(t,e){let r=new f2;t.accept(r);let n=r.alternations;return da(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:zi.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function Jse(t,e,r){let n=[];return Ce(t,i=>{let a=new NR;i.accept(a);let s=a.allProductions;Ce(s,l=>{let u=h2(l),h=l.maxLookahead||e,f=l.idx,p=ig(f,i,u,h)[0];if(cr(Wr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:zi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function xFe(t,e,r,n){let i=[],a=qr(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Ce(u,f=>{let d=[h];Ce(t,(p,m)=>{h!==m&&ZT(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!ZT(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return Je(a,l=>{let u=Je(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:zi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function bFe(t,e,r,n){let i=qr(t,(s,l,u)=>{let h=Je(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return Tc(da(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=Yr(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:zi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function wFe(t,e,r){let n=[],i=Je(e,a=>a.name);return Ce(t,a=>{let s=a.name;if(Hn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:zi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var DR,f2,NR,d2=M(()=>{"use strict";Ht();Is();ns();ag();u2();r0();o(qse,"validateLookahead");o(Xse,"validateGrammar");o(mFe,"validateDuplicateProductions");o(gFe,"identifyProductionForDuplicates");o(jse,"getExtraProductionArgument");DR=class extends rs{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(yFe,"validateRuleDoesNotAlreadyExist");o(Kse,"validateRuleIsOverridden");o(RR,"validateNoLeftRecursion");o(JT,"getFirstNoneTerminal");f2=class extends rs{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(Qse,"validateEmptyOrAlternative");o(Zse,"validateAmbiguousAlternationAlternatives");NR=class extends rs{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(vFe,"validateTooManyAlts");o(Jse,"validateSomeNonEmptyLookaheadPath");o(xFe,"checkAlternativesAmbiguities");o(bFe,"checkPrefixAlternativesAmbiguities");o(wFe,"checkTerminalAndNoneTerminalsNameSpace")});function eoe(t){let e=qh(t,{errMsgProvider:Pse}),r={};return Ce(t.rules,n=>{r[n.name]=n}),Bse(r,e.errMsgProvider)}function toe(t){return t=qh(t,{errMsgProvider:Bl}),Xse(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var roe=M(()=>{"use strict";Ht();Fse();d2();tg();o(eoe,"resolveGrammar");o(toe,"validateGrammar")});function rf(t){return Hn(ooe,t.name)}var noe,ioe,aoe,soe,ooe,sg,a0,p2,m2,g2,og=M(()=>{"use strict";Ht();noe="MismatchedTokenException",ioe="NoViableAltException",aoe="EarlyExitException",soe="NotAllInputParsedException",ooe=[noe,ioe,aoe,soe];Object.freeze(ooe);o(rf,"isRecognitionException");sg=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},a0=class extends sg{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=noe}},p2=class extends sg{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=ioe}},m2=class extends sg{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=soe}},g2=class extends sg{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=aoe}}});function TFe(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=oo,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var MR,OR,IR,ek,PR=M(()=>{"use strict";i0();Ht();og();pR();Is();MR={},OR="InRuleRecoveryException",IR=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=OR}},ek=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=It(e,"recoveryEnabled")?e.recoveryEnabled:is.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=TFe)}getTokenToInsert(e){let r=n0(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new a0(m,h,this.LA(0));g.resyncedTokens=Lu(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new IR("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||cr(r))return!1;let n=this.LA(1);return Za(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return Hn(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=Za(e,a=>o2(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return MR;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return Je(e,(n,i)=>i===0?MR:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=Je(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return Wr(e)}getFollowSetFromFollowKey(e){if(e===MR)return[oo];let r=e.ruleName+e.idxInCallingRule+BT+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,oo)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Lu(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=rn(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return Je(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(TFe,"attemptInRepetitionRecovery")});function tk(t,e,r){return r|e|t}var rk=M(()=>{"use strict";o(tk,"getKeyForAutomaticLookahead")});var zu,BR=M(()=>{"use strict";Ht();tg();Is();d2();ag();zu=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:is.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(cr(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return da(e,r=>RR(r,r,Bl))}validateEmptyOrAlternatives(e){return da(e,r=>Qse(r,Bl))}validateAmbiguousAlternationAlternatives(e,r){return da(e,n=>Zse(n,r,Bl))}validateSomeNonEmptyLookaheadPath(e,r){return Jse(e,r,Bl)}buildLookaheadForAlternation(e){return Gse(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Vse)}buildLookaheadForOptional(e){return $se(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,h2(e.prodType),Use)}}});function kFe(t){nk.reset(),t.accept(nk);let e=nk.dslMethods;return nk.reset(),e}var ik,FR,nk,loe=M(()=>{"use strict";Ht();Is();rk();ns();BR();ik=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=It(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:is.dynamicTokensEnabled,this.maxLookahead=It(e,"maxLookahead")?e.maxLookahead:is.maxLookahead,this.lookaheadStrategy=It(e,"lookaheadStrategy")?e.lookaheadStrategy:new zu({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Ce(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=kFe(r);Ce(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Ms(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=tk(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Ce(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Ms(h))}),Ce(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Ms(h))}),Ce(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Ms(h))}),Ce(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Ms(h))}),Ce(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Ms(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=tk(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return tk(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},FR=class extends rs{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},nk=new FR;o(kFe,"collectMethods")});function $R(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o($R,"setNodeLocationOnlyOffset");o(VR,"setNodeLocationFull");o(coe,"addTerminalToCst");o(uoe,"addNoneTerminalToCst")});function UR(t,e){Object.defineProperty(t,EFe,{enumerable:!1,configurable:!0,writable:!1,value:e})}var EFe,foe=M(()=>{"use strict";EFe="name";o(UR,"defineNameProp")});function SFe(t,e){let r=zr(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function poe(t,e,r){let n=o(function(){},"derivedConstructor");UR(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Ce(e,a=>{i[a]=SFe}),n.prototype=i,n.prototype.constructor=n,n}function CFe(t,e){return AFe(t,e)}function AFe(t,e){let r=Yr(e,i=>Ei(t[i])===!1),n=Je(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:HR.MISSING_METHOD,methodName:i}));return Tc(n)}var HR,moe=M(()=>{"use strict";Ht();foe();o(SFe,"defaultVisit");o(doe,"createBaseSemanticVisitorConstructor");o(poe,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(HR||(HR={}));o(CFe,"validateVisitor");o(AFe,"validateMissingCstMethods")});var lk,goe=M(()=>{"use strict";hoe();Ht();moe();Is();lk=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=It(e,"nodeLocationTracking")?e.nodeLocationTracking:is.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Jn,this.cstFinallyStateUpdate=Jn,this.cstPostTerminal=Jn,this.cstPostNonTerminal=Jn,this.cstPostRule=Jn;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=VR,this.setNodeLocationFromNode=VR,this.cstPostRule=Jn,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=$R,this.setNodeLocationFromNode=$R,this.cstPostRule=Jn,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=Jn,this.setInitialNodeLocation=Jn;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];coe(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];uoe(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(dr(this.baseCstVisitorConstructor)){let e=doe(this.className,zr(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(dr(this.baseCstVisitorWithDefaultsConstructor)){let e=poe(this.className,zr(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var ck,yoe=M(()=>{"use strict";Is();ck=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):lg}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?lg:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var uk,voe=M(()=>{"use strict";Ht();og();Is();tg();d2();ns();uk=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=cg){if(Hn(this.definedRulesNames,e)){let s={message:Bl.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:zi.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=cg){let i=Kse(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(rf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return IT(br(this.gastProductionsCache))}}});var hk,xoe=M(()=>{"use strict";Ht();rk();og();ag();u2();Is();PR();i0();r0();hk=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=eg,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},It(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(Mt(e)){if(cr(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(Mt(e))this.tokensMap=qr(e,(a,s)=>(a[s.name]=s,a),{});else if(It(e,"modes")&&Ra(Wr(br(e.modes)),Ase)){let a=Wr(br(e.modes)),s=Om(a);this.tokensMap=qr(s,(l,u)=>(l[u.name]=u,l),{})}else if(yn(e))this.tokensMap=rn(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=oo;let n=It(e,"modes")?Wr(br(e.modes)):br(e),i=Ra(n,a=>cr(a.categoryMatches));this.tokenMatcher=i?eg:Ou,Pu(br(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=It(n,"resyncEnabled")?n.resyncEnabled:cg.resyncEnabled,a=It(n,"recoveryValueFunc")?n.recoveryValueFunc:cg.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(rf(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,Yn.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,qT)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,c2],l,1536,e,c2)}else throw this.raiseEarlyExitException(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,YT,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,l2],l,1280,e,l2)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=Mt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new m2(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw rf(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new a0(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===OR?n:a}}else throw n}saveRecogState(){let e=this.errors,r=rn(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),oo)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var fk,boe=M(()=>{"use strict";og();Ht();ag();Is();fk=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=It(e,"errorMessageProvider")?e.errorMessageProvider:is.errorMessageProvider}SAVE_ERROR(e){if(rf(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:rn(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return rn(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=ig(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new g2(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=ng(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new p2(u,this.LA(1),l))}}});var dk,woe=M(()=>{"use strict";u2();Ht();dk=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(dr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return jT([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=ra(e.ruleStack),i=this.getGAstProductions()[r];return new WT(i,e).startWalking()}}});function v2(t,e,r,n=!1){mk(r);let i=fa(this.recordingProdStack),a=Ei(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),It(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),gk}function DFe(t,e){mk(e);let r=fa(this.recordingProdStack),n=Mt(t)===!1,i=n===!1?t:t.DEF,a=new xn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});It(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=Rv(i,l=>Ei(l.GATE));return a.hasPredicates=s,r.definition.push(a),Ce(i,l=>{let u=new Cn({definition:[]});a.definition.push(u),It(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:It(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),gk}function Eoe(t){return t===0?"":`${t}`}function mk(t){if(t<0||t>koe){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${koe+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var gk,Toe,koe,Soe,Coe,LFe,pk,Aoe=M(()=>{"use strict";Ht();ns();a2();r0();i0();Is();rk();gk={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(gk);Toe=!0,koe=Math.pow(2,8)-1,Soe=HT({name:"RECORDING_PHASE_TOKEN",pattern:oi.NA});Pu([Soe]);Coe=n0(Soe,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Coe);LFe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},pk=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return lg}topLevelRuleRecord(e,r){try{let n=new ts({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return v2.call(this,an,e,r)}atLeastOneInternalRecord(e,r){v2.call(this,An,r,e)}atLeastOneSepFirstInternalRecord(e,r){v2.call(this,_n,r,e,Toe)}manyInternalRecord(e,r){v2.call(this,Lr,r,e)}manySepFirstInternalRecord(e,r){v2.call(this,vn,r,e,Toe)}orInternalRecord(e,r){return DFe.call(this,e,r)}subruleInternalRecord(e,r,n){if(mk(r),!e||It(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=fa(this.recordingProdStack),a=e.ruleName,s=new nn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?LFe:gk}consumeInternalRecord(e,r,n){if(mk(r),!TR(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=fa(this.recordingProdStack),a=new kr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),Coe}};o(v2,"recordProd");o(DFe,"recordOrProd");o(Eoe,"getIdxSuffix");o(mk,"assertMethodIdxIsValid")});var yk,_oe=M(()=>{"use strict";Ht();jm();Is();yk=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(It(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=is.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=r2(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Loe(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Doe=M(()=>{"use strict";o(Loe,"applyMixins")});function vk(t=void 0){return function(){return t}}var lg,is,cg,zi,x2,b2,Is=M(()=>{"use strict";Ht();jm();sse();i0();tg();roe();PR();loe();goe();yoe();voe();xoe();boe();woe();Aoe();_oe();Doe();d2();lg=n0(oo,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(lg);is=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Fu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),cg=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(zi||(zi={}));o(vk,"EMPTY_ALT");x2=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{n2(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Ce(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=eoe({rules:br(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(cr(n)&&this.skipValidations===!1){let i=toe({rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),errMsgProvider:Bl,grammarName:r}),a=qse({lookaheadStrategy:this.lookaheadStrategy,rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),cr(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=ase(br(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:br(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(br(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!cr(this.definitionErrors))throw e=Je(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),It(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=It(r,"skipValidations")?r.skipValidations:is.skipValidations}};x2.DEFER_DEFINITION_ERRORS_HANDLING=!1;Loe(x2,[ek,ik,lk,ck,hk,uk,fk,dk,pk,yk]);b2=class extends x2{static{o(this,"EmbeddedActionsParser")}constructor(e,r=is){let n=rn(r);n.outputCst=!1,super(e,n)}}});var Noe=M(()=>{"use strict";ns()});var Roe=M(()=>{"use strict"});var Moe=M(()=>{"use strict";Noe();Roe()});var Ioe=M(()=>{"use strict";uR()});var s0=M(()=>{"use strict";uR();Is();a2();i0();ag();BR();tg();og();ER();ns();ns();Moe();Ioe()});function o0(t,e,r){return`${t.name}_${e}_${r}`}function Foe(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};BFe(e,t);let r=t.length;for(let n=0;nzoe(t,e,s));return dg(t,e,n,r,...i)}function UFe(t,e,r){let n=na(t,e,r,{type:nf});af(t,n);let i=dg(t,e,n,r,l0(t,e,r));return HFe(t,e,r,i)}function l0(t,e,r){let n=Yr(Je(r.definition,i=>zoe(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:YFe(t,n)}function Goe(t,e,r,n,i){let a=n.left,s=n.right,l=na(t,e,r,{type:PFe});af(t,l);let u=na(t,e,r,{type:Boe});return a.loopback=l,u.loopback=l,t.decisionMap[o0(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Ai(s,l),i===void 0?(Ai(l,a),Ai(l,u)):(Ai(l,u),Ai(l,i.left),Ai(i.right,a)),{left:a,right:u}}function $oe(t,e,r,n,i){let a=n.left,s=n.right,l=na(t,e,r,{type:OFe});af(t,l);let u=na(t,e,r,{type:Boe}),h=na(t,e,r,{type:IFe});return l.loopback=h,u.loopback=h,Ai(l,a),Ai(l,u),Ai(s,h),i!==void 0?(Ai(h,u),Ai(h,i.left),Ai(i.right,a)):Ai(h,l),t.decisionMap[o0(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function HFe(t,e,r,n){let i=n.left,a=n.right;return Ai(i,a),t.decisionMap[o0(e,"Option",r.idx)]=i,n}function af(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function dg(t,e,r,n,...i){let a=na(t,e,n,{type:MFe,start:r});r.end=a;for(let l of i)l!==void 0?(Ai(r,l.left),Ai(l.right,a)):Ai(r,a);let s={left:r,right:a};return t.decisionMap[o0(e,WFe(n),n.idx)]=r,s}function WFe(t){if(t instanceof xn)return"Alternation";if(t instanceof an)return"Option";if(t instanceof Lr)return"Repetition";if(t instanceof vn)return"RepetitionWithSeparator";if(t instanceof An)return"RepetitionMandatory";if(t instanceof _n)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function YFe(t,e){let r=e.length;for(let a=0;a{"use strict";Rm();FL();s0();o(o0,"buildATNKey");nf=1,RFe=2,Ooe=4,Poe=5,fg=7,MFe=8,IFe=9,OFe=10,PFe=11,Boe=12,w2=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},ug=class extends w2{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},T2=class extends w2{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},hg=class extends w2{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(Foe,"createATN");o(BFe,"createRuleStartAndStopATNStates");o(zoe,"atom");o(FFe,"repetition");o(zFe,"repetitionSep");o(GFe,"repetitionMandatory");o($Fe,"repetitionMandatorySep");o(VFe,"alternation");o(UFe,"option");o(l0,"block");o(Goe,"plus");o($oe,"star");o(HFe,"optional");o(af,"defineDecisionState");o(dg,"makeAlts");o(WFe,"getProdType");o(YFe,"makeBlock");o(YR,"tokenRef");o(qFe,"ruleRef");o(XFe,"buildRuleHandle");o(Ai,"epsilon");o(na,"newState");o(qR,"addTransition");o(jFe,"removeState")});function XR(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var k2,pg,Uoe=M(()=>{"use strict";Rm();k2={},pg=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=XR(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return Je(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(XR,"getATNConfigKey")});function KFe(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function Woe(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function QFe(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nBu(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${rze(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function rze(t){if(t instanceof nn)return"SUBRULE";if(t instanceof an)return"OPTION";if(t instanceof xn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof vn)return"MANY_SEP";if(t instanceof Lr)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}function nze(t,e,r){let n=da(e.configs.elements,a=>a.state.transitions),i=ene(n.filter(a=>a instanceof ug).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function ize(t,e){return t.edges[e.tokenTypeIdx]}function aze(t,e,r){let n=new pg,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===fg){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!uze(a))for(let s of i)a.add(s);return a}function sze(t,e){if(t instanceof ug&&o2(e,t.tokenType))return t.target}function oze(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function qoe(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function Yoe(t,e,r,n){return n=Xoe(t,n),e.edges[r.tokenTypeIdx]=n,n}function Xoe(t,e){if(e===k2)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function lze(t){let e=new pg,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};bk(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function mze(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var xk,Hoe,E2,joe=M(()=>{"use strict";s0();Voe();Uoe();YL();GL();tne();Rm();gw();Ww();Kw();KL();o(KFe,"createDFACache");xk=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n)}initialize(e){this.atn=Foe(e.rules),this.dfas=QFe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=o0(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=Je(QT({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>Je(p,m=>m[0]));if(Woe(d,!1)&&!a){let p=qr(d,(m,g,y)=>(Ce(g,v=>{v&&(m[v.tokenTypeIdx]=y,Ce(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new xk,g=p===void 0?0:p.length;for(let v=0;vJe(p,m=>m[0]));if(Woe(d)&&d[0][0]&&!a){let p=d[0],m=Wr(p);if(m.length===1&&cr(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=qr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Ce(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=jR.call(this,s,f,Hoe,l);return typeof p=="object"?!1:p===0}}};o(Woe,"isLL1Sequence");o(QFe,"initATNSimulator");o(jR,"adaptivePredict");o(ZFe,"performLookahead");o(JFe,"computeLookaheadTarget");o(eze,"reportLookaheadAmbiguity");o(tze,"buildAmbiguityError");o(rze,"getProductionDslName");o(nze,"buildAdaptivePredictError");o(ize,"getExistingTargetState");o(aze,"computeReachSet");o(sze,"getReachableTarget");o(oze,"getUniqueAlt");o(qoe,"newDFAState");o(Yoe,"addDFAEdge");o(Xoe,"addDFAState");o(lze,"computeStartState");o(bk,"closure");o(cze,"getEpsilonTarget");o(uze,"hasConfigInRuleStopState");o(hze,"allConfigsInRuleStopStates");o(fze,"hasConflictTerminatingPrediction");o(dze,"getConflictingAltSets");o(pze,"hasConflictingAltSet");o(mze,"hasStateAssociatedWithOneAlt")});var Koe=M(()=>{"use strict";joe()});var Qoe,KR,Zoe,wk,Xr,Dr,Tk,Joe,QR,ele,tle,rle,nle,ZR,ile,ale,sle,kk,mg,gg,JR,yg,ole,eM,tM,rM,nM,iM,lle,cle,aM,ule,sM,S2,hle,fle,dle,ple,mle,gle,yle,vle,Ek,xle,ble,wle,Tle,kle,Ele,Sle,Cle,Ale,_le,Lle,Sk,Dle,Nle,Rle,Mle,Ile,Ole,Ple,Ble,Fle,zle,Gle,$le,Vle,oM,lM,Ule,Hle,Wle,Yle,qle,Xle,jle,Kle,Qle,cM,Oe,uM=M(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(Qoe||(Qoe={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(KR||(KR={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(Zoe||(Zoe={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(wk||(wk={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=wk.MAX_VALUE),i===Number.MAX_VALUE&&(i=wk.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.uinteger(i.line)&&Oe.uinteger(i.character)}o(r,"is"),t.is=r})(Xr||(Xr={}));(function(t){function e(n,i,a,s){if(Oe.uinteger(n)&&Oe.uinteger(i)&&Oe.uinteger(a)&&Oe.uinteger(s))return{start:Xr.create(n,i),end:Xr.create(a,s)};if(Xr.is(n)&&Xr.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Xr.is(i.start)&&Xr.is(i.end)}o(r,"is"),t.is=r})(Dr||(Dr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&(Oe.string(i.uri)||Oe.undefined(i.uri))}o(r,"is"),t.is=r})(Tk||(Tk={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.targetRange)&&Oe.string(i.targetUri)&&Dr.is(i.targetSelectionRange)&&(Dr.is(i.originSelectionRange)||Oe.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(Joe||(Joe={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.numberRange(i.red,0,1)&&Oe.numberRange(i.green,0,1)&&Oe.numberRange(i.blue,0,1)&&Oe.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(QR||(QR={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&QR.is(i.color)}o(r,"is"),t.is=r})(ele||(ele={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.string(i.label)&&(Oe.undefined(i.textEdit)||gg.is(i))&&(Oe.undefined(i.additionalTextEdits)||Oe.typedArray(i.additionalTextEdits,gg.is))}o(r,"is"),t.is=r})(tle||(tle={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(rle||(rle={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Oe.defined(a)&&(h.startCharacter=a),Oe.defined(s)&&(h.endCharacter=s),Oe.defined(l)&&(h.kind=l),Oe.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.uinteger(i.startLine)&&Oe.uinteger(i.startLine)&&(Oe.undefined(i.startCharacter)||Oe.uinteger(i.startCharacter))&&(Oe.undefined(i.endCharacter)||Oe.uinteger(i.endCharacter))&&(Oe.undefined(i.kind)||Oe.string(i.kind))}o(r,"is"),t.is=r})(nle||(nle={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Tk.is(i.location)&&Oe.string(i.message)}o(r,"is"),t.is=r})(ZR||(ZR={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(ile||(ile={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(ale||(ale={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&Oe.string(n.href)}o(e,"is"),t.is=e})(sle||(sle={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Oe.defined(a)&&(h.severity=a),Oe.defined(s)&&(h.code=s),Oe.defined(l)&&(h.source=l),Oe.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Oe.defined(a)&&Dr.is(a.range)&&Oe.string(a.message)&&(Oe.number(a.severity)||Oe.undefined(a.severity))&&(Oe.integer(a.code)||Oe.string(a.code)||Oe.undefined(a.code))&&(Oe.undefined(a.codeDescription)||Oe.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Oe.string(a.source)||Oe.undefined(a.source))&&(Oe.undefined(a.relatedInformation)||Oe.typedArray(a.relatedInformation,ZR.is))}o(r,"is"),t.is=r})(kk||(kk={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Oe.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.title)&&Oe.string(i.command)}o(r,"is"),t.is=r})(mg||(mg={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Oe.objectLiteral(s)&&Oe.string(s.newText)&&Dr.is(s.range)}o(i,"is"),t.is=i})(gg||(gg={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.string(i.label)&&(Oe.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Oe.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(JR||(JR={}));(function(t){function e(r){let n=r;return Oe.string(n)}o(e,"is"),t.is=e})(yg||(yg={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return gg.is(s)&&(JR.is(s.annotationId)||yg.is(s.annotationId))}o(i,"is"),t.is=i})(ole||(ole={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&aM.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(eM||(eM={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Oe.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Oe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Oe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(tM||(tM={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Oe.string(i.oldUri)&&Oe.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Oe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Oe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(rM||(rM={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Oe.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Oe.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Oe.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(nM||(nM={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Oe.string(i.kind)?tM.is(i)||rM.is(i)||nM.is(i):eM.is(i)))}o(e,"is"),t.is=e})(iM||(iM={}));(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)}o(r,"is"),t.is=r})(lle||(lle={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&Oe.integer(i.version)}o(r,"is"),t.is=r})(cle||(cle={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&(i.version===null||Oe.integer(i.version))}o(r,"is"),t.is=r})(aM||(aM={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&Oe.string(i.languageId)&&Oe.integer(i.version)&&Oe.string(i.text)}o(r,"is"),t.is=r})(ule||(ule={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(sM||(sM={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(r)&&sM.is(n.kind)&&Oe.string(n.value)}o(e,"is"),t.is=e})(S2||(S2={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(hle||(hle={}));(function(t){t.PlainText=1,t.Snippet=2})(fle||(fle={}));(function(t){t.Deprecated=1})(dle||(dle={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.newText)&&Dr.is(i.insert)&&Dr.is(i.replace)}o(r,"is"),t.is=r})(ple||(ple={}));(function(t){t.asIs=1,t.adjustIndentation=2})(mle||(mle={}));(function(t){function e(r){let n=r;return n&&(Oe.string(n.detail)||n.detail===void 0)&&(Oe.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(gle||(gle={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(yle||(yle={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(vle||(vle={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Oe.string(i)||Oe.objectLiteral(i)&&Oe.string(i.language)&&Oe.string(i.value)}o(r,"is"),t.is=r})(Ek||(Ek={}));(function(t){function e(r){let n=r;return!!n&&Oe.objectLiteral(n)&&(S2.is(n.contents)||Ek.is(n.contents)||Oe.typedArray(n.contents,Ek.is))&&(r.range===void 0||Dr.is(r.range))}o(e,"is"),t.is=e})(xle||(xle={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(ble||(ble={}));(function(t){function e(r,n,...i){let a={label:r};return Oe.defined(n)&&(a.documentation=n),Oe.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(wle||(wle={}));(function(t){t.Text=1,t.Read=2,t.Write=3})(Tle||(Tle={}));(function(t){function e(r,n){let i={range:r};return Oe.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(kle||(kle={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(Ele||(Ele={}));(function(t){t.Deprecated=1})(Sle||(Sle={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(Cle||(Cle={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(Ale||(Ale={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.name)&&Oe.number(i.kind)&&Dr.is(i.range)&&Dr.is(i.selectionRange)&&(i.detail===void 0||Oe.string(i.detail))&&(i.deprecated===void 0||Oe.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(_le||(_le={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(Lle||(Lle={}));(function(t){t.Invoked=1,t.Automatic=2})(Sk||(Sk={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.typedArray(i.diagnostics,kk.is)&&(i.only===void 0||Oe.typedArray(i.only,Oe.string))&&(i.triggerKind===void 0||i.triggerKind===Sk.Invoked||i.triggerKind===Sk.Automatic)}o(r,"is"),t.is=r})(Dle||(Dle={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):mg.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.title)&&(i.diagnostics===void 0||Oe.typedArray(i.diagnostics,kk.is))&&(i.kind===void 0||Oe.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||mg.is(i.command))&&(i.isPreferred===void 0||Oe.boolean(i.isPreferred))&&(i.edit===void 0||iM.is(i.edit))}o(r,"is"),t.is=r})(Nle||(Nle={}));(function(t){function e(n,i){let a={range:n};return Oe.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(i.range)&&(Oe.undefined(i.command)||mg.is(i.command))}o(r,"is"),t.is=r})(Rle||(Rle={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.uinteger(i.tabSize)&&Oe.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(Mle||(Mle={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(i.range)&&(Oe.undefined(i.target)||Oe.string(i.target))}o(r,"is"),t.is=r})(Ile||(Ile={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(Ole||(Ole={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(Ple||(Ple={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(Ble||(Ble={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(Fle||(Fle={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Oe.string(i.text)}o(r,"is"),t.is=r})(zle||(zle={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Oe.boolean(i.caseSensitiveLookup)&&(Oe.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(Gle||(Gle={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&(Oe.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})($le||($le={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(Vle||(Vle={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(oM||(oM={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&(i.tooltip===void 0||Oe.string(i.tooltip)||S2.is(i.tooltip))&&(i.location===void 0||Tk.is(i.location))&&(i.command===void 0||mg.is(i.command))}o(r,"is"),t.is=r})(lM||(lM={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Xr.is(i.position)&&(Oe.string(i.label)||Oe.typedArray(i.label,lM.is))&&(i.kind===void 0||oM.is(i.kind))&&i.textEdits===void 0||Oe.typedArray(i.textEdits,gg.is)&&(i.tooltip===void 0||Oe.string(i.tooltip)||S2.is(i.tooltip))&&(i.paddingLeft===void 0||Oe.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Oe.boolean(i.paddingRight))}o(r,"is"),t.is=r})(Ule||(Ule={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(Hle||(Hle={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(Wle||(Wle={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(Yle||(Yle={}));(function(t){t.Invoked=0,t.Automatic=1})(qle||(qle={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(Xle||(Xle={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(jle||(jle={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&KR.is(n.uri)&&Oe.string(n.name)}o(e,"is"),t.is=e})(Kle||(Kle={}));(function(t){function e(a,s,l,u){return new cM(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Oe.defined(s)&&Oe.string(s.uri)&&(Oe.undefined(s.languageId)||Oe.string(s.languageId))&&Oe.uinteger(s.lineCount)&&Oe.func(s.getText)&&Oe.func(s.positionAt)&&Oe.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return Xr.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return Xr.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Oe||(Oe={}))});var C2,A2,c0,u0,hM,vg,Ck=M(()=>{"use strict";uM();Yo();Ml();C2=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new vg(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new u0;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new c0(e.startOffset,e.image.length,$m(e),e.tokenType,!1);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}construct(e){let r=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}addHiddenTokens(e){for(let r of e){let n=new c0(r.startOffset,r.image.length,$m(r),r.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(e,r){let{offset:n,end:i}=r;for(let a=0;al&&i=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},hM=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},vg=class extends u0{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function fM(t){return t.$type===Ak}var Ak,Zle,Jle,_2,L2,_k,xg,D2,gze,dM,N2=M(()=>{"use strict";s0();Koe();Ac();Pl();es();Ck();Ak=Symbol("Datatype");o(fM,"isDataTypeNode");Zle="\u200B",Jle=o(t=>t.endsWith(Zle)?t:t+Zle,"withRuleSuffix"),_2=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition;this.wrapper=new dM(r,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},L2=class extends _2{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new C2,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=e.fragment?void 0:e2(e)?Ak:Zd(e),i=this.wrapper.DEFINE_RULE(Jle(e.name),this.startImplementation(n,r).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);let r=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:r.errors,parserErrors:this.wrapper.errors}}startImplementation(e,r){return n=>{if(!this.isRecording()){let a={$type:e};this.stack.push(a),e===Ak&&(a.value="")}let i;try{i=r(n)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.nodeBuilder.buildLeafNode(i,n),{assignment:s,isCrossRef:l}=this.getAssignment(n),u=this.current;if(s){let h=Xo(n)?i.image:this.converter.convert(i.image,a);this.assign(s.operator,s.feature,h,a,l)}else if(fM(u)){let h=i.image;Xo(n)||(h=this.converter.convert(h,a).toString()),u.value+=h}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i){let a;this.isRecording()||(a=this.nodeBuilder.buildCompositeNode(n));let s=this.wrapper.wrapSubrule(e,r,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(s,n,a)}performSubruleAssignment(e,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(fM(s))s.value+=e.toString();else if(typeof e=="object"&&e){let l=e.$type,u=this.assignWithoutOverride(e,s);l&&(u.$type=l);let h=u;this.stack.pop(),this.stack.push(h)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&r.feature&&r.operator){n=this.construct(!1);let a=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(a)}let i={$type:e};this.stack.pop(),this.stack.push(i),r.feature&&r.operator&&this.assign(r.operator,r.feature,n,n.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let r=this.current;return CT(r),this.nodeBuilder.construct(r),e&&this.stack.pop(),fM(r)?this.converter.convert(r.value,r.$cstNode):($N(this.astReflection,r),r)}getAssignment(e){if(!this.assignmentMap.has(e)){let r=qd(e,Il);this.assignmentMap.set(e,{assignment:r,isCrossRef:r?Yd(r.terminal):!1})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[n,i]of Object.entries(r)){let a=e[n];a===void 0?e[n]=i:Array.isArray(a)&&Array.isArray(i)&&(i.push(...a),e[n]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}},_k=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Fu.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Fu.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Fu.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Fu.buildEarlyExitMessage(e)}},xg=class extends _k{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},D2=class extends _2{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e);return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(Jle(e.name),this.startImplementation(r).bind(this));return e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,r,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},gze={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new xg},dM=class extends b2{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,Object.assign(Object.assign(Object.assign({},gze),{lookaheadStrategy:n?new zu({maxLookahead:r.maxLookahead}):new E2}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r){return this.RULE(e,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}}});function Dk(t,e,r){return yze({parser:e,tokens:r,rules:new Map,ruleNames:new Map},t),e}function yze(t,e){let r=Zv(e,!1),n=tn(e.rules).filter(Ma).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});a.rules.set(i.name,t.parser.rule(i,h0(a,i.definition)))}}function h0(t,e,r=!1){let n;if(Xo(e))n=Eze(t,e);else if(Ru(e))n=vze(t,e);else if(Il(e))n=h0(t,e.terminal);else if(Yd(e))n=ece(t,e);else if(Ol(e))n=xze(t,e);else if(kT(e))n=wze(t,e);else if(ST(e))n=Tze(t,e);else if(tf(e))n=kze(t,e);else if(wN(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,oo,e),"method")}else throw new Wd(e.$cstNode,`Unexpected element type: ${e.$type}`);return tce(t,r?void 0:Lk(e),n,e.cardinality)}function vze(t,e){let r=Zd(e);return()=>t.parser.action(r,e)}function xze(t,e){let r=e.rule.ref;if(Ma(r)){let n=t.subrule++,i=e.arguments.length>0?bze(r,e.arguments):()=>({});return a=>t.parser.subrule(n,rce(t,r),e,i(a))}else if(qo(r)){let n=t.consume++,i=pM(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)ef(r);else throw new Wd(e.$cstNode,`Undefined rule type: ${e.$type}`)}function bze(t,e){let r=e.map(n=>Gu(n.value));return n=>{let i={};for(let a=0;ae(n)||r(n)}else if(qD(t)){let e=Gu(t.left),r=Gu(t.right);return n=>e(n)&&r(n)}else if(eN(t)){let e=Gu(t.value);return r=>!e(r)}else if(iN(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(WD(t)){let e=!!t.true;return()=>e}ef(t)}function wze(t,e){if(e.elements.length===1)return h0(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:h0(t,i,!0)},s=Lk(i);s&&(a.GATE=Gu(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function Tze(t,e){if(e.elements.length===1)return h0(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:h0(t,l,!0)},h=Lk(l);h&&(u.GATE=Gu(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=tce(t,Lk(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function kze(t,e){let r=e.elements.map(n=>h0(t,n));return n=>r.forEach(i=>i(n))}function Lk(t){if(tf(t))return t.guardCondition}function ece(t,e,r=e.terminal){if(r)if(Ol(r)&&Ma(r.rule.ref)){let n=t.subrule++;return i=>t.parser.subrule(n,rce(t,r.rule.ref),e,i)}else if(Ol(r)&&qo(r.rule.ref)){let n=t.consume++,i=pM(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Xo(r)){let n=t.consume++,i=pM(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=RT(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Zd(e.type.ref));return ece(t,e,i)}}function Eze(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function tce(t,e,r,n){let i=e&&Gu(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:vk(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:vk(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else ef(n)}function rce(t,e){let r=Sze(t,e),n=t.rules.get(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function Sze(t,e){if(Ma(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Ma(n);)(tf(n)||kT(n)||ST(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function pM(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var mM=M(()=>{"use strict";s0();Ac();gT();Rs();Pl();o(Dk,"createParser");o(yze,"buildRules");o(h0,"buildElement");o(vze,"buildAction");o(xze,"buildRuleCall");o(bze,"buildRuleCallPredicate");o(Gu,"buildPredicate");o(wze,"buildAlternatives");o(Tze,"buildUnorderedGroup");o(kze,"buildGroup");o(Lk,"getGuardCondition");o(ece,"buildCrossReference");o(Eze,"buildKeyword");o(tce,"wrap");o(rce,"getRule");o(Sze,"getRuleName");o(pM,"getToken")});function gM(t){let e=t.Grammar,r=t.parser.Lexer,n=new D2(t);return Dk(e,n,r.definition),n.finalize(),n}var yM=M(()=>{"use strict";N2();mM();o(gM,"createCompletionParser")});function vM(t){let e=nce(t);return e.finalize(),e}function nce(t){let e=t.Grammar,r=t.parser.Lexer,n=new L2(t);return Dk(e,n,r.definition)}var xM=M(()=>{"use strict";N2();mM();o(vM,"createLangiumParser");o(nce,"prepareLangiumParser")});var f0,bM=M(()=>{"use strict";s0();Ac();es();Pl();Wm();Rs();f0=class{static{o(this,"DefaultTokenBuilder")}buildTokens(e,r){let n=tn(Zv(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&DT(l)?a.unshift(s):a.push(s)}),a}buildTerminalTokens(e){return e.filter(qo).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=Ym(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=DT(r)?oi.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(Ma).flatMap(i=>_c(i).filter(Xo)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){return{name:e.value,PATTERN:this.buildKeywordPattern(e,n),LONGER_ALT:this.findLongerAlt(e,r)}}buildKeywordPattern(e,r){return r?new RegExp(XN(e.value)):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&jN("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var d0,Nc,wM=M(()=>{"use strict";Ac();Pl();d0=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(Yd(n)&&(n=ZN(n)),Ol(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){var i;switch(e.name.toUpperCase()){case"INT":return Nc.convertInt(r);case"STRING":return Nc.convertString(r);case"ID":return Nc.convertID(r)}switch((i=sR(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Nc.convertNumber(r);case"boolean":return Nc.convertBoolean(r);case"bigint":return Nc.convertBigint(r);case"date":return Nc.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(EM,"__esModule",{value:!0});var TM;function kM(){if(TM===void 0)throw new Error("No runtime abstraction layer installed");return TM}o(kM,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");TM=r}o(e,"install"),t.install=e})(kM||(kM={}));EM.default=kM});var sce=Ni(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.stringArray=Ia.array=Ia.func=Ia.error=Ia.number=Ia.string=Ia.boolean=void 0;function Cze(t){return t===!0||t===!1}o(Cze,"boolean");Ia.boolean=Cze;function ice(t){return typeof t=="string"||t instanceof String}o(ice,"string");Ia.string=ice;function Aze(t){return typeof t=="number"||t instanceof Number}o(Aze,"number");Ia.number=Aze;function _ze(t){return t instanceof Error}o(_ze,"error");Ia.error=_ze;function Lze(t){return typeof t=="function"}o(Lze,"func");Ia.func=Lze;function ace(t){return Array.isArray(t)}o(ace,"array");Ia.array=ace;function Dze(t){return ace(t)&&t.every(e=>ice(e))}o(Dze,"stringArray");Ia.stringArray=Dze});var AM=Ni(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.Emitter=bg.Event=void 0;var Nze=SM(),oce;(function(t){let e={dispose(){}};t.None=function(){return e}})(oce||(bg.Event=oce={}));var CM=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new CM),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};bg.Emitter=Nk;Nk._noop=function(){}});var lce=Ni(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.CancellationTokenSource=wg.CancellationToken=void 0;var Rze=SM(),Mze=sce(),_M=AM(),Rk;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:_M.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:_M.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||Mze.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(Rk||(wg.CancellationToken=Rk={}));var Ize=Object.freeze(function(t,e){let r=(0,Rze.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),Mk=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Ize:(this._emitter||(this._emitter=new _M.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},LM=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new Mk),this._token}cancel(){this._token?this._token.cancel():this._token=Rk.Cancelled}dispose(){this._token?this._token instanceof Mk&&this._token.dispose():this._token=Rk.None}};wg.CancellationTokenSource=LM});var Cr={};var Ko=M(()=>{"use strict";Er(Cr,ka(lce(),1))});function NM(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function uce(){return DM=Date.now(),new Cr.CancellationTokenSource}function hce(t){cce=t}function sf(t){return t===Rc}async function Gi(t){if(t===Cr.CancellationToken.None)return;let e=Date.now();if(e-DM>=cce&&(DM=e,await NM()),t.isCancellationRequested)throw Rc}var DM,cce,Rc,as,Qo=M(()=>{"use strict";Ko();o(NM,"delayNextTick");DM=0,cce=10;o(uce,"startCancelableOperation");o(hce,"setInterruptionPeriod");Rc=Symbol("OperationCancelled");o(sf,"isOperationCancelled");o(Gi,"interruptAndCheck");as=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function RM(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);RM(n,e),RM(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function Oze(t){let e=pce(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ik,Tg,mce=M(()=>{"use strict";Ik=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=pce(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=fce(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&dce(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new Ik(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof Ik)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=RM(a.map(Oze),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(Tg||(Tg={}));o(RM,"mergeSort");o(fce,"computeLineOffsets");o(dce,"isEOL");o(pce,"getWellformedRange");o(Oze,"getWellformedEdit")});var gce,Os,kg,MM=M(()=>{"use strict";(()=>{"use strict";var t={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;fy){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var w="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p}(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function r(i){var a=e[i];if(a!==void 0)return a.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(D,k){if(!D.scheme&&k)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${D.authority}", path: "${D.path}", query: "${D.query}", fragment: "${D.fragment}"}`);if(D.scheme&&!a.test(D.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(D.path){if(D.authority){if(!s.test(D.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(D.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(k){return k instanceof p||!!k&&typeof k.authority=="string"&&typeof k.fragment=="string"&&typeof k.path=="string"&&typeof k.query=="string"&&typeof k.scheme=="string"&&typeof k.fsPath=="string"&&typeof k.with=="function"&&typeof k.toString=="function"}scheme;authority;path;query;fragment;constructor(k,R,S,O,N,P=!1){typeof k=="object"?(this.scheme=k.scheme||h,this.authority=k.authority||h,this.path=k.path||h,this.query=k.query||h,this.fragment=k.fragment||h):(this.scheme=function(F,B){return F||B?F:"file"}(k,P),this.authority=R||h,this.path=function(F,B){switch(F){case"https":case"http":case"file":B?B[0]!==f&&(B=f+B):B=f}return B}(this.scheme,S||h),this.query=O||h,this.fragment=N||h,u(this,P))}get fsPath(){return b(this,!1)}with(k){if(!k)return this;let{scheme:R,authority:S,path:O,query:N,fragment:P}=k;return R===void 0?R=this.scheme:R===null&&(R=h),S===void 0?S=this.authority:S===null&&(S=h),O===void 0?O=this.path:O===null&&(O=h),N===void 0?N=this.query:N===null&&(N=h),P===void 0?P=this.fragment:P===null&&(P=h),R===this.scheme&&S===this.authority&&O===this.path&&N===this.query&&P===this.fragment?this:new g(R,S,O,N,P)}static parse(k,R=!1){let S=d.exec(k);return S?new g(S[2]||h,E(S[4]||h),E(S[5]||h),E(S[7]||h),E(S[9]||h),R):new g(h,h,h,h,h)}static file(k){let R=h;if(i&&(k=k.replace(/\\/g,f)),k[0]===f&&k[1]===f){let S=k.indexOf(f,2);S===-1?(R=k.substring(2),k=f):(R=k.substring(2,S),k=k.substring(S)||f)}return new g("file",R,k,h,h)}static from(k){let R=new g(k.scheme,k.authority,k.path,k.query,k.fragment);return u(R,!0),R}toString(k=!1){return w(this,k)}toJSON(){return this}static revive(k){if(k){if(k instanceof p)return k;{let R=new g(k);return R._formatted=k.external,R._fsPath=k._sep===m?k.fsPath:null,R}}return k}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(k=!1){return k?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=m),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(D,k,R){let S,O=-1;for(let N=0;N=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||k&&P===47||R&&P===91||R&&P===93||R&&P===58)O!==-1&&(S+=encodeURIComponent(D.substring(O,N)),O=-1),S!==void 0&&(S+=D.charAt(N));else{S===void 0&&(S=D.substr(0,N));let F=y[P];F!==void 0?(O!==-1&&(S+=encodeURIComponent(D.substring(O,N)),O=-1),S+=F):O===-1&&(O=N)}}return O!==-1&&(S+=encodeURIComponent(D.substring(O))),S!==void 0?S:D}o(v,"d");function x(D){let k;for(let R=0;R1&&D.scheme==="file"?`//${D.authority}${D.path}`:D.path.charCodeAt(0)===47&&(D.path.charCodeAt(1)>=65&&D.path.charCodeAt(1)<=90||D.path.charCodeAt(1)>=97&&D.path.charCodeAt(1)<=122)&&D.path.charCodeAt(2)===58?k?D.path.substr(1):D.path[1].toLowerCase()+D.path.substr(2):D.path,i&&(R=R.replace(/\//g,"\\")),R}o(b,"m");function w(D,k){let R=k?x:v,S="",{scheme:O,authority:N,path:P,query:F,fragment:B}=D;if(O&&(S+=O,S+=":"),(N||O==="file")&&(S+=f,S+=f),N){let $=N.indexOf("@");if($!==-1){let z=N.substr(0,$);N=N.substr($+1),$=z.lastIndexOf(":"),$===-1?S+=R(z,!1,!1):(S+=R(z.substr(0,$),!1,!1),S+=":",S+=R(z.substr($+1),!1,!0)),S+="@"}N=N.toLowerCase(),$=N.lastIndexOf(":"),$===-1?S+=R(N,!1,!0):(S+=R(N.substr(0,$),!1,!0),S+=N.substr($))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let $=P.charCodeAt(1);$>=65&&$<=90&&(P=`/${String.fromCharCode($+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let $=P.charCodeAt(0);$>=65&&$<=90&&(P=`${String.fromCharCode($+32)}:${P.substr(2)}`)}S+=R(P,!0,!1)}return F&&(S+="?",S+=R(F,!1,!1)),B&&(S+="#",S+=k?B:v(B,!1,!1)),S}o(w,"y");function _(D){try{return decodeURIComponent(D)}catch{return D.length>3?D.substr(0,3)+_(D.substr(3)):D}}o(_,"v");let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(D){return D.match(T)?D.replace(T,k=>_(k)):D}o(E,"C");var L=r(470);let C=L.posix||L,A="/";var I;(function(D){D.joinPath=function(k,...R){return k.with({path:C.join(k.path,...R)})},D.resolvePath=function(k,...R){let S=k.path,O=!1;S[0]!==A&&(S=A+S,O=!0);let N=C.resolve(S,...R);return O&&N[0]===A&&!k.authority&&(N=N.substring(1)),k.with({path:N})},D.dirname=function(k){if(k.path.length===0||k.path===A)return k;let R=C.dirname(k.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),k.with({path:R})},D.basename=function(k){return C.basename(k.path)},D.extname=function(k){return C.extname(k.path)}})(I||(I={}))})(),gce=n})();({URI:Os,Utils:kg}=gce)});var ss,Mc=M(()=>{"use strict";MM();(function(t){t.basename=kg.basename,t.dirname=kg.dirname,t.extname=kg.extname,t.joinPath=kg.joinPath,t.resolvePath=kg.resolvePath;function e(n,i){return n?.toString()===i?.toString()}o(e,"equals"),t.equals=e;function r(n,i){let a=typeof n=="string"?n:n.path,s=typeof i=="string"?i:i.path,l=a.split("/").filter(p=>p.length>0),u=s.split("/").filter(p=>p.length>0),h=0;for(;h{"use strict";mce();Eg();Ko();Rs();Mc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(bn||(bn={}));R2=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=Cr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??Os.parse(e.uri),n?this.createAsync(r,e,n):this.create(r,e)}fromString(e,r,n){return n?this.createAsync(r,e,n):this.create(r,e)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r){if(typeof r=="string"){let n=this.parse(e,r);return this.createLangiumDocument(n,e,void 0,r)}else if("$model"in r){let n={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{let n=this.parse(e,r.getText());return this.createLangiumDocument(n,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:bn.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:bn.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){var n,i;let a=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(e.uri,l);Object.defineProperty(e,"textDocument",{get:u})}return a!==l&&(e.parseResult=await this.parseAsync(e.uri,l,r),e.parseResult.value.$document=e),e.state=bn.Parsed,e}parse(e,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=Tg.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},M2=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return tn(this.documentMap.values())}addDocument(e){let r=e.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,e)}getDocument(e){let r=e.toString();return this.documentMap.get(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=bn.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=bn.Changed,this.documentMap.delete(r)),n}}});var I2,IM=M(()=>{"use strict";Ko();Yo();es();Qo();Eg();I2=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,r=Cr.CancellationToken.None){for(let n of jo(e.parseResult.value))await Gi(r),Um(n).forEach(i=>this.doLink(i,e))}doLink(e,r){let n=e.reference;if(n._ref===void 0)try{let i=this.getCandidate(e);if(Vd(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(e,i)}}catch(i){n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}r.references.push(n)}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(ei(this._ref))return this._ref;if(MD(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){let u=a.getLinkedNode({reference:s,container:e,property:r});if(u.error&&Fi(e).state{"use strict";Pl();o(yce,"isNamed");O2=class{static{o(this,"DefaultNameProvider")}getName(e){if(yce(e))return e.name}getNameNode(e){return Jv(e.$cstNode,"name")}}});var P2,PM=M(()=>{"use strict";Pl();Yo();es();Ml();Rs();Mc();P2=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let r=iR(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(ma(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(ma(a)&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||OD(e,i)))return n}}}findDeclarationNode(e){let r=this.findDeclaration(e);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(e,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(e);a&&n.push(a)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>ss.equals(a.sourceUri,r.documentUri))),n.push(...i),tn(n)}getReferenceToSelf(e){let r=this.nameProvider.getNameNode(e);if(r){let n=Fi(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Hd(r),local:!0}}}}});var Ic,p0,Sg=M(()=>{"use strict";Rs();Ic=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return Gm.sum(tn(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var r;return(r=this.map.get(e))!==null&&r!==void 0?r:[]}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return tn(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return tn(this.map.keys())}values(){return tn(this.map.values()).flat()}entriesGroupedByKey(){return tn(this.map.entries())}},p0=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var B2,BM=M(()=>{"use strict";Ko();es();Sg();Qo();B2=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,r=Cr.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,r)}async computeExportsForNode(e,r,n=qv,i=Cr.CancellationToken.None){let a=[];this.exportNode(e,a,r);for(let s of n(e))await Gi(i),this.exportNode(s,a,r);return a}exportNode(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,r=Cr.CancellationToken.None){let n=e.parseResult.value,i=new Ic;for(let a of _c(n))await Gi(r),this.processNode(a,e,i);return i}processNode(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var Cg,F2,Pze,FM=M(()=>{"use strict";Rs();Cg=class{static{o(this,"StreamScope")}constructor(e,r,n){var i;this.elements=e,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}},F2=class{static{o(this,"MapScope")}constructor(e,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of e){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=tn(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},Pze={getElement(){},getAllElements(){return $v}}});var Ag,z2,m0,Ok,_g,Pk=M(()=>{"use strict";Ag=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},z2=class extends Ag{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},m0=class extends Ag{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},Ok=class extends m0{static{o(this,"DocumentCache")}constructor(e){super(r=>r.toString()),this.onDispose(e.workspace.DocumentBuilder.onUpdate((r,n)=>{let i=r.concat(n);for(let a of i)this.clear(a)}))}},_g=class extends z2{static{o(this,"WorkspaceCache")}constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var G2,zM=M(()=>{"use strict";FM();es();Rs();Pk();G2=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new _g(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Fi(e.container).precomputedScopes;if(i){let s=e.container;do{let l=i.get(s);l.length>0&&r.push(tn(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new Cg(tn(e),r,n)}createScopeForNodes(e,r,n){let i=tn(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new Cg(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new F2(this.indexManager.allElements(e)))}}});function GM(t){return typeof t.$comment=="string"}function vce(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var $2,Bk=M(()=>{"use strict";MM();Yo();es();Pl();o(GM,"isAstNodeWithComment");o(vce,"isIntermediateReference");$2=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r={}){let n=r?.replacer,i=o((s,l)=>this.replacer(s,l,r),"defaultReplacer"),a=n?(s,l)=>n(s,l,i):i;try{return this.currentDocument=Fi(e),JSON.stringify(e,a,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r={}){let n=JSON.parse(e);return this.linkNode(n,n,r),n}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(e))if(ma(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=Fi(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(ei(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!e||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!e&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=eR(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Mc();V2=class{static{o(this,"DefaultServiceRegistry")}register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(let r of this.singleton.LanguageMetaData.fileExtensions)this.map[r]=this.singleton;this.singleton=void 0}for(let r of e.LanguageMetaData.fileExtensions)this.map[r]!==void 0&&this.map[r]!==e&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${e.LanguageMetaData.languageId}'.`),this.map[r]=e}getServices(e){if(this.singleton!==void 0)return this.singleton;if(this.map===void 0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=ss.extname(e),n=this.map[r];if(!n)throw new Error(`The service registry contains no services for the extension '${r}'.`);return n}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}}});function Fk(t){return{code:t}}var Lg,U2,H2=M(()=>{"use strict";Sg();Qo();Rs();o(Fk,"diagnosticData");(function(t){t.all=["fast","slow","built-in"]})(Lg||(Lg={}));U2=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new Ic,this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}}}wrapValidationException(e,r){return async(n,i,a)=>{try{await e.call(r,n,i,a)}catch(s){if(sf(s))throw s;console.error("An error occurred during validation:",s);let l=s instanceof Error?s.message:String(s);s instanceof Error&&s.stack&&console.error(s.stack),i("error","An error occurred during validation: "+l,{node:n})}}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=tn(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}}});function xce(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=Jv(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=rR(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function zk(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}var W2,$u,VM=M(()=>{"use strict";Ko();Pl();es();Ml();Qo();H2();W2=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,r={},n=Cr.CancellationToken.None){let i=e.parseResult,a=[];if(await Gi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.ParsingError}))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(sf(s))throw s;console.error("An error occurred during validation:",s)}return await Gi(n),a}processLexingErrors(e,r,n){for(let i of e.lexerErrors){let a={severity:zk("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:Fk($u.LexingError),source:this.getSource()};r.push(a)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=$m(i.token);if(a){let s={severity:zk("error"),range:a,message:i.message,data:Fk($u.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:$u.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=Cr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await Promise.all(jo(e).map(async s=>{await Gi(n);let l=this.validationRegistry.getChecks(s.$type,r.categories);for(let u of l)await u(s,a,n)})),i}toDiagnostic(e,r,n){return{message:r,range:xce(n),severity:zk(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(xce,"getDiagnosticRange");o(zk,"toDiagnosticSeverity");(function(t){t.LexingError="lexing-error",t.ParsingError="parsing-error",t.LinkingError="linking-error"})($u||($u={}))});var Y2,q2,UM=M(()=>{"use strict";Ko();Yo();es();Ml();Qo();Mc();Y2=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n=Fi(e)){r??(r=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${i} has no name.`);let a,s=o(()=>{var l;return a??(a=Hd((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))},"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return s()},selectionSegment:Hd(e.$cstNode),type:e.$type,documentUri:n.uri,path:i}}},q2=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=Cr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of jo(i))await Gi(r),Um(a).filter(s=>!Vd(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(e){let r=e.reference.$nodeDescription,n=e.reference.$refNode;if(!r||!n)return;let i=Fi(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:r.documentUri,targetPath:r.path,segment:Hd(n),local:ss.equals(r.documentUri,i)}}}});var X2,HM=M(()=>{"use strict";X2=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},e)}}});var j2,WM=M(()=>{"use strict";Qo();j2=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new as,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var r,n;this.workspaceConfig=(n=(r=e.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(r=>{this.updateSectionConfiguration(r,e.settings[r])})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}}});var g0,YM=M(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(g0||(g0={}))});var K2,qM=M(()=>{"use strict";Ko();YM();Sg();Qo();Rs();H2();Eg();K2=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Ic,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=bn.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=Cr.CancellationToken.None){var i,a;for(let s of e){let l=s.uri.toString();if(s.state===bn.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=bn.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:Lg.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=bn.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=bn.Changed,await this.emitUpdate(e.map(s=>s.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=Cr.CancellationToken.None){this.currentState=bn.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of e){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=bn.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=tn(e).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,bn.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(e,r),await Gi(n);let a=this.langiumDocuments.all.filter(s=>{var l;return s.staten(e,r)))}shouldRelink(e,r){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),g0.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,bn.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(e,bn.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(e,bn.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(e,bn.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(e,bn.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=e.filter(a=>this.shouldValidate(a));await this.runCancelable(i,bn.Validated,n,a=>this.validate(a,n));for(let a of e){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){let a=e.filter(s=>s.state{this.buildPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=Cr.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(Rc):new Promise((a,s)=>{let l=this.onBuildPhase(e,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Rc)})})}async notifyBuildPhase(e,r,n){if(e.length===0)return;let i=this.buildPhaseListeners.get(r);for(let a of i)await Gi(n),await a(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){var n,i;let a=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(e,l,r);e.diagnostics?e.diagnostics.push(...u):e.diagnostics=u;let h=this.buildState.get(e.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:Lg.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(e){var r,n;return(n=(r=this.buildState.get(e.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var Q2,XM=M(()=>{"use strict";es();Pk();Ko();Rs();Mc();Q2=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new m0,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=Fi(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{ss.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),tn(i)}allElements(e,r){let n=tn(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){var n;return r?this.symbolByTypeIndex.get(e,r,()=>{var a;return((a=this.symbolIndex.get(e))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(e,r=Cr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=Cr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var Z2,jM=M(()=>{"use strict";Ko();Qo();Mc();Z2=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new as,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var r;this.folders=(r=e.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(e){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(e,r=Cr.CancellationToken.None){let n=await this.performStartup(e);await Gi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return Os.parse(e.uri)}async traverseFolder(e,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(e,s,n)){if(s.isDirectory)await this.traverseFolder(e,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(e,r,n){let i=ss.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=ss.extname(r.uri);return n.includes(a)}return!1}}});function bce(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function QM(t){return t&&"modes"in t&&"defaultMode"in t}function KM(t){return!bce(t)&&!QM(t)}var J2,ZM=M(()=>{"use strict";s0();J2=class{static{o(this,"DefaultLexer")}constructor(e){let r=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=KM(r)?Object.values(r):r;this.chevrotainLexer=new oi(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var r;let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:(r=n.groups.hidden)!==null&&r!==void 0?r:[]}}toTokenTypeDictionary(e){if(KM(e))return e;let r=QM(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(bce,"isTokenTypeArray");o(QM,"isIMultiModeLexerDefinition");o(KM,"isTokenTypeDictionary")});function tI(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=Xr.create(0,0));let a=kce(t),s=nI(n),l=Fze({lines:a,position:i,options:s});return Uze({index:0,tokens:l,position:i})}function rI(t,e){let r=nI(e),n=kce(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function kce(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(YN)}function Fze(t){var e,r,n;let i=[],a=t.position.line,s=t.position.character;for(let l=0;l=f.length){if(i.length>0){let m=Xr.create(a,s);i.push({type:"break",content:"",range:Dr.create(m,m)})}}else{wce.lastIndex=d;let m=wce.exec(f);if(m){let g=m[0],y=m[1],v=Xr.create(a,s+d),x=Xr.create(a,s+d+g.length);i.push({type:"tag",content:y,range:Dr.create(v,x)}),d+=g.length,d=eI(f,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function zze(t,e,r,n){let i=[];if(t.length===0){let a=Xr.create(r,n),s=Xr.create(r,n+e.length);i.push({type:"text",content:e,range:Dr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Dr.create(Xr.create(r,a+n),Xr.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Dr.create(Xr.create(r,a+n),Xr.create(r,a+n+s.length))})}return i}function eI(t,e){let r=t.substring(e).match(Gze);return r?e+r.index:t.length}function Vze(t){let e=t.match($ze);if(e&&typeof e.index=="number")return e.index}function Uze(t){var e,r,n,i;let a=Xr.create(t.position.line,t.position.character);if(t.tokens.length===0)return new Gk([],Dr.create(a,a));let s=[];for(;t.index0){let u=eI(e,a);s=e.substring(u),e=e.substring(0,a)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,e,s))!==null&&i!==void 0?i:Xze(e,s)}}function Xze(t,e){try{return Os.parse(t,!0),`[${e}](${t})`}catch{return t}}function Tce(t){return t.endsWith(` +`)?` +`:` + +`}var wce,Bze,Gze,$ze,Gk,ex,tx,$k,iI=M(()=>{"use strict";uM();Wm();Mc();o(tI,"parseJSDoc");o(rI,"isJSDoc");o(kce,"getLines");wce=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Bze=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(Fze,"tokenize");o(zze,"buildInlineTokens");Gze=/\S/,$ze=/\s*$/;o(eI,"skipWhitespace");o(Vze,"lastCharacter");o(Uze,"parseJSDocComment");o(Hze,"parseJSDocElement");o(Wze,"appendEmptyLine");o(Ece,"parseJSDocText");o(Yze,"parseJSDocInline");o(Sce,"parseJSDocTag");o(Cce,"parseJSDocLine");o(nI,"normalizeOptions");o(JM,"normalizeOption");Gk=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=Tce(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=Tce(r)+i}return r.trim()}},ex=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){var r,n;return(n=(r=e?.renderTag)===null||r===void 0?void 0:r.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=qze(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(qze,"renderInlineTag");o(Xze,"renderLinkDefault");tx=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},$k=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(Tce,"fillNewlines")});var rx,aI=M(()=>{"use strict";es();iI();rx=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&rI(r))return tI(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=Fi(e).precomputedScopes;if(!i)return;let a=e;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var nx,sI=M(()=>{"use strict";Bk();Ml();nx=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return GM(e)?e.$comment:(r=BD(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var li={};var oI=M(()=>{"use strict";Er(li,ka(AM(),1))});var ix,lI,cI,uI=M(()=>{"use strict";Qo();oI();ix=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}},lI=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new as,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new as;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Rc)}),this.queue.push(r),r.promise}},cI=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new li.Emitter,this.deferred=new as,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Rc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new as,this.sendMessage(e),this.deferred.promise}}});var ax,hI=M(()=>{"use strict";Ko();Qo();ax=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new Cr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=new Cr.CancellationTokenSource;return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n){let i=new as,a={action:r,deferred:i,cancellationToken:n??Cr.CancellationToken.None};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){sf(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var sx,fI=M(()=>{"use strict";Ck();Ac();Yo();es();Sg();Ml();sx=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new p0,this.tokenTypeIdMap=new p0,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(r=>Object.assign({},r)),parserErrors:e.parserErrors.map(r=>Object.assign({},r)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of jo(e))r.set(i,{});if(e.$cstNode)for(let i of Ud(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ei(l)?s.push(this.dehydrateAstNode(l,r)):ma(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else ei(a)?n[i]=this.dehydrateAstNode(a,r):ma(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return Gv(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),io(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):Jh(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of jo(e))r.set(a,{});let i;if(e.$cstNode)for(let a of Ud(e.$cstNode)){let s;"fullText"in a?(s=new vg(a.fullText),i=s):"content"in a?s=new u0:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ei(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):ma(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else ei(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):ma(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),io(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new c0(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let r=this.grammarElementIdMap.getKey(e);if(r)return r;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let r of jo(this.grammar))Hv(r)&&this.grammarElementIdMap.set(r,e++)}}});function lo(t){return{documentation:{CommentProvider:o(e=>new nx(e),"CommentProvider"),DocumentationProvider:o(e=>new rx(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new ix(e),"AsyncParser"),GrammarConfig:o(e=>lR(e),"GrammarConfig"),LangiumParser:o(e=>vM(e),"LangiumParser"),CompletionParser:o(e=>gM(e),"CompletionParser"),ValueConverter:o(()=>new d0,"ValueConverter"),TokenBuilder:o(()=>new f0,"TokenBuilder"),Lexer:o(e=>new J2(e),"Lexer"),ParserErrorMessageProvider:o(()=>new xg,"ParserErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new X2,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new Y2(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new q2(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new I2(e),"Linker"),NameProvider:o(()=>new O2,"NameProvider"),ScopeProvider:o(e=>new G2(e),"ScopeProvider"),ScopeComputation:o(e=>new B2(e),"ScopeComputation"),References:o(e=>new P2(e),"References")},serializer:{Hydrator:o(e=>new sx(e),"Hydrator"),JsonSerializer:o(e=>new $2(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new W2(e),"DocumentValidator"),ValidationRegistry:o(e=>new U2(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function co(t){return{ServiceRegistry:o(()=>new V2,"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new M2(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new R2(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new K2(e),"DocumentBuilder"),IndexManager:o(e=>new Q2(e),"IndexManager"),WorkspaceManager:o(e=>new Z2(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new ax,"WorkspaceLock"),ConfigurationProvider:o(e=>new j2(e),"ConfigurationProvider")}}}var dI=M(()=>{"use strict";cR();yM();xM();bM();wM();IM();OM();PM();BM();zM();Bk();$M();VM();H2();UM();HM();WM();qM();Eg();XM();jM();ZM();aI();sI();N2();uI();hI();fI();o(lo,"createDefaultCoreModule");o(co,"createDefaultSharedCoreModule")});function $i(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(Vk,{});return Dce(h)}function Lce(t){if(t&&t[mI])for(let e of Object.values(t))Lce(e);return t}function Dce(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),get:o((n,i)=>_ce(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(_ce(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Reflect.ownKeys(t),mI],"ownKeys")});return r[mI]=!0,r}function _ce(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===Ace)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=Ace;try{t[e]=typeof i=="function"?i(n):Dce(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function Vk(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=Vk(i,n):t[r]=n}}return t}var pI,mI,Ace,gI=M(()=>{"use strict";(function(t){t.merge=(e,r)=>Vk(Vk({},e),r)})(pI||(pI={}));o($i,"inject");mI=Symbol("isProxy");o(Lce,"eagerLoad");o(Dce,"_inject");Ace=Symbol();o(_ce,"_resolve");o(Vk,"_merge")});var Nce=M(()=>{"use strict"});var Rce=M(()=>{"use strict";sI();aI();iI()});var Mce=M(()=>{"use strict"});var Ice=M(()=>{"use strict";cR();Mce()});var Oce=M(()=>{"use strict"});var Pce=M(()=>{"use strict";uI();yM();Ck();xM();N2();ZM();Oce();bM();wM()});var Bce=M(()=>{"use strict";IM();OM();PM();FM();BM();zM()});var Fce=M(()=>{"use strict";fI();Bk()});var Uk,uo,yI=M(()=>{"use strict";Uk=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},uo={fileSystemProvider:o(()=>new Uk,"fileSystemProvider")}});function Qze(){let t=$i(co(uo),Kze),e=$i(lo({shared:t}),jze);return t.ServiceRegistry.register(e),e}function of(t){var e;let r=Qze(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,Os.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var jze,Kze,zce=M(()=>{"use strict";dI();gI();Ac();yI();Mc();jze={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Kze={AstReflection:o(()=>new Vm,"AstReflection")};o(Qze,"createMinimalGrammarServices");o(of,"loadGrammarFromJson")});var Gr={};vr(Gr,{AstUtils:()=>AT,BiMap:()=>p0,Cancellation:()=>Cr,ContextCache:()=>m0,CstUtils:()=>mT,DONE_RESULT:()=>Ja,Deferred:()=>as,Disposable:()=>g0,DisposableCache:()=>Ag,DocumentCache:()=>Ok,EMPTY_STREAM:()=>$v,ErrorWithLocation:()=>Wd,GrammarUtils:()=>MT,MultiMap:()=>Ic,OperationCancelled:()=>Rc,Reduction:()=>Gm,RegExpUtils:()=>NT,SimpleCache:()=>z2,StreamImpl:()=>ao,TreeStreamImpl:()=>Cc,URI:()=>Os,UriUtils:()=>ss,WorkspaceCache:()=>_g,assertUnreachable:()=>ef,delayNextTick:()=>NM,interruptAndCheck:()=>Gi,isOperationCancelled:()=>sf,loadGrammarFromJson:()=>of,setInterruptionPeriod:()=>hce,startCancelableOperation:()=>uce,stream:()=>tn});var Gce=M(()=>{"use strict";Pk();oI();Er(Gr,li);Sg();YM();gT();zce();Qo();Rs();Mc();es();Ko();Ml();Pl();Wm()});var $ce=M(()=>{"use strict";VM();H2()});var Vce=M(()=>{"use strict";UM();HM();WM();qM();Eg();yI();XM();hI();jM()});var ga={};vr(ga,{AbstractAstReflection:()=>$d,AbstractCstNode:()=>A2,AbstractLangiumParser:()=>_2,AbstractParserErrorMessageProvider:()=>_k,AbstractThreadedAsyncParser:()=>lI,AstUtils:()=>AT,BiMap:()=>p0,Cancellation:()=>Cr,CompositeCstNodeImpl:()=>u0,ContextCache:()=>m0,CstNodeBuilder:()=>C2,CstUtils:()=>mT,DONE_RESULT:()=>Ja,DatatypeSymbol:()=>Ak,DefaultAstNodeDescriptionProvider:()=>Y2,DefaultAstNodeLocator:()=>X2,DefaultAsyncParser:()=>ix,DefaultCommentProvider:()=>nx,DefaultConfigurationProvider:()=>j2,DefaultDocumentBuilder:()=>K2,DefaultDocumentValidator:()=>W2,DefaultHydrator:()=>sx,DefaultIndexManager:()=>Q2,DefaultJsonSerializer:()=>$2,DefaultLangiumDocumentFactory:()=>R2,DefaultLangiumDocuments:()=>M2,DefaultLexer:()=>J2,DefaultLinker:()=>I2,DefaultNameProvider:()=>O2,DefaultReferenceDescriptionProvider:()=>q2,DefaultReferences:()=>P2,DefaultScopeComputation:()=>B2,DefaultScopeProvider:()=>G2,DefaultServiceRegistry:()=>V2,DefaultTokenBuilder:()=>f0,DefaultValueConverter:()=>d0,DefaultWorkspaceLock:()=>ax,DefaultWorkspaceManager:()=>Z2,Deferred:()=>as,Disposable:()=>g0,DisposableCache:()=>Ag,DocumentCache:()=>Ok,DocumentState:()=>bn,DocumentValidator:()=>$u,EMPTY_SCOPE:()=>Pze,EMPTY_STREAM:()=>$v,EmptyFileSystem:()=>uo,EmptyFileSystemProvider:()=>Uk,ErrorWithLocation:()=>Wd,GrammarAST:()=>Yv,GrammarUtils:()=>MT,JSDocDocumentationProvider:()=>rx,LangiumCompletionParser:()=>D2,LangiumParser:()=>L2,LangiumParserErrorMessageProvider:()=>xg,LeafCstNodeImpl:()=>c0,MapScope:()=>F2,Module:()=>pI,MultiMap:()=>Ic,OperationCancelled:()=>Rc,ParserWorker:()=>cI,Reduction:()=>Gm,RegExpUtils:()=>NT,RootCstNodeImpl:()=>vg,SimpleCache:()=>z2,StreamImpl:()=>ao,StreamScope:()=>Cg,TextDocument:()=>Tg,TreeStreamImpl:()=>Cc,URI:()=>Os,UriUtils:()=>ss,ValidationCategory:()=>Lg,ValidationRegistry:()=>U2,ValueConverter:()=>Nc,WorkspaceCache:()=>_g,assertUnreachable:()=>ef,createCompletionParser:()=>gM,createDefaultCoreModule:()=>lo,createDefaultSharedCoreModule:()=>co,createGrammarConfig:()=>lR,createLangiumParser:()=>vM,delayNextTick:()=>NM,diagnosticData:()=>Fk,eagerLoad:()=>Lce,getDiagnosticRange:()=>xce,inject:()=>$i,interruptAndCheck:()=>Gi,isAstNode:()=>ei,isAstNodeDescription:()=>MD,isAstNodeWithComment:()=>GM,isCompositeCstNode:()=>io,isIMultiModeLexerDefinition:()=>QM,isJSDoc:()=>rI,isLeafCstNode:()=>Jh,isLinkingError:()=>Vd,isNamed:()=>yce,isOperationCancelled:()=>sf,isReference:()=>ma,isRootCstNode:()=>Gv,isTokenTypeArray:()=>bce,isTokenTypeDictionary:()=>KM,loadGrammarFromJson:()=>of,parseJSDoc:()=>tI,prepareLangiumParser:()=>nce,setInterruptionPeriod:()=>hce,startCancelableOperation:()=>uce,stream:()=>tn,toDiagnosticSeverity:()=>zk});var Oc=M(()=>{"use strict";dI();gI();$M();Nce();Yo();Rce();Ice();Pce();Bce();Fce();Gce();Er(ga,Gr);$ce();Vce();Ac()});function Kce(t){return Fl.isInstance(t,jce)}function Qce(t){return Fl.isInstance(t,vI)}function Zce(t){return Fl.isInstance(t,xI)}function Jce(t){return Fl.isInstance(t,tGe)}function eue(t){return Fl.isInstance(t,bI)}function rue(t){return Fl.isInstance(t,tue)}function nue(t){return Fl.isInstance(t,wI)}function aue(t){return Fl.isInstance(t,iue)}function oue(t){return Fl.isInstance(t,sue)}function cue(t){return Fl.isInstance(t,lue)}function hue(t){return Fl.isInstance(t,uue)}var Zze,Ot,Xce,jce,vI,Jze,eGe,xI,tGe,bI,tue,wI,iue,sue,lue,uue,rGe,fue,Fl,Uce,nGe,Hce,iGe,Wce,aGe,Yce,sGe,qce,oGe,lGe,cGe,uGe,hGe,fGe,zl,TI,kI,EI,SI,CI,dGe,pGe,mGe,gGe,Dg,y0,Zo,yGe,Jo=M(()=>{"use strict";Oc();Oc();Oc();Oc();Zze=Object.defineProperty,Ot=o((t,e)=>Zze(t,"name",{value:e,configurable:!0}),"__name"),Xce="Statement",jce="Architecture";o(Kce,"isArchitecture");Ot(Kce,"isArchitecture");vI="Branch";o(Qce,"isBranch");Ot(Qce,"isBranch");Jze="Checkout",eGe="CherryPicking",xI="Commit";o(Zce,"isCommit");Ot(Zce,"isCommit");tGe="Common";o(Jce,"isCommon");Ot(Jce,"isCommon");bI="GitGraph";o(eue,"isGitGraph");Ot(eue,"isGitGraph");tue="Info";o(rue,"isInfo");Ot(rue,"isInfo");wI="Merge";o(nue,"isMerge");Ot(nue,"isMerge");iue="Packet";o(aue,"isPacket");Ot(aue,"isPacket");sue="PacketBlock";o(oue,"isPacketBlock");Ot(oue,"isPacketBlock");lue="Pie";o(cue,"isPie");Ot(cue,"isPie");uue="PieSection";o(hue,"isPieSection");Ot(hue,"isPieSection");rGe="Direction",fue=class extends $d{static{o(this,"MermaidAstReflection")}static{Ot(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(t,e){switch(t){case vI:case Jze:case eGe:case xI:case wI:return this.isSubtype(Xce,e);case rGe:return this.isSubtype(bI,e);default:return!1}}getReferenceType(t){let e=`${t.container.$type}:${t.property}`;switch(e){default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:t,properties:[]}}}},Fl=new fue,nGe=Ot(()=>Uce??(Uce=of('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),iGe=Ot(()=>Hce??(Hce=of(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),aGe=Ot(()=>Wce??(Wce=of('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),sGe=Ot(()=>Yce??(Yce=of('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),oGe=Ot(()=>qce??(qce=of(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),lGe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},cGe={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},uGe={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},hGe={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},fGe={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},zl={AstReflection:Ot(()=>new fue,"AstReflection")},TI={Grammar:Ot(()=>nGe(),"Grammar"),LanguageMetaData:Ot(()=>lGe,"LanguageMetaData"),parser:{}},kI={Grammar:Ot(()=>iGe(),"Grammar"),LanguageMetaData:Ot(()=>cGe,"LanguageMetaData"),parser:{}},EI={Grammar:Ot(()=>aGe(),"Grammar"),LanguageMetaData:Ot(()=>uGe,"LanguageMetaData"),parser:{}},SI={Grammar:Ot(()=>sGe(),"Grammar"),LanguageMetaData:Ot(()=>hGe,"LanguageMetaData"),parser:{}},CI={Grammar:Ot(()=>oGe(),"Grammar"),LanguageMetaData:Ot(()=>fGe,"LanguageMetaData"),parser:{}},dGe=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,pGe=/accTitle[\t ]*:([^\n\r]*)/,mGe=/title([\t ][^\n\r]*|)/,gGe={ACC_DESCR:dGe,ACC_TITLE:pGe,TITLE:mGe},Dg=class extends d0{static{o(this,"AbstractMermaidValueConverter")}static{Ot(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=gGe[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},y0=class extends Dg{static{o(this,"CommonValueConverter")}static{Ot(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},Zo=class extends f0{static{o(this,"AbstractMermaidTokenBuilder")}static{Ot(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},yGe=class extends Zo{static{o(this,"CommonTokenBuilder")}static{Ot(this,"CommonTokenBuilder")}}});function Wk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),CI,Hk);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var vGe,Hk,AI=M(()=>{"use strict";Jo();Oc();vGe=class extends Zo{static{o(this,"GitGraphTokenBuilder")}static{Ot(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},Hk={parser:{TokenBuilder:Ot(()=>new vGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(Wk,"createGitGraphServices");Ot(Wk,"createGitGraphServices")});function qk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),TI,Yk);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var xGe,Yk,_I=M(()=>{"use strict";Jo();Oc();xGe=class extends Zo{static{o(this,"InfoTokenBuilder")}static{Ot(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},Yk={parser:{TokenBuilder:Ot(()=>new xGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(qk,"createInfoServices");Ot(qk,"createInfoServices")});function jk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),kI,Xk);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var bGe,Xk,LI=M(()=>{"use strict";Jo();Oc();bGe=class extends Zo{static{o(this,"PacketTokenBuilder")}static{Ot(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},Xk={parser:{TokenBuilder:Ot(()=>new bGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(jk,"createPacketServices");Ot(jk,"createPacketServices")});function Qk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),EI,Kk);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var wGe,TGe,Kk,DI=M(()=>{"use strict";Jo();Oc();wGe=class extends Zo{static{o(this,"PieTokenBuilder")}static{Ot(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},TGe=class extends Dg{static{o(this,"PieValueConverter")}static{Ot(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},Kk={parser:{TokenBuilder:Ot(()=>new wGe,"TokenBuilder"),ValueConverter:Ot(()=>new TGe,"ValueConverter")}};o(Qk,"createPieServices");Ot(Qk,"createPieServices")});function Jk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),SI,Zk);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var kGe,EGe,Zk,NI=M(()=>{"use strict";Jo();Oc();kGe=class extends Zo{static{o(this,"ArchitectureTokenBuilder")}static{Ot(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},EGe=class extends Dg{static{o(this,"ArchitectureValueConverter")}static{Ot(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},Zk={parser:{TokenBuilder:Ot(()=>new kGe,"TokenBuilder"),ValueConverter:Ot(()=>new EGe,"ValueConverter")}};o(Jk,"createArchitectureServices");Ot(Jk,"createArchitectureServices")});var due={};vr(due,{InfoModule:()=>Yk,createInfoServices:()=>qk});var pue=M(()=>{"use strict";_I();Jo()});var mue={};vr(mue,{PacketModule:()=>Xk,createPacketServices:()=>jk});var gue=M(()=>{"use strict";LI();Jo()});var yue={};vr(yue,{PieModule:()=>Kk,createPieServices:()=>Qk});var vue=M(()=>{"use strict";DI();Jo()});var xue={};vr(xue,{ArchitectureModule:()=>Zk,createArchitectureServices:()=>Jk});var bue=M(()=>{"use strict";NI();Jo()});var wue={};vr(wue,{GitGraphModule:()=>Hk,createGitGraphServices:()=>Wk});var Tue=M(()=>{"use strict";AI();Jo()});async function Gl(t,e){let r=SGe[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);v0[t]||await r();let i=v0[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new CGe(i);return i.value}var v0,SGe,CGe,Ng=M(()=>{"use strict";AI();_I();LI();DI();NI();Jo();v0={},SGe={info:Ot(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(pue(),due)),e=t().Info.parser.LangiumParser;v0.info=e},"info"),packet:Ot(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(gue(),mue)),e=t().Packet.parser.LangiumParser;v0.packet=e},"packet"),pie:Ot(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(vue(),yue)),e=t().Pie.parser.LangiumParser;v0.pie=e},"pie"),architecture:Ot(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(bue(),xue)),e=t().Architecture.parser.LangiumParser;v0.architecture=e},"architecture"),gitGraph:Ot(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(Tue(),wue)),e=t().GitGraph.parser.LangiumParser;v0.gitGraph=e},"gitGraph")};o(Gl,"parse");Ot(Gl,"parse");CGe=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>n.message).join(` +`),r=t.parserErrors.map(n=>n.message).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{Ot(this,"MermaidParseError")}}});function lf(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var ox=M(()=>{"use strict";o(lf,"populateCommonDb")});var jr,eE=M(()=>{"use strict";jr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var cf,tE=M(()=>{"use strict";cf=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function RI(){return t9({length:7})}function _Ge(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function kue(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function Sue(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in wt.records.branches)wt.records.branches.get(i)===e.id&&n.push(i);if(Y.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=wt.records.commits.get(e.parents[0]);kue(t,e,i),e.parents[1]&&t.push(wt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=wt.records.commits.get(e.parents[0]);kue(t,e,i)}}t=_Ge(t,i=>i.id),Sue(t)}var AGe,x0,wt,LGe,DGe,NGe,RGe,MGe,IGe,OGe,Eue,PGe,BGe,FGe,zGe,GGe,Cue,$Ge,VGe,UGe,rE,MI=M(()=>{"use strict";ht();hr();Ua();fr();ki();eE();tE();hs();AGe=ur.gitGraph,x0=o(()=>ws({...AGe,...Sr().gitGraph}),"getConfig"),wt=new cf(()=>{let t=x0(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(RI,"getID");o(_Ge,"uniqBy");LGe=o(function(t){wt.records.direction=t},"setDirection"),DGe=o(function(t){Y.debug("options str",t),t=t?.trim(),t=t||"{}";try{wt.records.options=JSON.parse(t)}catch(e){Y.error("error while parsing gitGraph options",e.message)}},"setOptions"),NGe=o(function(){return wt.records.options},"getOptions"),RGe=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;Y.info("commit",e,r,n,i),Y.debug("Entering commit:",e,r,n,i);let a=x0();r=je.sanitizeText(r,a),e=je.sanitizeText(e,a),i=i?.map(l=>je.sanitizeText(l,a));let s={id:r||wt.records.seq+"-"+RI(),message:e,seq:wt.records.seq++,type:n??jr.NORMAL,tags:i??[],parents:wt.records.head==null?[]:[wt.records.head.id],branch:wt.records.currBranch};wt.records.head=s,Y.info("main branch",a.mainBranchName),wt.records.commits.set(s.id,s),wt.records.branches.set(wt.records.currBranch,s.id),Y.debug("in pushCommit "+s.id)},"commit"),MGe=o(function(t){let e=t.name,r=t.order;if(e=je.sanitizeText(e,x0()),wt.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);wt.records.branches.set(e,wt.records.head!=null?wt.records.head.id:null),wt.records.branchConfig.set(e,{name:e,order:r}),Eue(e),Y.debug("in createBranch")},"branch"),IGe=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=x0();e=je.sanitizeText(e,a),r&&(r=je.sanitizeText(r,a));let s=wt.records.branches.get(wt.records.currBranch),l=wt.records.branches.get(e),u=s?wt.records.commits.get(s):void 0,h=l?wt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(wt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${wt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!wt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&wt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${wt.records.seq}-${RI()}`,message:`merged branch ${e} into ${wt.records.currBranch}`,seq:wt.records.seq++,parents:wt.records.head==null?[]:[wt.records.head.id,f],branch:wt.records.currBranch,type:jr.MERGE,customType:n,customId:!!r,tags:i??[]};wt.records.head=d,wt.records.commits.set(d.id,d),wt.records.branches.set(wt.records.currBranch,d.id),Y.debug(wt.records.branches),Y.debug("in mergeBranch")},"merge"),OGe=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;Y.debug("Entering cherryPick:",e,r,n);let a=x0();if(e=je.sanitizeText(e,a),r=je.sanitizeText(r,a),n=n?.map(u=>je.sanitizeText(u,a)),i=je.sanitizeText(i,a),!e||!wt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=wt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===jr.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!wt.records.commits.has(r)){if(l===wt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=wt.records.branches.get(wt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${wt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=wt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${wt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:wt.records.seq+"-"+RI(),message:`cherry-picked ${s?.message} into ${wt.records.currBranch}`,seq:wt.records.seq++,parents:wt.records.head==null?[]:[wt.records.head.id,s.id],branch:wt.records.currBranch,type:jr.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===jr.MERGE?`|parent:${i}`:""}`]};wt.records.head=f,wt.records.commits.set(f.id,f),wt.records.branches.set(wt.records.currBranch,f.id),Y.debug(wt.records.branches),Y.debug("in cherryPick")}},"cherryPick"),Eue=o(function(t){if(t=je.sanitizeText(t,x0()),wt.records.branches.has(t)){wt.records.currBranch=t;let e=wt.records.branches.get(wt.records.currBranch);e===void 0||!e?wt.records.head=null:wt.records.head=wt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(kue,"upsert");o(Sue,"prettyPrintCommitHistory");PGe=o(function(){Y.debug(wt.records.commits);let t=Cue()[0];Sue([t])},"prettyPrint"),BGe=o(function(){wt.reset(),_r()},"clear"),FGe=o(function(){return[...wt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),zGe=o(function(){return wt.records.branches},"getBranches"),GGe=o(function(){return wt.records.commits},"getCommits"),Cue=o(function(){let t=[...wt.records.commits.values()];return t.forEach(function(e){Y.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),$Ge=o(function(){return wt.records.currBranch},"getCurrentBranch"),VGe=o(function(){return wt.records.direction},"getDirection"),UGe=o(function(){return wt.records.head},"getHead"),rE={commitType:jr,getConfig:x0,setDirection:LGe,setOptions:DGe,getOptions:NGe,commit:RGe,branch:MGe,merge:IGe,cherryPick:OGe,checkout:Eue,prettyPrint:PGe,clear:BGe,getBranchesAsObjArray:FGe,getBranches:zGe,getCommits:GGe,getCommitsArray:Cue,getCurrentBranch:$Ge,getDirection:VGe,getHead:UGe,setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,setDiagramTitle:ln,getDiagramTitle:Jr}});var HGe,WGe,YGe,qGe,XGe,jGe,KGe,Aue,_ue=M(()=>{"use strict";Ng();ht();ox();MI();eE();HGe=o((t,e)=>{lf(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)WGe(r,e)},"populate"),WGe=o((t,e)=>{let n={Commit:o(i=>e.commit(YGe(i)),"Commit"),Branch:o(i=>e.branch(qGe(i)),"Branch"),Merge:o(i=>e.merge(XGe(i)),"Merge"),Checkout:o(i=>e.checkout(jGe(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(KGe(i)),"CherryPicking")}[t.$type];n?n(t):Y.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),YGe=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?jr[t.type]:jr.NORMAL,tags:t.tags??void 0}),"parseCommit"),qGe=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),XGe=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?jr[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),jGe=o(t=>t.branch,"parseCheckout"),KGe=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),Aue={parse:o(async t=>{let e=await Gl("gitGraph",t);Y.debug(e),HGe(e,rE)},"parse")}});var QGe,el,hf,ff,Pc,Vu,b0,Ps,Bs,nE,lx,iE,uf,Nr,ZGe,Due,Nue,JGe,e$e,t$e,r$e,n$e,i$e,a$e,s$e,o$e,l$e,c$e,u$e,Lue,h$e,cx,f$e,d$e,p$e,m$e,g$e,Rue,Mue=M(()=>{"use strict";mr();Vt();ht();hr();eE();QGe=de(),el=QGe?.gitGraph,hf=10,ff=40,Pc=4,Vu=2,b0=8,Ps=new Map,Bs=new Map,nE=30,lx=new Map,iE=[],uf=0,Nr="LR",ZGe=o(()=>{Ps.clear(),Bs.clear(),lx.clear(),uf=0,iE=[],Nr="LR"},"clear"),Due=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),Nue=o(t=>{let e,r,n;return Nr==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=Nr==="TB"||Nr=="BT"?Bs.get(i)?.y:Bs.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),JGe=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Bs.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),e$e=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=r$e(l),i=Math.max(n,i)):a.push(l),n$e(l,n)}),n=i,a.forEach(s=>{i$e(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=JGe(l.parents);n=Bs.get(u).y-ff,n<=i&&(i=n);let h=Ps.get(l.branch).pos,f=n-hf;Bs.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),t$e=o(t=>{let e=Nue(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Bs.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),r$e=o(t=>t$e(t)+ff,"calculateCommitPosition"),n$e=o((t,e)=>{let r=Ps.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+hf;return Bs.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),i$e=o((t,e,r)=>{let n=Ps.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Bs.set(t.id,{x:a,y:i})},"setRootPosition"),a$e=o((t,e,r,n,i,a)=>{if(a===jr.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%b0} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%b0} ${n}-inner`);else if(a===jr.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===jr.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%b0}`),a===jr.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%b0}`)}a===jr.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%b0}`)}},"drawCommitBullet"),s$e=o((t,e,r,n)=>{if(e.type!==jr.CHERRY_PICK&&(e.customId&&e.type===jr.MERGE||e.type!==jr.MERGE)&&el?.showCommitLabel){let i=t.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-Vu).attr("y",r.y+13.5).attr("width",l.width+2*Vu).attr("height",l.height+2*Vu),Nr==="TB"||Nr==="BT"?(a.attr("x",r.x-(l.width+4*Pc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*Pc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),el.rotateCommitLabel))if(Nr==="TB"||Nr==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),o$e=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Pc/2},${m+Vu} + ${n-a/2-Pc/2},${m-Vu} + ${r.posWithOffset-a/2-Pc},${m-p-Vu} + ${r.posWithOffset+a/2+Pc},${m-p-Vu} + ${r.posWithOffset+a/2+Pc},${m+p+Vu} + ${r.posWithOffset-a/2-Pc},${m+p+Vu}`),h.attr("cy",m).attr("cx",n-a/2+Pc/2).attr("r",1.5).attr("class","tag-hole"),Nr==="TB"||Nr==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+hf},${g-p-2} + ${r.x+hf+a+4},${g-p-2} + ${r.x+hf+a+4},${g+p+2} + ${r.x+hf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Pc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),l$e=o(t=>{switch(t.customType??t.type){case jr.NORMAL:return"commit-normal";case jr.REVERSE:return"commit-reverse";case jr.HIGHLIGHT:return"commit-highlight";case jr.MERGE:return"commit-merge";case jr.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),c$e=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=Nue(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+ff:e==="BT"?(n.get(t.id)??i).y-ff:s.x+ff}}else return e==="TB"?nE:e==="BT"?(n.get(t.id)??i).y-ff:0;return 0},"calculatePosition"),u$e=o((t,e,r)=>{let n=Nr==="BT"&&r?e:e+hf,i=Nr==="TB"||Nr==="BT"?n:Ps.get(t.branch)?.pos,a=Nr==="TB"||Nr==="BT"?Ps.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),Lue=o((t,e,r)=>{if(!el)throw new Error("GitGraph config not found");let n=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),a=Nr==="TB"||Nr==="BT"?nE:0,s=[...e.keys()],l=el?.parallelCommits??!1,u=o((f,d)=>{let p=e.get(f)?.seq,m=e.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Nr==="BT"&&(l&&e$e(h,e,a),h=h.reverse()),h.forEach(f=>{let d=e.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=c$e(d,Nr,a,Bs));let p=u$e(d,a,l);if(r){let m=l$e(d),g=d.customType??d.type,y=Ps.get(d.branch)?.index??0;a$e(n,d,p,m,y,g),s$e(i,d,p,a),o$e(i,d,p,a)}Nr==="TB"||Nr==="BT"?Bs.set(d.id,{x:p.x,y:p.posWithOffset}):Bs.set(d.id,{x:p.posWithOffset,y:p.y}),a=Nr==="BT"&&l?a+ff:a+ff+hf,a>uf&&(uf=a)})},"drawCommits"),h$e=o((t,e,r,n,i)=>{let s=(Nr==="TB"||Nr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),cx=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(iE.every(s=>Math.abs(s-n)>=10))return iE.push(n),n;let a=Math.abs(t-e);return cx(t,e-a/5,r+1)},"findLane"),f$e=o((t,e,r,n)=>{let i=Bs.get(e.id),a=Bs.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=h$e(e,r,i,a,n),l="",u="",h=0,f=0,d=Ps.get(r.branch)?.index;r.type===jr.MERGE&&e.id!==r.parents[0]&&(d=Ps.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Nr==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%b0)},"drawArrow"),d$e=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{f$e(r,e.get(a),i,e)})})},"drawArrows"),p$e=o((t,e)=>{let r=t.append("g");e.forEach((n,i)=>{let a=i%b0,s=Ps.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",uf),l.attr("y2",s),l.attr("class","branch branch"+a),Nr==="TB"?(l.attr("y1",nE),l.attr("x1",s),l.attr("y2",uf),l.attr("x2",s)):Nr==="BT"&&(l.attr("y1",uf),l.attr("x1",s),l.attr("y2",nE),l.attr("x2",s)),iE.push(s);let u=n.name,h=Due(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(el?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(el?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Nr==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Nr==="BT"?(f.attr("x",s-m.width/2-10).attr("y",uf),p.attr("transform","translate("+(s-m.width/2-5)+", "+uf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),m$e=o(function(t,e,r,n,i){return Ps.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(Nr==="TB"||Nr==="BT"?n.width/2:0),e},"setBranchPosition"),g$e=o(function(t,e,r,n){if(ZGe(),Y.debug("in gitgraph renderer",t+` +`,"id:",e,r),!el)throw new Error("GitGraph config not found");let i=el.rotateCommitLabel??!1,a=n.db;lx=a.getCommits();let s=a.getBranchesAsObjArray();Nr=a.getDirection();let l=ze(`[id="${e}"]`),u=0;s.forEach((h,f)=>{let d=Due(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=m$e(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),Lue(l,lx,!1),el.showBranches&&p$e(l,s),d$e(l,lx),Lue(l,lx,!0),Ut.insertTitle(l,"gitTitleText",el.titleTopMargin??0,a.getDiagramTitle()),a7(void 0,l,el.diagramPadding,el.useMaxWidth)},"draw"),Rue={draw:g$e}});var y$e,Iue,Oue=M(()=>{"use strict";y$e=o(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),Iue=y$e});var Pue={};vr(Pue,{diagram:()=>v$e});var v$e,Bue=M(()=>{"use strict";_ue();MI();Mue();Oue();v$e={parser:Aue,db:rE,renderer:Rue,styles:Iue}});var II,Gue,$ue=M(()=>{"use strict";II=function(){var t=o(function(R,S,O,N){for(O=O||{},N=R.length;N--;O[R[N]]=S);return O},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],w=[1,19],_=[1,20],T=[1,21],E=[1,22],L=[1,23],C=[1,25],A=[1,35],I={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(S,O,N,P,F,B,$){var z=B.length-1;switch(F){case 1:return B[z-1];case 2:this.$=[];break;case 3:B[z-1].push(B[z]),this.$=B[z-1];break;case 4:case 5:this.$=B[z];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=B[z].substr(18);break;case 19:P.TopAxis(),this.$=B[z].substr(8);break;case 20:P.setAxisFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 21:P.setTickInterval(B[z].substr(13)),this.$=B[z].substr(13);break;case 22:P.setExcludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 23:P.setIncludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 24:P.setTodayMarker(B[z].substr(12)),this.$=B[z].substr(12);break;case 27:P.setDiagramTitle(B[z].substr(6)),this.$=B[z].substr(6);break;case 28:this.$=B[z].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=B[z].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(B[z].substr(8)),this.$=B[z].substr(8);break;case 33:P.addTask(B[z-1],B[z]),this.$="task";break;case 34:this.$=B[z-1],P.setClickEvent(B[z-1],B[z],null);break;case 35:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],B[z]);break;case 36:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],null),P.setLink(B[z-2],B[z]);break;case 37:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-2],B[z-1]),P.setLink(B[z-3],B[z]);break;case 38:this.$=B[z-2],P.setClickEvent(B[z-2],B[z],null),P.setLink(B[z-2],B[z-1]);break;case 39:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-1],B[z]),P.setLink(B[z-3],B[z-2]);break;case 40:this.$=B[z-1],P.setLink(B[z-1],B[z]);break;case 41:case 47:this.$=B[z-1]+" "+B[z];break;case 42:case 43:case 45:this.$=B[z-2]+" "+B[z-1]+" "+B[z];break;case 44:case 46:this.$=B[z-3]+" "+B[z-2]+" "+B[z-1]+" "+B[z];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:_,33:T,35:E,36:L,37:24,38:C,40:A},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:_,33:T,35:E,36:L,37:24,38:C,40:A},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(S,O){if(O.recoverable)this.trace(S);else{var N=new Error(S);throw N.hash=O,N}},"parseError"),parse:o(function(S){var O=this,N=[0],P=[],F=[null],B=[],$=this.table,z="",W=0,j=0,K=0,ie=2,Q=1,ee=B.slice.call(arguments,1),J=Object.create(this.lexer),H={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(H.yy[q]=this.yy[q]);J.setInput(S,H.yy),H.yy.lexer=J,H.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var Z=J.yylloc;B.push(Z);var ae=J.options&&J.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ue(he){N.length=N.length-2*he,F.length=F.length-he,B.length=B.length-he}o(ue,"popStack");function ce(){var he;return he=P.pop()||J.lex()||Q,typeof he!="number"&&(he instanceof Array&&(P=he,he=P.pop()),he=O.symbols_[he]||he),he}o(ce,"lex");for(var te,De,oe,ke,Fe,Be,Ve={},Ge,He,xe,X;;){if(oe=N[N.length-1],this.defaultActions[oe]?ke=this.defaultActions[oe]:((te===null||typeof te>"u")&&(te=ce()),ke=$[oe]&&$[oe][te]),typeof ke>"u"||!ke.length||!ke[0]){var fe="";X=[];for(Ge in $[oe])this.terminals_[Ge]&&Ge>ie&&X.push("'"+this.terminals_[Ge]+"'");J.showPosition?fe="Parse error on line "+(W+1)+`: +`+J.showPosition()+` +Expecting `+X.join(", ")+", got '"+(this.terminals_[te]||te)+"'":fe="Parse error on line "+(W+1)+": Unexpected "+(te==Q?"end of input":"'"+(this.terminals_[te]||te)+"'"),this.parseError(fe,{text:J.match,token:this.terminals_[te]||te,line:J.yylineno,loc:Z,expected:X})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+oe+", token: "+te);switch(ke[0]){case 1:N.push(te),F.push(J.yytext),B.push(J.yylloc),N.push(ke[1]),te=null,De?(te=De,De=null):(j=J.yyleng,z=J.yytext,W=J.yylineno,Z=J.yylloc,K>0&&K--);break;case 2:if(He=this.productions_[ke[1]][1],Ve.$=F[F.length-He],Ve._$={first_line:B[B.length-(He||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(He||1)].first_column,last_column:B[B.length-1].last_column},ae&&(Ve._$.range=[B[B.length-(He||1)].range[0],B[B.length-1].range[1]]),Be=this.performAction.apply(Ve,[z,j,W,H.yy,ke[1],F,B].concat(ee)),typeof Be<"u")return Be;He&&(N=N.slice(0,-1*He*2),F=F.slice(0,-1*He),B=B.slice(0,-1*He)),N.push(this.productions_[ke[1]][0]),F.push(Ve.$),B.push(Ve._$),xe=$[N[N.length-2]][N[N.length-1]],N.push(xe);break;case 3:return!0}}return!0},"parse")},D=function(){var R={EOF:1,parseError:o(function(O,N){if(this.yy.parser)this.yy.parser.parseError(O,N);else throw new Error(O)},"parseError"),setInput:o(function(S,O){return this.yy=O||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var O=S.match(/(?:\r\n?|\n).*/g);return O?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var O=S.length,N=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),N.length-1&&(this.yylineno-=N.length-1);var F=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:N?(N.length===P.length?this.yylloc.first_column:0)+P[P.length-N.length].length-N[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[F[0],F[0]+this.yyleng-O]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),O=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+O+"^"},"showPosition"),test_match:o(function(S,O){var N,P,F;if(this.options.backtrack_lexer&&(F={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(F.yylloc.range=this.yylloc.range.slice(0))),P=S[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],N=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var B in F)this[B]=F[B];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,O,N,P;this._more||(this.yytext="",this.match="");for(var F=this._currentRules(),B=0;BO[0].length)){if(O=N,P=B,this.options.backtrack_lexer){if(S=this.test_match(N,F[B]),S!==!1)return S;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(S=this.test_match(O,F[P]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,N,P,F){var B=F;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return R}();I.lexer=D;function k(){this.yy={}}return o(k,"Parser"),k.prototype=I,I.Parser=k,new k}();II.parser=II;Gue=II});var Vue=Ni((OI,PI)=>{"use strict";(function(t,e){typeof OI=="object"&&typeof PI<"u"?PI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(OI,function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}})});var Uue=Ni((BI,FI)=>{"use strict";(function(t,e){typeof BI=="object"&&typeof FI<"u"?FI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(BI,function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x}(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(C,A,I){var D=I&&I.toUpperCase();return A||v[I]||t[I]||v[D].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,R,S){return R||S.slice(1)})})).match(e),b=x.length,w=0;w-1)return new Date((N==="X"?1e3:1)*O);var B=m(N)(O),$=B.year,z=B.month,W=B.day,j=B.hours,K=B.minutes,ie=B.seconds,Q=B.milliseconds,ee=B.zone,J=B.week,H=new Date,q=W||($||z?1:H.getDate()),Z=$||H.getFullYear(),ae=0;$&&!z||(ae=z>0?z-1:H.getMonth());var ue,ce=j||0,te=K||0,De=ie||0,oe=Q||0;return ee?new Date(Date.UTC(Z,ae,q,ce,te,De,oe+60*ee.offset*1e3)):P?new Date(Date.UTC(Z,ae,q,ce,te,De,oe)):(ue=new Date(Z,ae,q,ce,te,De,oe),J&&(ue=F(ue).week(J).toDate()),ue)}catch{return new Date("")}}(_,L,T,v),this.init(),D&&D!==!0&&(this.$L=this.locale(D).$L),I&&_!=this.format(L)&&(this.$d=new Date("")),s={}}else if(L instanceof Array)for(var k=L.length,R=1;R<=k;R+=1){E[1]=L[R-1];var S=v.apply(this,E);if(S.isValid()){this.$d=S.$d,this.$L=S.$L,this.init();break}R===k&&(this.$d=new Date(""))}else b.call(this,w)}}})});var Hue=Ni((zI,GI)=>{"use strict";(function(t,e){typeof zI=="object"&&typeof GI<"u"?GI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(zI,function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}});return n.bind(this)(u)}}})});function she(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var que,ho,Xue,jue,Kue,Wue,Bc,HI,WI,YI,ux,hx,qI,XI,oE,Mg,jI,Que,KI,fx,QI,ZI,lE,$I,T$e,k$e,E$e,S$e,C$e,A$e,_$e,L$e,D$e,N$e,R$e,M$e,I$e,O$e,P$e,B$e,F$e,z$e,G$e,$$e,V$e,U$e,H$e,Zue,W$e,Y$e,q$e,Jue,X$e,VI,ehe,the,aE,Rg,j$e,K$e,UI,sE,Vi,rhe,Q$e,w0,Z$e,Yue,J$e,nhe,eVe,ihe,tVe,rVe,ahe,ohe=M(()=>{"use strict";que=ka(Fp(),1),ho=ka(Ab(),1),Xue=ka(Vue(),1),jue=ka(Uue(),1),Kue=ka(Hue(),1);ht();Vt();hr();ki();ho.default.extend(Xue.default);ho.default.extend(jue.default);ho.default.extend(Kue.default);Wue={friday:5,saturday:6},Bc="",HI="",YI="",ux=[],hx=[],qI=new Map,XI=[],oE=[],Mg="",jI="",Que=["active","done","crit","milestone"],KI=[],fx=!1,QI=!1,ZI="sunday",lE="saturday",$I=0,T$e=o(function(){XI=[],oE=[],Mg="",KI=[],aE=0,UI=void 0,sE=void 0,Vi=[],Bc="",HI="",jI="",WI=void 0,YI="",ux=[],hx=[],fx=!1,QI=!1,$I=0,qI=new Map,_r(),ZI="sunday",lE="saturday"},"clear"),k$e=o(function(t){HI=t},"setAxisFormat"),E$e=o(function(){return HI},"getAxisFormat"),S$e=o(function(t){WI=t},"setTickInterval"),C$e=o(function(){return WI},"getTickInterval"),A$e=o(function(t){YI=t},"setTodayMarker"),_$e=o(function(){return YI},"getTodayMarker"),L$e=o(function(t){Bc=t},"setDateFormat"),D$e=o(function(){fx=!0},"enableInclusiveEndDates"),N$e=o(function(){return fx},"endDatesAreInclusive"),R$e=o(function(){QI=!0},"enableTopAxis"),M$e=o(function(){return QI},"topAxisEnabled"),I$e=o(function(t){jI=t},"setDisplayMode"),O$e=o(function(){return jI},"getDisplayMode"),P$e=o(function(){return Bc},"getDateFormat"),B$e=o(function(t){ux=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),F$e=o(function(){return ux},"getIncludes"),z$e=o(function(t){hx=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),G$e=o(function(){return hx},"getExcludes"),$$e=o(function(){return qI},"getLinks"),V$e=o(function(t){Mg=t,XI.push(t)},"addSection"),U$e=o(function(){return XI},"getSections"),H$e=o(function(){let t=Yue(),e=10,r=0;for(;!t&&r[\d\w- ]+)/.exec(r);if(i!==null){let s=null;for(let u of i.groups.ids.split(" ")){let h=w0(u);h!==void 0&&(!s||h.endTime>s.endTime)&&(s=h)}if(s)return s.endTime;let l=new Date;return l.setHours(0,0,0,0),l}let a=(0,ho.default)(r,e.trim(),!0);if(a.isValid())return a.toDate();{Y.debug("Invalid date:"+r),Y.debug("With date format:"+e.trim());let s=new Date(r);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+r);return s}},"getStartDate"),ehe=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),the=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=w0(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),qI.set(n,r))}),nhe(t,"clickable")},"setLink"),nhe=o(function(t,e){t.split(",").forEach(function(r){let n=w0(r);n!==void 0&&n.classes.push(e)})},"setClass"),eVe=o(function(t,e,r){if(de().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Ut.runFunc(e,...n)})},"setClickFun"),ihe=o(function(t,e){KI.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),tVe=o(function(t,e,r){t.split(",").forEach(function(n){eVe(n,e,r)}),nhe(t,"clickable")},"setClickEvent"),rVe=o(function(t){KI.forEach(function(e){e(t)})},"bindFunctions"),ahe={getConfig:o(()=>de().gantt,"getConfig"),clear:T$e,setDateFormat:L$e,getDateFormat:P$e,enableInclusiveEndDates:D$e,endDatesAreInclusive:N$e,enableTopAxis:R$e,topAxisEnabled:M$e,setAxisFormat:k$e,getAxisFormat:E$e,setTickInterval:S$e,getTickInterval:C$e,setTodayMarker:A$e,getTodayMarker:_$e,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,setDisplayMode:I$e,getDisplayMode:O$e,setAccDescription:Br,getAccDescription:Fr,addSection:V$e,getSections:U$e,getTasks:H$e,addTask:Q$e,findTaskById:w0,addTaskOrg:Z$e,setIncludes:B$e,getIncludes:F$e,setExcludes:z$e,getExcludes:G$e,setClickEvent:tVe,setLink:J$e,getLinks:$$e,bindFunctions:rVe,parseDuration:ehe,isInvalidDate:Zue,setWeekday:W$e,getWeekday:Y$e,setWeekend:q$e};o(she,"getTaskTags")});var cE,nVe,lhe,iVe,Uu,aVe,che,uhe=M(()=>{"use strict";cE=ka(Ab(),1);ht();mr();fr();Vt();ni();nVe=o(function(){Y.debug("Something is calling, setConf, remove the call")},"setConf"),lhe={monday:Th,tuesday:b3,wednesday:w3,thursday:cc,friday:T3,saturday:k3,sunday:wl},iVe=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),aVe=o(function(t,e,r,n){let i=de().gantt,a=de().securityLevel,s;a==="sandbox"&&(s=ze("#i"+e));let l=a==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);Uu=h.parentElement.offsetWidth,Uu===void 0&&(Uu=1200),i.useWidth!==void 0&&(Uu=i.useWidth);let f=n.db.getTasks(),d=[];for(let C of f)d.push(C.type);d=L(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let C={};for(let I of f)C[I.section]===void 0?C[I.section]=[I]:C[I.section].push(I);let A=0;for(let I of Object.keys(C)){let D=iVe(C[I],A)+1;A+=D,m+=D*(i.barHeight+i.barGap),p[I]=D}}else{m+=f.length*(i.barHeight+i.barGap);for(let C of d)p[C]=f.filter(A=>A.type===C).length}h.setAttribute("viewBox","0 0 "+Uu+" "+m);let g=l.select(`[id="${e}"]`),y=C3().domain([N4(f,function(C){return C.startTime}),D4(f,function(C){return C.endTime})]).rangeRound([0,Uu-i.leftPadding-i.rightPadding]);function v(C,A){let I=C.startTime,D=A.startTime,k=0;return I>D?k=1:I$.order))].map($=>C.find(z=>z.order===$));g.append("g").selectAll("rect").data(N).enter().append("rect").attr("x",0).attr("y",function($,z){return z=$.order,z*A+I-2}).attr("width",function(){return S-i.rightPadding/2}).attr("height",A).attr("class",function($){for(let[z,W]of d.entries())if($.type===W)return"section section"+z%i.numberSectionStyles;return"section section0"});let P=g.append("g").selectAll("rect").data(C).enter(),F=n.db.getLinks();if(P.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+D+.5*(y($.endTime)-y($.startTime))-.5*k:y($.startTime)+D}).attr("y",function($,z){return z=$.order,z*A+I}).attr("width",function($){return $.milestone?k:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",k).attr("transform-origin",function($,z){return z=$.order,(y($.startTime)+D+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(z*A+I+.5*k).toString()+"px"}).attr("class",function($){let z="task",W="";$.classes.length>0&&(W=$.classes.join(" "));let j=0;for(let[ie,Q]of d.entries())$.type===Q&&(j=ie%i.numberSectionStyles);let K="";return $.active?$.crit?K+=" activeCrit":K=" active":$.done?$.crit?K=" doneCrit":K=" done":$.crit&&(K+=" crit"),K.length===0&&(K=" task"),$.milestone&&(K=" milestone "+K),K+=j,K+=" "+W,z+K}),P.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let z=y($.startTime),W=y($.renderEndTime||$.endTime);$.milestone&&(z+=.5*(y($.endTime)-y($.startTime))-.5*k),$.milestone&&(W=z+k);let j=this.getBBox().width;return j>W-z?W+j+1.5*i.leftPadding>S?z+D-5:W+D+5:(W-z)/2+z+D}).attr("y",function($,z){return z=$.order,z*A+i.barHeight/2+(i.fontSize/2-2)+I}).attr("text-height",k).attr("class",function($){let z=y($.startTime),W=y($.endTime);$.milestone&&(W=z+k);let j=this.getBBox().width,K="";$.classes.length>0&&(K=$.classes.join(" "));let ie=0;for(let[ee,J]of d.entries())$.type===J&&(ie=ee%i.numberSectionStyles);let Q="";return $.active&&($.crit?Q="activeCritText"+ie:Q="activeText"+ie),$.done?$.crit?Q=Q+" doneCritText"+ie:Q=Q+" doneText"+ie:$.crit&&(Q=Q+" critText"+ie),$.milestone&&(Q+=" milestoneText"),j>W-z?W+j+1.5*i.leftPadding>S?K+" taskTextOutsideLeft taskTextOutside"+ie+" "+Q:K+" taskTextOutsideRight taskTextOutside"+ie+" "+Q+" width-"+j:K+" taskText taskText"+ie+" "+Q+" width-"+j}),de().securityLevel==="sandbox"){let $;$=ze("#i"+e);let z=$.nodes()[0].contentDocument;P.filter(function(W){return F.has(W.id)}).each(function(W){var j=z.querySelector("#"+W.id),K=z.querySelector("#"+W.id+"-text");let ie=j.parentNode;var Q=z.createElement("a");Q.setAttribute("xlink:href",F.get(W.id)),Q.setAttribute("target","_top"),ie.appendChild(Q),Q.appendChild(j),Q.appendChild(K)})}}o(b,"drawRects");function w(C,A,I,D,k,R,S,O){if(S.length===0&&O.length===0)return;let N,P;for(let{startTime:j,endTime:K}of R)(N===void 0||jP)&&(P=K);if(!N||!P)return;if((0,cE.default)(P).diff((0,cE.default)(N),"year")>5){Y.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),B=[],$=null,z=(0,cE.default)(N);for(;z.valueOf()<=P;)n.db.isInvalidDate(z,F,S,O)?$?$.end=z:$={start:z,end:z}:$&&(B.push($),$=null),z=z.add(1,"d");g.append("g").selectAll("rect").data(B).enter().append("rect").attr("id",function(j){return"exclude-"+j.start.format("YYYY-MM-DD")}).attr("x",function(j){return y(j.start)+I}).attr("y",i.gridLineStartPadding).attr("width",function(j){let K=j.end.add(1,"day");return y(K)-y(j.start)}).attr("height",k-A-i.gridLineStartPadding).attr("transform-origin",function(j,K){return(y(j.start)+I+.5*(y(j.end)-y(j.start))).toString()+"px "+(K*C+.5*k).toString()+"px"}).attr("class","exclude-range")}o(w,"drawExcludeDays");function _(C,A,I,D){let k=v7(y).tickSize(-D+A+i.gridLineStartPadding).tickFormat(dd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d")),S=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(S!==null){let O=S[1],N=S[2],P=n.db.getWeekday()||i.weekday;switch(N){case"millisecond":k.ticks(oc.every(O));break;case"second":k.ticks(Xs.every(O));break;case"minute":k.ticks(mu.every(O));break;case"hour":k.ticks(gu.every(O));break;case"day":k.ticks(Lo.every(O));break;case"week":k.ticks(lhe[P].every(O));break;case"month":k.ticks(yu.every(O));break}}if(g.append("g").attr("class","grid").attr("transform","translate("+C+", "+(D-50)+")").call(k).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let O=y7(y).tickSize(-D+A+i.gridLineStartPadding).tickFormat(dd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(S!==null){let N=S[1],P=S[2],F=n.db.getWeekday()||i.weekday;switch(P){case"millisecond":O.ticks(oc.every(N));break;case"second":O.ticks(Xs.every(N));break;case"minute":O.ticks(mu.every(N));break;case"hour":O.ticks(gu.every(N));break;case"day":O.ticks(Lo.every(N));break;case"week":O.ticks(lhe[F].every(N));break;case"month":O.ticks(yu.every(N));break}}g.append("g").attr("class","grid").attr("transform","translate("+C+", "+A+")").call(O).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(_,"makeGrid");function T(C,A){let I=0,D=Object.keys(p).map(k=>[k,p[k]]);g.append("g").selectAll("text").data(D).enter().append(function(k){let R=k[0].split(je.lineBreakRegex),S=-(R.length-1)/2,O=u.createElementNS("http://www.w3.org/2000/svg","text");O.setAttribute("dy",S+"em");for(let[N,P]of R.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),N>0&&F.setAttribute("dy","1em"),F.textContent=P,O.appendChild(F)}return O}).attr("x",10).attr("y",function(k,R){if(R>0)for(let S=0;S{"use strict";sVe=o(t=>` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,"getStyles"),hhe=sVe});var dhe={};vr(dhe,{diagram:()=>oVe});var oVe,phe=M(()=>{"use strict";$ue();ohe();uhe();fhe();oVe={parser:Gue,db:ahe,renderer:che,styles:hhe}});var yhe,vhe=M(()=>{"use strict";Ng();ht();yhe={parse:o(async t=>{let e=await Gl("info",t);Y.debug(e)},"parse")}});var dx,JI=M(()=>{dx="11.4.1"});var fVe,dVe,xhe,bhe=M(()=>{"use strict";JI();fVe={version:dx},dVe=o(()=>fVe.version,"getVersion"),xhe={getVersion:dVe}});var Oa,Hu=M(()=>{"use strict";mr();Vt();Oa=o(t=>{let{securityLevel:e}=de(),r=ze("body");if(e==="sandbox"){let a=ze(`#i${t}`).node()?.contentDocument??document;r=ze(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var pVe,whe,The=M(()=>{"use strict";ht();Hu();ni();pVe=o((t,e,r)=>{Y.debug(`rendering info diagram +`+t);let n=Oa(e);Zr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),whe={draw:pVe}});var khe={};vr(khe,{diagram:()=>mVe});var mVe,Ehe=M(()=>{"use strict";vhe();bhe();The();mVe={parser:yhe,db:xhe,renderer:whe}});var Ahe,eO,uE,tO,vVe,xVe,bVe,wVe,TVe,kVe,EVe,hE,rO=M(()=>{"use strict";ht();ki();hs();Ahe=ur.pie,eO={sections:new Map,showData:!1,config:Ahe},uE=eO.sections,tO=eO.showData,vVe=structuredClone(Ahe),xVe=o(()=>structuredClone(vVe),"getConfig"),bVe=o(()=>{uE=new Map,tO=eO.showData,_r()},"clear"),wVe=o(({label:t,value:e})=>{uE.has(t)||(uE.set(t,e),Y.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),TVe=o(()=>uE,"getSections"),kVe=o(t=>{tO=t},"setShowData"),EVe=o(()=>tO,"getShowData"),hE={getConfig:xVe,clear:bVe,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addSection:wVe,getSections:TVe,setShowData:kVe,getShowData:EVe}});var SVe,_he,Lhe=M(()=>{"use strict";Ng();ht();ox();rO();SVe=o((t,e)=>{lf(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),_he={parse:o(async t=>{let e=await Gl("pie",t);Y.debug(e),SVe(e,hE)},"parse")}});var CVe,Dhe,Nhe=M(()=>{"use strict";CVe=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),Dhe=CVe});var AVe,_Ve,Rhe,Mhe=M(()=>{"use strict";mr();Vt();ht();Hu();ni();hr();AVe=o(t=>{let e=[...t.entries()].map(n=>({label:n[0],value:n[1]})).sort((n,i)=>i.value-n.value);return R3().value(n=>n.value)(e)},"createPieArcs"),_Ve=o((t,e,r,n)=>{Y.debug(`rendering pie chart +`+t);let i=n.db,a=de(),s=ws(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Oa(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Fo(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=El().innerRadius(0).outerRadius(x),w=El().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let _=i.getSections(),T=AVe(_),E=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],L=du(E);m.selectAll("mySlices").data(T).enter().append("path").attr("d",b).attr("fill",k=>L(k.data.label)).attr("class","pieCircle");let C=0;_.forEach(k=>{C+=k}),m.selectAll("mySlices").data(T).enter().append("text").text(k=>(k.data.value/C*100).toFixed(0)+"%").attr("transform",k=>"translate("+w.centroid(k)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let A=m.selectAll(".legend").data(L.domain()).enter().append("g").attr("class","legend").attr("transform",(k,R)=>{let S=u+h,O=S*L.domain().length/2,N=12*u,P=R*S-O;return"translate("+N+","+P+")"});A.append("rect").attr("width",u).attr("height",u).style("fill",L).style("stroke",L),A.data(T).append("text").attr("x",u+h).attr("y",u-h).text(k=>{let{label:R,value:S}=k.data;return i.getShowData()?`${R} [${S}]`:R});let I=Math.max(...A.selectAll("text").nodes().map(k=>k?.getBoundingClientRect().width??0)),D=d+l+u+h+I;p.attr("viewBox",`0 0 ${D} ${f}`),Zr(p,f,D,s.useMaxWidth)},"draw"),Rhe={draw:_Ve}});var Ihe={};vr(Ihe,{diagram:()=>LVe});var LVe,Ohe=M(()=>{"use strict";Lhe();rO();Nhe();Mhe();LVe={parser:_he,db:hE,renderer:Rhe,styles:Dhe}});var nO,Fhe,zhe=M(()=>{"use strict";nO=function(){var t=o(function(Te,se,Ee,Ae){for(Ee=Ee||{},Ae=Te.length;Ae--;Ee[Te[Ae]]=se);return Ee},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],w=[1,19],_=[1,20],T=[1,21],E=[1,22],L=[1,24],C=[1,25],A=[1,26],I=[1,27],D=[1,28],k=[1,29],R=[1,32],S=[1,33],O=[1,34],N=[1,39],P=[1,40],F=[1,42],B=[1,44],$=[1,62],z=[1,61],W=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],j=[1,65],K=[1,66],ie=[1,67],Q=[1,68],ee=[1,69],J=[1,70],H=[1,71],q=[1,72],Z=[1,73],ae=[1,74],ue=[1,75],ce=[1,76],te=[4,5,6,7,8,9,10,11,12,13,14,15,18],De=[1,90],oe=[1,91],ke=[1,92],Fe=[1,99],Be=[1,93],Ve=[1,96],Ge=[1,94],He=[1,95],xe=[1,97],X=[1,98],fe=[1,102],he=[10,55,56,57],ge=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],ne={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(se,Ee,Ae,Pe,Me,me,We){var Re=me.length-1;switch(Me){case 23:this.$=me[Re];break;case 24:this.$=me[Re-1]+""+me[Re];break;case 26:this.$=me[Re-1]+me[Re];break;case 27:this.$=[me[Re].trim()];break;case 28:me[Re-2].push(me[Re].trim()),this.$=me[Re-2];break;case 29:this.$=me[Re-4],Pe.addClass(me[Re-2],me[Re]);break;case 37:this.$=[];break;case 42:this.$=me[Re].trim(),Pe.setDiagramTitle(this.$);break;case 43:this.$=me[Re].trim(),Pe.setAccTitle(this.$);break;case 44:case 45:this.$=me[Re].trim(),Pe.setAccDescription(this.$);break;case 46:Pe.addSection(me[Re].substr(8)),this.$=me[Re].substr(8);break;case 47:Pe.addPoint(me[Re-3],"",me[Re-1],me[Re],[]);break;case 48:Pe.addPoint(me[Re-4],me[Re-3],me[Re-1],me[Re],[]);break;case 49:Pe.addPoint(me[Re-4],"",me[Re-2],me[Re-1],me[Re]);break;case 50:Pe.addPoint(me[Re-5],me[Re-4],me[Re-2],me[Re-1],me[Re]);break;case 51:Pe.setXAxisLeftText(me[Re-2]),Pe.setXAxisRightText(me[Re]);break;case 52:me[Re-1].text+=" \u27F6 ",Pe.setXAxisLeftText(me[Re-1]);break;case 53:Pe.setXAxisLeftText(me[Re]);break;case 54:Pe.setYAxisBottomText(me[Re-2]),Pe.setYAxisTopText(me[Re]);break;case 55:me[Re-1].text+=" \u27F6 ",Pe.setYAxisBottomText(me[Re-1]);break;case 56:Pe.setYAxisBottomText(me[Re]);break;case 57:Pe.setQuadrant1Text(me[Re]);break;case 58:Pe.setQuadrant2Text(me[Re]);break;case 59:Pe.setQuadrant3Text(me[Re]);break;case 60:Pe.setQuadrant4Text(me[Re]);break;case 64:this.$={text:me[Re],type:"text"};break;case 65:this.$={text:me[Re-1].text+""+me[Re],type:me[Re-1].type};break;case 66:this.$={text:me[Re],type:"text"};break;case 67:this.$={text:me[Re],type:"markdown"};break;case 68:this.$=me[Re];break;case 69:this.$=me[Re-1]+""+me[Re];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:_,41:T,42:E,48:L,50:C,51:A,52:I,53:D,54:k,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:_,41:T,42:E,48:L,50:C,51:A,52:I,53:D,54:k,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,44:[1,57],47:[1,58],58:60,59:59,63:O,64:N,65:P,66:F,67:B},t(W,[2,64]),t(W,[2,66]),t(W,[2,67]),t(W,[2,70]),t(W,[2,71]),t(W,[2,72]),t(W,[2,73]),t(W,[2,74]),t(W,[2,75]),t(W,[2,76]),t(W,[2,77]),t(W,[2,78]),t(W,[2,79]),t(W,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:j,5:K,6:ie,7:Q,8:ee,9:J,10:H,11:q,12:Z,13:ae,14:ue,15:ce,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,77],63:O,64:N,65:P,66:F,67:B}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,78],63:O,64:N,65:P,66:F,67:B}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),{45:[1,79]},{44:[1,80]},t(W,[2,65]),t(W,[2,81]),t(W,[2,82]),t(W,[2,83]),{3:82,4:j,5:K,6:ie,7:Q,8:ee,9:J,10:H,11:q,12:Z,13:ae,14:ue,15:ce,18:[1,81]},t(te,[2,23]),t(te,[2,1]),t(te,[2,2]),t(te,[2,3]),t(te,[2,4]),t(te,[2,5]),t(te,[2,6]),t(te,[2,7]),t(te,[2,8]),t(te,[2,9]),t(te,[2,10]),t(te,[2,11]),t(te,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),{46:[1,85]},{45:[1,86]},{4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,16:89,17:Ge,18:He,19:xe,20:X,22:88,23:87},t(te,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,47],{22:88,16:89,23:100,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),{46:[1,101]},t(u,[2,29],{10:fe}),t(he,[2,27],{16:103,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),t(ge,[2,25]),t(ge,[2,13]),t(ge,[2,14]),t(ge,[2,15]),t(ge,[2,16]),t(ge,[2,17]),t(ge,[2,18]),t(ge,[2,19]),t(ge,[2,20]),t(ge,[2,21]),t(ge,[2,22]),t(u,[2,49],{10:fe}),t(u,[2,48],{22:88,16:89,23:104,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),{4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,16:89,17:Ge,18:He,19:xe,20:X,22:105},t(ge,[2,26]),t(u,[2,50],{10:fe}),t(he,[2,28],{16:103,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(se,Ee){if(Ee.recoverable)this.trace(se);else{var Ae=new Error(se);throw Ae.hash=Ee,Ae}},"parseError"),parse:o(function(se){var Ee=this,Ae=[0],Pe=[],Me=[null],me=[],We=this.table,Re="",tt=0,gt=0,Et=0,vt=2,Ye=1,Tt=me.slice.call(arguments,1),$e=Object.create(this.lexer),rt={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&(rt.yy[ft]=this.yy[ft]);$e.setInput(se,rt.yy),rt.yy.lexer=$e,rt.yy.parser=this,typeof $e.yylloc>"u"&&($e.yylloc={});var kt=$e.yylloc;me.push(kt);var er=$e.options&&$e.options.ranges;typeof rt.yy.parseError=="function"?this.parseError=rt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(Se){Ae.length=Ae.length-2*Se,Me.length=Me.length-Se,me.length=me.length-Se}o(dt,"popStack");function Xe(){var Se;return Se=Pe.pop()||$e.lex()||Ye,typeof Se!="number"&&(Se instanceof Array&&(Pe=Se,Se=Pe.pop()),Se=Ee.symbols_[Se]||Se),Se}o(Xe,"lex");for(var ct,Lt,Rt,zt,Xn,or,hn={},Tn,Ur,ri,Mn;;){if(Rt=Ae[Ae.length-1],this.defaultActions[Rt]?zt=this.defaultActions[Rt]:((ct===null||typeof ct>"u")&&(ct=Xe()),zt=We[Rt]&&We[Rt][ct]),typeof zt>"u"||!zt.length||!zt[0]){var yt="";Mn=[];for(Tn in We[Rt])this.terminals_[Tn]&&Tn>vt&&Mn.push("'"+this.terminals_[Tn]+"'");$e.showPosition?yt="Parse error on line "+(tt+1)+`: +`+$e.showPosition()+` +Expecting `+Mn.join(", ")+", got '"+(this.terminals_[ct]||ct)+"'":yt="Parse error on line "+(tt+1)+": Unexpected "+(ct==Ye?"end of input":"'"+(this.terminals_[ct]||ct)+"'"),this.parseError(yt,{text:$e.match,token:this.terminals_[ct]||ct,line:$e.yylineno,loc:kt,expected:Mn})}if(zt[0]instanceof Array&&zt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Rt+", token: "+ct);switch(zt[0]){case 1:Ae.push(ct),Me.push($e.yytext),me.push($e.yylloc),Ae.push(zt[1]),ct=null,Lt?(ct=Lt,Lt=null):(gt=$e.yyleng,Re=$e.yytext,tt=$e.yylineno,kt=$e.yylloc,Et>0&&Et--);break;case 2:if(Ur=this.productions_[zt[1]][1],hn.$=Me[Me.length-Ur],hn._$={first_line:me[me.length-(Ur||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(Ur||1)].first_column,last_column:me[me.length-1].last_column},er&&(hn._$.range=[me[me.length-(Ur||1)].range[0],me[me.length-1].range[1]]),or=this.performAction.apply(hn,[Re,gt,tt,rt.yy,zt[1],Me,me].concat(Tt)),typeof or<"u")return or;Ur&&(Ae=Ae.slice(0,-1*Ur*2),Me=Me.slice(0,-1*Ur),me=me.slice(0,-1*Ur)),Ae.push(this.productions_[zt[1]][0]),Me.push(hn.$),me.push(hn._$),ri=We[Ae[Ae.length-2]][Ae[Ae.length-1]],Ae.push(ri);break;case 3:return!0}}return!0},"parse")},ye=function(){var Te={EOF:1,parseError:o(function(Ee,Ae){if(this.yy.parser)this.yy.parser.parseError(Ee,Ae);else throw new Error(Ee)},"parseError"),setInput:o(function(se,Ee){return this.yy=Ee||this.yy||{},this._input=se,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var se=this._input[0];this.yytext+=se,this.yyleng++,this.offset++,this.match+=se,this.matched+=se;var Ee=se.match(/(?:\r\n?|\n).*/g);return Ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),se},"input"),unput:o(function(se){var Ee=se.length,Ae=se.split(/(?:\r\n?|\n)/g);this._input=se+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ee),this.offset-=Ee;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ae.length-1&&(this.yylineno-=Ae.length-1);var Me=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ae?(Ae.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-Ae.length].length-Ae[0].length:this.yylloc.first_column-Ee},this.options.ranges&&(this.yylloc.range=[Me[0],Me[0]+this.yyleng-Ee]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(se){this.unput(this.match.slice(se))},"less"),pastInput:o(function(){var se=this.matched.substr(0,this.matched.length-this.match.length);return(se.length>20?"...":"")+se.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var se=this.match;return se.length<20&&(se+=this._input.substr(0,20-se.length)),(se.substr(0,20)+(se.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var se=this.pastInput(),Ee=new Array(se.length+1).join("-");return se+this.upcomingInput()+` +`+Ee+"^"},"showPosition"),test_match:o(function(se,Ee){var Ae,Pe,Me;if(this.options.backtrack_lexer&&(Me={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Me.yylloc.range=this.yylloc.range.slice(0))),Pe=se[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+se[0].length},this.yytext+=se[0],this.match+=se[0],this.matches=se,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(se[0].length),this.matched+=se[0],Ae=this.performAction.call(this,this.yy,this,Ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ae)return Ae;if(this._backtrack){for(var me in Me)this[me]=Me[me];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var se,Ee,Ae,Pe;this._more||(this.yytext="",this.match="");for(var Me=this._currentRules(),me=0;meEe[0].length)){if(Ee=Ae,Pe=me,this.options.backtrack_lexer){if(se=this.test_match(Ae,Me[me]),se!==!1)return se;if(this._backtrack){Ee=!1;continue}else return!1}else if(!this.options.flex)break}return Ee?(se=this.test_match(Ee,Me[Pe]),se!==!1?se:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ee=this.next();return Ee||this.lex()},"lex"),begin:o(function(Ee){this.conditionStack.push(Ee)},"begin"),popState:o(function(){var Ee=this.conditionStack.length-1;return Ee>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ee){return Ee=this.conditionStack.length-1-Math.abs(Ee||0),Ee>=0?this.conditionStack[Ee]:"INITIAL"},"topState"),pushState:o(function(Ee){this.begin(Ee)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ee,Ae,Pe,Me){var me=Me;switch(Pe){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return Te}();ne.lexer=ye;function U(){this.yy={}}return o(U,"Parser"),U.prototype=ne,ne.Parser=U,new U}();nO.parser=nO;Fhe=nO});var os,fE,Ghe=M(()=>{"use strict";mr();hs();ht();Ub();os=sp(),fE=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:ur.quadrantChart?.chartWidth||500,chartWidth:ur.quadrantChart?.chartHeight||500,titlePadding:ur.quadrantChart?.titlePadding||10,titleFontSize:ur.quadrantChart?.titleFontSize||20,quadrantPadding:ur.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:ur.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:ur.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:ur.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:ur.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:ur.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:ur.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:ur.quadrantChart?.pointTextPadding||5,pointLabelFontSize:ur.quadrantChart?.pointLabelFontSize||12,pointRadius:ur.quadrantChart?.pointRadius||5,xAxisPosition:ur.quadrantChart?.xAxisPosition||"top",yAxisPosition:ur.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:ur.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:ur.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:os.quadrant1Fill,quadrant2Fill:os.quadrant2Fill,quadrant3Fill:os.quadrant3Fill,quadrant4Fill:os.quadrant4Fill,quadrant1TextFill:os.quadrant1TextFill,quadrant2TextFill:os.quadrant2TextFill,quadrant3TextFill:os.quadrant3TextFill,quadrant4TextFill:os.quadrant4TextFill,quadrantPointFill:os.quadrantPointFill,quadrantPointTextFill:os.quadrantPointTextFill,quadrantXAxisTextFill:os.quadrantXAxisTextFill,quadrantYAxisTextFill:os.quadrantYAxisTextFill,quadrantTitleFill:os.quadrantTitleFill,quadrantInternalBorderStrokeFill:os.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:os.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,Y.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){Y.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){Y.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=bl().domain([0,1]).range([i,s+i]),u=bl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function iO(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function $he(t){return!/^\d+$/.test(t)}function Vhe(t){return!/^\d+px$/.test(t)}var T0,Uhe=M(()=>{"use strict";T0=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(iO,"validateHexCode");o($he,"validateNumber");o(Vhe,"validateSizeInPixels")});function Wu(t){return Tr(t.trim(),RVe)}function MVe(t){ya.setData({quadrant1Text:Wu(t.text)})}function IVe(t){ya.setData({quadrant2Text:Wu(t.text)})}function OVe(t){ya.setData({quadrant3Text:Wu(t.text)})}function PVe(t){ya.setData({quadrant4Text:Wu(t.text)})}function BVe(t){ya.setData({xAxisLeftText:Wu(t.text)})}function FVe(t){ya.setData({xAxisRightText:Wu(t.text)})}function zVe(t){ya.setData({yAxisTopText:Wu(t.text)})}function GVe(t){ya.setData({yAxisBottomText:Wu(t.text)})}function aO(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if($he(i))throw new T0(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(iO(i))throw new T0(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(iO(i))throw new T0(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(Vhe(i))throw new T0(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function $Ve(t,e,r,n,i){let a=aO(i);ya.addPoints([{x:r,y:n,text:Wu(t.text),className:e,...a}])}function VVe(t,e){ya.addClass(t,aO(e))}function UVe(t){ya.setConfig({chartWidth:t})}function HVe(t){ya.setConfig({chartHeight:t})}function WVe(){let t=de(),{themeVariables:e,quadrantChart:r}=t;return r&&ya.setConfig(r),ya.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),ya.setData({titleText:Jr()}),ya.build()}var RVe,ya,YVe,Hhe,Whe=M(()=>{"use strict";Vt();fr();ki();Ghe();Uhe();RVe=de();o(Wu,"textSanitizer");ya=new fE;o(MVe,"setQuadrant1Text");o(IVe,"setQuadrant2Text");o(OVe,"setQuadrant3Text");o(PVe,"setQuadrant4Text");o(BVe,"setXAxisLeftText");o(FVe,"setXAxisRightText");o(zVe,"setYAxisTopText");o(GVe,"setYAxisBottomText");o(aO,"parseStyles");o($Ve,"addPoint");o(VVe,"addClass");o(UVe,"setWidth");o(HVe,"setHeight");o(WVe,"getQuadrantData");YVe=o(function(){ya.clear(),_r()},"clear"),Hhe={setWidth:UVe,setHeight:HVe,setQuadrant1Text:MVe,setQuadrant2Text:IVe,setQuadrant3Text:OVe,setQuadrant4Text:PVe,setXAxisLeftText:BVe,setXAxisRightText:FVe,setYAxisTopText:zVe,setYAxisBottomText:GVe,parseStyles:aO,addPoint:$Ve,addClass:VVe,getQuadrantData:WVe,clear:YVe,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br}});var qVe,Yhe,qhe=M(()=>{"use strict";mr();Vt();ht();ni();qVe=o((t,e,r,n)=>{function i(C){return C==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(C){return C==="left"?"start":"middle"}o(a,"getTextAnchor");function s(C){return`translate(${C.x}, ${C.y}) rotate(${C.rotation||0})`}o(s,"getTransformation");let l=de();Y.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=ze("#i"+e));let d=(u==="sandbox"?ze(h.nodes()[0].contentDocument.body):ze("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Zr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),w=p.append("g").attr("class","labels"),_=p.append("g").attr("class","title");y.title&&_.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",C=>C.x1).attr("y1",C=>C.y1).attr("x2",C=>C.x2).attr("y2",C=>C.y2).style("stroke",C=>C.strokeFill).style("stroke-width",C=>C.strokeWidth);let T=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",C=>C.x).attr("y",C=>C.y).attr("width",C=>C.width).attr("height",C=>C.height).attr("fill",C=>C.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",C=>C.text.fill).attr("font-size",C=>C.text.fontSize).attr("dominant-baseline",C=>i(C.text.horizontalPos)).attr("text-anchor",C=>a(C.text.verticalPos)).attr("transform",C=>s(C.text)).text(C=>C.text.text),w.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(C=>C.text).attr("fill",C=>C.fill).attr("font-size",C=>C.fontSize).attr("dominant-baseline",C=>i(C.horizontalPos)).attr("text-anchor",C=>a(C.verticalPos)).attr("transform",C=>s(C));let L=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");L.append("circle").attr("cx",C=>C.x).attr("cy",C=>C.y).attr("r",C=>C.radius).attr("fill",C=>C.fill).attr("stroke",C=>C.strokeColor).attr("stroke-width",C=>C.strokeWidth),L.append("text").attr("x",0).attr("y",0).text(C=>C.text.text).attr("fill",C=>C.text.fill).attr("font-size",C=>C.text.fontSize).attr("dominant-baseline",C=>i(C.text.horizontalPos)).attr("text-anchor",C=>a(C.text.verticalPos)).attr("transform",C=>s(C.text))},"draw"),Yhe={draw:qVe}});var Xhe={};vr(Xhe,{diagram:()=>XVe});var XVe,jhe=M(()=>{"use strict";zhe();Whe();qhe();XVe={parser:Fhe,db:Hhe,renderer:Yhe,styles:o(()=>"","styles")}});var sO,Zhe,Jhe=M(()=>{"use strict";sO=function(){var t=o(function(O,N,P,F){for(P=P||{},F=O.length;F--;P[O[F]]=N);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],_=[1,43],T=[1,42],E=[1,47],L=[1,50],C=[1,10,12,14,16,18,19,21,23,34,35,36],A=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],D=[1,64],k={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(N,P,F,B,$,z,W){var j=z.length-1;switch($){case 5:B.setOrientation(z[j]);break;case 9:B.setDiagramTitle(z[j].text.trim());break;case 12:B.setLineData({text:"",type:"text"},z[j]);break;case 13:B.setLineData(z[j-1],z[j]);break;case 14:B.setBarData({text:"",type:"text"},z[j]);break;case 15:B.setBarData(z[j-1],z[j]);break;case 16:this.$=z[j].trim(),B.setAccTitle(this.$);break;case 17:case 18:this.$=z[j].trim(),B.setAccDescription(this.$);break;case 19:this.$=z[j-1];break;case 20:this.$=[Number(z[j-2]),...z[j]];break;case 21:this.$=[Number(z[j])];break;case 22:B.setXAxisTitle(z[j]);break;case 23:B.setXAxisTitle(z[j-1]);break;case 24:B.setXAxisTitle({type:"text",text:""});break;case 25:B.setXAxisBand(z[j]);break;case 26:B.setXAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 27:this.$=z[j-1];break;case 28:this.$=[z[j-2],...z[j]];break;case 29:this.$=[z[j]];break;case 30:B.setYAxisTitle(z[j]);break;case 31:B.setYAxisTitle(z[j-1]);break;case 32:B.setYAxisTitle({type:"text",text:""});break;case 33:B.setYAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 37:this.$={text:z[j],type:"text"};break;case 38:this.$={text:z[j],type:"text"};break;case 39:this.$={text:z[j],type:"markdown"};break;case 40:this.$=z[j];break;case 41:this.$=z[j-1]+""+z[j];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:39,13:38,24:_,27:T,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:45,15:44,27:E,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:49,17:48,24:L,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:52,17:51,24:L,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{20:[1,53]},{22:[1,54]},t(C,[2,18]),{1:[2,2]},t(C,[2,8]),t(C,[2,9]),t(A,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w}),t(A,[2,38]),t(A,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(C,[2,10]),t(C,[2,22],{30:41,29:56,24:_,27:T}),t(C,[2,24]),t(C,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(C,[2,11]),t(C,[2,30],{33:60,27:E}),t(C,[2,32]),{31:[1,61]},t(C,[2,12]),{17:62,24:L},{25:63,27:D},t(C,[2,14]),{17:65,24:L},t(C,[2,16]),t(C,[2,17]),t(I,[2,41]),t(C,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(C,[2,31]),{27:[1,69]},t(C,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(C,[2,15]),t(C,[2,26]),t(C,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(C,[2,33]),t(C,[2,19]),{25:73,27:D},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(N,P){if(P.recoverable)this.trace(N);else{var F=new Error(N);throw F.hash=P,F}},"parseError"),parse:o(function(N){var P=this,F=[0],B=[],$=[null],z=[],W=this.table,j="",K=0,ie=0,Q=0,ee=2,J=1,H=z.slice.call(arguments,1),q=Object.create(this.lexer),Z={yy:{}};for(var ae in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ae)&&(Z.yy[ae]=this.yy[ae]);q.setInput(N,Z.yy),Z.yy.lexer=q,Z.yy.parser=this,typeof q.yylloc>"u"&&(q.yylloc={});var ue=q.yylloc;z.push(ue);var ce=q.options&&q.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function te(ne){F.length=F.length-2*ne,$.length=$.length-ne,z.length=z.length-ne}o(te,"popStack");function De(){var ne;return ne=B.pop()||q.lex()||J,typeof ne!="number"&&(ne instanceof Array&&(B=ne,ne=B.pop()),ne=P.symbols_[ne]||ne),ne}o(De,"lex");for(var oe,ke,Fe,Be,Ve,Ge,He={},xe,X,fe,he;;){if(Fe=F[F.length-1],this.defaultActions[Fe]?Be=this.defaultActions[Fe]:((oe===null||typeof oe>"u")&&(oe=De()),Be=W[Fe]&&W[Fe][oe]),typeof Be>"u"||!Be.length||!Be[0]){var ge="";he=[];for(xe in W[Fe])this.terminals_[xe]&&xe>ee&&he.push("'"+this.terminals_[xe]+"'");q.showPosition?ge="Parse error on line "+(K+1)+`: +`+q.showPosition()+` +Expecting `+he.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":ge="Parse error on line "+(K+1)+": Unexpected "+(oe==J?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(ge,{text:q.match,token:this.terminals_[oe]||oe,line:q.yylineno,loc:ue,expected:he})}if(Be[0]instanceof Array&&Be.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Fe+", token: "+oe);switch(Be[0]){case 1:F.push(oe),$.push(q.yytext),z.push(q.yylloc),F.push(Be[1]),oe=null,ke?(oe=ke,ke=null):(ie=q.yyleng,j=q.yytext,K=q.yylineno,ue=q.yylloc,Q>0&&Q--);break;case 2:if(X=this.productions_[Be[1]][1],He.$=$[$.length-X],He._$={first_line:z[z.length-(X||1)].first_line,last_line:z[z.length-1].last_line,first_column:z[z.length-(X||1)].first_column,last_column:z[z.length-1].last_column},ce&&(He._$.range=[z[z.length-(X||1)].range[0],z[z.length-1].range[1]]),Ge=this.performAction.apply(He,[j,ie,K,Z.yy,Be[1],$,z].concat(H)),typeof Ge<"u")return Ge;X&&(F=F.slice(0,-1*X*2),$=$.slice(0,-1*X),z=z.slice(0,-1*X)),F.push(this.productions_[Be[1]][0]),$.push(He.$),z.push(He._$),fe=W[F[F.length-2]][F[F.length-1]],F.push(fe);break;case 3:return!0}}return!0},"parse")},R=function(){var O={EOF:1,parseError:o(function(P,F){if(this.yy.parser)this.yy.parser.parseError(P,F);else throw new Error(P)},"parseError"),setInput:o(function(N,P){return this.yy=P||this.yy||{},this._input=N,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var P=N.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},"input"),unput:o(function(N){var P=N.length,F=N.split(/(?:\r\n?|\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),F.length-1&&(this.yylineno-=F.length-1);var $=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:F?(F.length===B.length?this.yylloc.first_column:0)+B[B.length-F.length].length-F[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[$[0],$[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(N){this.unput(this.match.slice(N))},"less"),pastInput:o(function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?"...":"")+N.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var N=this.match;return N.length<20&&(N+=this._input.substr(0,20-N.length)),(N.substr(0,20)+(N.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var N=this.pastInput(),P=new Array(N.length+1).join("-");return N+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(N,P){var F,B,$;if(this.options.backtrack_lexer&&($={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($.yylloc.range=this.yylloc.range.slice(0))),B=N[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],F=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var z in $)this[z]=$[z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,P,F,B;this._more||(this.yytext="",this.match="");for(var $=this._currentRules(),z=0;z<$.length;z++)if(F=this._input.match(this.rules[$[z]]),F&&(!P||F[0].length>P[0].length)){if(P=F,B=z,this.options.backtrack_lexer){if(N=this.test_match(F,$[z]),N!==!1)return N;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(N=this.test_match(P,$[B]),N!==!1?N:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,F,B,$){var z=$;switch(B){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";break;case 17:return this.pushState("axis_data"),"Y_AXIS";break;case 18:return this.pushState("axis_band_data"),24;break;case 19:return 31;case 20:return this.pushState("data"),16;break;case 21:return this.pushState("data"),18;break;case 22:return this.pushState("data_inner"),24;break;case 23:return 27;case 24:return this.popState(),26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return O}();k.lexer=R;function S(){this.yy={}}return o(S,"Parser"),S.prototype=k,k.Parser=S,new S}();sO.parser=sO;Zhe=sO});function oO(t){return t.type==="bar"}function dE(t){return t.type==="band"}function Ig(t){return t.type==="linear"}var pE=M(()=>{"use strict";o(oO,"isBarPlot");o(dE,"isBandAxisData");o(Ig,"isLinearAxisData")});var Og,lO=M(()=>{"use strict";Dl();Og=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=gj(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var Pg,cO=M(()=>{"use strict";Pg=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var mE,efe=M(()=>{"use strict";mr();ht();cO();mE=class extends Pg{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=Lp().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Lp().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Y.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var gE,tfe=M(()=>{"use strict";mr();cO();gE=class extends Pg{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=bl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=bl().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function uO(t,e,r,n){let i=new Og(n);return dE(t)?new mE(e,r,t.categories,t.title,i):new gE(e,r,[t.min,t.max],t.title,i)}var rfe=M(()=>{"use strict";pE();lO();efe();tfe();o(uO,"getAxis")});function nfe(t,e,r,n){let i=new Og(n);return new hO(i,t,e,r)}var hO,ife=M(()=>{"use strict";lO();hO=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(nfe,"getChartTitleComponent")});var yE,afe=M(()=>{"use strict";mr();yE=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=Ka().y(n=>n[0]).x(n=>n[1])(e):r=Ka().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var vE,sfe=M(()=>{"use strict";vE=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function ofe(t,e,r){return new fO(t,e,r)}var fO,lfe=M(()=>{"use strict";afe();sfe();fO=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new yE(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new vE(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(ofe,"getPlotComponent")});var xE,cfe=M(()=>{"use strict";rfe();ife();lfe();pE();xE=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:nfe(e,r,n,i),plot:ofe(e,r,n),xAxis:uO(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:uO(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>oO(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>oO(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var bE,ufe=M(()=>{"use strict";cfe();bE=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new xE(e,r,n,i).getDrawableElement()}}});function ffe(){let t=sp(),e=Sr();return ws(t.xyChart,e.themeVariables.xyChart)}function dfe(){let t=Sr();return ws(ur.xyChart,t.xyChart)}function pfe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function mO(t){let e=Sr();return Tr(t.trim(),e)}function ZVe(t){hfe=t}function JVe(t){t==="horizontal"?mx.chartOrientation="horizontal":mx.chartOrientation="vertical"}function eUe(t){un.xAxis.title=mO(t.text)}function mfe(t,e){un.xAxis={type:"linear",title:un.xAxis.title,min:t,max:e},wE=!0}function tUe(t){un.xAxis={type:"band",title:un.xAxis.title,categories:t.map(e=>mO(e.text))},wE=!0}function rUe(t){un.yAxis.title=mO(t.text)}function nUe(t,e){un.yAxis={type:"linear",title:un.yAxis.title,min:t,max:e},pO=!0}function iUe(t){let e=Math.min(...t),r=Math.max(...t),n=Ig(un.yAxis)?un.yAxis.min:1/0,i=Ig(un.yAxis)?un.yAxis.max:-1/0;un.yAxis={type:"linear",title:un.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function gfe(t){let e=[];if(t.length===0)return e;if(!wE){let r=Ig(un.xAxis)?un.xAxis.min:1/0,n=Ig(un.xAxis)?un.xAxis.max:-1/0;mfe(Math.min(r,1),Math.max(n,t.length))}if(pO||iUe(t),dE(un.xAxis)&&(e=un.xAxis.categories.map((r,n)=>[r,t[n]])),Ig(un.xAxis)){let r=un.xAxis.min,n=un.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function yfe(t){return dO[t===0?0:t%dO.length]}function aUe(t,e){let r=gfe(e);un.plots.push({type:"line",strokeFill:yfe(px),strokeWidth:2,data:r}),px++}function sUe(t,e){let r=gfe(e);un.plots.push({type:"bar",fill:yfe(px),data:r}),px++}function oUe(){if(un.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return un.title=Jr(),bE.build(mx,un,gx,hfe)}function lUe(){return gx}function cUe(){return mx}var px,hfe,mx,gx,un,dO,wE,pO,uUe,vfe,xfe=M(()=>{"use strict";Ua();hs();Ub();hr();fr();ki();ufe();pE();px=0,mx=dfe(),gx=ffe(),un=pfe(),dO=gx.plotColorPalette.split(",").map(t=>t.trim()),wE=!1,pO=!1;o(ffe,"getChartDefaultThemeConfig");o(dfe,"getChartDefaultConfig");o(pfe,"getChartDefaultData");o(mO,"textSanitizer");o(ZVe,"setTmpSVGG");o(JVe,"setOrientation");o(eUe,"setXAxisTitle");o(mfe,"setXAxisRangeData");o(tUe,"setXAxisBand");o(rUe,"setYAxisTitle");o(nUe,"setYAxisRangeData");o(iUe,"setYAxisRangeFromPlotData");o(gfe,"transformDataWithoutCategory");o(yfe,"getPlotColorFromPalette");o(aUe,"setLineData");o(sUe,"setBarData");o(oUe,"getDrawableElem");o(lUe,"getChartThemeConfig");o(cUe,"getChartConfig");uUe=o(function(){_r(),px=0,mx=dfe(),un=pfe(),gx=ffe(),dO=gx.plotColorPalette.split(",").map(t=>t.trim()),wE=!1,pO=!1},"clear"),vfe={getDrawableElem:oUe,clear:uUe,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br,setOrientation:JVe,setXAxisTitle:eUe,setXAxisRangeData:mfe,setXAxisBand:tUe,setYAxisTitle:rUe,setYAxisRangeData:nUe,setLineData:aUe,setBarData:sUe,setTmpSVGG:ZVe,getChartThemeConfig:lUe,getChartConfig:cUe}});var hUe,bfe,wfe=M(()=>{"use strict";ht();Hu();ni();hUe=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig();function l(v){return v==="top"?"text-before-edge":"middle"}o(l,"getDominantBaseLine");function u(v){return v==="left"?"start":v==="right"?"end":"middle"}o(u,"getTextAnchor");function h(v){return`translate(${v.x}, ${v.y}) rotate(${v.rotation||0})`}o(h,"getTextTransformation"),Y.debug(`Rendering xychart chart +`+t);let f=Oa(e),d=f.append("g").attr("class","main"),p=d.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Zr(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),p.attr("fill",a.backgroundColor),i.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let m=i.getDrawableElem(),g={};function y(v){let x=d,b="";for(let[w]of v.entries()){let _=d;w>0&&g[b]&&(_=g[b]),b+=v[w],x=g[b],x||(x=g[b]=_.append("g").attr("class",v[w]))}return x}o(y,"getGroup");for(let v of m){if(v.data.length===0)continue;let x=y(v.groupTexts);switch(v.type){case"rect":x.selectAll("rect").data(v.data).enter().append("rect").attr("x",b=>b.x).attr("y",b=>b.y).attr("width",b=>b.width).attr("height",b=>b.height).attr("fill",b=>b.fill).attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break;case"text":x.selectAll("text").data(v.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",b=>b.fill).attr("font-size",b=>b.fontSize).attr("dominant-baseline",b=>l(b.verticalPos)).attr("text-anchor",b=>u(b.horizontalPos)).attr("transform",b=>h(b)).text(b=>b.text);break;case"path":x.selectAll("path").data(v.data).enter().append("path").attr("d",b=>b.path).attr("fill",b=>b.fill?b.fill:"none").attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break}}},"draw"),bfe={draw:hUe}});var Tfe={};vr(Tfe,{diagram:()=>fUe});var fUe,kfe=M(()=>{"use strict";Jhe();xfe();wfe();fUe={parser:Zhe,db:vfe,renderer:bfe}});var gO,Cfe,Afe=M(()=>{"use strict";gO=function(){var t=o(function(ie,Q,ee,J){for(ee=ee||{},J=ie.length;J--;ee[ie[J]]=Q);return ee},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],s=[1,18],l=[2,7],u=[1,22],h=[1,23],f=[1,24],d=[1,25],p=[1,26],m=[1,27],g=[1,20],y=[1,28],v=[1,29],x=[62,63],b=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],w=[1,47],_=[1,48],T=[1,49],E=[1,50],L=[1,51],C=[1,52],A=[1,53],I=[53,54],D=[1,64],k=[1,60],R=[1,61],S=[1,62],O=[1,63],N=[1,65],P=[1,69],F=[1,70],B=[1,67],$=[1,68],z=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],W={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:o(function(Q,ee,J,H,q,Z,ae){var ue=Z.length-1;switch(q){case 4:this.$=Z[ue].trim(),H.setAccTitle(this.$);break;case 5:case 6:this.$=Z[ue].trim(),H.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:H.addRequirement(Z[ue-3],Z[ue-4]);break;case 14:H.setNewReqId(Z[ue-2]);break;case 15:H.setNewReqText(Z[ue-2]);break;case 16:H.setNewReqRisk(Z[ue-2]);break;case 17:H.setNewReqVerifyMethod(Z[ue-2]);break;case 20:this.$=H.RequirementType.REQUIREMENT;break;case 21:this.$=H.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=H.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=H.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=H.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=H.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=H.RiskLevel.LOW_RISK;break;case 27:this.$=H.RiskLevel.MED_RISK;break;case 28:this.$=H.RiskLevel.HIGH_RISK;break;case 29:this.$=H.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=H.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=H.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=H.VerifyType.VERIFY_TEST;break;case 33:H.addElement(Z[ue-3]);break;case 34:H.setNewElementType(Z[ue-2]);break;case 35:H.setNewElementDocRef(Z[ue-2]);break;case 38:H.addRelationship(Z[ue-2],Z[ue],Z[ue-4]);break;case 39:H.addRelationship(Z[ue-2],Z[ue-4],Z[ue]);break;case 40:this.$=H.Relationships.CONTAINS;break;case 41:this.$=H.Relationships.COPIES;break;case 42:this.$=H.Relationships.DERIVES;break;case 43:this.$=H.Relationships.SATISFIES;break;case 44:this.$=H.Relationships.VERIFIES;break;case 45:this.$=H.Relationships.REFINES;break;case 46:this.$=H.Relationships.TRACES;break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:s,7:31,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:32,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:33,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:34,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:35,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(x,[2,20]),t(x,[2,21]),t(x,[2,22]),t(x,[2,23]),t(x,[2,24]),t(x,[2,25]),t(b,[2,49]),t(b,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:w,56:_,57:T,58:E,59:L,60:C,61:A},{52:54,55:w,56:_,57:T,58:E,59:L,60:C,61:A},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(I,[2,40]),t(I,[2,41]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),{54:[1,58]},{5:D,20:59,21:k,24:R,26:S,28:O,30:N},{5:P,30:F,46:66,47:B,49:$},{23:71,62:y,63:v},{23:72,62:y,63:v},t(z,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:D,20:77,21:k,24:R,26:S,28:O,30:N},t(z,[2,19]),t(z,[2,33]),{22:[1,78]},{22:[1,79]},{5:P,30:F,46:80,47:B,49:$},t(z,[2,37]),t(z,[2,38]),t(z,[2,39]),{23:81,62:y,63:v},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(z,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(z,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:D,20:106,21:k,24:R,26:S,28:O,30:N},{5:D,20:107,21:k,24:R,26:S,28:O,30:N},{5:D,20:108,21:k,24:R,26:S,28:O,30:N},{5:D,20:109,21:k,24:R,26:S,28:O,30:N},{5:P,30:F,46:110,47:B,49:$},{5:P,30:F,46:111,47:B,49:$},t(z,[2,14]),t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),t(z,[2,34]),t(z,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:o(function(Q,ee){if(ee.recoverable)this.trace(Q);else{var J=new Error(Q);throw J.hash=ee,J}},"parseError"),parse:o(function(Q){var ee=this,J=[0],H=[],q=[null],Z=[],ae=this.table,ue="",ce=0,te=0,De=0,oe=2,ke=1,Fe=Z.slice.call(arguments,1),Be=Object.create(this.lexer),Ve={yy:{}};for(var Ge in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ge)&&(Ve.yy[Ge]=this.yy[Ge]);Be.setInput(Q,Ve.yy),Ve.yy.lexer=Be,Ve.yy.parser=this,typeof Be.yylloc>"u"&&(Be.yylloc={});var He=Be.yylloc;Z.push(He);var xe=Be.options&&Be.options.ranges;typeof Ve.yy.parseError=="function"?this.parseError=Ve.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(We){J.length=J.length-2*We,q.length=q.length-We,Z.length=Z.length-We}o(X,"popStack");function fe(){var We;return We=H.pop()||Be.lex()||ke,typeof We!="number"&&(We instanceof Array&&(H=We,We=H.pop()),We=ee.symbols_[We]||We),We}o(fe,"lex");for(var he,ge,ne,ye,U,Te,se={},Ee,Ae,Pe,Me;;){if(ne=J[J.length-1],this.defaultActions[ne]?ye=this.defaultActions[ne]:((he===null||typeof he>"u")&&(he=fe()),ye=ae[ne]&&ae[ne][he]),typeof ye>"u"||!ye.length||!ye[0]){var me="";Me=[];for(Ee in ae[ne])this.terminals_[Ee]&&Ee>oe&&Me.push("'"+this.terminals_[Ee]+"'");Be.showPosition?me="Parse error on line "+(ce+1)+`: +`+Be.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[he]||he)+"'":me="Parse error on line "+(ce+1)+": Unexpected "+(he==ke?"end of input":"'"+(this.terminals_[he]||he)+"'"),this.parseError(me,{text:Be.match,token:this.terminals_[he]||he,line:Be.yylineno,loc:He,expected:Me})}if(ye[0]instanceof Array&&ye.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ne+", token: "+he);switch(ye[0]){case 1:J.push(he),q.push(Be.yytext),Z.push(Be.yylloc),J.push(ye[1]),he=null,ge?(he=ge,ge=null):(te=Be.yyleng,ue=Be.yytext,ce=Be.yylineno,He=Be.yylloc,De>0&&De--);break;case 2:if(Ae=this.productions_[ye[1]][1],se.$=q[q.length-Ae],se._$={first_line:Z[Z.length-(Ae||1)].first_line,last_line:Z[Z.length-1].last_line,first_column:Z[Z.length-(Ae||1)].first_column,last_column:Z[Z.length-1].last_column},xe&&(se._$.range=[Z[Z.length-(Ae||1)].range[0],Z[Z.length-1].range[1]]),Te=this.performAction.apply(se,[ue,te,ce,Ve.yy,ye[1],q,Z].concat(Fe)),typeof Te<"u")return Te;Ae&&(J=J.slice(0,-1*Ae*2),q=q.slice(0,-1*Ae),Z=Z.slice(0,-1*Ae)),J.push(this.productions_[ye[1]][0]),q.push(se.$),Z.push(se._$),Pe=ae[J[J.length-2]][J[J.length-1]],J.push(Pe);break;case 3:return!0}}return!0},"parse")},j=function(){var ie={EOF:1,parseError:o(function(ee,J){if(this.yy.parser)this.yy.parser.parseError(ee,J);else throw new Error(ee)},"parseError"),setInput:o(function(Q,ee){return this.yy=ee||this.yy||{},this._input=Q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Q=this._input[0];this.yytext+=Q,this.yyleng++,this.offset++,this.match+=Q,this.matched+=Q;var ee=Q.match(/(?:\r\n?|\n).*/g);return ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Q},"input"),unput:o(function(Q){var ee=Q.length,J=Q.split(/(?:\r\n?|\n)/g);this._input=Q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ee),this.offset-=ee;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),J.length-1&&(this.yylineno-=J.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:J?(J.length===H.length?this.yylloc.first_column:0)+H[H.length-J.length].length-J[0].length:this.yylloc.first_column-ee},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-ee]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Q){this.unput(this.match.slice(Q))},"less"),pastInput:o(function(){var Q=this.matched.substr(0,this.matched.length-this.match.length);return(Q.length>20?"...":"")+Q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Q=this.match;return Q.length<20&&(Q+=this._input.substr(0,20-Q.length)),(Q.substr(0,20)+(Q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Q=this.pastInput(),ee=new Array(Q.length+1).join("-");return Q+this.upcomingInput()+` +`+ee+"^"},"showPosition"),test_match:o(function(Q,ee){var J,H,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),H=Q[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Q[0].length},this.yytext+=Q[0],this.match+=Q[0],this.matches=Q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Q[0].length),this.matched+=Q[0],J=this.performAction.call(this,this.yy,this,ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),J)return J;if(this._backtrack){for(var Z in q)this[Z]=q[Z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Q,ee,J,H;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),Z=0;Zee[0].length)){if(ee=J,H=Z,this.options.backtrack_lexer){if(Q=this.test_match(J,q[Z]),Q!==!1)return Q;if(this._backtrack){ee=!1;continue}else return!1}else if(!this.options.flex)break}return ee?(Q=this.test_match(ee,q[H]),Q!==!1?Q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ee=this.next();return ee||this.lex()},"lex"),begin:o(function(ee){this.conditionStack.push(ee)},"begin"),popState:o(function(){var ee=this.conditionStack.length-1;return ee>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ee){return ee=this.conditionStack.length-1-Math.abs(ee||0),ee>=0?this.conditionStack[ee]:"INITIAL"},"topState"),pushState:o(function(ee){this.begin(ee)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ee,J,H,q){var Z=q;switch(H){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return J.yytext=J.yytext.trim(),62;break}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return ie}();W.lexer=j;function K(){this.yy={}}return o(K,"Parser"),K.prototype=W,W.Parser=K,new K}();gO.parser=gO;Cfe=gO});var yO,Fs,yx,df,vx,gUe,yUe,vUe,xUe,bUe,wUe,TUe,kUe,EUe,SUe,CUe,AUe,_Ue,LUe,DUe,NUe,RUe,_fe,Lfe=M(()=>{"use strict";Vt();ht();ki();yO=[],Fs={},yx=new Map,df={},vx=new Map,gUe={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},yUe={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},vUe={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},xUe={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},bUe=o((t,e)=>(yx.has(t)||yx.set(t,{name:t,type:e,id:Fs.id,text:Fs.text,risk:Fs.risk,verifyMethod:Fs.verifyMethod}),Fs={},yx.get(t)),"addRequirement"),wUe=o(()=>yx,"getRequirements"),TUe=o(t=>{Fs!==void 0&&(Fs.id=t)},"setNewReqId"),kUe=o(t=>{Fs!==void 0&&(Fs.text=t)},"setNewReqText"),EUe=o(t=>{Fs!==void 0&&(Fs.risk=t)},"setNewReqRisk"),SUe=o(t=>{Fs!==void 0&&(Fs.verifyMethod=t)},"setNewReqVerifyMethod"),CUe=o(t=>(vx.has(t)||(vx.set(t,{name:t,type:df.type,docRef:df.docRef}),Y.info("Added new requirement: ",t)),df={},vx.get(t)),"addElement"),AUe=o(()=>vx,"getElements"),_Ue=o(t=>{df!==void 0&&(df.type=t)},"setNewElementType"),LUe=o(t=>{df!==void 0&&(df.docRef=t)},"setNewElementDocRef"),DUe=o((t,e,r)=>{yO.push({type:t,src:e,dst:r})},"addRelationship"),NUe=o(()=>yO,"getRelationships"),RUe=o(()=>{yO=[],Fs={},yx=new Map,df={},vx=new Map,_r()},"clear"),_fe={RequirementType:gUe,RiskLevel:yUe,VerifyType:vUe,Relationships:xUe,getConfig:o(()=>de().req,"getConfig"),addRequirement:bUe,getRequirements:wUe,setNewReqId:TUe,setNewReqText:kUe,setNewReqRisk:EUe,setNewReqVerifyMethod:SUe,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addElement:CUe,getElements:AUe,setNewElementType:_Ue,setNewElementDocRef:LUe,addRelationship:DUe,getRelationships:NUe,clear:RUe}});var MUe,Dfe,Nfe=M(()=>{"use strict";MUe=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + +`,"getStyles"),Dfe=MUe});var vO,IUe,xO,Rfe=M(()=>{"use strict";vO={CONTAINS:"contains",ARROW:"arrow"},IUe=o((t,e)=>{let r=t.append("defs").append("marker").attr("id",vO.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");r.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),r.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),r.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",vO.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${e.line_height},${e.line_height/2} + M${e.line_height},${e.line_height/2} + L0,${e.line_height}`).attr("stroke-width",1)},"insertLineEndings"),xO={ReqMarkers:vO,insertLineEndings:IUe}});var ci,Mfe,Ife,Ofe,Pfe,OUe,PUe,BUe,FUe,zUe,GUe,Bg,$Ue,Bfe,Ffe=M(()=>{"use strict";mr();Pv();Ns();Vt();ht();ni();fr();Rfe();ci={},Mfe=0,Ife=o((t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",ci.rect_min_width+"px").attr("height",ci.rect_min_height+"px"),"newRectNode"),Ofe=o((t,e,r)=>{let n=ci.rect_min_width/2,i=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",ci.rect_padding).attr("dominant-baseline","hanging"),a=0;r.forEach(h=>{a==0?i.append("tspan").attr("text-anchor","middle").attr("x",ci.rect_min_width/2).attr("dy",0).text(h):i.append("tspan").attr("text-anchor","middle").attr("x",ci.rect_min_width/2).attr("dy",ci.line_height*.75).text(h),a++});let s=1.5*ci.rect_padding,l=a*ci.line_height*.75,u=s+l;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",ci.rect_min_width).attr("y1",u).attr("y2",u),{titleNode:i,y:u}},"newTitleNode"),Pfe=o((t,e,r,n)=>{let i=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",ci.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),a=0,s=30,l=[];return r.forEach(u=>{let h=u.length;for(;h>s&&a<3;){let f=u.substring(0,s);u=u.substring(s,u.length),h=u.length,l[l.length]=f,a++}if(a==3){let f=l[l.length-1];l[l.length-1]=f.substring(0,f.length-4)+"..."}else l[l.length]=u;a=0}),l.forEach(u=>{i.append("tspan").attr("x",ci.rect_padding).attr("dy",ci.line_height).text(u)}),i},"newBodyNode"),OUe=o((t,e,r,n)=>{let i=e.node().getTotalLength(),a=e.node().getPointAtLength(i*.5),s="rel"+Mfe;Mfe++;let u=t.append("text").attr("class","req relationshipLabel").attr("id",s).attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();t.insert("rect","#"+s).attr("class","req reqLabelBox").attr("x",a.x-u.width/2).attr("y",a.y-u.height/2).attr("width",u.width).attr("height",u.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),PUe=o(function(t,e,r,n,i){let a=r.edge(Bg(e.src),Bg(e.dst)),s=Ka().x(function(u){return u.x}).y(function(u){return u.y}),l=t.insert("path","#"+n).attr("class","er relationshipLine").attr("d",s(a.points)).attr("fill","none");e.type==i.db.Relationships.CONTAINS?l.attr("marker-start","url("+je.getUrl(ci.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(l.attr("stroke-dasharray","10,7"),l.attr("marker-end","url("+je.getUrl(ci.arrowMarkerAbsolute)+"#"+xO.ReqMarkers.ARROW+"_line_ending)")),OUe(t,l,ci,`<<${e.type}>>`)},"drawRelationshipFromLayout"),BUe=o((t,e,r)=>{t.forEach((n,i)=>{i=Bg(i),Y.info("Added new requirement: ",i);let a=r.append("g").attr("id",i),s="req-"+i,l=Ife(a,s),u=[],h=Ofe(a,i+"_title",[`<<${n.type}>>`,`${n.name}`]);u.push(h.titleNode);let f=Pfe(a,i+"_body",[`Id: ${n.id}`,`Text: ${n.text}`,`Risk: ${n.risk}`,`Verification: ${n.verifyMethod}`],h.y);u.push(f);let d=l.node().getBBox();e.setNode(i,{width:d.width,height:d.height,shape:"rect",id:i})})},"drawReqs"),FUe=o((t,e,r)=>{t.forEach((n,i)=>{let a=Bg(i),s=r.append("g").attr("id",a),l="element-"+a,u=Ife(s,l),h=[],f=Ofe(s,l+"_title",["<>",`${i}`]);h.push(f.titleNode);let d=Pfe(s,l+"_body",[`Type: ${n.type||"Not Specified"}`,`Doc Ref: ${n.docRef||"None"}`],f.y);h.push(d);let p=u.node().getBBox();e.setNode(a,{width:p.width,height:p.height,shape:"rect",id:a})})},"drawElements"),zUe=o((t,e)=>(t.forEach(function(r){let n=Bg(r.src),i=Bg(r.dst);e.setEdge(n,i,{relationship:r})}),t),"addRelationships"),GUe=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&(t.select("#"+r),t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )"))})},"adjustEntities"),Bg=o(t=>t.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),$Ue=o((t,e,r,n)=>{ci=de().requirement;let i=ci.securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let l=(i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body")).select(`[id='${e}']`);xO.insertLineEndings(l,ci);let u=new Mr({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:ci.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getRequirements(),f=n.db.getElements(),d=n.db.getRelationships();BUe(h,u,l),FUe(f,u,l),zUe(d,u),Du(u),GUe(l,u),d.forEach(function(v){PUe(l,v,u,e,n)});let p=ci.rect_padding,m=l.node().getBBox(),g=m.width+p*2,y=m.height+p*2;Zr(l,y,g,ci.useMaxWidth),l.attr("viewBox",`${m.x-p} ${m.y-p} ${g} ${y}`)},"draw"),Bfe={draw:$Ue}});var zfe={};vr(zfe,{diagram:()=>VUe});var VUe,Gfe=M(()=>{"use strict";Afe();Lfe();Nfe();Ffe();VUe={parser:Cfe,db:_fe,renderer:Bfe,styles:Dfe}});var bO,Ufe,Hfe=M(()=>{"use strict";bO=function(){var t=o(function(H,q,Z,ae){for(Z=Z||{},ae=H.length;ae--;Z[H[ae]]=q);return Z},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],w=[1,31],_=[1,32],T=[1,33],E=[1,34],L=[1,35],C=[1,36],A=[1,37],I=[1,38],D=[1,39],k=[1,41],R=[1,42],S=[1,43],O=[1,44],N=[1,45],P=[1,46],F=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],B=[4,5,16,50,52,53],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],W=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],K=[68,69,70],ie=[1,122],Q={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:o(function(q,Z,ae,ue,ce,te,De){var oe=te.length-1;switch(ce){case 3:return ue.apply(te[oe]),te[oe];break;case 4:case 9:this.$=[];break;case 5:case 10:te[oe-1].push(te[oe]),this.$=te[oe-1];break;case 6:case 7:case 11:case 12:this.$=te[oe];break;case 8:case 13:this.$=[];break;case 15:te[oe].type="createParticipant",this.$=te[oe];break;case 16:te[oe-1].unshift({type:"boxStart",boxData:ue.parseBoxData(te[oe-2])}),te[oe-1].push({type:"boxEnd",boxText:te[oe-2]}),this.$=te[oe-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-2]),sequenceIndexStep:Number(te[oe-1]),sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:ue.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:ue.LINETYPE.ACTIVE_START,actor:te[oe-1].actor};break;case 23:this.$={type:"activeEnd",signalType:ue.LINETYPE.ACTIVE_END,actor:te[oe-1].actor};break;case 29:ue.setDiagramTitle(te[oe].substring(6)),this.$=te[oe].substring(6);break;case 30:ue.setDiagramTitle(te[oe].substring(7)),this.$=te[oe].substring(7);break;case 31:this.$=te[oe].trim(),ue.setAccTitle(this.$);break;case 32:case 33:this.$=te[oe].trim(),ue.setAccDescription(this.$);break;case 34:te[oe-1].unshift({type:"loopStart",loopText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.LOOP_START}),te[oe-1].push({type:"loopEnd",loopText:te[oe-2],signalType:ue.LINETYPE.LOOP_END}),this.$=te[oe-1];break;case 35:te[oe-1].unshift({type:"rectStart",color:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.RECT_START}),te[oe-1].push({type:"rectEnd",color:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.RECT_END}),this.$=te[oe-1];break;case 36:te[oe-1].unshift({type:"optStart",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.OPT_START}),te[oe-1].push({type:"optEnd",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.OPT_END}),this.$=te[oe-1];break;case 37:te[oe-1].unshift({type:"altStart",altText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.ALT_START}),te[oe-1].push({type:"altEnd",signalType:ue.LINETYPE.ALT_END}),this.$=te[oe-1];break;case 38:te[oe-1].unshift({type:"parStart",parText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.PAR_START}),te[oe-1].push({type:"parEnd",signalType:ue.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 39:te[oe-1].unshift({type:"parStart",parText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.PAR_OVER_START}),te[oe-1].push({type:"parEnd",signalType:ue.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 40:te[oe-1].unshift({type:"criticalStart",criticalText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.CRITICAL_START}),te[oe-1].push({type:"criticalEnd",signalType:ue.LINETYPE.CRITICAL_END}),this.$=te[oe-1];break;case 41:te[oe-1].unshift({type:"breakStart",breakText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.BREAK_START}),te[oe-1].push({type:"breakEnd",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.BREAK_END}),this.$=te[oe-1];break;case 43:this.$=te[oe-3].concat([{type:"option",optionText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.CRITICAL_OPTION},te[oe]]);break;case 45:this.$=te[oe-3].concat([{type:"and",parText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.PAR_AND},te[oe]]);break;case 47:this.$=te[oe-3].concat([{type:"else",altText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.ALT_ELSE},te[oe]]);break;case 48:te[oe-3].draw="participant",te[oe-3].type="addParticipant",te[oe-3].description=ue.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 49:te[oe-1].draw="participant",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 50:te[oe-3].draw="actor",te[oe-3].type="addParticipant",te[oe-3].description=ue.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 51:te[oe-1].draw="actor",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 52:te[oe-1].type="destroyParticipant",this.$=te[oe-1];break;case 53:this.$=[te[oe-1],{type:"addNote",placement:te[oe-2],actor:te[oe-1].actor,text:te[oe]}];break;case 54:te[oe-2]=[].concat(te[oe-1],te[oe-1]).slice(0,2),te[oe-2][0]=te[oe-2][0].actor,te[oe-2][1]=te[oe-2][1].actor,this.$=[te[oe-1],{type:"addNote",placement:ue.PLACEMENT.OVER,actor:te[oe-2].slice(0,2),text:te[oe]}];break;case 55:this.$=[te[oe-1],{type:"addLinks",actor:te[oe-1].actor,text:te[oe]}];break;case 56:this.$=[te[oe-1],{type:"addALink",actor:te[oe-1].actor,text:te[oe]}];break;case 57:this.$=[te[oe-1],{type:"addProperties",actor:te[oe-1].actor,text:te[oe]}];break;case 58:this.$=[te[oe-1],{type:"addDetails",actor:te[oe-1].actor,text:te[oe]}];break;case 61:this.$=[te[oe-2],te[oe]];break;case 62:this.$=te[oe];break;case 63:this.$=ue.PLACEMENT.LEFTOF;break;case 64:this.$=ue.PLACEMENT.RIGHTOF;break;case 65:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe],activate:!0},{type:"activeStart",signalType:ue.LINETYPE.ACTIVE_START,actor:te[oe-1].actor}];break;case 66:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe]},{type:"activeEnd",signalType:ue.LINETYPE.ACTIVE_END,actor:te[oe-4].actor}];break;case 67:this.$=[te[oe-3],te[oe-1],{type:"addMessage",from:te[oe-3].actor,to:te[oe-1].actor,signalType:te[oe-2],msg:te[oe]}];break;case 68:this.$={type:"addParticipant",actor:te[oe]};break;case 69:this.$=ue.LINETYPE.SOLID_OPEN;break;case 70:this.$=ue.LINETYPE.DOTTED_OPEN;break;case 71:this.$=ue.LINETYPE.SOLID;break;case 72:this.$=ue.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=ue.LINETYPE.DOTTED;break;case 74:this.$=ue.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=ue.LINETYPE.SOLID_CROSS;break;case 76:this.$=ue.LINETYPE.DOTTED_CROSS;break;case 77:this.$=ue.LINETYPE.SOLID_POINT;break;case 78:this.$=ue.LINETYPE.DOTTED_POINT;break;case 79:this.$=ue.parseMessage(te[oe].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},t(F,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},t(F,[2,7]),t(F,[2,8]),t(F,[2,14]),{12:48,50:A,52:I,53:D},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:P},{22:55,70:P},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(F,[2,29]),t(F,[2,30]),{32:[1,61]},{34:[1,62]},t(F,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:P},{22:72,70:P},{22:73,70:P},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:P},{22:90,70:P},{22:91,70:P},{22:92,70:P},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(F,[2,6]),t(F,[2,15]),t(B,[2,9],{10:93}),t(F,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(F,[2,21]),{5:[1,97]},{5:[1,98]},t(F,[2,24]),t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,31]),t(F,[2,32]),t($,i,{7:99}),t($,i,{7:100}),t($,i,{7:101}),t(z,i,{40:102,7:103}),t(W,i,{42:104,7:105}),t(W,i,{7:105,42:106}),t(j,i,{45:107,7:108}),t($,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:P},t(K,[2,69]),t(K,[2,70]),t(K,[2,71]),t(K,[2,72]),t(K,[2,73]),t(K,[2,74]),t(K,[2,75]),t(K,[2,76]),t(K,[2,77]),t(K,[2,78]),{22:118,70:P},{22:120,58:119,70:P},{70:[2,63]},{70:[2,64]},{56:121,81:ie},{56:123,81:ie},{56:124,81:ie},{56:125,81:ie},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:A,52:I,53:D},{5:[1,131]},t(F,[2,19]),t(F,[2,20]),t(F,[2,22]),t(F,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,132],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,133],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,134],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,135]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,49:[1,136],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,137]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,48:[1,138],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,139]},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,47:[1,141],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,142],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{15:[1,143]},t(F,[2,49]),{15:[1,144]},t(F,[2,51]),t(F,[2,52]),{22:145,70:P},{22:146,70:P},{56:147,81:ie},{56:148,81:ie},{56:149,81:ie},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(F,[2,16]),t(B,[2,10]),{12:151,50:A,52:I,53:D},t(B,[2,12]),t(B,[2,13]),t(F,[2,18]),t(F,[2,34]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),{15:[1,152]},t(F,[2,38]),{15:[1,153]},t(F,[2,39]),t(F,[2,40]),{15:[1,154]},t(F,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ie},{56:158,81:ie},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:P},t(B,[2,11]),t(z,i,{7:103,40:160}),t(W,i,{7:105,42:161}),t(j,i,{7:108,45:162}),t(F,[2,48]),t(F,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:o(function(q,Z){if(Z.recoverable)this.trace(q);else{var ae=new Error(q);throw ae.hash=Z,ae}},"parseError"),parse:o(function(q){var Z=this,ae=[0],ue=[],ce=[null],te=[],De=this.table,oe="",ke=0,Fe=0,Be=0,Ve=2,Ge=1,He=te.slice.call(arguments,1),xe=Object.create(this.lexer),X={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(X.yy[fe]=this.yy[fe]);xe.setInput(q,X.yy),X.yy.lexer=xe,X.yy.parser=this,typeof xe.yylloc>"u"&&(xe.yylloc={});var he=xe.yylloc;te.push(he);var ge=xe.options&&xe.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ne(Et){ae.length=ae.length-2*Et,ce.length=ce.length-Et,te.length=te.length-Et}o(ne,"popStack");function ye(){var Et;return Et=ue.pop()||xe.lex()||Ge,typeof Et!="number"&&(Et instanceof Array&&(ue=Et,Et=ue.pop()),Et=Z.symbols_[Et]||Et),Et}o(ye,"lex");for(var U,Te,se,Ee,Ae,Pe,Me={},me,We,Re,tt;;){if(se=ae[ae.length-1],this.defaultActions[se]?Ee=this.defaultActions[se]:((U===null||typeof U>"u")&&(U=ye()),Ee=De[se]&&De[se][U]),typeof Ee>"u"||!Ee.length||!Ee[0]){var gt="";tt=[];for(me in De[se])this.terminals_[me]&&me>Ve&&tt.push("'"+this.terminals_[me]+"'");xe.showPosition?gt="Parse error on line "+(ke+1)+`: +`+xe.showPosition()+` +Expecting `+tt.join(", ")+", got '"+(this.terminals_[U]||U)+"'":gt="Parse error on line "+(ke+1)+": Unexpected "+(U==Ge?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(gt,{text:xe.match,token:this.terminals_[U]||U,line:xe.yylineno,loc:he,expected:tt})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+se+", token: "+U);switch(Ee[0]){case 1:ae.push(U),ce.push(xe.yytext),te.push(xe.yylloc),ae.push(Ee[1]),U=null,Te?(U=Te,Te=null):(Fe=xe.yyleng,oe=xe.yytext,ke=xe.yylineno,he=xe.yylloc,Be>0&&Be--);break;case 2:if(We=this.productions_[Ee[1]][1],Me.$=ce[ce.length-We],Me._$={first_line:te[te.length-(We||1)].first_line,last_line:te[te.length-1].last_line,first_column:te[te.length-(We||1)].first_column,last_column:te[te.length-1].last_column},ge&&(Me._$.range=[te[te.length-(We||1)].range[0],te[te.length-1].range[1]]),Pe=this.performAction.apply(Me,[oe,Fe,ke,X.yy,Ee[1],ce,te].concat(He)),typeof Pe<"u")return Pe;We&&(ae=ae.slice(0,-1*We*2),ce=ce.slice(0,-1*We),te=te.slice(0,-1*We)),ae.push(this.productions_[Ee[1]][0]),ce.push(Me.$),te.push(Me._$),Re=De[ae[ae.length-2]][ae[ae.length-1]],ae.push(Re);break;case 3:return!0}}return!0},"parse")},ee=function(){var H={EOF:1,parseError:o(function(Z,ae){if(this.yy.parser)this.yy.parser.parseError(Z,ae);else throw new Error(Z)},"parseError"),setInput:o(function(q,Z){return this.yy=Z||this.yy||{},this._input=q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var q=this._input[0];this.yytext+=q,this.yyleng++,this.offset++,this.match+=q,this.matched+=q;var Z=q.match(/(?:\r\n?|\n).*/g);return Z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),q},"input"),unput:o(function(q){var Z=q.length,ae=q.split(/(?:\r\n?|\n)/g);this._input=q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Z),this.offset-=Z;var ue=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ae.length-1&&(this.yylineno-=ae.length-1);var ce=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ae?(ae.length===ue.length?this.yylloc.first_column:0)+ue[ue.length-ae.length].length-ae[0].length:this.yylloc.first_column-Z},this.options.ranges&&(this.yylloc.range=[ce[0],ce[0]+this.yyleng-Z]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(q){this.unput(this.match.slice(q))},"less"),pastInput:o(function(){var q=this.matched.substr(0,this.matched.length-this.match.length);return(q.length>20?"...":"")+q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var q=this.match;return q.length<20&&(q+=this._input.substr(0,20-q.length)),(q.substr(0,20)+(q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var q=this.pastInput(),Z=new Array(q.length+1).join("-");return q+this.upcomingInput()+` +`+Z+"^"},"showPosition"),test_match:o(function(q,Z){var ae,ue,ce;if(this.options.backtrack_lexer&&(ce={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ce.yylloc.range=this.yylloc.range.slice(0))),ue=q[0].match(/(?:\r\n?|\n).*/g),ue&&(this.yylineno+=ue.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ue?ue[ue.length-1].length-ue[ue.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+q[0].length},this.yytext+=q[0],this.match+=q[0],this.matches=q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(q[0].length),this.matched+=q[0],ae=this.performAction.call(this,this.yy,this,Z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ae)return ae;if(this._backtrack){for(var te in ce)this[te]=ce[te];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var q,Z,ae,ue;this._more||(this.yytext="",this.match="");for(var ce=this._currentRules(),te=0;teZ[0].length)){if(Z=ae,ue=te,this.options.backtrack_lexer){if(q=this.test_match(ae,ce[te]),q!==!1)return q;if(this._backtrack){Z=!1;continue}else return!1}else if(!this.options.flex)break}return Z?(q=this.test_match(Z,ce[ue]),q!==!1?q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Z=this.next();return Z||this.lex()},"lex"),begin:o(function(Z){this.conditionStack.push(Z)},"begin"),popState:o(function(){var Z=this.conditionStack.length-1;return Z>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Z){return Z=this.conditionStack.length-1-Math.abs(Z||0),Z>=0?this.conditionStack[Z]:"INITIAL"},"topState"),pushState:o(function(Z){this.begin(Z)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Z,ae,ue,ce){var te=ce;switch(ue){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;break;case 8:return this.begin("ID"),50;break;case 9:return this.begin("ID"),52;break;case 10:return 13;case 11:return this.begin("ID"),53;break;case 12:return ae.yytext=ae.yytext.trim(),this.begin("ALIAS"),70;break;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 14:return this.popState(),this.popState(),5;break;case 15:return this.begin("LINE"),36;break;case 16:return this.begin("LINE"),37;break;case 17:return this.begin("LINE"),38;break;case 18:return this.begin("LINE"),39;break;case 19:return this.begin("LINE"),49;break;case 20:return this.begin("LINE"),41;break;case 21:return this.begin("LINE"),43;break;case 22:return this.begin("LINE"),48;break;case 23:return this.begin("LINE"),44;break;case 24:return this.begin("LINE"),47;break;case 25:return this.begin("LINE"),46;break;case 26:return this.popState(),15;break;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;break;case 37:return this.begin("ID"),23;break;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;break;case 41:return this.popState(),"acc_title_value";break;case 42:return this.begin("acc_descr"),33;break;case 43:return this.popState(),"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return ae.yytext=ae.yytext.trim(),70;break;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 66:return 5;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return H}();Q.lexer=ee;function J(){this.yy={}}return o(J,"Parser"),J.prototype=Q,Q.Parser=J,new J}();bO.parser=bO;Ufe=bO});function TO(t,e){if(t.links==null)t.links=e;else for(let r in e)t.links[r]=e[r]}function jfe(t,e){if(t.properties==null)t.properties=e;else for(let r in e)t.properties[r]=e[r]}function dHe(){$t.records.currentBox=void 0}var $t,YUe,wO,qUe,XUe,yi,jUe,KUe,QUe,ZUe,JUe,eHe,tHe,bx,rHe,nHe,iHe,aHe,sHe,Wfe,k0,oHe,lHe,cHe,xx,uHe,hHe,Yfe,qfe,fHe,Xfe,Kfe,pHe,Qfe,kO,Zfe=M(()=>{"use strict";Vt();ht();tE();fr();ki();$t=new cf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),YUe=o(function(t){$t.records.boxes.push({name:t.text,wrap:t.wrap??k0(),fill:t.color,actorKeys:[]}),$t.records.currentBox=$t.records.boxes.slice(-1)[0]},"addBox"),wO=o(function(t,e,r,n){let i=$t.records.currentBox,a=$t.records.actors.get(t);if(a){if($t.records.currentBox&&a.box&&$t.records.currentBox!==a.box)throw new Error(`A same participant should only be defined in one Box: ${a.name} can't be in '${a.box.name}' and in '${$t.records.currentBox.name}' at the same time.`);if(i=a.box?a.box:$t.records.currentBox,a.box=i,a&&e===a.name&&r==null)return}if(r?.text==null&&(r={text:e,type:n}),(n==null||r.text==null)&&(r={text:e,type:n}),$t.records.actors.set(t,{box:i,name:e,description:r.text,wrap:r.wrap??k0(),prevActor:$t.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),$t.records.prevActor){let s=$t.records.actors.get($t.records.prevActor);s&&(s.nextActor=t)}$t.records.currentBox&&$t.records.currentBox.actorKeys.push(t),$t.records.prevActor=t},"addActor"),qUe=o(t=>{let e,r=0;if(!t)return 0;for(e=0;e<$t.records.messages.length;e++)$t.records.messages[e].type===xx.ACTIVE_START&&$t.records.messages[e].from===t&&r++,$t.records.messages[e].type===xx.ACTIVE_END&&$t.records.messages[e].from===t&&r--;return r},"activationCount"),XUe=o(function(t,e,r,n){$t.records.messages.push({from:t,to:e,message:r.text,wrap:r.wrap??k0(),answer:n})},"addMessage"),yi=o(function(t,e,r,n,i=!1){if(n===xx.ACTIVE_END&&qUe(t??"")<1){let s=new Error("Trying to inactivate an inactive participant ("+t+")");throw s.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},s}return $t.records.messages.push({from:t,to:e,message:r?.text??"",wrap:r?.wrap??k0(),type:n,activate:i}),!0},"addSignal"),jUe=o(function(){return $t.records.boxes.length>0},"hasAtLeastOneBox"),KUe=o(function(){return $t.records.boxes.some(t=>t.name)},"hasAtLeastOneBoxWithTitle"),QUe=o(function(){return $t.records.messages},"getMessages"),ZUe=o(function(){return $t.records.boxes},"getBoxes"),JUe=o(function(){return $t.records.actors},"getActors"),eHe=o(function(){return $t.records.createdActors},"getCreatedActors"),tHe=o(function(){return $t.records.destroyedActors},"getDestroyedActors"),bx=o(function(t){return $t.records.actors.get(t)},"getActor"),rHe=o(function(){return[...$t.records.actors.keys()]},"getActorKeys"),nHe=o(function(){$t.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),iHe=o(function(){$t.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),aHe=o(()=>$t.records.sequenceNumbersEnabled,"showSequenceNumbers"),sHe=o(function(t){$t.records.wrapEnabled=t},"setWrap"),Wfe=o(t=>{if(t===void 0)return{};t=t.trim();let e=/^:?wrap:/.exec(t)!==null?!0:/^:?nowrap:/.exec(t)!==null?!1:void 0;return{cleanedText:(e===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),k0=o(()=>$t.records.wrapEnabled!==void 0?$t.records.wrapEnabled:de().sequence?.wrap??!1,"autoWrap"),oHe=o(function(){$t.reset(),_r()},"clear"),lHe=o(function(t){let e=t.trim(),{wrap:r,cleanedText:n}=Wfe(e),i={text:n,wrap:r};return Y.debug(`parseMessage: ${JSON.stringify(i)}`),i},"parseMessage"),cHe=o(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),r=e?.[1]?e[1].trim():"transparent",n=e?.[2]?e[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",r)||(r="transparent",n=t.trim());else{let s=new Option().style;s.color=r,s.color!==r&&(r="transparent",n=t.trim())}let{wrap:i,cleanedText:a}=Wfe(n);return{text:a?Tr(a,de()):void 0,color:r,wrap:i}},"parseBoxData"),xx={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},uHe={FILLED:0,OPEN:1},hHe={LEFTOF:0,RIGHTOF:1,OVER:2},Yfe=o(function(t,e,r){let n={actor:t,placement:e,message:r.text,wrap:r.wrap??k0()},i=[].concat(t,t);$t.records.notes.push(n),$t.records.messages.push({from:i[0],to:i[1],message:r.text,wrap:r.wrap??k0(),type:xx.NOTE,placement:e})},"addNote"),qfe=o(function(t,e){let r=bx(t);try{let n=Tr(e.text,de());n=n.replace(/&/g,"&"),n=n.replace(/=/g,"=");let i=JSON.parse(n);TO(r,i)}catch(n){Y.error("error while parsing actor link text",n)}},"addLinks"),fHe=o(function(t,e){let r=bx(t);try{let n={},i=Tr(e.text,de()),a=i.indexOf("@");i=i.replace(/&/g,"&"),i=i.replace(/=/g,"=");let s=i.slice(0,a-1).trim(),l=i.slice(a+1).trim();n[s]=l,TO(r,n)}catch(n){Y.error("error while parsing actor link text",n)}},"addALink");o(TO,"insertLinks");Xfe=o(function(t,e){let r=bx(t);try{let n=Tr(e.text,de()),i=JSON.parse(n);jfe(r,i)}catch(n){Y.error("error while parsing actor properties text",n)}},"addProperties");o(jfe,"insertProperties");o(dHe,"boxEnd");Kfe=o(function(t,e){let r=bx(t),n=document.getElementById(e.text);try{let i=n.innerHTML,a=JSON.parse(i);a.properties&&jfe(r,a.properties),a.links&&TO(r,a.links)}catch(i){Y.error("error while parsing actor details text",i)}},"addDetails"),pHe=o(function(t,e){if(t?.properties!==void 0)return t.properties[e]},"getActorProperty"),Qfe=o(function(t){if(Array.isArray(t))t.forEach(function(e){Qfe(e)});else switch(t.type){case"sequenceIndex":$t.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":wO(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if($t.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");$t.records.lastCreated=t.actor,wO(t.actor,t.actor,t.description,t.draw),$t.records.createdActors.set(t.actor,$t.records.messages.length);break;case"destroyParticipant":$t.records.lastDestroyed=t.actor,$t.records.destroyedActors.set(t.actor,$t.records.messages.length);break;case"activeStart":yi(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":yi(t.actor,void 0,void 0,t.signalType);break;case"addNote":Yfe(t.actor,t.placement,t.text);break;case"addLinks":qfe(t.actor,t.text);break;case"addALink":fHe(t.actor,t.text);break;case"addProperties":Xfe(t.actor,t.text);break;case"addDetails":Kfe(t.actor,t.text);break;case"addMessage":if($t.records.lastCreated){if(t.to!==$t.records.lastCreated)throw new Error("The created participant "+$t.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");$t.records.lastCreated=void 0}else if($t.records.lastDestroyed){if(t.to!==$t.records.lastDestroyed&&t.from!==$t.records.lastDestroyed)throw new Error("The destroyed participant "+$t.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");$t.records.lastDestroyed=void 0}yi(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":YUe(t.boxData);break;case"boxEnd":dHe();break;case"loopStart":yi(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":yi(void 0,void 0,void 0,t.signalType);break;case"rectStart":yi(void 0,void 0,t.color,t.signalType);break;case"rectEnd":yi(void 0,void 0,void 0,t.signalType);break;case"optStart":yi(void 0,void 0,t.optText,t.signalType);break;case"optEnd":yi(void 0,void 0,void 0,t.signalType);break;case"altStart":yi(void 0,void 0,t.altText,t.signalType);break;case"else":yi(void 0,void 0,t.altText,t.signalType);break;case"altEnd":yi(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":Rr(t.text);break;case"parStart":yi(void 0,void 0,t.parText,t.signalType);break;case"and":yi(void 0,void 0,t.parText,t.signalType);break;case"parEnd":yi(void 0,void 0,void 0,t.signalType);break;case"criticalStart":yi(void 0,void 0,t.criticalText,t.signalType);break;case"option":yi(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":yi(void 0,void 0,void 0,t.signalType);break;case"breakStart":yi(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":yi(void 0,void 0,void 0,t.signalType);break}},"apply"),kO={addActor:wO,addMessage:XUe,addSignal:yi,addLinks:qfe,addDetails:Kfe,addProperties:Xfe,autoWrap:k0,setWrap:sHe,enableSequenceNumbers:nHe,disableSequenceNumbers:iHe,showSequenceNumbers:aHe,getMessages:QUe,getActors:JUe,getCreatedActors:eHe,getDestroyedActors:tHe,getActor:bx,getActorKeys:rHe,getActorProperty:pHe,getAccTitle:Pr,getBoxes:ZUe,getDiagramTitle:Jr,setDiagramTitle:ln,getConfig:o(()=>de().sequence,"getConfig"),clear:oHe,parseMessage:lHe,parseBoxData:cHe,LINETYPE:xx,ARROWTYPE:uHe,PLACEMENT:hHe,addNote:Yfe,setAccTitle:Rr,apply:Qfe,setAccDescription:Br,getAccDescription:Fr,hasAtLeastOneBox:jUe,hasAtLeastOneBoxWithTitle:KUe}});var mHe,Jfe,ede=M(()=>{"use strict";mHe=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),Jfe=mHe});var EO,pf,rde,nde,gHe,tde,SO,yHe,vHe,wx,E0,ide,Fc,CO,xHe,bHe,wHe,THe,kHe,EHe,SHe,ade,CHe,AHe,_He,LHe,DHe,NHe,RHe,sde,MHe,AO,IHe,ui,ode=M(()=>{"use strict";fr();qy();hr();EO=ka(Fp(),1);Ua();pf=18*2,rde="actor-top",nde="actor-bottom",gHe="actor-box",tde="actor-man",SO=o(function(t,e){return md(t,e)},"drawRect"),yHe=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,EO.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),IHe(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),vHe=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),wx=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await hh(e.text,Sr()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),E0=o(function(t,e){let r=0,n=0,i=e.text.split(je.lineBreakRegex),[a,s]=Fo(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||K_;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),ide=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,E0(t,e),n},"drawLabel"),Fc=-1,CO=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),xHe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Fc++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",vHe(`actor${Fc}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fc,e.links!=null&&u.attr("id","root-"+Fc));let h=Sl();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${nde}`:f+=` ${rde}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=SO(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?RY(u,h.x+h.width-20,h.y+10,m.substr(1)):NY(u,h.x+h.width-20,h.y+10,m)}AO(r,pi(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${gHe}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),bHe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Fc++,l.append("line").attr("id","actor"+Fc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fc);let u=t.append("g"),h=tde;n?h+=` ${nde}`:h+=` ${rde}`,u.attr("class",h),u.attr("name",e.name);let f=Sl();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Fc).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Fc).attr("x1",a-pf/2).attr("y1",i+33).attr("x2",a+pf/2).attr("y2",i+33),u.append("line").attr("x1",a-pf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+pf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,AO(r,pi(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${tde}`},r),e.height},"drawActorTypeActor"),wHe=o(async function(t,e,r,n){switch(e.type){case"actor":return await bHe(t,e,r,n);case"participant":return await xHe(t,e,r,n)}},"drawActor"),THe=o(function(t,e,r){let i=t.append("g");ade(i,e),e.name&&AO(r)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),kHe=o(function(t){return t.append("g")},"anchorElement"),EHe=o(function(t,e,r,n,i){let a=Sl(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,SO(s,a)},"drawActivation"),SHe=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Yy();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",ide(d,m),m=sde(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=pi(m.text)?await wx(d,m,e):E0(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,pi(m.text)?(e.starty=e.sections[y].y,await wx(d,m,e)):E0(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),ade=o(function(t,e){Y3(t,e)},"drawBackgroundRect"),CHe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),AHe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),_He=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),LHe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),DHe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),NHe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),RHe=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),sde=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),MHe=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),AO=function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Fo(m),b=a.split(je.lineBreakRegex);for(let w=0;w{let s=S0(Le),l=a.actorKeys.reduce((f,d)=>f+=t.get(d).width+(t.get(d).margin||0),0);l-=2*Le.boxTextMargin,a.wrap&&(a.name=Ut.wrapLabel(a.name,l-2*Le.wrapPadding,s));let u=Ut.calculateTextDimensions(a.name,s);i=je.getMax(u.height,i);let h=je.getMax(l,u.width+2*Le.wrapPadding);if(a.margin=Le.boxTextMargin,la.textMaxHeight=i),je.getMax(n,Le.height)}var Le,nt,OHe,S0,Fg,_O,BHe,FHe,LO,cde,ude,TE,lde,GHe,VHe,HHe,WHe,YHe,hde,fde=M(()=>{"use strict";mr();ode();ht();fr();qy();Vt();ip();hr();ni();Le={},nt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,ude(de())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Le.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Le.boxMargin,Math.max),i.updateVal(nt.data,"startx",t-f*Le.boxMargin,Math.min),i.updateVal(nt.data,"stopx",r+f*Le.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Le.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Le.boxMargin,Math.max),i.updateVal(nt.data,"starty",e-f*Le.boxMargin,Math.min),i.updateVal(nt.data,"stopy",n+f*Le.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=je.getMin(t,r),a=je.getMax(t,r),s=je.getMin(e,n),l=je.getMax(e,n);this.updateVal(nt.data,"startx",i,Math.min),this.updateVal(nt.data,"starty",s,Math.min),this.updateVal(nt.data,"stopx",a,Math.max),this.updateVal(nt.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=TE(t.from).length||0,a=n.x+n.width/2+(i-1)*Le.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Le.activationWidth,stopy:void 0,actor:t.from,anchored:ui.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:nt.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=je.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},OHe=o(async function(t,e){nt.bumpVerticalPos(Le.boxMargin),e.height=Le.boxMargin,e.starty=nt.getVerticalPos();let r=Sl();r.x=e.startx,r.y=e.starty,r.width=e.width||Le.width,r.class="note";let n=t.append("g"),i=ui.drawRect(n,r),a=Yy();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Le.noteFontFamily,a.fontSize=Le.noteFontSize,a.fontWeight=Le.noteFontWeight,a.anchor=Le.noteAlign,a.textMargin=Le.noteMargin,a.valign="center";let s=pi(a.text)?await wx(n,a):E0(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Le.noteMargin),e.height+=l+2*Le.noteMargin,nt.bumpVerticalPos(l+2*Le.noteMargin),e.stopy=e.starty+l+2*Le.noteMargin,e.stopx=e.startx+r.width,nt.insert(e.startx,e.starty,e.stopx,e.stopy),nt.models.addNote(e)},"drawNote"),S0=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),Fg=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),_O=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(PHe,"boundMessage");BHe=o(async function(t,e,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=e,d=Ut.calculateTextDimensions(l,S0(Le)),p=Yy();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Le.messageFontFamily,p.fontSize=Le.messageFontSize,p.fontWeight=Le.messageFontWeight,p.anchor=Le.messageAlign,p.valign="center",p.textMargin=Le.wrapPadding,p.tspan=!1,pi(p.text)?await wx(t,p,{startx:i,stopx:a,starty:r}):E0(t,p);let m=d.width,g;i===a?Le.rightAngles?g=t.append("path").attr("d",`M ${i},${r} H ${i+je.getMax(Le.width/2,m/2)} V ${r+25} H ${i}`):g=t.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=t.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Le.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Le.showSequenceNumbers)&&(g.attr("marker-start","url("+y+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},"drawMessage"),FHe=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||nt.models.addBox(h),u+=Le.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Le.width,p.height=je.getMax(p.height||Le.height,Le.height),p.margin=p.margin||Le.actorMargin,f=je.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=nt.getVerticalPos(),nt.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,nt.models.addActor(p)}h&&!s&&nt.models.addBox(h),nt.bumpVerticalPos(f)},"addActorRenderingData"),LO=o(async function(t,e,r,n){if(n){let i=0;nt.bumpVerticalPos(Le.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=nt.getVerticalPos());let l=await ui.drawActor(t,s,Le,!0);i=je.getMax(i,l)}nt.bumpVerticalPos(i+Le.boxMargin)}else for(let i of r){let a=e.get(i);await ui.drawActor(t,a,Le,!1)}},"drawActors"),cde=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=VHe(l),h=ui.drawPopup(t,l,u,Le,Le.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),ude=o(function(t){Gn(Le,t),t.fontFamily&&(Le.actorFontFamily=Le.noteFontFamily=Le.messageFontFamily=t.fontFamily),t.fontSize&&(Le.actorFontSize=Le.noteFontSize=Le.messageFontSize=t.fontSize),t.fontWeight&&(Le.actorFontWeight=Le.noteFontWeight=Le.messageFontWeight=t.fontWeight)},"setConf"),TE=o(function(t){return nt.activations.filter(function(e){return e.actor===t})},"actorActivations"),lde=o(function(t,e){let r=e.get(t),n=TE(t),i=n.reduce(function(s,l){return je.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return je.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(zc,"adjustLoopHeightForWrap");o(zHe,"adjustCreatedDestroyedData");GHe=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=de();Le=a;let s;i==="sandbox"&&(s=ze("#i"+e));let l=i==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;nt.init(),Y.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):ze(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),w=await $He(f,y,n);if(Le.height=await UHe(f,w,m),ui.insertComputerIcon(h),ui.insertDatabaseIcon(h),ui.insertClockIcon(h),x&&(nt.bumpVerticalPos(Le.boxMargin),b&&nt.bumpVerticalPos(m[0].textMaxHeight)),Le.hideUnusedParticipants===!0){let F=new Set;y.forEach(B=>{F.add(B.from),F.add(B.to)}),g=g.filter(B=>F.has(B))}FHe(h,f,d,g,0,y,!1);let _=await YHe(y,f,w,n);ui.insertArrowHead(h),ui.insertArrowCrossHead(h),ui.insertArrowFilledHead(h),ui.insertSequenceNumber(h);function T(F,B){let $=nt.endActivation(F);$.starty+18>B&&($.starty=B-6,B+=12),ui.drawActivation(h,$,B,Le,TE(F.from).length),nt.insert($.startx,B-10,$.stopx,B)}o(T,"activeEnd");let E=1,L=1,C=[],A=[],I=0;for(let F of y){let B,$,z;switch(F.type){case n.db.LINETYPE.NOTE:nt.resetVerticalPos(),$=F.noteModel,await OHe(h,$);break;case n.db.LINETYPE.ACTIVE_START:nt.newActivation(F,h,f);break;case n.db.LINETYPE.ACTIVE_END:T(F,nt.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.LOOP_END:B=nt.endLoop(),await ui.drawLoop(h,B,"loop",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.RECT_START:zc(_,F,Le.boxMargin,Le.boxMargin,W=>nt.newLoop(void 0,W.message));break;case n.db.LINETYPE.RECT_END:B=nt.endLoop(),A.push(B),nt.models.addLoop(B),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos());break;case n.db.LINETYPE.OPT_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.OPT_END:B=nt.endLoop(),await ui.drawLoop(h,B,"opt",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.ALT_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.ALT_ELSE:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.ALT_END:B=nt.endLoop(),await ui.drawLoop(h,B,"alt",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W)),nt.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.PAR_END:B=nt.endLoop(),await ui.drawLoop(h,B,"par",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.AUTONUMBER:E=F.message.start||E,L=F.message.step||L,F.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.CRITICAL_OPTION:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.CRITICAL_END:B=nt.endLoop(),await ui.drawLoop(h,B,"critical",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.BREAK_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.BREAK_END:B=nt.endLoop(),await ui.drawLoop(h,B,"break",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;default:try{z=F.msgModel,z.starty=nt.getVerticalPos(),z.sequenceIndex=E,z.sequenceVisible=n.db.showSequenceNumbers();let W=await PHe(h,z);zHe(F,z,W,I,f,d,p),C.push({messageModel:z,lineStartY:W}),nt.models.addMessage(z)}catch(W){Y.error("error while drawing message",W)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(E=E+L),I++}Y.debug("createdActors",d),Y.debug("destroyedActors",p),await LO(h,f,g,!1);for(let F of C)await BHe(h,F.messageModel,F.lineStartY,n);Le.mirrorActors&&await LO(h,f,g,!0),A.forEach(F=>ui.drawBackgroundRect(h,F)),CO(h,f,g,Le);for(let F of nt.models.boxes)F.height=nt.getVerticalPos()-F.y,nt.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",ui.drawBox(h,F,Le);x&&nt.bumpVerticalPos(Le.boxMargin);let D=cde(h,f,g,u),{bounds:k}=nt.getBounds();k.startx===void 0&&(k.startx=0),k.starty===void 0&&(k.starty=0),k.stopx===void 0&&(k.stopx=0),k.stopy===void 0&&(k.stopy=0);let R=k.stopy-k.starty;R2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Le.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Ut.wrapLabel(t.message,je.getMax(m+2*Le.wrapPadding,Le.width),S0(Le)));let g=Ut.calculateTextDimensions(t.message,S0(Le));return{width:je.getMax(t.wrap?0:g.width+2*Le.wrapPadding,m+2*Le.wrapPadding,Le.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),YHe=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.id=Ut.random({length:10}),h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=TE(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Le.activationWidth/2,g={startx:m,stopx:m+Le.activationWidth,actor:h.from,enabled:!0};nt.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=nt.activations.map(p=>p.actor).lastIndexOf(h.from);nt.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await HHe(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=je.getMin(s.from,l.startx),s.to=je.getMax(s.to,l.startx+l.width),s.width=je.getMax(s.width,Math.abs(s.from-s.to))-Le.labelBoxWidth})):(u=WHe(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=je.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=je.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=je.getMax(s.width,Math.abs(s.to-s.from))-Le.labelBoxWidth}else s.from=je.getMin(u.startx,s.from),s.to=je.getMax(u.stopx,s.to),s.width=je.getMax(s.width,u.width)-Le.labelBoxWidth}))}return nt.activations=[],Y.debug("Loop type widths:",i),i},"calculateLoopBounds"),hde={bounds:nt,drawActors:LO,drawActorsPopup:cde,setConf:ude,draw:GHe}});var dde={};vr(dde,{diagram:()=>qHe});var qHe,pde=M(()=>{"use strict";Hfe();Zfe();ede();fde();qHe={parser:Ufe,db:kO,renderer:hde,styles:Jfe,init:o(({wrap:t})=>{kO.setWrap(t)},"init")}});var DO,kE,NO=M(()=>{"use strict";DO=function(){var t=o(function(X,fe,he,ge){for(he=he||{},ge=X.length;ge--;he[X[ge]]=fe);return he},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],w=[1,29],_=[1,30],T=[1,31],E=[1,44],L=[1,46],C=[1,43],A=[1,47],I=[1,9],D=[1,8,9],k=[1,58],R=[1,59],S=[1,60],O=[1,61],N=[1,62],P=[1,63],F=[1,64],B=[1,8,9,41],$=[1,76],z=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],W=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],j=[13,58,84,99,101,102],K=[13,58,71,72,84,99,101,102],ie=[13,58,66,67,68,69,70,84,99,101,102],Q=[1,98],ee=[1,115],J=[1,107],H=[1,113],q=[1,108],Z=[1,109],ae=[1,110],ue=[1,111],ce=[1,112],te=[1,114],De=[22,58,59,80,84,85,86,87,88,89],oe=[1,8,9,39,41,44],ke=[1,8,9,22],Fe=[1,143],Be=[1,8,9,59],Ve=[1,8,9,22,58,59,80,84,85,86,87,88,89],Ge={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:o(function(fe,he,ge,ne,ye,U,Te){var se=U.length-1;switch(ye){case 8:this.$=U[se-1];break;case 9:case 12:case 14:this.$=U[se];break;case 10:case 13:this.$=U[se-2]+"."+U[se];break;case 11:case 15:this.$=U[se-1]+U[se];break;case 16:case 17:this.$=U[se-1]+"~"+U[se]+"~";break;case 18:ne.addRelation(U[se]);break;case 19:U[se-1].title=ne.cleanupLabel(U[se]),ne.addRelation(U[se-1]);break;case 30:this.$=U[se].trim(),ne.setAccTitle(this.$);break;case 31:case 32:this.$=U[se].trim(),ne.setAccDescription(this.$);break;case 33:ne.addClassesToNamespace(U[se-3],U[se-1]);break;case 34:ne.addClassesToNamespace(U[se-4],U[se-1]);break;case 35:this.$=U[se],ne.addNamespace(U[se]);break;case 36:this.$=[U[se]];break;case 37:this.$=[U[se-1]];break;case 38:U[se].unshift(U[se-2]),this.$=U[se];break;case 40:ne.setCssClass(U[se-2],U[se]);break;case 41:ne.addMembers(U[se-3],U[se-1]);break;case 42:ne.setCssClass(U[se-5],U[se-3]),ne.addMembers(U[se-5],U[se-1]);break;case 43:this.$=U[se],ne.addClass(U[se]);break;case 44:this.$=U[se-1],ne.addClass(U[se-1]),ne.setClassLabel(U[se-1],U[se]);break;case 45:ne.addAnnotation(U[se],U[se-2]);break;case 46:case 59:this.$=[U[se]];break;case 47:U[se].push(U[se-1]),this.$=U[se];break;case 48:break;case 49:ne.addMember(U[se-1],ne.cleanupLabel(U[se]));break;case 50:break;case 51:break;case 52:this.$={id1:U[se-2],id2:U[se],relation:U[se-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:U[se-3],id2:U[se],relation:U[se-1],relationTitle1:U[se-2],relationTitle2:"none"};break;case 54:this.$={id1:U[se-3],id2:U[se],relation:U[se-2],relationTitle1:"none",relationTitle2:U[se-1]};break;case 55:this.$={id1:U[se-4],id2:U[se],relation:U[se-2],relationTitle1:U[se-3],relationTitle2:U[se-1]};break;case 56:ne.addNote(U[se],U[se-1]);break;case 57:ne.addNote(U[se]);break;case 58:this.$=U[se-2],ne.defineClass(U[se-1],U[se]);break;case 60:this.$=U[se-2].concat([U[se]]);break;case 61:ne.setDirection("TB");break;case 62:ne.setDirection("BT");break;case 63:ne.setDirection("RL");break;case 64:ne.setDirection("LR");break;case 65:this.$={type1:U[se-2],type2:U[se],lineType:U[se-1]};break;case 66:this.$={type1:"none",type2:U[se],lineType:U[se-1]};break;case 67:this.$={type1:U[se-1],type2:"none",lineType:U[se]};break;case 68:this.$={type1:"none",type2:"none",lineType:U[se]};break;case 69:this.$=ne.relationType.AGGREGATION;break;case 70:this.$=ne.relationType.EXTENSION;break;case 71:this.$=ne.relationType.COMPOSITION;break;case 72:this.$=ne.relationType.DEPENDENCY;break;case 73:this.$=ne.relationType.LOLLIPOP;break;case 74:this.$=ne.lineType.LINE;break;case 75:this.$=ne.lineType.DOTTED_LINE;break;case 76:case 82:this.$=U[se-2],ne.setClickEvent(U[se-1],U[se]);break;case 77:case 83:this.$=U[se-3],ne.setClickEvent(U[se-2],U[se-1]),ne.setTooltip(U[se-2],U[se]);break;case 78:this.$=U[se-2],ne.setLink(U[se-1],U[se]);break;case 79:this.$=U[se-3],ne.setLink(U[se-2],U[se-1],U[se]);break;case 80:this.$=U[se-3],ne.setLink(U[se-2],U[se-1]),ne.setTooltip(U[se-2],U[se]);break;case 81:this.$=U[se-4],ne.setLink(U[se-3],U[se-2],U[se]),ne.setTooltip(U[se-3],U[se-1]);break;case 84:this.$=U[se-3],ne.setClickEvent(U[se-2],U[se-1],U[se]);break;case 85:this.$=U[se-4],ne.setClickEvent(U[se-3],U[se-2],U[se-1]),ne.setTooltip(U[se-3],U[se]);break;case 86:this.$=U[se-3],ne.setLink(U[se-2],U[se]);break;case 87:this.$=U[se-4],ne.setLink(U[se-3],U[se-1],U[se]);break;case 88:this.$=U[se-4],ne.setLink(U[se-3],U[se-1]),ne.setTooltip(U[se-3],U[se]);break;case 89:this.$=U[se-5],ne.setLink(U[se-4],U[se-2],U[se]),ne.setTooltip(U[se-4],U[se-1]);break;case 90:this.$=U[se-2],ne.setCssStyle(U[se-1],U[se]);break;case 91:ne.setCssClass(U[se-1],U[se]);break;case 92:this.$=[U[se]];break;case 93:U[se-2].push(U[se]),this.$=U[se-2];break;case 95:this.$=U[se-1]+U[se];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(D,[2,18],{22:[1,50]}),t(D,[2,20]),t(D,[2,21]),t(D,[2,22]),t(D,[2,23]),t(D,[2,24]),t(D,[2,25]),t(D,[2,26]),t(D,[2,27]),t(D,[2,28]),t(D,[2,29]),{34:[1,51]},{36:[1,52]},t(D,[2,32]),t(D,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:k,67:R,68:S,69:O,70:N,71:P,72:F}),{39:[1,65]},t(B,[2,39],{39:[1,67],44:[1,66]}),t(D,[2,50]),t(D,[2,51]),{16:68,58:p,84:E,99:L,101:C},{16:39,18:69,19:40,58:p,84:E,99:L,101:C,102:A},{16:39,18:70,19:40,58:p,84:E,99:L,101:C,102:A},{16:39,18:71,19:40,58:p,84:E,99:L,101:C,102:A},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:p,84:E,99:L,101:C,102:A},{13:$,53:75},{56:77,58:[1,78]},t(D,[2,61]),t(D,[2,62]),t(D,[2,63]),t(D,[2,64]),t(z,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:p,84:E,99:L,101:C,102:A}),t(z,[2,14],{20:[1,82]}),{15:83,16:84,58:p,84:E,99:L,101:C},{16:39,18:85,19:40,58:p,84:E,99:L,101:C,102:A},t(W,[2,118]),t(W,[2,119]),t(W,[2,120]),t(W,[2,121]),t([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:e,35:r,37:n,42:i,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A},t(D,[2,19]),t(D,[2,30]),t(D,[2,31]),{13:[1,89],16:39,18:88,19:40,58:p,84:E,99:L,101:C,102:A},{51:90,64:56,65:57,66:k,67:R,68:S,69:O,70:N,71:P,72:F},t(D,[2,49]),{65:91,71:P,72:F},t(j,[2,68],{64:92,66:k,67:R,68:S,69:O,70:N}),t(K,[2,69]),t(K,[2,70]),t(K,[2,71]),t(K,[2,72]),t(K,[2,73]),t(ie,[2,74]),t(ie,[2,75]),{8:[1,94],24:95,40:93,43:23,46:a},{16:96,58:p,84:E,99:L,101:C},{45:97,49:Q},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:ee,57:104,58:J,80:H,82:105,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},{58:[1,116]},{13:$,53:117},t(D,[2,57]),t(D,[2,123]),{22:ee,57:118,58:J,59:[1,119],80:H,82:105,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},t(De,[2,59]),{16:39,18:120,19:40,58:p,84:E,99:L,101:C,102:A},t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:p,84:E,99:L,101:C},t(oe,[2,43],{11:123,12:[1,124]}),t(I,[2,7]),{9:[1,125]},t(ke,[2,52]),{16:39,18:126,19:40,58:p,84:E,99:L,101:C,102:A},{13:[1,128],16:39,18:127,19:40,58:p,84:E,99:L,101:C,102:A},t(j,[2,67],{64:129,66:k,67:R,68:S,69:O,70:N}),t(j,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:a},{8:[1,132],41:[2,36]},t(B,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:Q},{16:39,18:136,19:40,58:p,84:E,99:L,101:C,102:A},t(D,[2,76],{13:[1,137]}),t(D,[2,78],{13:[1,139],75:[1,138]}),t(D,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},t(D,[2,90],{59:Fe}),t(Be,[2,92],{83:144,22:ee,58:J,80:H,84:q,85:Z,86:ae,87:ue,88:ce,89:te}),t(Ve,[2,94]),t(Ve,[2,96]),t(Ve,[2,97]),t(Ve,[2,98]),t(Ve,[2,99]),t(Ve,[2,100]),t(Ve,[2,101]),t(Ve,[2,102]),t(Ve,[2,103]),t(Ve,[2,104]),t(D,[2,91]),t(D,[2,56]),t(D,[2,58],{59:Fe}),{58:[1,145]},t(z,[2,13]),{15:146,16:84,58:p,84:E,99:L,101:C},{39:[2,11]},t(oe,[2,44]),{13:[1,147]},{1:[2,4]},t(ke,[2,54]),t(ke,[2,53]),{16:39,18:148,19:40,58:p,84:E,99:L,101:C,102:A},t(j,[2,65]),t(D,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:a},{45:151,49:Q},t(B,[2,41]),{41:[2,47]},t(D,[2,45]),t(D,[2,77]),t(D,[2,79]),t(D,[2,80],{75:[1,152]}),t(D,[2,83]),t(D,[2,84],{13:[1,153]}),t(D,[2,86],{13:[1,155],75:[1,154]}),{22:ee,58:J,80:H,82:156,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},t(Ve,[2,95]),t(De,[2,60]),{39:[2,10]},{14:[1,157]},t(ke,[2,55]),t(D,[2,34]),{41:[2,38]},{41:[1,158]},t(D,[2,81]),t(D,[2,85]),t(D,[2,87]),t(D,[2,88],{75:[1,159]}),t(Be,[2,93],{83:144,22:ee,58:J,80:H,84:q,85:Z,86:ae,87:ue,88:ce,89:te}),t(oe,[2,8]),t(B,[2,42]),t(D,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:o(function(fe,he){if(he.recoverable)this.trace(fe);else{var ge=new Error(fe);throw ge.hash=he,ge}},"parseError"),parse:o(function(fe){var he=this,ge=[0],ne=[],ye=[null],U=[],Te=this.table,se="",Ee=0,Ae=0,Pe=0,Me=2,me=1,We=U.slice.call(arguments,1),Re=Object.create(this.lexer),tt={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(tt.yy[gt]=this.yy[gt]);Re.setInput(fe,tt.yy),tt.yy.lexer=Re,tt.yy.parser=this,typeof Re.yylloc>"u"&&(Re.yylloc={});var Et=Re.yylloc;U.push(Et);var vt=Re.options&&Re.options.ranges;typeof tt.yy.parseError=="function"?this.parseError=tt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ye(or){ge.length=ge.length-2*or,ye.length=ye.length-or,U.length=U.length-or}o(Ye,"popStack");function Tt(){var or;return or=ne.pop()||Re.lex()||me,typeof or!="number"&&(or instanceof Array&&(ne=or,or=ne.pop()),or=he.symbols_[or]||or),or}o(Tt,"lex");for(var $e,rt,ft,kt,er,dt,Xe={},ct,Lt,Rt,zt;;){if(ft=ge[ge.length-1],this.defaultActions[ft]?kt=this.defaultActions[ft]:(($e===null||typeof $e>"u")&&($e=Tt()),kt=Te[ft]&&Te[ft][$e]),typeof kt>"u"||!kt.length||!kt[0]){var Xn="";zt=[];for(ct in Te[ft])this.terminals_[ct]&&ct>Me&&zt.push("'"+this.terminals_[ct]+"'");Re.showPosition?Xn="Parse error on line "+(Ee+1)+`: +`+Re.showPosition()+` +Expecting `+zt.join(", ")+", got '"+(this.terminals_[$e]||$e)+"'":Xn="Parse error on line "+(Ee+1)+": Unexpected "+($e==me?"end of input":"'"+(this.terminals_[$e]||$e)+"'"),this.parseError(Xn,{text:Re.match,token:this.terminals_[$e]||$e,line:Re.yylineno,loc:Et,expected:zt})}if(kt[0]instanceof Array&&kt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ft+", token: "+$e);switch(kt[0]){case 1:ge.push($e),ye.push(Re.yytext),U.push(Re.yylloc),ge.push(kt[1]),$e=null,rt?($e=rt,rt=null):(Ae=Re.yyleng,se=Re.yytext,Ee=Re.yylineno,Et=Re.yylloc,Pe>0&&Pe--);break;case 2:if(Lt=this.productions_[kt[1]][1],Xe.$=ye[ye.length-Lt],Xe._$={first_line:U[U.length-(Lt||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(Lt||1)].first_column,last_column:U[U.length-1].last_column},vt&&(Xe._$.range=[U[U.length-(Lt||1)].range[0],U[U.length-1].range[1]]),dt=this.performAction.apply(Xe,[se,Ae,Ee,tt.yy,kt[1],ye,U].concat(We)),typeof dt<"u")return dt;Lt&&(ge=ge.slice(0,-1*Lt*2),ye=ye.slice(0,-1*Lt),U=U.slice(0,-1*Lt)),ge.push(this.productions_[kt[1]][0]),ye.push(Xe.$),U.push(Xe._$),Rt=Te[ge[ge.length-2]][ge[ge.length-1]],ge.push(Rt);break;case 3:return!0}}return!0},"parse")},He=function(){var X={EOF:1,parseError:o(function(he,ge){if(this.yy.parser)this.yy.parser.parseError(he,ge);else throw new Error(he)},"parseError"),setInput:o(function(fe,he){return this.yy=he||this.yy||{},this._input=fe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var fe=this._input[0];this.yytext+=fe,this.yyleng++,this.offset++,this.match+=fe,this.matched+=fe;var he=fe.match(/(?:\r\n?|\n).*/g);return he?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),fe},"input"),unput:o(function(fe){var he=fe.length,ge=fe.split(/(?:\r\n?|\n)/g);this._input=fe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-he),this.offset-=he;var ne=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ge.length-1&&(this.yylineno-=ge.length-1);var ye=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ge?(ge.length===ne.length?this.yylloc.first_column:0)+ne[ne.length-ge.length].length-ge[0].length:this.yylloc.first_column-he},this.options.ranges&&(this.yylloc.range=[ye[0],ye[0]+this.yyleng-he]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(fe){this.unput(this.match.slice(fe))},"less"),pastInput:o(function(){var fe=this.matched.substr(0,this.matched.length-this.match.length);return(fe.length>20?"...":"")+fe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var fe=this.match;return fe.length<20&&(fe+=this._input.substr(0,20-fe.length)),(fe.substr(0,20)+(fe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var fe=this.pastInput(),he=new Array(fe.length+1).join("-");return fe+this.upcomingInput()+` +`+he+"^"},"showPosition"),test_match:o(function(fe,he){var ge,ne,ye;if(this.options.backtrack_lexer&&(ye={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ye.yylloc.range=this.yylloc.range.slice(0))),ne=fe[0].match(/(?:\r\n?|\n).*/g),ne&&(this.yylineno+=ne.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ne?ne[ne.length-1].length-ne[ne.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+fe[0].length},this.yytext+=fe[0],this.match+=fe[0],this.matches=fe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(fe[0].length),this.matched+=fe[0],ge=this.performAction.call(this,this.yy,this,he,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ge)return ge;if(this._backtrack){for(var U in ye)this[U]=ye[U];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var fe,he,ge,ne;this._more||(this.yytext="",this.match="");for(var ye=this._currentRules(),U=0;Uhe[0].length)){if(he=ge,ne=U,this.options.backtrack_lexer){if(fe=this.test_match(ge,ye[U]),fe!==!1)return fe;if(this._backtrack){he=!1;continue}else return!1}else if(!this.options.flex)break}return he?(fe=this.test_match(he,ye[ne]),fe!==!1?fe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var he=this.next();return he||this.lex()},"lex"),begin:o(function(he){this.conditionStack.push(he)},"begin"),popState:o(function(){var he=this.conditionStack.length-1;return he>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(he){return he=this.conditionStack.length-1-Math.abs(he||0),he>=0?this.conditionStack[he]:"INITIAL"},"topState"),pushState:o(function(he){this.begin(he)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(he,ge,ne,ye){var U=ye;switch(ne){case 0:return 60;case 1:return 61;case 2:return 62;case 3:return 63;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 77;case 22:this.popState();break;case 23:return 78;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 80;case 28:return 55;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 81;case 50:return 73;case 51:return 74;case 52:return 76;case 53:return 52;case 54:return 54;case 55:return 47;case 56:return 48;case 57:return 79;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 75;case 65:return 75;case 66:return 75;case 67:return 75;case 68:return 67;case 69:return 67;case 70:return 69;case 71:return 69;case 72:return 68;case 73:return 66;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 22;case 78:return 44;case 79:return 99;case 80:return 17;case 81:return"PLUS";case 82:return 85;case 83:return 59;case 84:return 88;case 85:return 88;case 86:return 89;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 58;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 84;case 94:return 101;case 95:return 87;case 96:return 87;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return X}();Ge.lexer=He;function xe(){this.yy={}}return o(xe,"Parser"),xe.prototype=Ge,Ge.Parser=xe,new xe}();DO.parser=DO;kE=DO});var yde,Tx,vde=M(()=>{"use strict";Vt();fr();yde=["#","+","~","-",""],Tx=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=Tr(e,de());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+ou(this.id);this.memberType==="method"&&(e+=`(${ou(this.parameters.trim())})`,this.returnType&&(e+=" : "+ou(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(yde.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);yde.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${ou(this.id)}${this.memberType==="method"?`(${ou(this.parameters)})${this.returnType?" : "+ou(this.returnType):""}`:""}`;this.text=n.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});function Tde(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}var EE,SE,Ln,xde,kx,Gg,bde,$l,RO,Ex,C0,A0,QHe,zg,wde,kde,ZHe,JHe,eWe,tWe,rWe,nWe,iWe,Ede,aWe,sWe,oWe,MO,lWe,cWe,uWe,hWe,fWe,dWe,pWe,mWe,mf,Sde,IO,Cde,gWe,yWe,vWe,xWe,bWe,wWe,TWe,$g,OO=M(()=>{"use strict";mr();ht();Vt();fr();hr();ki();vde();EE="classId-",SE=[],Ln=new Map,xde=new Map,kx=[],Gg=[],bde=0,$l=new Map,RO=0,Ex=[],C0=o(t=>je.sanitizeText(t,de()),"sanitizeText"),A0=o(function(t){let e=je.sanitizeText(t,de()),r="",n=e;if(e.indexOf("~")>0){let i=e.split("~");n=C0(i[0]),r=C0(i[1])}return{className:n,type:r}},"splitClassNameAndType"),QHe=o(function(t,e){let r=je.sanitizeText(t,de());e&&(e=C0(e));let{className:n}=A0(r);Ln.get(n).label=e,Ln.get(n).text=`${e}${Ln.get(n).type?`<${Ln.get(n).type}>`:""}`},"setClassLabel"),zg=o(function(t){let e=je.sanitizeText(t,de()),{className:r,type:n}=A0(e);if(Ln.has(r))return;let i=je.sanitizeText(r,de());Ln.set(i,{id:i,type:n,label:i,text:`${i}${n?`<${n}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:EE+i+"-"+bde}),bde++},"addClass"),wde=o(function(t,e){let r={id:`interface${Gg.length}`,label:t,classId:e};Gg.push(r)},"addInterface"),kde=o(function(t){let e=je.sanitizeText(t,de());if(Ln.has(e))return Ln.get(e).domId;throw new Error("Class not found: "+e)},"lookUpDomId"),ZHe=o(function(){SE=[],Ln=new Map,kx=[],Gg=[],Ex=[],Ex.push(Sde),$l=new Map,RO=0,IO="TB",_r()},"clear"),JHe=o(function(t){return Ln.get(t)},"getClass"),eWe=o(function(){return Ln},"getClasses"),tWe=o(function(){return SE},"getRelations"),rWe=o(function(){return kx},"getNotes"),nWe=o(function(t){Y.debug("Adding relation: "+JSON.stringify(t));let e=[mf.LOLLIPOP,mf.AGGREGATION,mf.COMPOSITION,mf.DEPENDENCY,mf.EXTENSION];t.relation.type1===mf.LOLLIPOP&&!e.includes(t.relation.type2)?(zg(t.id2),wde(t.id1,t.id2),t.id1=`interface${Gg.length-1}`):t.relation.type2===mf.LOLLIPOP&&!e.includes(t.relation.type1)?(zg(t.id1),wde(t.id2,t.id1),t.id2=`interface${Gg.length-1}`):(zg(t.id1),zg(t.id2)),t.id1=A0(t.id1).className,t.id2=A0(t.id2).className,t.relationTitle1=je.sanitizeText(t.relationTitle1.trim(),de()),t.relationTitle2=je.sanitizeText(t.relationTitle2.trim(),de()),SE.push(t)},"addRelation"),iWe=o(function(t,e){let r=A0(t).className;Ln.get(r).annotations.push(e)},"addAnnotation"),Ede=o(function(t,e){zg(t);let r=A0(t).className,n=Ln.get(r);if(typeof e=="string"){let i=e.trim();i.startsWith("<<")&&i.endsWith(">>")?n.annotations.push(C0(i.substring(2,i.length-2))):i.indexOf(")")>0?n.methods.push(new Tx(i,"method")):i&&n.members.push(new Tx(i,"attribute"))}},"addMember"),aWe=o(function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(r=>Ede(t,r)))},"addMembers"),sWe=o(function(t,e){let r={id:`note${kx.length}`,class:e,text:t};kx.push(r)},"addNote"),oWe=o(function(t){return t.startsWith(":")&&(t=t.substring(1)),C0(t.trim())},"cleanupLabel"),MO=o(function(t,e){t.split(",").forEach(function(r){let n=r;/\d/.exec(r[0])&&(n=EE+n);let i=Ln.get(n);i&&(i.cssClasses+=" "+e)})},"setCssClass"),lWe=o(function(t,e){for(let r of t){let n=xde.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},xde.set(r,n)),e&&e.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)}),Ln.forEach(i=>{i.cssClasses.includes(r)&&i.styles.push(...e.flatMap(a=>a.split(",")))})}},"defineClass"),cWe=o(function(t,e){t.split(",").forEach(function(r){e!==void 0&&(Ln.get(r).tooltip=C0(e))})},"setTooltip"),uWe=o(function(t,e){return e&&$l.has(e)?$l.get(e).classes.get(t).tooltip:Ln.get(t).tooltip},"getTooltip"),hWe=o(function(t,e,r){let n=de();t.split(",").forEach(function(i){let a=i;/\d/.exec(i[0])&&(a=EE+a);let s=Ln.get(a);s&&(s.link=Ut.formatUrl(e,n),n.securityLevel==="sandbox"?s.linkTarget="_top":typeof r=="string"?s.linkTarget=C0(r):s.linkTarget="_blank")}),MO(t,"clickable")},"setLink"),fWe=o(function(t,e,r){t.split(",").forEach(function(n){dWe(n,e,r),Ln.get(n).haveCallback=!0}),MO(t,"clickable")},"setClickEvent"),dWe=o(function(t,e,r){let n=je.sanitizeText(t,de());if(de().securityLevel!=="loose"||e===void 0)return;let a=n;if(Ln.has(a)){let s=kde(a),l=[];if(typeof r=="string"){l=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let u=0;u")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),ze(this).classed("hover",!1)})},"setupToolTips");Ex.push(Sde);IO="TB",Cde=o(()=>IO,"getDirection"),gWe=o(t=>{IO=t},"setDirection"),yWe=o(function(t){$l.has(t)||($l.set(t,{id:t,classes:new Map,children:{},domId:EE+t+"-"+RO}),RO++)},"addNamespace"),vWe=o(function(t){return $l.get(t)},"getNamespace"),xWe=o(function(){return $l},"getNamespaces"),bWe=o(function(t,e){if($l.has(t))for(let r of e){let{className:n}=A0(r);Ln.get(n).parent=t,$l.get(t).classes.set(n,Ln.get(n))}},"addClassesToNamespace"),wWe=o(function(t,e){let r=Ln.get(t);if(!(!e||!r))for(let n of e)n.includes(",")?r.styles.push(...n.split(",")):r.styles.push(n)},"setCssStyle");o(Tde,"getArrowMarker");TWe=o(()=>{let t=[],e=[],r=de();for(let i of $l.keys()){let a=$l.get(i);if(a){let s={id:a.id,label:a.id,isGroup:!0,padding:r.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:r.look};t.push(s)}}for(let i of Ln.keys()){let a=Ln.get(i);if(a){let s=a;s.parentId=a.parent,s.look=r.look,t.push(s)}}let n=0;for(let i of kx){n++;let a={id:i.id,label:i.text,isGroup:!1,shape:"note",padding:r.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${r.themeVariables.noteBkgColor}`,`stroke: ${r.themeVariables.noteBorderColor}`],look:r.look};t.push(a);let s=Ln.get(i.class)?.id??"";if(s){let l={id:`edgeNote${n}`,start:i.id,end:s,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:r.look};e.push(l)}}for(let i of Gg){let a={id:i.id,label:i.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:r.look};t.push(a)}n=0;for(let i of SE){n++;let a={id:p5(i.id1,i.id2,{prefix:"id",counter:n}),start:i.id1,end:i.id2,type:"normal",label:i.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:Tde(i.relation.type1),arrowTypeEnd:Tde(i.relation.type2),startLabelRight:i.relationTitle1==="none"?"":i.relationTitle1,endLabelLeft:i.relationTitle2==="none"?"":i.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:i.style||"",pattern:i.relation.lineType==1?"dashed":"solid",look:r.look};e.push(a)}return{nodes:t,edges:e,other:{},config:r,direction:Cde()}},"getData"),$g={setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,getConfig:o(()=>de().class,"getConfig"),addClass:zg,bindFunctions:pWe,clear:ZHe,getClass:JHe,getClasses:eWe,getNotes:rWe,addAnnotation:iWe,addNote:sWe,getRelations:tWe,addRelation:nWe,getDirection:Cde,setDirection:gWe,addMember:Ede,addMembers:aWe,cleanupLabel:oWe,lineType:mWe,relationType:mf,setClickEvent:fWe,setCssClass:MO,defineClass:lWe,setLink:hWe,getTooltip:uWe,setTooltip:cWe,lookUpDomId:kde,setDiagramTitle:ln,getDiagramTitle:Jr,setClassLabel:QHe,addNamespace:yWe,addClassesToNamespace:bWe,getNamespace:vWe,getNamespaces:xWe,setCssStyle:wWe,getData:TWe}});var kWe,CE,PO=M(()=>{"use strict";kWe=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),CE=kWe});var EWe,SWe,CWe,AE,BO=M(()=>{"use strict";Vt();ht();j5();Fv();uT();hr();EWe=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),SWe=o(function(t,e){return e.db.getClasses()},"getClasses"),CWe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=de(),l=n.db.getData(),u=pm(e,i);l.type=n.type,l.layoutAlgorithm=cT(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Fm(l,u);let h=8;Ut.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),zm(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),AE={getClasses:SWe,draw:CWe,getDir:EWe}});var Ade={};vr(Ade,{diagram:()=>AWe});var AWe,_de=M(()=>{"use strict";NO();OO();PO();BO();AWe={parser:kE,db:$g,renderer:AE,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,$g.clear()},"init")}});var Nde={};vr(Nde,{diagram:()=>NWe});var NWe,Rde=M(()=>{"use strict";NO();OO();PO();BO();NWe={parser:kE,db:$g,renderer:AE,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,$g.clear()},"init")}});var FO,_E,zO=M(()=>{"use strict";FO=function(){var t=o(function(F,B,$,z){for($=$||{},z=F.length;z--;$[F[z]]=B);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,32],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],w=[1,28],_=[1,29],T=[1,30],E=[1,31],L=[1,34],C=[1,35],A=[1,36],I=[1,37],D=[1,33],k=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],R=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],S=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],O={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(B,$,z,W,j,K,ie){var Q=K.length-1;switch(j){case 3:return W.setRootDoc(K[Q]),K[Q];break;case 4:this.$=[];break;case 5:K[Q]!="nl"&&(K[Q-1].push(K[Q]),this.$=K[Q-1]);break;case 6:case 7:this.$=K[Q];break;case 8:this.$="nl";break;case 12:this.$=K[Q];break;case 13:let q=K[Q-1];q.description=W.trimColon(K[Q]),this.$=q;break;case 14:this.$={stmt:"relation",state1:K[Q-2],state2:K[Q]};break;case 15:let Z=W.trimColon(K[Q]);this.$={stmt:"relation",state1:K[Q-3],state2:K[Q-1],description:Z};break;case 19:this.$={stmt:"state",id:K[Q-3],type:"default",description:"",doc:K[Q-1]};break;case 20:var ee=K[Q],J=K[Q-2].trim();if(K[Q].match(":")){var H=K[Q].split(":");ee=H[0],J=[J,H[1]]}this.$={stmt:"state",id:ee,type:"default",description:J};break;case 21:this.$={stmt:"state",id:K[Q-3],type:"default",description:K[Q-5],doc:K[Q-1]};break;case 22:this.$={stmt:"state",id:K[Q],type:"fork"};break;case 23:this.$={stmt:"state",id:K[Q],type:"join"};break;case 24:this.$={stmt:"state",id:K[Q],type:"choice"};break;case 25:this.$={stmt:"state",id:W.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:K[Q-1].trim(),note:{position:K[Q-2].trim(),text:K[Q].trim()}};break;case 29:this.$=K[Q].trim(),W.setAccTitle(this.$);break;case 30:case 31:this.$=K[Q].trim(),W.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:K[Q-1].trim(),classes:K[Q].trim()};break;case 34:this.$={stmt:"style",id:K[Q-1].trim(),styleClass:K[Q].trim()};break;case 35:this.$={stmt:"applyClass",id:K[Q-1].trim(),styleClass:K[Q].trim()};break;case 36:W.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:W.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:W.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:W.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:K[Q].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:K[Q-2].trim(),classes:[K[Q].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:K[Q-2].trim(),classes:[K[Q].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,7]),t(k,[2,8]),t(k,[2,9]),t(k,[2,10]),t(k,[2,11]),t(k,[2,12],{14:[1,39],15:[1,40]}),t(k,[2,16]),{18:[1,41]},t(k,[2,18],{20:[1,42]}),{23:[1,43]},t(k,[2,22]),t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(k,[2,28]),{34:[1,48]},{36:[1,49]},t(k,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(R,[2,42],{55:[1,54]}),t(R,[2,43],{55:[1,55]}),t(k,[2,36]),t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),t(k,[2,6]),t(k,[2,13]),{13:56,24:d,54:D},t(k,[2,17]),t(S,i,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(k,[2,29]),t(k,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(k,[2,14],{14:[1,67]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,68],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(k,[2,32]),t(k,[2,33]),t(k,[2,34]),t(k,[2,35]),t(R,[2,44]),t(R,[2,45]),t(k,[2,15]),t(k,[2,19]),t(S,i,{7:72}),t(k,[2,26]),t(k,[2,27]),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,73],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:o(function(B,$){if($.recoverable)this.trace(B);else{var z=new Error(B);throw z.hash=$,z}},"parseError"),parse:o(function(B){var $=this,z=[0],W=[],j=[null],K=[],ie=this.table,Q="",ee=0,J=0,H=0,q=2,Z=1,ae=K.slice.call(arguments,1),ue=Object.create(this.lexer),ce={yy:{}};for(var te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,te)&&(ce.yy[te]=this.yy[te]);ue.setInput(B,ce.yy),ce.yy.lexer=ue,ce.yy.parser=this,typeof ue.yylloc>"u"&&(ue.yylloc={});var De=ue.yylloc;K.push(De);var oe=ue.options&&ue.options.ranges;typeof ce.yy.parseError=="function"?this.parseError=ce.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(Te){z.length=z.length-2*Te,j.length=j.length-Te,K.length=K.length-Te}o(ke,"popStack");function Fe(){var Te;return Te=W.pop()||ue.lex()||Z,typeof Te!="number"&&(Te instanceof Array&&(W=Te,Te=W.pop()),Te=$.symbols_[Te]||Te),Te}o(Fe,"lex");for(var Be,Ve,Ge,He,xe,X,fe={},he,ge,ne,ye;;){if(Ge=z[z.length-1],this.defaultActions[Ge]?He=this.defaultActions[Ge]:((Be===null||typeof Be>"u")&&(Be=Fe()),He=ie[Ge]&&ie[Ge][Be]),typeof He>"u"||!He.length||!He[0]){var U="";ye=[];for(he in ie[Ge])this.terminals_[he]&&he>q&&ye.push("'"+this.terminals_[he]+"'");ue.showPosition?U="Parse error on line "+(ee+1)+`: +`+ue.showPosition()+` +Expecting `+ye.join(", ")+", got '"+(this.terminals_[Be]||Be)+"'":U="Parse error on line "+(ee+1)+": Unexpected "+(Be==Z?"end of input":"'"+(this.terminals_[Be]||Be)+"'"),this.parseError(U,{text:ue.match,token:this.terminals_[Be]||Be,line:ue.yylineno,loc:De,expected:ye})}if(He[0]instanceof Array&&He.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ge+", token: "+Be);switch(He[0]){case 1:z.push(Be),j.push(ue.yytext),K.push(ue.yylloc),z.push(He[1]),Be=null,Ve?(Be=Ve,Ve=null):(J=ue.yyleng,Q=ue.yytext,ee=ue.yylineno,De=ue.yylloc,H>0&&H--);break;case 2:if(ge=this.productions_[He[1]][1],fe.$=j[j.length-ge],fe._$={first_line:K[K.length-(ge||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(ge||1)].first_column,last_column:K[K.length-1].last_column},oe&&(fe._$.range=[K[K.length-(ge||1)].range[0],K[K.length-1].range[1]]),X=this.performAction.apply(fe,[Q,J,ee,ce.yy,He[1],j,K].concat(ae)),typeof X<"u")return X;ge&&(z=z.slice(0,-1*ge*2),j=j.slice(0,-1*ge),K=K.slice(0,-1*ge)),z.push(this.productions_[He[1]][0]),j.push(fe.$),K.push(fe._$),ne=ie[z[z.length-2]][z[z.length-1]],z.push(ne);break;case 3:return!0}}return!0},"parse")},N=function(){var F={EOF:1,parseError:o(function($,z){if(this.yy.parser)this.yy.parser.parseError($,z);else throw new Error($)},"parseError"),setInput:o(function(B,$){return this.yy=$||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var $=B.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},"input"),unput:o(function(B){var $=B.length,z=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var j=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===W.length?this.yylloc.first_column:0)+W[W.length-z.length].length-z[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[j[0],j[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(B){this.unput(this.match.slice(B))},"less"),pastInput:o(function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var B=this.pastInput(),$=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(B,$){var z,W,j;if(this.options.backtrack_lexer&&(j={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(j.yylloc.range=this.yylloc.range.slice(0))),W=B[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(B[0].length),this.matched+=B[0],z=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var K in j)this[K]=j[K];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,$,z,W;this._more||(this.yytext="",this.match="");for(var j=this._currentRules(),K=0;K$[0].length)){if($=z,W=K,this.options.backtrack_lexer){if(B=this.test_match(z,j[K]),B!==!1)return B;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(B=this.test_match($,j[W]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,z,W,j){var K=j;switch(W){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),z.yytext=z.yytext.substr(2).trim(),31;break;case 67:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return z.yytext=z.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return F}();O.lexer=N;function P(){this.yy={}}return o(P,"Parser"),P.prototype=O,O.Parser=P,new P}();FO.parser=FO;_E=FO});var Ode,LE,Vg,Sx,Pde,Bde,Fde,_0,DE,GO,$O,VO,UO,HO,NE,RE,zde,Gde,WO,YO,$de,Vde,Ug,OWe,Ude,qO,PWe,BWe,Hde,Wde,FWe,Yde,zWe,qde,XO,jO,Xde,ME,jde,KO,IE=M(()=>{"use strict";Ode="LR",LE="TB",Vg="state",Sx="relation",Pde="classDef",Bde="style",Fde="applyClass",_0="default",DE="divider",GO="fill:none",$O="fill: #333",VO="c",UO="text",HO="normal",NE="rect",RE="rectWithTitle",zde="stateStart",Gde="stateEnd",WO="divider",YO="roundedWithTitle",$de="note",Vde="noteGroup",Ug="statediagram",OWe="state",Ude=`${Ug}-${OWe}`,qO="transition",PWe="note",BWe="note-edge",Hde=`${qO} ${BWe}`,Wde=`${Ug}-${PWe}`,FWe="cluster",Yde=`${Ug}-${FWe}`,zWe="cluster-alt",qde=`${Ug}-${zWe}`,XO="parent",jO="note",Xde="state",ME="----",jde=`${ME}${jO}`,KO=`${ME}${XO}`});function QO(t="",e=0,r="",n=ME){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${Xde}-${t}${i}-${e}`}function OE(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{if(r.get(i)){let a=r.get(i);e.cssCompiledStyles=[...e.cssCompiledStyles,...a.styles]}}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function $We(t){return t?.classes?.join(" ")??""}function VWe(t){return t?.styles??[]}var PE,gf,GWe,Kde,Hg,Qde,Zde=M(()=>{"use strict";Vt();ht();fr();IE();PE=new Map,gf=0;o(QO,"stateDomId");GWe=o((t,e,r,n,i,a,s,l)=>{Y.trace("items",e),e.forEach(u=>{switch(u.stmt){case Vg:Hg(t,u,r,n,i,a,s,l);break;case _0:Hg(t,u,r,n,i,a,s,l);break;case Sx:{Hg(t,u.state1,r,n,i,a,s,l),Hg(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+gf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:GO,labelStyle:"",label:je.sanitizeText(u.description,de()),arrowheadStyle:$O,labelpos:VO,labelType:UO,thickness:HO,classes:qO,look:s};i.push(h),gf++}break}})},"setupDoc"),Kde=o((t,e=LE)=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(OE,"insertOrUpdateNode");o($We,"getClassesFromDbInfo");o(VWe,"getStylesFromDbInfo");Hg=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=$We(h),d=VWe(h);if(Y.info("dataFetcher parsedItem",e,h,d),u!=="root"){let p=NE;e.start===!0?p=zde:e.start===!1&&(p=Gde),e.type!==_0&&(p=e.type),PE.get(u)||PE.set(u,{id:u,shape:p,description:je.sanitizeText(u,de()),cssClasses:`${f} ${Ude}`,cssStyles:d});let m=PE.get(u);e.description&&(Array.isArray(m.description)?(m.shape=RE,m.description.push(e.description)):m.description?.length>0?(m.shape=RE,m.description===u?m.description=[e.description]:m.description=[m.description,e.description]):(m.shape=NE,m.description=e.description),m.description=je.sanitizeTextOrArray(m.description,de())),m.description?.length===1&&m.shape===RE&&(m.type==="group"?m.shape=YO:m.shape=NE),!m.type&&e.doc&&(Y.info("Setting cluster for XCX",u,Kde(e)),m.type="group",m.isGroup=!0,m.dir=Kde(e),m.shape=e.type===DE?WO:YO,m.cssClasses=`${m.cssClasses} ${Yde} ${a?qde:""}`);let g={labelStyle:"",shape:m.shape,label:m.description,cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,id:u,dir:m.dir,domId:QO(u,gf),type:m.type,isGroup:m.type==="group",padding:8,rx:10,ry:10,look:s};if(g.shape===WO&&(g.label=""),t&&t.id!=="root"&&(Y.trace("Setting node ",u," to be child of its parent ",t.id),g.parentId=t.id),g.centerLabel=!0,e.note){let y={labelStyle:"",shape:$de,label:e.note.text,cssClasses:Wde,cssStyles:[],cssCompilesStyles:[],id:u+jde+"-"+gf,domId:QO(u,gf,jO),type:m.type,isGroup:m.type==="group",padding:de().flowchart.padding,look:s,position:e.note.position},v=u+KO,x={labelStyle:"",shape:Vde,label:e.note.text,cssClasses:m.cssClasses,cssStyles:[],id:u+KO,domId:QO(u,gf,XO),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};gf++,x.id=v,y.parentId=v,OE(n,x,l),OE(n,y,l),OE(n,g,l);let b=u,w=y.id;e.note.position==="left of"&&(b=y.id,w=u),i.push({id:b+"-"+w,start:b,end:w,arrowhead:"none",arrowTypeEnd:"",style:GO,labelStyle:"",classes:Hde,arrowheadStyle:$O,labelpos:VO,labelType:UO,thickness:HO,look:s})}else OE(n,g,l)}e.doc&&(Y.trace("Adding nodes children "),GWe(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),Qde=o(()=>{PE.clear(),gf=0},"reset")});var ZO,UWe,HWe,Jde,JO=M(()=>{"use strict";Vt();ht();j5();Fv();uT();hr();IE();ZO=o((t,e=LE)=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),UWe=o(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),HWe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=de();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=pm(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Fm(l,u);let h=8;Ut.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),zm(u,h,Ug,a?.useMaxWidth??!0)},"draw"),Jde={getClasses:UWe,draw:HWe,getDir:ZO}});function s0e(){return new Map}function eP(t=""){let e=t;return t===nP&&(Cx++,e=`${n0e}${Cx}`),e}function tP(t="",e=_0){return t===nP?n0e:e}function eYe(t=""){let e=t;return t===i0e&&(Cx++,e=`${a0e}${Cx}`),e}function tYe(t="",e=_0){return t===i0e?a0e:e}function rYe(t,e,r){let n=eP(t.id.trim()),i=tP(t.id.trim(),t.type),a=eP(e.id.trim()),s=tP(e.id.trim(),e.type);yf(n,i,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),yf(a,s,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),zs.relations.push({id1:n,id2:a,relationTitle:je.sanitizeText(r,de())})}var nP,n0e,i0e,a0e,e0e,t0e,WWe,YWe,zE,iP,o0e,GE,Wg,l0e,$E,zs,Cx,r0e,qWe,XWe,BE,jWe,KWe,FE,aP,QWe,yf,c0e,L0,u0e,ZWe,JWe,h0e,rP,nYe,iYe,f0e,aYe,sP,sYe,oYe,lYe,cYe,uYe,hYe,tl,VE=M(()=>{"use strict";ht();hr();fr();Vt();ki();Zde();JO();IE();nP="[*]",n0e="start",i0e=nP,a0e="end",e0e="color",t0e="fill",WWe="bgFill",YWe=",";o(s0e,"newClassesList");zE=[],iP=[],o0e=Ode,GE=[],Wg=s0e(),l0e=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),$E={root:l0e()},zs=$E.root,Cx=0,r0e=0,qWe={LINE:0,DOTTED_LINE:1},XWe={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},BE=o(t=>JSON.parse(JSON.stringify(t)),"clone"),jWe=o(t=>{Y.info("Setting root doc",t),GE=t},"setRootDoc"),KWe=o(()=>GE,"getRootDoc"),FE=o((t,e,r)=>{if(e.stmt===Sx)FE(t,e.state1,!0),FE(t,e.state2,!1);else if(e.stmt===Vg&&(e.id==="[*]"?(e.id=r?t.id+"_start":t.id+"_end",e.start=r):e.id=e.id.trim()),e.doc){let n=[],i=[],a;for(a=0;a0&&i.length>0){let s={stmt:Vg,id:e9(),type:"divider",doc:BE(i)};n.push(BE(s)),e.doc=n}e.doc.forEach(s=>FE(e,s,!0))}},"docTranslator"),aP=o(()=>(FE({id:"root"},{id:"root",doc:GE},!0),{id:"root",doc:GE}),"getRootDocV2"),QWe=o(t=>{let e;t.doc?e=t.doc:e=t,Y.info(e),c0e(!0),Y.info("Extract initial document:",e),e.forEach(a=>{switch(Y.warn("Statement",a.stmt),a.stmt){case Vg:yf(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case Sx:h0e(a.state1,a.state2,a.description);break;case Pde:f0e(a.id.trim(),a.classes);break;case Bde:{let s=a.id.trim().split(","),l=a.styleClass.split(",");s.forEach(u=>{let h=L0(u);if(h===void 0){let f=u.trim();yf(f),h=L0(f)}h.styles=l.map(f=>f.replace(/;/g,"")?.trim())})}break;case Fde:sP(a.id.trim(),a.styleClass);break}});let r=u0e(),i=de().look;Qde(),Hg(void 0,aP(),r,zE,iP,!0,i,Wg),zE.forEach(a=>{if(Array.isArray(a.label)){if(a.description=a.label.slice(1),a.isGroup&&a.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+a.id+"]");a.label=a.label[0]}})},"extract"),yf=o(function(t,e=_0,r=null,n=null,i=null,a=null,s=null,l=null){let u=t?.trim();if(zs.states.has(u)?(zs.states.get(u).doc||(zs.states.get(u).doc=r),zs.states.get(u).type||(zs.states.get(u).type=e)):(Y.info("Adding state ",u,n),zs.states.set(u,{id:u,descriptions:[],type:e,doc:r,note:i,classes:[],styles:[],textStyles:[]})),n&&(Y.info("Setting state description",u,n),typeof n=="string"&&rP(u,n.trim()),typeof n=="object"&&n.forEach(h=>rP(u,h.trim()))),i){let h=zs.states.get(u);h.note=i,h.note.text=je.sanitizeText(h.note.text,de())}a&&(Y.info("Setting state classes",u,a),(typeof a=="string"?[a]:a).forEach(f=>sP(u,f.trim()))),s&&(Y.info("Setting state styles",u,s),(typeof s=="string"?[s]:s).forEach(f=>sYe(u,f.trim()))),l&&(Y.info("Setting state styles",u,s),(typeof l=="string"?[l]:l).forEach(f=>oYe(u,f.trim())))},"addState"),c0e=o(function(t){zE=[],iP=[],$E={root:l0e()},zs=$E.root,Cx=0,Wg=s0e(),t||_r()},"clear"),L0=o(function(t){return zs.states.get(t)},"getState"),u0e=o(function(){return zs.states},"getStates"),ZWe=o(function(){Y.info("Documents = ",$E)},"logDocuments"),JWe=o(function(){return zs.relations},"getRelations");o(eP,"startIdIfNeeded");o(tP,"startTypeIfNeeded");o(eYe,"endIdIfNeeded");o(tYe,"endTypeIfNeeded");o(rYe,"addRelationObjs");h0e=o(function(t,e,r){if(typeof t=="object")rYe(t,e,r);else{let n=eP(t.trim()),i=tP(t),a=eYe(e.trim()),s=tYe(e);yf(n,i),yf(a,s),zs.relations.push({id1:n,id2:a,title:je.sanitizeText(r,de())})}},"addRelation"),rP=o(function(t,e){let r=zs.states.get(t),n=e.startsWith(":")?e.replace(":","").trim():e;r.descriptions.push(je.sanitizeText(n,de()))},"addDescription"),nYe=o(function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},"cleanupLabel"),iYe=o(()=>(r0e++,"divider-id-"+r0e),"getDividerId"),f0e=o(function(t,e=""){Wg.has(t)||Wg.set(t,{id:t,styles:[],textStyles:[]});let r=Wg.get(t);e?.split(YWe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(e0e).exec(n)){let s=i.replace(t0e,WWe).replace(e0e,t0e);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),aYe=o(function(){return Wg},"getClasses"),sP=o(function(t,e){t.split(",").forEach(function(r){let n=L0(r);if(n===void 0){let i=r.trim();yf(i),n=L0(i)}n.classes.push(e)})},"setCssClass"),sYe=o(function(t,e){let r=L0(t);r!==void 0&&r.styles.push(e)},"setStyle"),oYe=o(function(t,e){let r=L0(t);r!==void 0&&r.textStyles.push(e)},"setTextStyle"),lYe=o(()=>o0e,"getDirection"),cYe=o(t=>{o0e=t},"setDirection"),uYe=o(t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),"trimColon"),hYe=o(()=>{let t=de();return{nodes:zE,edges:iP,other:{},config:t,direction:ZO(aP())}},"getData"),tl={getConfig:o(()=>de().state,"getConfig"),getData:hYe,addState:yf,clear:c0e,getState:L0,getStates:u0e,getRelations:JWe,getClasses:aYe,getDirection:lYe,addRelation:h0e,getDividerId:iYe,setDirection:cYe,cleanupLabel:nYe,lineType:qWe,relationType:XWe,logDocuments:ZWe,getRootDoc:KWe,setRootDoc:jWe,getRootDocV2:aP,extract:QWe,trimColon:uYe,getAccTitle:Pr,setAccTitle:Rr,getAccDescription:Fr,setAccDescription:Br,addStyleClass:f0e,setCssClass:sP,addDescription:rP,setDiagramTitle:ln,getDiagramTitle:Jr}});var fYe,UE,oP=M(()=>{"use strict";fYe=o(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),UE=fYe});var lP,dYe,pYe,d0e,mYe,p0e,m0e=M(()=>{"use strict";lP={},dYe=o((t,e)=>{lP[t]=e},"set"),pYe=o(t=>lP[t],"get"),d0e=o(()=>Object.keys(lP),"keys"),mYe=o(()=>d0e().length,"size"),p0e={get:pYe,set:dYe,keys:d0e,size:mYe}});var gYe,yYe,vYe,xYe,y0e,bYe,wYe,TYe,kYe,cP,g0e,v0e,x0e=M(()=>{"use strict";mr();m0e();VE();hr();fr();Vt();ht();gYe=o(t=>t.append("circle").attr("class","start-state").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit).attr("cy",de().state.padding+de().state.sizeUnit),"drawStartState"),yYe=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",de().state.textHeight).attr("class","divider").attr("x2",de().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),vYe=o((t,e)=>{let r=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+2*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",n.width+2*de().state.padding).attr("height",n.height+2*de().state.padding).attr("rx",de().state.radius),r},"drawSimpleState"),xYe=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*de().state.padding).text(m);g||y.attr("dy",de().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+1.3*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",de().state.padding).attr("y",a+de().state.padding*.4+de().state.dividerMargin+de().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",de().state.padding).attr("y1",de().state.padding+a+de().state.dividerMargin/2).attr("y2",de().state.padding+a+de().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*de().state.padding),t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",d+2*de().state.padding).attr("height",f.height+a+2*de().state.padding).attr("rx",de().state.radius),t},"drawDescrState"),y0e=o((t,e,r)=>{let n=de().state.padding,i=2*de().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",de().state.titleShift).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-de().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+de().state.textHeight+de().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",de().state.textHeight*3).attr("rx",de().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",m.height+3+2*de().state.textHeight).attr("rx",de().state.radius),t},"addTitleAndBox"),bYe=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",de().state.sizeUnit+de().state.miniPadding).attr("cx",de().state.padding+de().state.sizeUnit+de().state.miniPadding).attr("cy",de().state.padding+de().state.sizeUnit+de().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit+2).attr("cy",de().state.padding+de().state.sizeUnit+2)),"drawEndState"),wYe=o((t,e)=>{let r=de().state.forkWidth,n=de().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",de().state.padding).attr("y",de().state.padding)},"drawForkJoinState"),TYe=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(je.lineBreakRegex),u=1.25*de().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+de().state.noteMargin),d.attr("y",r+i+1.25*de().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),kYe=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",de().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=TYe(t,0,0,n);return r.attr("height",a+2*de().state.noteMargin),r.attr("width",i+de().state.noteMargin*2),r},"drawNote"),cP=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&gYe(i),e.type==="end"&&bYe(i),(e.type==="fork"||e.type==="join")&&wYe(i,e),e.type==="note"&&kYe(e.note.text,i),e.type==="divider"&&yYe(i),e.type==="default"&&e.descriptions.length===0&&vYe(i,e),e.type==="default"&&e.descriptions.length>0&&xYe(i,e);let a=i.node().getBBox();return n.width=a.width+2*de().state.padding,n.height=a.height+2*de().state.padding,p0e.set(r,n),n},"drawState"),g0e=0,v0e=o(function(t,e,r){let n=o(function(u){switch(u){case tl.relationType.AGGREGATION:return"aggregation";case tl.relationType.EXTENSION:return"extension";case tl.relationType.COMPOSITION:return"composition";case tl.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=Ka().x(function(u){return u.x}).y(function(u){return u.y}).curve(Do),s=t.append("path").attr("d",a(i)).attr("id","edge"+g0e).attr("class","transition"),l="";if(de().state.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),s.attr("marker-end","url("+l+"#"+n(tl.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Ut.calcLabelPosition(e.points),d=je.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let w=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),_=w.node().getBBox();g=Math.max(g,_.width),y=Math.min(y,_.x),Y.info(_.x,h,f+p),p===0&&(p=w.node().getBBox().height,Y.info("Title height",p,f)),m.push(w)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((w,_)=>w.attr("y",f+_*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-de().state.padding/2).attr("y",f-v/2-de().state.padding/2-3.5).attr("width",g+de().state.padding).attr("height",v+de().state.padding),Y.info(x)}g0e++},"drawEdge")});var fo,uP,EYe,SYe,CYe,AYe,b0e,w0e,T0e=M(()=>{"use strict";mr();Pv();Ns();ht();fr();x0e();Vt();ni();uP={},EYe=o(function(){},"setConf"),SYe=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),CYe=o(function(t,e,r,n){fo=de().state;let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let s=i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;Y.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);SYe(u);let h=n.db.getRootDoc();b0e(h,u,void 0,!1,s,l,n);let f=fo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Zr(u,m,g,fo.useMaxWidth),u.attr("viewBox",`${d.x-fo.padding} ${d.y-fo.padding} `+p+" "+m)},"draw"),AYe=o(t=>t?t.length*fo.fontSizeFactor:1,"getLabelWidth"),b0e=o((t,e,r,n,i,a,s)=>{let l=new Mr({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let T=_.parentElement,E=0,L=0;T&&(T.parentElement&&(E=T.parentElement.getBBox().width),L=parseInt(T.getAttribute("data-x-shift"),10),Number.isNaN(L)&&(L=0)),_.setAttribute("x1",0-L+8),_.setAttribute("x2",E-L-8)})):Y.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(Y.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),v0e(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*fo.padding,x.height=v.height+2*fo.padding,Y.debug("Doc rendered",x,l),x},"renderDoc"),w0e={setConf:EYe,draw:CYe}});var k0e={};vr(k0e,{diagram:()=>_Ye});var _Ye,E0e=M(()=>{"use strict";zO();VE();oP();T0e();_Ye={parser:_E,db:tl,renderer:w0e,styles:UE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,tl.clear()},"init")}});var A0e={};vr(A0e,{diagram:()=>RYe});var RYe,_0e=M(()=>{"use strict";zO();VE();oP();JO();RYe={parser:_E,db:tl,renderer:Jde,styles:UE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,tl.clear()},"init")}});var hP,N0e,R0e=M(()=>{"use strict";hP=function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var w=x.length-1;switch(v){case 1:return x[w-1];case 2:this.$=[];break;case 3:x[w-1].push(x[w]),this.$=x[w-1];break;case 4:case 5:this.$=x[w];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[w].substr(6)),this.$=x[w].substr(6);break;case 9:this.$=x[w].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[w].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[w].substr(8)),this.$=x[w].substr(8);break;case 13:y.addTask(x[w-1],x[w]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,w="",_=0,T=0,E=0,L=2,C=1,A=x.slice.call(arguments,1),I=Object.create(this.lexer),D={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(D.yy[k]=this.yy[k]);I.setInput(p,D.yy),D.yy.lexer=I,D.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var R=I.yylloc;x.push(R);var S=I.options&&I.options.ranges;typeof D.yy.parseError=="function"?this.parseError=D.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(H){g.length=g.length-2*H,v.length=v.length-H,x.length=x.length-H}o(O,"popStack");function N(){var H;return H=y.pop()||I.lex()||C,typeof H!="number"&&(H instanceof Array&&(y=H,H=y.pop()),H=m.symbols_[H]||H),H}o(N,"lex");for(var P,F,B,$,z,W,j={},K,ie,Q,ee;;){if(B=g[g.length-1],this.defaultActions[B]?$=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=N()),$=b[B]&&b[B][P]),typeof $>"u"||!$.length||!$[0]){var J="";ee=[];for(K in b[B])this.terminals_[K]&&K>L&&ee.push("'"+this.terminals_[K]+"'");I.showPosition?J="Parse error on line "+(_+1)+`: +`+I.showPosition()+` +Expecting `+ee.join(", ")+", got '"+(this.terminals_[P]||P)+"'":J="Parse error on line "+(_+1)+": Unexpected "+(P==C?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(J,{text:I.match,token:this.terminals_[P]||P,line:I.yylineno,loc:R,expected:ee})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+B+", token: "+P);switch($[0]){case 1:g.push(P),v.push(I.yytext),x.push(I.yylloc),g.push($[1]),P=null,F?(P=F,F=null):(T=I.yyleng,w=I.yytext,_=I.yylineno,R=I.yylloc,E>0&&E--);break;case 2:if(ie=this.productions_[$[1]][1],j.$=v[v.length-ie],j._$={first_line:x[x.length-(ie||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ie||1)].first_column,last_column:x[x.length-1].last_column},S&&(j._$.range=[x[x.length-(ie||1)].range[0],x[x.length-1].range[1]]),W=this.performAction.apply(j,[w,T,_,D.yy,$[1],v,x].concat(A)),typeof W<"u")return W;ie&&(g=g.slice(0,-1*ie*2),v=v.slice(0,-1*ie),x=x.slice(0,-1*ie)),g.push(this.productions_[$[1]][0]),v.push(j.$),x.push(j._$),Q=b[g[g.length-2]][g[g.length-1]],g.push(Q);break;case 3:return!0}}return!0},"parse")},h=function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d}();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f}();hP.parser=hP;N0e=hP});var Yg,fP,Ax,_x,PYe,BYe,FYe,zYe,GYe,$Ye,VYe,M0e,UYe,dP,I0e=M(()=>{"use strict";Vt();ki();Yg="",fP=[],Ax=[],_x=[],PYe=o(function(){fP.length=0,Ax.length=0,Yg="",_x.length=0,_r()},"clear"),BYe=o(function(t){Yg=t,fP.push(t)},"addSection"),FYe=o(function(){return fP},"getSections"),zYe=o(function(){let t=M0e(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),$Ye=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:Yg,type:Yg,people:a,task:t,score:n};_x.push(s)},"addTask"),VYe=o(function(t){let e={section:Yg,type:Yg,description:t,task:t,classes:[]};Ax.push(e)},"addTaskOrg"),M0e=o(function(){let t=o(function(r){return _x[r].processed},"compileTask"),e=!0;for(let[r,n]of _x.entries())t(r),e=e&&n.processed;return e},"compileTasks"),UYe=o(function(){return GYe()},"getActors"),dP={getConfig:o(()=>de().journey,"getConfig"),clear:PYe,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addSection:BYe,getSections:FYe,getTasks:zYe,addTask:$Ye,addTaskOrg:VYe,getActors:UYe}});var HYe,O0e,P0e=M(()=>{"use strict";HYe=o(t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,"getStyles"),O0e=HYe});var pP,WYe,F0e,z0e,YYe,qYe,B0e,XYe,jYe,G0e,KYe,qg,$0e=M(()=>{"use strict";mr();qy();pP=o(function(t,e){return md(t,e)},"drawRect"),WYe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=El().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=El().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),F0e=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),z0e=o(function(t,e){return DY(t,e)},"drawText"),YYe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,z0e(t,e)},"drawLabel"),qYe=o(function(t,e,r){let n=t.append("g"),i=Sl();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,pP(n,i),G0e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),B0e=-1,XYe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");B0e++;let a=300+5*30;i.append("line").attr("id","task"+B0e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),WYe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=Sl();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,pP(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};F0e(i,f),l+=10}),G0e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),jYe=o(function(t,e){Y3(t,e)},"drawBackgroundRect"),G0e=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let i=Yu[n].color,a={cx:20,cy:r,r:7,fill:i,stroke:"#000",pos:Yu[n].position};qg.drawCircle(t,a);let s={x:40,y:r+7,fill:"#666",text:n,textMargin:e.boxTextMargin|5};qg.drawText(t,s),r+=20})}var QYe,Yu,HE,D0,JYe,rl,mP,V0e,eqe,gP,U0e=M(()=>{"use strict";mr();$0e();Vt();ni();QYe=o(function(t){Object.keys(t).forEach(function(r){HE[r]=t[r]})},"setConf"),Yu={};o(ZYe,"drawActorLegend");HE=de().journey,D0=HE.leftMargin,JYe=o(function(t,e,r,n){let i=de().journey,a=de().securityLevel,s;a==="sandbox"&&(s=ze("#i"+e));let l=a==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body");rl.init();let u=l.select("#"+e);qg.initGraphics(u);let h=n.db.getTasks(),f=n.db.getDiagramTitle(),d=n.db.getActors();for(let x in Yu)delete Yu[x];let p=0;d.forEach(x=>{Yu[x]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),ZYe(u),rl.insert(0,0,D0,Object.keys(Yu).length*50),eqe(u,h,0);let m=rl.getBounds();f&&u.append("text").text(f).attr("x",D0).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=m.stopy-m.starty+2*i.diagramMarginY,y=D0+m.stopx+2*i.diagramMarginX;Zr(u,g,y,i.useMaxWidth),u.append("line").attr("x1",D0).attr("y1",i.height*4).attr("x2",y-D0-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let v=f?70:0;u.attr("viewBox",`${m.startx} -25 ${y} ${g+v}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",g+v+25)},"draw"),rl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=de().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(rl.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(rl.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(rl.data,"startx",i,Math.min),this.updateVal(rl.data,"starty",s,Math.min),this.updateVal(rl.data,"stopx",a,Math.max),this.updateVal(rl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},mP=HE.sectionFills,V0e=HE.sectionColours,eqe=o(function(t,e,r){let n=de().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=mP[l%mP.length],f=l%mP.length,h=V0e[l%V0e.length];let g=0,y=p.section;for(let x=d;x(Yu[y]&&(g[y]=Yu[y]),g),{});p.x=d*n.taskMargin+d*n.width+D0,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,qg.drawTask(t,p,n),rl.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},"drawTasks"),gP={setConf:QYe,draw:JYe}});var H0e={};vr(H0e,{diagram:()=>tqe});var tqe,W0e=M(()=>{"use strict";R0e();I0e();P0e();U0e();tqe={parser:N0e,db:dP,renderer:gP,styles:O0e,init:o(t=>{gP.setConf(t.journey),dP.clear()},"init")}});var vP,Z0e,J0e=M(()=>{"use strict";vP=function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,w){var _=b.length-1;switch(x){case 1:return b[_-1];case 2:this.$=[];break;case 3:b[_-1].push(b[_]),this.$=b[_-1];break;case 4:case 5:this.$=b[_];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[_].substr(6)),this.$=b[_].substr(6);break;case 9:this.$=b[_].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[_].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[_].substr(8)),this.$=b[_].substr(8);break;case 15:v.addTask(b[_],0,""),this.$=b[_];break;case 16:v.addEvent(b[_].substr(2)),this.$=b[_];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],w=this.table,_="",T=0,E=0,L=0,C=2,A=1,I=b.slice.call(arguments,1),D=Object.create(this.lexer),k={yy:{}};for(var R in this.yy)Object.prototype.hasOwnProperty.call(this.yy,R)&&(k.yy[R]=this.yy[R]);D.setInput(m,k.yy),k.yy.lexer=D,k.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var S=D.yylloc;b.push(S);var O=D.options&&D.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(q){y.length=y.length-2*q,x.length=x.length-q,b.length=b.length-q}o(N,"popStack");function P(){var q;return q=v.pop()||D.lex()||A,typeof q!="number"&&(q instanceof Array&&(v=q,q=v.pop()),q=g.symbols_[q]||q),q}o(P,"lex");for(var F,B,$,z,W,j,K={},ie,Q,ee,J;;){if($=y[y.length-1],this.defaultActions[$]?z=this.defaultActions[$]:((F===null||typeof F>"u")&&(F=P()),z=w[$]&&w[$][F]),typeof z>"u"||!z.length||!z[0]){var H="";J=[];for(ie in w[$])this.terminals_[ie]&&ie>C&&J.push("'"+this.terminals_[ie]+"'");D.showPosition?H="Parse error on line "+(T+1)+`: +`+D.showPosition()+` +Expecting `+J.join(", ")+", got '"+(this.terminals_[F]||F)+"'":H="Parse error on line "+(T+1)+": Unexpected "+(F==A?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(H,{text:D.match,token:this.terminals_[F]||F,line:D.yylineno,loc:S,expected:J})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+F);switch(z[0]){case 1:y.push(F),x.push(D.yytext),b.push(D.yylloc),y.push(z[1]),F=null,B?(F=B,B=null):(E=D.yyleng,_=D.yytext,T=D.yylineno,S=D.yylloc,L>0&&L--);break;case 2:if(Q=this.productions_[z[1]][1],K.$=x[x.length-Q],K._$={first_line:b[b.length-(Q||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(Q||1)].first_column,last_column:b[b.length-1].last_column},O&&(K._$.range=[b[b.length-(Q||1)].range[0],b[b.length-1].range[1]]),j=this.performAction.apply(K,[_,E,T,k.yy,z[1],x,b].concat(I)),typeof j<"u")return j;Q&&(y=y.slice(0,-1*Q*2),x=x.slice(0,-1*Q),b=b.slice(0,-1*Q)),y.push(this.productions_[z[1]][0]),x.push(K.$),b.push(K._$),ee=w[y[y.length-2]][y[y.length-1]],y.push(ee);break;case 3:return!0}}return!0},"parse")},f=function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p}();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d}();vP.parser=vP;Z0e=vP});var bP={};vr(bP,{addEvent:()=>lpe,addSection:()=>ipe,addTask:()=>ope,addTaskOrg:()=>cpe,clear:()=>npe,default:()=>uqe,getCommonDb:()=>rpe,getSections:()=>ape,getTasks:()=>spe});var Xg,tpe,xP,WE,jg,rpe,npe,ipe,ape,spe,ope,lpe,cpe,epe,uqe,upe=M(()=>{"use strict";ki();Xg="",tpe=0,xP=[],WE=[],jg=[],rpe=o(()=>iy,"getCommonDb"),npe=o(function(){xP.length=0,WE.length=0,Xg="",jg.length=0,_r()},"clear"),ipe=o(function(t){Xg=t,xP.push(t)},"addSection"),ape=o(function(){return xP},"getSections"),spe=o(function(){let t=epe(),e=100,r=0;for(;!t&&rr.id===tpe-1).events.push(t)},"addEvent"),cpe=o(function(t){let e={section:Xg,type:Xg,description:t,task:t,classes:[]};WE.push(e)},"addTaskOrg"),epe=o(function(){let t=o(function(r){return jg[r].processed},"compileTask"),e=!0;for(let[r,n]of jg.entries())t(r),e=e&&n.processed;return e},"compileTasks"),uqe={clear:npe,getCommonDb:rpe,addSection:ipe,getSections:ape,getTasks:spe,addTask:ope,addTaskOrg:cpe,addEvent:lpe}});function ppe(t,e){t.each(function(){var r=ze(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var hqe,YE,fqe,dqe,fpe,pqe,mqe,hpe,gqe,yqe,vqe,wP,dpe,xqe,bqe,wqe,Tqe,vf,mpe=M(()=>{"use strict";mr();hqe=12,YE=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),fqe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=El().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=El().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),dqe=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),fpe=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),pqe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,fpe(t,e)},"drawLabel"),mqe=o(function(t,e,r){let n=t.append("g"),i=wP();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,YE(n,i),dpe(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),hpe=-1,gqe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");hpe++;let a=300+5*30;i.append("line").attr("id","task"+hpe).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),fqe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=wP();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,YE(i,s),dpe(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),yqe=o(function(t,e){YE(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),vqe=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),wP=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),dpe=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";mr();mpe();ht();Vt();ni();kqe=o(function(t,e,r,n){let i=de(),a=i.leftMargin??50;Y.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=ze("#i"+e));let h=(s==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();Y.debug("task",f),vf.initGraphics(h);let p=n.db.getSections();Y.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let w=0,_=!0;p.forEach(function(A){let I={number:w,descr:A,section:w,width:150,padding:20,maxHeight:m},D=vf.getVirtualNodeHeight(h,I,i);Y.debug("sectionHeight before draw",D),m=Math.max(m,D+20)});let T=0,E=0;Y.debug("tasks.length",f.length);for(let[A,I]of f.entries()){let D={number:A,descr:I,section:I.section,width:150,padding:20,maxHeight:g},k=vf.getVirtualNodeHeight(h,D,i);Y.debug("taskHeight before draw",k),g=Math.max(g,k+20),T=Math.max(T,I.events.length);let R=0;for(let S of I.events){let O={descr:S,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};R+=vf.getVirtualNodeHeight(h,O,i)}E=Math.max(E,R)}Y.debug("maxSectionHeight before draw",m),Y.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(A=>{let I=f.filter(S=>S.section===A),D={number:w,descr:A,section:w,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};Y.debug("sectionNode",D);let k=h.append("g"),R=vf.drawNode(k,D,w,i);Y.debug("sectionNode output",R),k.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&gpe(h,I,w,x,b,g,i,T,E,m,!1),x+=200*Math.max(I.length,1),b=v,w++}):(_=!1,gpe(h,f,w,x,b,g,i,T,E,m,!0));let L=h.node().getBBox();Y.debug("bounds",L),d&&h.append("text").text(d).attr("x",L.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=_?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",L.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),_o(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),gpe=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};Y.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=vf.drawNode(m,p,r,s).height;if(Y.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+Eqe(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+(f?a:h)+u+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),Eqe=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};Y.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=vf.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),ype={setConf:o(()=>{},"setConf"),draw:kqe}});var Sqe,Cqe,xpe,bpe=M(()=>{"use strict";To();Sqe=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Sqe(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),xpe=Cqe});var wpe={};vr(wpe,{diagram:()=>Aqe});var Aqe,Tpe=M(()=>{"use strict";J0e();upe();vpe();bpe();Aqe={db:bP,renderer:ype,parser:Z0e,styles:xpe}});var TP,Spe,Cpe=M(()=>{"use strict";TP=function(){var t=o(function(_,T,E,L){for(E=E||{},L=_.length;L--;E[_[L]]=T);return E},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(T,E,L,C,A,I,D){var k=I.length-1;switch(A){case 6:case 7:return C;case 8:C.getLogger().trace("Stop NL ");break;case 9:C.getLogger().trace("Stop EOF ");break;case 11:C.getLogger().trace("Stop NL2 ");break;case 12:C.getLogger().trace("Stop EOF2 ");break;case 15:C.getLogger().info("Node: ",I[k].id),C.addNode(I[k-1].length,I[k].id,I[k].descr,I[k].type);break;case 16:C.getLogger().trace("Icon: ",I[k]),C.decorateNode({icon:I[k]});break;case 17:case 21:C.decorateNode({class:I[k]});break;case 18:C.getLogger().trace("SPACELIST");break;case 19:C.getLogger().trace("Node: ",I[k].id),C.addNode(0,I[k].id,I[k].descr,I[k].type);break;case 20:C.decorateNode({icon:I[k]});break;case 25:C.getLogger().trace("node found ..",I[k-2]),this.$={id:I[k-1],descr:I[k-1],type:C.getType(I[k-2],I[k])};break;case 26:this.$={id:I[k],descr:I[k],type:C.nodeType.DEFAULT};break;case 27:C.getLogger().trace("node found ..",I[k-3]),this.$={id:I[k-3],descr:I[k-1],type:C.getType(I[k-2],I[k])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var L=new Error(T);throw L.hash=E,L}},"parseError"),parse:o(function(T){var E=this,L=[0],C=[],A=[null],I=[],D=this.table,k="",R=0,S=0,O=0,N=2,P=1,F=I.slice.call(arguments,1),B=Object.create(this.lexer),$={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&($.yy[z]=this.yy[z]);B.setInput(T,$.yy),$.yy.lexer=B,$.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var W=B.yylloc;I.push(W);var j=B.options&&B.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function K(ke){L.length=L.length-2*ke,A.length=A.length-ke,I.length=I.length-ke}o(K,"popStack");function ie(){var ke;return ke=C.pop()||B.lex()||P,typeof ke!="number"&&(ke instanceof Array&&(C=ke,ke=C.pop()),ke=E.symbols_[ke]||ke),ke}o(ie,"lex");for(var Q,ee,J,H,q,Z,ae={},ue,ce,te,De;;){if(J=L[L.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((Q===null||typeof Q>"u")&&(Q=ie()),H=D[J]&&D[J][Q]),typeof H>"u"||!H.length||!H[0]){var oe="";De=[];for(ue in D[J])this.terminals_[ue]&&ue>N&&De.push("'"+this.terminals_[ue]+"'");B.showPosition?oe="Parse error on line "+(R+1)+`: +`+B.showPosition()+` +Expecting `+De.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":oe="Parse error on line "+(R+1)+": Unexpected "+(Q==P?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(oe,{text:B.match,token:this.terminals_[Q]||Q,line:B.yylineno,loc:W,expected:De})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+Q);switch(H[0]){case 1:L.push(Q),A.push(B.yytext),I.push(B.yylloc),L.push(H[1]),Q=null,ee?(Q=ee,ee=null):(S=B.yyleng,k=B.yytext,R=B.yylineno,W=B.yylloc,O>0&&O--);break;case 2:if(ce=this.productions_[H[1]][1],ae.$=A[A.length-ce],ae._$={first_line:I[I.length-(ce||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(ce||1)].first_column,last_column:I[I.length-1].last_column},j&&(ae._$.range=[I[I.length-(ce||1)].range[0],I[I.length-1].range[1]]),Z=this.performAction.apply(ae,[k,S,R,$.yy,H[1],A,I].concat(F)),typeof Z<"u")return Z;ce&&(L=L.slice(0,-1*ce*2),A=A.slice(0,-1*ce),I=I.slice(0,-1*ce)),L.push(this.productions_[H[1]][0]),A.push(ae.$),I.push(ae._$),te=D[L[L.length-2]][L[L.length-1]],L.push(te);break;case 3:return!0}}return!0},"parse")},b=function(){var _={EOF:1,parseError:o(function(E,L){if(this.yy.parser)this.yy.parser.parseError(E,L);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,L=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var C=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===C.length?this.yylloc.first_column:0)+C[C.length-L.length].length-L[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var L,C,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),C=T[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],L=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var I in A)this[I]=A[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,L,C;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),I=0;IE[0].length)){if(E=L,C=I,this.options.backtrack_lexer){if(T=this.test_match(L,A[I]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,A[C]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,L,C,A){var I=A;switch(C){case 0:return E.getLogger().trace("Found comment",L.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:E.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return E.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:E.getLogger().trace("end icon"),this.popState();break;case 10:return E.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return E.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return E.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return E.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:E.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return E.getLogger().trace("description:",L.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),E.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),E.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),E.getLogger().trace("node end ...",L.yytext),"NODE_DEND";break;case 30:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return E.getLogger().trace("Long description:",L.yytext),20;break;case 36:return E.getLogger().trace("Long description:",L.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return _}();x.lexer=b;function w(){this.yy={}}return o(w,"Parser"),w.prototype=x,x.Parser=w,new w}();TP.parser=TP;Spe=TP});var Vl,Ape,kP,Nqe,Rqe,Mqe,Iqe,Ui,Oqe,Pqe,Bqe,Fqe,zqe,Gqe,$qe,_pe,Lpe=M(()=>{"use strict";Vt();fr();ht();hs();Vl=[],Ape=0,kP={},Nqe=o(()=>{Vl=[],Ape=0,kP={}},"clear"),Rqe=o(function(t){for(let e=Vl.length-1;e>=0;e--)if(Vl[e].levelVl.length>0?Vl[0]:null,"getMindmap"),Iqe=o((t,e,r,n)=>{Y.info("addNode",t,e,r,n);let i=de(),a=i.mindmap?.padding??ur.mindmap.padding;switch(n){case Ui.ROUNDED_RECT:case Ui.RECT:case Ui.HEXAGON:a*=2}let s={id:Ape++,nodeId:Tr(e,i),level:t,descr:Tr(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:a},l=Rqe(t);if(l)l.children.push(s),Vl.push(s);else if(Vl.length===0)Vl.push(s);else throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')},"addNode"),Ui={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Oqe=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Ui.RECT;case"(":return e===")"?Ui.ROUNDED_RECT:Ui.CLOUD;case"((":return Ui.CIRCLE;case")":return Ui.CLOUD;case"))":return Ui.BANG;case"{{":return Ui.HEXAGON;default:return Ui.DEFAULT}},"getType"),Pqe=o((t,e)=>{kP[t]=e},"setElementForId"),Bqe=o(t=>{if(!t)return;let e=de(),r=Vl[Vl.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.class=Tr(t.class,e))},"decorateNode"),Fqe=o(t=>{switch(t){case Ui.DEFAULT:return"no-border";case Ui.RECT:return"rect";case Ui.ROUNDED_RECT:return"rounded-rect";case Ui.CIRCLE:return"circle";case Ui.CLOUD:return"cloud";case Ui.BANG:return"bang";case Ui.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),zqe=o(()=>Y,"getLogger"),Gqe=o(t=>kP[t],"getElementById"),$qe={clear:Nqe,addNode:Iqe,getMindmap:Mqe,nodeType:Ui,getType:Oqe,setElementForId:Pqe,decorateNode:Bqe,type2Str:Fqe,getLogger:zqe,getElementById:Gqe},_pe=$qe});function Yi(t){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yi(t)}function JP(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Dpe(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,s=!1,l;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return a=u.done,u},"n"),e:o(function(u){s=!0,l=u},"e"),f:o(function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw l}},"f")}}function pXe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function mXe(t,e){return e={exports:{}},t(e,e.exports),e.exports}function TXe(t){for(var e=t.length;e--&&wXe.test(t.charAt(e)););return e}function SXe(t){return t&&t.slice(0,kXe(t)+1).replace(EXe,"")}function DXe(t){var e=_Xe.call(t,Lx),r=t[Lx];try{t[Lx]=void 0;var n=!0}catch{}var i=LXe.call(t);return n&&(e?t[Lx]=r:delete t[Lx]),i}function IXe(t){return MXe.call(t)}function FXe(t){return t==null?t===void 0?BXe:PXe:Ipe&&Ipe in Object(t)?NXe(t):OXe(t)}function zXe(t){return t!=null&&typeof t=="object"}function VXe(t){return typeof t=="symbol"||GXe(t)&&tge(t)==$Xe}function qXe(t){if(typeof t=="number")return t;if(eb(t))return Ope;if(F0(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=F0(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=CXe(t);var r=HXe.test(t);return r||WXe.test(t)?YXe(t.slice(2),r?2:8):UXe.test(t)?Ope:+t}function QXe(t,e,r){var n,i,a,s,l,u,h=0,f=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(XXe);e=Ppe(e)||0,F0(r)&&(f=!!r.leading,d="maxWait"in r,a=d?jXe(Ppe(r.maxWait)||0,e):a,p="trailing"in r?!!r.trailing:p);function m(E){var L=n,C=i;return n=i=void 0,h=E,s=t.apply(C,L),s}o(m,"invokeFunc");function g(E){return h=E,l=setTimeout(x,e),f?m(E):s}o(g,"leadingEdge");function y(E){var L=E-u,C=E-h,A=e-L;return d?KXe(A,a-C):A}o(y,"remainingWait");function v(E){var L=E-u,C=E-h;return u===void 0||L>=e||L<0||d&&C>=a}o(v,"shouldInvoke");function x(){var E=EP();if(v(E))return b(E);l=setTimeout(x,y(E))}o(x,"timerExpired");function b(E){return l=void 0,p&&n?m(E):(n=i=void 0,s)}o(b,"trailingEdge");function w(){l!==void 0&&clearTimeout(l),h=0,n=u=i=l=void 0}o(w,"cancel");function _(){return l===void 0?s:b(EP())}o(_,"flush");function T(){var E=EP(),L=v(E);if(n=arguments,i=this,u=E,L){if(l===void 0)return g(u);if(d)return clearTimeout(l),l=setTimeout(x,e),m(u)}return l===void 0&&(l=setTimeout(x,e)),s}return o(T,"debounced"),T.cancel=w,T.flush=_,T}function D6(t,e,r,n,i,a){var s;return ti(t)?s=t:s=u1[t]||u1.euclidean,e===0&&ti(t)?s(i,a):s(e,r,n,i,a)}function UKe(t,e){if(N6(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||eb(t)?!0:VKe.test(t)||!$Ke.test(t)||e!=null&&t in Object(e)}function jKe(t){if(!F0(t))return!1;var e=tge(t);return e==YKe||e==qKe||e==WKe||e==XKe}function ZKe(t){return!!rme&&rme in t}function rQe(t){if(t!=null){try{return tQe.call(t)}catch{}try{return t+""}catch{}}return""}function hQe(t){if(!F0(t)||JKe(t))return!1;var e=KKe(t)?uQe:aQe;return e.test(nQe(t))}function dQe(t,e){return t?.[e]}function mQe(t,e){var r=pQe(t,e);return fQe(r)?r:void 0}function yQe(){this.__data__=qx?qx(null):{},this.size=0}function xQe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function EQe(t){var e=this.__data__;if(qx){var r=e[t];return r===wQe?void 0:r}return kQe.call(e,t)?e[t]:void 0}function _Qe(t){var e=this.__data__;return qx?e[t]!==void 0:AQe.call(e,t)}function NQe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=qx&&e===void 0?DQe:e,this}function p1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}function WQe(t,e){var r=this.__data__,n=R6(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function m1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function Ige(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:LJe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?k=S:D=S;while(Math.abs(R)>s&&++O=a?b(I,O):N===0?O:_(I,D,D+h)}o(T,"getTForX");var E=!1;function L(){E=!0,(t!==e||r!==n)&&w()}o(L,"precompute");var C=o(function(D){return E||L(),t===e&&r===n?D:D===0?0:D===1?1:v(T(D),e,n)},"f");C.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var A="generateBezier("+[t,e,r,n]+")";return C.toString=function(){return A},C}function wme(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function Tme(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function Zg(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=Tme(t,i),l=Tme(e,i);if(xt(s)&&xt(l))return wme(a,s,l,r,n);if(wn(s)&&wn(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=c6[m].apply(null,g)):s.easingImpl=c6[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var w={};Mx(x.x,b.x)&&(w.x=Zg(x.x,b.x,v,y)),Mx(x.y,b.y)&&(w.y=Zg(x.y,b.y,v,y)),t.position(w)}var _=s.startPan,T=s.pan,E=a.pan,L=T!=null&&n;L&&(Mx(_.x,T.x)&&(E.x=Zg(_.x,T.x,v,y)),Mx(_.y,T.y)&&(E.y=Zg(_.y,T.y,v,y)),t.emit("pan"));var C=s.startZoom,A=s.zoom,I=A!=null&&n;I&&(Mx(C,A)&&(a.zoom=Wx(a.minZoom,Zg(C,A,v,y),a.maxZoom)),t.emit("zoom")),(L||I)&&t.emit("viewport");var D=s.style;if(D&&D.length>0&&i){for(var k=0;k=0;L--){var C=E[L];C()}E.splice(0,E.length)},"callbacks"),b=m.length-1;b>=0;b--){var w=m[b],_=w._private;if(_.stopped){m.splice(b,1),_.hooked=!1,_.playing=!1,_.started=!1,x(_.frames);continue}!_.playing&&!_.applying||(_.playing&&_.applying&&(_.applying=!1),_.started||UJe(f,w,t),VJe(f,w,t,d),_.applying&&(_.applying=!1),x(_.frames),_.step!=null&&_.step(t),w.completed()&&(m.splice(b,1),_.hooked=!1,_.playing=!1,_.started=!1,x(_.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function Qge(t){this.options=ir({},QJe,ZJe,t)}function Zge(t){this.options=ir({},JJe,t)}function Jge(t){this.options=ir({},eet,t)}function G6(t){this.options=ir({},tet,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function t1e(t){this.options=ir({},xet,t)}function vB(t){this.options=ir({},bet,t)}function r1e(t){this.options=ir({},wet,t)}function n1e(t){this.options=ir({},Tet,t)}function i1e(t){this.options=t,this.notifications=0}function o1e(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function bB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Cet(t,e,r,n,i),{cx:WP,cy:YP,radius:O0,startX:a1e,startY:s1e,stopX:qP,stopY:XP,startAngle:$c.ang+Math.PI/2*P0,endAngle:nl.ang-Math.PI/2*P0,counterClockwise:f6})}function l1e(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+a,r),t.lineTo(e+n-a,r),t.quadraticCurveTo(e+n,r,e+n,r+a),t.lineTo(e+n,r+i-a),t.quadraticCurveTo(e+n,r+i,e+n-a,r+i),t.lineTo(e+a,r+i),t.quadraticCurveTo(e,r+i,e,r+i-a),t.lineTo(e,r+a),t.quadraticCurveTo(e,r,e+a,r),t.closePath(),s?t.stroke():t.fill()}function ptt(t,e){for(var r=atob(t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a{"use strict";o(Yi,"_typeof");o(JP,"_classCallCheck");o(Dpe,"_defineProperties");o(eB,"_createClass");o(Hme,"_defineProperty$1");o(Ul,"_slicedToArray");o(Vqe,"_arrayWithHoles");o(Uqe,"_iterableToArrayLimit");o(Wme,"_unsupportedIterableToArray");o(Npe,"_arrayLikeToArray");o(Hqe,"_nonIterableRest");o(Yme,"_createForOfIteratorHelper");Hi=typeof window>"u"?null:window,Rpe=Hi?Hi.navigator:null;Hi&&Hi.document;Wqe=Yi(""),qme=Yi({}),Yqe=Yi(function(){}),qqe=typeof HTMLElement>"u"?"undefined":Yi(HTMLElement),Zx=o(function(e){return e&&e.instanceString&&ti(e.instanceString)?e.instanceString():null},"instanceStr"),Zt=o(function(e){return e!=null&&Yi(e)==Wqe},"string"),ti=o(function(e){return e!=null&&Yi(e)===Yqe},"fn"),wn=o(function(e){return!po(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Vr=o(function(e){return e!=null&&Yi(e)===qme&&!wn(e)&&e.constructor===Object},"plainObject"),Xqe=o(function(e){return e!=null&&Yi(e)===qme},"object"),xt=o(function(e){return e!=null&&Yi(e)===Yi(1)&&!isNaN(e)},"number"),jqe=o(function(e){return xt(e)&&Math.floor(e)===e},"integer"),p6=o(function(e){if(qqe!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),po=o(function(e){return Jx(e)||Xme(e)},"elementOrCollection"),Jx=o(function(e){return Zx(e)==="collection"&&e._private.single},"element"),Xme=o(function(e){return Zx(e)==="collection"&&!e._private.single},"collection"),tB=o(function(e){return Zx(e)==="core"},"core"),jme=o(function(e){return Zx(e)==="stylesheet"},"stylesheet"),Kqe=o(function(e){return Zx(e)==="event"},"event"),Sf=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),Qqe=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),Zqe=o(function(e){return Vr(e)&&xt(e.x1)&&xt(e.x2)&&xt(e.y1)&&xt(e.y2)},"boundingBox"),Jqe=o(function(e){return Xqe(e)&&ti(e.then)},"promise"),eXe=o(function(){return Rpe&&Rpe.userAgent.match(/msie|trident|edge/i)},"ms"),$x=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),oXe=o(function(e,r){return-1*Qme(e,r)},"descending"),ir=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+nXe+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),uXe=o(function(e){var r,n=new RegExp("^"+tXe+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),hXe=o(function(e){return dXe[e.toLowerCase()]},"colorname2tuple"),fXe=o(function(e){return(wn(e)?e:null)||hXe(e)||lXe(e)||uXe(e)||cXe(e)},"color2tuple"),dXe={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Zme=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:t1,n=r,i;i=e.next(),!i.done;)n=n*nge+i.value|0;return n},"hashIterableInts"),Vx=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t1;return r*nge+e|0},"hashInt"),Ux=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ox;return(r<<5)+r+e|0},"hashIntAlt"),JXe=o(function(e,r){return e*2097152+r},"combineHashes"),xf=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),qE=o(function(e,r){return[Vx(e[0],r[0]),Ux(e[1],r[1])]},"hashArrays"),eje=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0&&!(e[i]===r&&(e.splice(i,1),n));i--);},"removeFromArray"),aB=o(function(e){e.splice(0,e.length)},"clearArray"),oje=o(function(e,r){for(var n=0;n"u"?"undefined":Yi(Set))!==cje?Set:uje,_6=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!tB(e)){hi("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){hi("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new f1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];wn(r.classes)?h=r.classes:Zt(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;fb?1:0},"defaultCmp"),f=o(function(x,b,w,_,T){var E;if(w==null&&(w=0),T==null&&(T=n),w<0)throw new Error("lo must be non-negative");for(_==null&&(_=x.length);w<_;)E=i((w+_)/2),T(b,x[E])<0?_=E:w=E+1;return[].splice.apply(x,[w,w-w].concat(b)),b},"insort"),l=o(function(x,b,w){return w==null&&(w=n),x.push(b),y(x,0,x.length-1,w)},"heappush"),s=o(function(x,b){var w,_;return b==null&&(b=n),w=x.pop(),x.length?(_=x[0],x[0]=w,v(x,0,b)):_=w,_},"heappop"),h=o(function(x,b,w){var _;return w==null&&(w=n),_=x[0],x[0]=b,v(x,0,w),_},"heapreplace"),u=o(function(x,b,w){var _;return w==null&&(w=n),x.length&&w(x[0],b)<0&&(_=[x[0],b],b=_[0],x[0]=_[1],v(x,0,w)),b},"heappushpop"),a=o(function(x,b){var w,_,T,E,L,C;for(b==null&&(b=n),E=function(){C=[];for(var A=0,I=i(x.length/2);0<=I?AI;0<=I?A++:A--)C.push(A);return C}.apply(this).reverse(),L=[],_=0,T=E.length;_D;0<=D?++C:--C)k.push(s(x,w));return k},"nsmallest"),y=o(function(x,b,w,_){var T,E,L;for(_==null&&(_=n),T=x[w];w>b;){if(L=w-1>>1,E=x[L],_(T,E)<0){x[w]=E,w=L;continue}break}return x[w]=T},"_siftdown"),v=o(function(x,b,w){var _,T,E,L,C;for(w==null&&(w=n),T=x.length,C=b,E=x[b],_=2*b+1;_0;){var E=b.pop(),L=v(E),C=E.id();if(p[C]=L,L!==1/0)for(var A=E.neighborhood().intersect(g),I=0;I0)for(F.unshift(P);d[$];){var z=d[$];F.unshift(z.edge),F.unshift(z.node),B=z.node,$=B.id()}return l.spawn(F)},"pathTo")}},"dijkstra")},pje={kruskal:o(function(e){e=e||function(w){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(_){for(var T=0;T0;){if(T(),L++,_===f){for(var C=[],A=a,I=f,D=x[I];C.unshift(A),D!=null&&C.unshift(D),A=v[I],A!=null;)I=A.id(),D=x[I];return{found:!0,distance:d[_],path:this.spawn(C),steps:L}}m[_]=!0;for(var k=w._private.edges,R=0;RD&&(g[I]=D,b[I]=A,w[I]=T),!a){var k=A*f+C;!a&&g[k]>D&&(g[k]=D,b[k]=C,w[k]=T)}}}for(var R=0;R1&&arguments[1]!==void 0?arguments[1]:s,Be=w(ke),Ve=[],Ge=Be;;){if(Ge==null)return r.spawn();var He=b(Ge),xe=He.edge,X=He.pred;if(Ve.unshift(Ge[0]),Ge.same(Fe)&&Ve.length>0)break;xe!=null&&Ve.unshift(xe),Ge=X}return u.spawn(Ve)},"pathTo"),E=0;E=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=Tje(a,e,r),n--}return r},"contractUntil"),kje={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(F){return F.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/wje);if(a<2){hi("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),Lje=o(function(e){return Math.PI*e/180},"deg2rad"),XE=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),sB=Math.log2||function(t){return Math.log(t)/Math.log(2)},hge=o(function(e){return e>0?1:e<0?-1:0},"signum"),G0=o(function(e,r){return Math.sqrt(M0(e,r))},"dist"),M0=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),Dje=o(function(e){for(var r=e.length,n=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),Rje=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),Mje=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Ije=o(function(e,r,n){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+n,y2:e.y2+n,w:e.w,h:e.h}},"shiftBoundingBox"),fge=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),Oje=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),a6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),s6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=Ul(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Gpe=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),oB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),c1=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),Pje=o(function(e,r){return c1(e,r.x,r.y)},"pointInBoundingBox"),dge=o(function(e,r){return c1(e,r.x1,r.y1)&&c1(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),pge=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?$0(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=Tf(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var w=n+f+l,_=i-d+h-l,T=w,E=i+d-h+l;if(g=Tf(e,r,n,i,w,_,T,E,!1),g.length>0)return g}if(p){var L=n-f+h-l,C=i+d+l,A=n+f-h+l,I=C;if(g=Tf(e,r,n,i,L,C,A,I,!1),g.length>0)return g}if(m){var D=n-f-l,k=i-d+h-l,R=D,S=i+d-h+l;if(g=Tf(e,r,n,i,D,k,R,S,!1),g.length>0)return g}var O;{var N=n-f+h,P=i-d+h;if(O=Px(e,r,n,i,N,P,h+l),O.length>0&&O[0]<=N&&O[1]<=P)return[O[0],O[1]]}{var F=n+f-h,B=i-d+h;if(O=Px(e,r,n,i,F,B,h+l),O.length>0&&O[0]>=F&&O[1]<=B)return[O[0],O[1]]}{var $=n+f-h,z=i+d-h;if(O=Px(e,r,n,i,$,z,h+l),O.length>0&&O[0]>=$&&O[1]>=z)return[O[0],O[1]]}{var W=n-f+h,j=i+d-h;if(O=Px(e,r,n,i,W,j,h+l),O.length>0&&O[0]<=W&&O[1]>=j)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),Bje=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),Fje=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),zje=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),Gje=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),$je=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=1*9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=1*3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];Gje(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,w,_,T=0;T=0?_h?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),Gs=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),ju=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=v6(f,-h);y=y6(v)}else y=f;return Gs(e,r,y)},"pointInsidePolygon"),Uje=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var w=b[0]*u[0]+e,_=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[w,_];var T=b[1]*u[0]+e,E=b[1]*u[1]+r;return[w,_,T,E]}else return[w,_]},"intersectLineCircle"),AP=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),Tf=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var w=v/b,_=x/b,T=.001,E=0-T,L=1+T;return E<=w&&w<=L&&E<=_&&_<=L?[e+w*d,r+w*g]:h?[e+w*d,r+w*g]:[]}else return v===0||x===0?AP(e,n,l)===l?[l,u]:AP(e,n,a)===a?[a,s]:AP(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),Yx=o(function(e,r,n,i,a,s,l,u){var h=[],f,d=new Array(n.length),p=!0;s==null&&(p=!1);var m;if(p){for(var g=0;g0){var y=v6(d,-u);m=y6(y)}else m=d}else m=n;for(var v,x,b,w,_=0;_2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=_)},"set"),get:o(function(w){return h[w]},"get")},p=0;p0?N=O.edgesTo(S)[0]:N=S.edgesTo(O)[0];var P=i(N);S=S.id(),C[S]>C[k]+P&&(C[S]=C[k]+P,A.nodes.indexOf(S)<0?A.push(S):A.updateItem(S),L[S]=0,E[S]=[]),C[S]==C[k]+P&&(L[S]=L[S]+L[k],E[S].push(k))}else for(var F=0;F0;){for(var W=T.pop(),j=0;j0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),aKe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:lKe,l=i,u,h,f=0;f=2?Dx(e,r,n,0,Wpe,cKe):Dx(e,r,n,0,Hpe)},"euclidean"),squaredEuclidean:o(function(e,r,n){return Dx(e,r,n,0,Wpe)},"squaredEuclidean"),manhattan:o(function(e,r,n){return Dx(e,r,n,0,Hpe)},"manhattan"),max:o(function(e,r,n){return Dx(e,r,n,-1/0,uKe)},"max")};u1["squared-euclidean"]=u1.squaredEuclidean;u1.squaredeuclidean=u1.squaredEuclidean;o(D6,"clusteringDistance");hKe=wa({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),cB=o(function(e){return hKe(e)},"setOptions"),x6=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return D6(e,i.length,l,u,h,f)},"getDist"),_P=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),pKe=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),Qpe=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=Qpe(e,r,n),i},"assign"),Zpe=o(function(e){for(var r=this.cy(),n=this.nodes(),i=_Ke(e),a={},s=0;s=D?(k=D,D=S,R=O):S>k&&(k=S);for(var N=0;N0?1:0;L[A%i.minIterations*l+W]=j,z+=j}if(z>0&&(A>=i.minIterations-1||A==i.maxIterations-1)){for(var K=0,ie=0;ie1||E>1)&&(l=!0),d[w]=[],b.outgoers().forEach(function(C){C.isEdge()&&d[w].push(C.id())})}else p[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var _=b.degree(!0);_%2&&(u?h?l=!0:h=w:u=w),d[w]=[],b.connectedEdges().forEach(function(T){return d[w].push(T.id())})}else p[w]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(w){for(var _=w,T=[w],E,L,C;d[_].length;)E=d[_].shift(),L=p[E][0],C=p[E][1],_!=C?(d[C]=d[C].filter(function(A){return A!=E}),_=C):!a&&_!=L&&(d[L]=d[L].filter(function(A){return A!=E}),_=L),T.unshift(E),T.unshift(_);return T},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},QE=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(w){var _=w.id(),T=w.connectedEdges().intersection(e);v.merge(w),r[_].cutVertex?v.merge(T.filter(function(E){return E.isLoop()})):v.merge(T)})}),a.push(v)},"buildComponent"),h=o(function d(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,w;y.forEach(function(_){v=_.source().id(),x=_.target().id(),b=v===m?x:v,b!==g&&(w=_.id(),l[w]||(l[w]=!0,s.push({x:m,y:b,edge:_})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(d(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),PKe={hopcroftTarjanBiconnected:QE,htbc:QE,htb:QE,hopcroftTarjanBiconnectedComponents:QE},ZE=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function u(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||u(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),BKe={tarjanStronglyConnected:ZE,tsc:ZE,tscc:ZE,tarjanStronglyConnectedComponents:ZE},wge={};[Hx,dje,pje,gje,vje,bje,kje,Xje,a1,s1,zP,oKe,bKe,CKe,MKe,OKe,PKe,BKe].forEach(function(t){ir(wge,t)});Tge=0,kge=1,Ege=2,Ku=o(function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Tge,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Ku.prototype={fulfill:o(function(e){return Jpe(this,kge,"fulfillValue",e)},"fulfill"),reject:o(function(e){return Jpe(this,Ege,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Ku;return n.onFulfilled.push(tme(e,i,"fulfill")),n.onRejected.push(tme(r,i,"reject")),Sge(n),i.proxy},"then")};Jpe=o(function(e,r,n,i){return e.state===Tge&&(e.state=r,e[n]=i,Sge(e)),e},"deliver"),Sge=o(function(e){e.state===kge?eme(e,"onFulfilled",e.fulfillValue):e.state===Ege&&eme(e,"onRejected",e.rejectReason)},"execute"),eme=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){wn(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};o6.className=o6.classNames=o6.classes;$r={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Wi,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};$r.variable="(?:[\\w-.]|(?:\\\\"+$r.metaChar+"))+";$r.className="(?:[\\w-]|(?:\\\\"+$r.metaChar+"))+";$r.value=$r.string+"|"+$r.number;$r.id=$r.variable;(function(){var t,e,r;for(t=$r.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&($r.comparatorOp+="|\\!"+e)})();pn=o(function(){return{checks:[]}},"newQuery"),Pt={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},$P=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return oXe(t.selector,e.selector)}),KZe=function(){for(var t={},e,r=0;r<$P.length;r++)e=$P[r],t[e.selector]=e.matches;return t}(),QZe=o(function(e,r){return KZe[e](r)},"stateSelectorMatches"),ZZe="("+$P.map(function(t){return t.selector}).join("|")+")",Kg=o(function(e){return e.replace(new RegExp("\\\\("+$r.metaChar+")","g"),function(r,n){return n})},"cleanMetaChars"),bf=o(function(e,r,n){e[e.length-1]=n},"replaceLastQuery"),VP=[{name:"group",query:!0,regex:"("+$r.group+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.GROUP,value:a==="*"?a:a+"s"})},"populate")},{name:"state",query:!0,regex:ZZe,populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.STATE,value:a})},"populate")},{name:"id",query:!0,regex:"\\#("+$r.id+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.ID,value:Kg(a)})},"populate")},{name:"className",query:!0,regex:"\\.("+$r.className+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.CLASS,value:Kg(a)})},"populate")},{name:"dataExists",query:!0,regex:"\\[\\s*("+$r.variable+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.DATA_EXIST,field:Kg(a)})},"populate")},{name:"dataCompare",query:!0,regex:"\\[\\s*("+$r.variable+")\\s*("+$r.comparatorOp+")\\s*("+$r.value+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,3),a=i[0],s=i[1],l=i[2],u=new RegExp("^"+$r.string+"$").exec(l)!=null;u?l=l.substring(1,l.length-1):l=parseFloat(l),r.checks.push({type:Pt.DATA_COMPARE,field:Kg(a),operator:s,value:l})},"populate")},{name:"dataBool",query:!0,regex:"\\[\\s*("+$r.boolOp+")\\s*("+$r.variable+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,2),a=i[0],s=i[1];r.checks.push({type:Pt.DATA_BOOL,field:Kg(s),operator:a})},"populate")},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+$r.meta+")\\s*("+$r.comparatorOp+")\\s*("+$r.number+")\\s*\\]\\]",populate:o(function(e,r,n){var i=Ul(n,3),a=i[0],s=i[1],l=i[2];r.checks.push({type:Pt.META_COMPARE,field:Kg(a),operator:s,value:parseFloat(l)})},"populate")},{name:"nextQuery",separator:!0,regex:$r.separator,populate:o(function(e,r){var n=e.currentSubject,i=e.edgeCount,a=e.compoundCount,s=e[e.length-1];n!=null&&(s.subject=n,e.currentSubject=null),s.edgeCount=i,s.compoundCount=a,e.edgeCount=0,e.compoundCount=0;var l=e[e.length++]=pn();return l},"populate")},{name:"directedEdge",separator:!0,regex:$r.directedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=r,a=pn();return n.checks.push({type:Pt.DIRECTED_EDGE,source:i,target:a}),bf(e,r,n),e.edgeCount++,a}else{var s=pn(),l=r,u=pn();return s.checks.push({type:Pt.NODE_SOURCE,source:l,target:u}),bf(e,r,s),e.edgeCount++,u}},"populate")},{name:"undirectedEdge",separator:!0,regex:$r.undirectedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=r,a=pn();return n.checks.push({type:Pt.UNDIRECTED_EDGE,nodes:[i,a]}),bf(e,r,n),e.edgeCount++,a}else{var s=pn(),l=r,u=pn();return s.checks.push({type:Pt.NODE_NEIGHBOR,node:l,neighbor:u}),bf(e,r,s),u}},"populate")},{name:"child",separator:!0,regex:$r.child,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=pn(),a=e[e.length-1];return n.checks.push({type:Pt.CHILD,parent:a,child:i}),bf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=pn(),l=e[e.length-1],u=pn(),h=pn(),f=pn(),d=pn();return s.checks.push({type:Pt.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:Pt.TRUE}],d.checks.push({type:Pt.TRUE}),u.checks.push({type:Pt.PARENT,parent:d,child:f}),bf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=pn(),m=pn(),g=[{type:Pt.PARENT,parent:p,child:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"descendant",separator:!0,regex:$r.descendant,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=pn(),a=e[e.length-1];return n.checks.push({type:Pt.DESCENDANT,ancestor:a,descendant:i}),bf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=pn(),l=e[e.length-1],u=pn(),h=pn(),f=pn(),d=pn();return s.checks.push({type:Pt.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:Pt.TRUE}],d.checks.push({type:Pt.TRUE}),u.checks.push({type:Pt.ANCESTOR,ancestor:d,descendant:f}),bf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=pn(),m=pn(),g=[{type:Pt.ANCESTOR,ancestor:p,descendant:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"subject",modifier:!0,regex:$r.subject,populate:o(function(e,r){if(e.currentSubject!=null&&e.currentSubject!==r)return on("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=r;var n=e[e.length-1],i=n.checks[0],a=i==null?null:i.type;a===Pt.DIRECTED_EDGE?i.type=Pt.NODE_TARGET:a===Pt.UNDIRECTED_EDGE&&(i.type=Pt.NODE_NEIGHBOR,i.node=i.nodes[1],i.neighbor=i.nodes[0],i.nodes=null)},"populate")}];VP.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});JZe=o(function(e){for(var r,n,i,a=0;a0&&f.edgeCount>0)return on("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return on("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&on("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),rJe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return Zt(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case Pt.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case Pt.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case Pt.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case Pt.DATA_EXIST:{var w=f.field;return"["+w+"]"}case Pt.META_COMPARE:{var _=f.operator,T=f.field;return"[["+T+n(e(_))+r(m)+"]]"}case Pt.STATE:return m;case Pt.ID:return"#"+m;case Pt.CLASS:return"."+m;case Pt.PARENT:case Pt.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case Pt.ANCESTOR:case Pt.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case Pt.COMPOUND_SPLIT:{var E=a(f.left,d),L=a(f.subject,d),C=a(f.right,d);return E+(E.length>0?" ":"")+L+C}case Pt.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,Ige)};o(Oge,"addParent");h1.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,Oge)};o(uJe,"addParentAndChildren");h1.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,uJe)};h1.ancestors=h1.parents;Xx=Pge={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:sn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:sn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};Xx.attr=Xx.data;Xx.removeAttr=Xx.removeData;hJe=Pge,I6={};o(DP,"defineDegreeFunction");ir(I6,{degree:DP(function(t,e){return e.source().same(e.target())?2:1}),indegree:DP(function(t,e){return e.target().same(t)?1:0}),outdegree:DP(function(t,e){return e.source().same(t)?1:0})});o(Qg,"defineDegreeBoundsFunction");ir(I6,{minDegree:Qg("degree",function(t,e){return te}),minIndegree:Qg("indegree",function(t,e){return te}),minOutdegree:Qg("outdegree",function(t,e){return te})});ir(I6,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};Yl.modelPosition=Yl.point=Yl.position;Yl.modelPositions=Yl.points=Yl.positions;Yl.renderedPoint=Yl.renderedPosition;Yl.relativePoint=Yl.relativePosition;fJe=Bge;o1=Df={};Df.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Df.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Df.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(A,I,D){var k=0,R=0,S=I+D;return A>0&&S>0&&(k=I/S*A,R=D/S*A),{biasDiff:k,biasComplementDiff:R}}o(m,"computeBiasValues");function g(A,I,D,k){if(D.units==="%")switch(k){case"width":return A>0?D.pfValue*A:0;case"height":return I>0?D.pfValue*I:0;case"average":return A>0&&I>0?D.pfValue*(A+I)/2:0;case"min":return A>0&&I>0?A>I?D.pfValue*I:D.pfValue*A:0;case"max":return A>0&&I>0?A>I?D.pfValue*A:D.pfValue*I:0;default:return 0}else return D.units==="px"?D.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=m(f.width.val-d.w,y,v),_=w.biasDiff,T=w.biasComplementDiff,E=m(f.height.val-d.h,x,b),L=E.biasDiff,C=E.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-_+d.x1+d.x2+T)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-L+d.y1+d.y2+C)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),I0=o(function(e,r){return r==null?e:Hl(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Nx=o(function(e,r,n){return Wl(e,r,n)},"prefixedProperty"),JE=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,a6(d,1),Hl(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),NP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=Nx(s,"labelWidth",n),d=Nx(s,"labelHeight",n),p=Nx(s,"labelX",n),m=Nx(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,w=r.pstyle("text-border-width").pfValue,_=w/2,T=r.pstyle("text-background-padding").pfValue,E=2,L=d,C=f,A=C/2,I=L/2,D,k,R,S;if(v)D=p-A,k=p+A,R=m-I,S=m+I;else{switch(u.value){case"left":D=p-C,k=p;break;case"center":D=p-A,k=p+A;break;case"right":D=p,k=p+C;break}switch(h.value){case"top":R=m-L,S=m;break;case"center":R=m-I,S=m+I;break;case"bottom":R=m,S=m+L;break}}D+=g-Math.max(b,_)-T-E,k+=g+Math.max(b,_)+T+E,R+=y-Math.max(b,_)-T-E,S+=y+Math.max(b,_)+T+E;var O=n||"main",N=a.labelBounds,P=N[O]=N[O]||{};P.x1=D,P.y1=R,P.x2=k,P.y2=S,P.w=k-D,P.h=S-R;var F=v&&x.strValue==="autorotate",B=x.pfValue!=null&&x.pfValue!==0;if(F||B){var $=F?Nx(a.rstyle,"labelAngle",n):x.pfValue,z=Math.cos($),W=Math.sin($),j=(D+k)/2,K=(R+S)/2;if(!v){switch(u.value){case"left":j=k;break;case"right":j=D;break}switch(h.value){case"top":K=S;break;case"bottom":K=R;break}}var ie=o(function(ue,ce){return ue=ue-j,ce=ce-K,{x:ue*z-ce*W+j,y:ue*W+ce*z+K}},"rotate"),Q=ie(D,R),ee=ie(D,S),J=ie(k,R),H=ie(k,S);D=Math.min(Q.x,ee.x,J.x,H.x),k=Math.max(Q.x,ee.x,J.x,H.x),R=Math.min(Q.y,ee.y,J.y,H.y),S=Math.max(Q.y,ee.y,J.y,H.y)}var q=O+"Rot",Z=N[q]=N[q]||{};Z.x1=D,Z.y1=R,Z.x2=k,Z.y2=S,Z.w=k-D,Z.h=S-R,Hl(e,D,R,k,S),Hl(a.labelBounds.all,D,R,k,S)}return e}},"updateBoundsFromLabel"),dJe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value;if(n>0&&i>0){var a=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,l=i+a,u=(e.w+l*2)/e.w,h=(e.h+l*2)/e.h,f=0,d=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(e.w+l*2.4)/e.w,d=-l/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(e.w+l*2.4)/e.w:s==="star"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.6)/e.h,d=-l/3.8):s==="triangle"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.4)/e.h,d=-l/1.4):s==="vee"&&(u=(e.w+l*4.4)/e.w,h=(e.h+l*3.8)/e.h,d=-l*.5);var p=e.h*h-e.h,m=e.w*u-e.w;if(s6(e,[Math.ceil(p/2),Math.ceil(m/2)]),f!=0||d!==0){var g=Ije(e,f,d);fge(e,g)}}}},"updateBoundsFromOutline"),pJe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=$s(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(De){return De.pstyle("display").value!=="none"},"isDisplayed"),w=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(w){var _=0,T=0;i&&r.includeOverlays&&(_=e.pstyle("overlay-opacity").value,_!==0&&(T=e.pstyle("overlay-padding").value));var E=0,L=0;i&&r.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(L=e.pstyle("underlay-padding").value));var C=Math.max(T,L),A=0,I=0;if(i&&(A=e.pstyle("width").pfValue,I=A/2),u&&r.includeNodes){var D=e.position();g=D.x,y=D.y;var k=e.outerWidth(),R=k/2,S=e.outerHeight(),O=S/2;f=g-R,d=g+R,p=y-O,m=y+O,Hl(s,f,p,d,m),i&&r.includeOutlines&&dJe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var N=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,Hl(s,f,p,d,m),N==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var F=f;f=d,d=F}if(p>m){var B=p;p=m,m=B}Hl(s,f-I,p-I,d+I,m+I)}}else if(N==="bezier"||N==="unbundled-bezier"||N.endsWith("segments")||N.endsWith("taxi")){var $;switch(N){case"bezier":case"unbundled-bezier":$=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":$=v.linePts;break}if($!=null)for(var z=0;z<$.length;z++){var W=$[z];f=W.x-I,d=W.x+I,p=W.y-I,m=W.y+I,Hl(s,f,p,d,m)}}}else{var j=e.source(),K=j.position(),ie=e.target(),Q=ie.position();if(f=K.x,d=Q.x,p=K.y,m=Q.y,f>d){var ee=f;f=d,d=ee}if(p>m){var J=p;p=m,m=J}f-=I,d+=I,p-=I,m+=I,Hl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(JE(s,e,"mid-source"),JE(s,e,"mid-target"),JE(s,e,"source"),JE(s,e,"target")),i){var H=e.pstyle("ghost").value==="yes";if(H){var q=e.pstyle("ghost-offset-x").pfValue,Z=e.pstyle("ghost-offset-y").pfValue;Hl(s,s.x1+q,s.y1+Z,s.x2+q,s.y2+Z)}}var ae=l.bodyBounds=l.bodyBounds||{};Gpe(ae,s),s6(ae,x),a6(ae,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,Hl(s,f-C,p-C,d+C,m+C));var ue=l.overlayBounds=l.overlayBounds||{};Gpe(ue,s),s6(ue,x),a6(ue,1);var ce=l.labelBounds=l.labelBounds||{};ce.all!=null?Mje(ce.all):ce.all=$s(),i&&r.includeLabels&&(r.includeMainLabels&&NP(s,e,null),h&&(r.includeSourceLabels&&NP(s,e,"source"),r.includeTargetLabels&&NP(s,e,"target")))}return s.x1=il(s.x1),s.y1=il(s.y1),s.x2=il(s.x2),s.y2=il(s.y2),s.w=il(s.x2-s.x1),s.h=il(s.y2-s.y1),s.w>0&&s.h>0&&w&&(s6(s,x),a6(s,1)),s},"boundingBoxImpl"),zge=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Lf.removeAllListeners=function(){return this.removeListener("*")};Lf.emit=Lf.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,wn(e)||(e=[e]),DJe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(f){var d=n[f];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===_Je)&&a.eventMatches(a.context,d,s)){var p=[s];e!=null&&oje(p,e),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(y){return y!==d}));var m=a.callbackContext(a.context,d,s),g=d.callback.apply(m,p);a.afterEmit(a.context,d,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&Zt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":Yi(Symbol))!=e&&Yi(Symbol.iterator)!=e;r&&(b6[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return Hme({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){this.cleanStyle();var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Vr(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(Zt(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});Ba.neighbourhood=Ba.neighborhood;Ba.closedNeighbourhood=Ba.closedNeighborhood;Ba.openNeighbourhood=Ba.openNeighborhood;ir(Ba,{source:al(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:al(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:vme({attr:"source"}),targets:vme({attr:"target"})});o(vme,"defineSourceFunction");ir(Ba,{edgesWith:al(xme(),"edgesWith"),edgesTo:al(xme({thisIsSrc:!0}),"edgesTo")});o(xme,"defineEdgesWithFunction");ir(Ba,{connectedEdges:al(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});Ba.componentsOf=Ba.components;ba=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){hi("A collection must have a reference to the core");return}var a=new Uc,s=!1;if(!r)r=[];else if(r.length>0&&Vr(r[0])&&!Jx(r[0])){s=!0;for(var l=[],u=new f1,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var B=l.length===r.length?r:new ba(n,l),$=0;$0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(S){for(var O=S._private.edges,N=0;N0&&(t?D.emitAndNotify("remove"):e&&D.emit("remove"));for(var k=0;kf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")}(),Dn=o(function(e,r,n,i){var a=GJe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),c6={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Dn(.25,.1,.25,1),"ease-in":Dn(.42,0,1,1),"ease-out":Dn(0,0,.58,1),"ease-in-out":Dn(.42,0,.58,1),"ease-in-sine":Dn(.47,0,.745,.715),"ease-out-sine":Dn(.39,.575,.565,1),"ease-in-out-sine":Dn(.445,.05,.55,.95),"ease-in-quad":Dn(.55,.085,.68,.53),"ease-out-quad":Dn(.25,.46,.45,.94),"ease-in-out-quad":Dn(.455,.03,.515,.955),"ease-in-cubic":Dn(.55,.055,.675,.19),"ease-out-cubic":Dn(.215,.61,.355,1),"ease-in-out-cubic":Dn(.645,.045,.355,1),"ease-in-quart":Dn(.895,.03,.685,.22),"ease-out-quart":Dn(.165,.84,.44,1),"ease-in-out-quart":Dn(.77,0,.175,1),"ease-in-quint":Dn(.755,.05,.855,.06),"ease-out-quint":Dn(.23,1,.32,1),"ease-in-out-quint":Dn(.86,0,.07,1),"ease-in-expo":Dn(.95,.05,.795,.035),"ease-out-expo":Dn(.19,1,.22,1),"ease-in-out-expo":Dn(1,0,0,1),"ease-in-circ":Dn(.6,.04,.98,.335),"ease-out-circ":Dn(.075,.82,.165,1),"ease-in-out-circ":Dn(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return c6.linear;var i=$Je(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Dn};o(wme,"getEasedValue");o(Tme,"getValue");o(Zg,"ease");o(VJe,"step$1");o(Mx,"valid");o(UJe,"startAnimation");o(kme,"stepAll");HJe={animate:sn.animate(),animation:sn.animation(),animated:sn.animated(),clearQueue:sn.clearQueue(),delay:sn.delay(),delayAnimation:sn.delayAnimation(),stop:sn.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&m6(o(function(a){kme(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){kme(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},WJe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&Jx(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},r6=o(function(e){return Zt(e)?new Af(e):e},"argSelector"),Kge={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new O6(WJe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,r6(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,r6(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,r6(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,r6(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};sn.eventAliasesOn(Kge);UP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};UP.jpeg=UP.jpg;u6={layout:o(function(e){var r=this;if(e==null){hi("Layout options must be specified to make a layout");return}if(e.name==null){hi("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){hi("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;Zt(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(ir({},e,{cy:r,eles:a}));return s},"layout")};u6.createLayout=u6.makeLayout=u6.layout;YJe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};HP.invalidateDimensions=HP.resize;h6={collection:o(function(e,r){return Zt(e)?this.$(e):po(e)?e.collection():wn(e)?(r||(r={}),new ba(this,e,r.unique,r.removed)):new ba(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};h6.elements=h6.filter=h6.$;za={},zx="t",XJe="f";za.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(_=1),l.color){var E=n.valueMin[0],L=n.valueMax[0],C=n.valueMin[1],A=n.valueMax[1],I=n.valueMin[2],D=n.valueMax[2],k=n.valueMin[3]==null?1:n.valueMin[3],R=n.valueMax[3]==null?1:n.valueMax[3],S=[Math.round(E+(L-E)*_),Math.round(C+(A-C)*_),Math.round(I+(D-I)*_),Math.round(k+(R-k)*_)];a={bypass:n.bypass,name:n.name,value:S,strValue:"rgb("+S[0]+", "+S[1]+", "+S[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*_;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var N=n.field.split("."),P=d.data,F=0;F0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(w):w()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};za.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);l!=null&&l(r,n)&&a(s)};za.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};za.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||n==="bezier")&&t.parallelEdges().forEach(function(a){a.isBundledBezier()&&a.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||n==="none")&&t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};za.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n)};nb={};nb.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){on("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new Af(d);if(p.invalid){on("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){on("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],w=x[2],_=e.properties[b];if(!_){on("Skipping property: Invalid property name in: "+s),u();continue}var T=r.parse(b,w);if(!T){on("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:w}),u()}if(g){l();break}r.selector(d);for(var E=0;E=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return on("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var w;if(u?w=e.split(/\s+/):wn(e)?w=e:w=[e],h.evenMultiple&&w.length%2!==0)return null;for(var _=[],T=[],E=[],L="",C=!1,A=0;A0?" ":"")+I.strValue}return h.validate&&!h.validate(_,T)?null:h.singleEnum&&C?_.length===1&&Zt(_[0])?{name:t,value:_[0],strValue:_[0],bypass:r}:null:{name:t,value:_,pfValue:E,strValue:L,bypass:r,units:T}}var D=o(function(){for(var H=0;Hh.max||h.strictMax&&e===h.max))return null;var N={name:t,value:e,strValue:""+e+(k||""),units:k,bypass:r};return h.unitless||k!=="px"&&k!=="em"?N.pfValue=e:N.pfValue=k==="px"||!k?e:this.getEmSizeInPixels()*e,(k==="ms"||k==="s")&&(N.pfValue=k==="ms"?e:1e3*e),(k==="deg"||k==="rad")&&(N.pfValue=k==="rad"?e:Lje(e)),k==="%"&&(N.pfValue=e/100),N}else if(h.propList){var P=[],F=""+e;if(F!=="none"){for(var B=F.split(/\s*,\s*|\s+/),$=0;$0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),xt(e)?s=e:Vr(e)&&(s=e.level,e.position!=null?a=L6(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;xt(h.x)&&(r.pan.x=h.x,l=!1),xt(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(Zt(e)){var n=e;e=this.mutableElements().filter(n)}else po(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};U0.centre=U0.center;U0.autolockNodes=U0.autolock;U0.autoungrabifyNodes=U0.autoungrabify;Kx={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Kx.attr=Kx.data;Kx.removeAttr=Kx.removeData;Qx=o(function(e){var r=this;e=ir({},e);var n=e.container;n&&!p6(n)&&p6(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=Hi!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=ir({name:s?"grid":"null"},l.layout),l.renderer=ir({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new ba(this),listeners:[],aniEles:new ba(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:xt(l.zoom)?l.zoom:1,pan:{x:Vr(l.pan)&&xt(l.pan.x)?l.pan.x:0,y:Vr(l.pan)&&xt(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(Jqe);if(v)return d1.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=ir({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Vr(g)||wn(g))&&r.add(g),r.one("layoutready",function(w){r.notifications(!0),r.emit(w),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=ir({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,ti(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,u=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),h;if(po(e.roots))h=e.roots;else if(wn(e.roots)){for(var f=[],d=0;d0;){var O=S(),N=I(O,k);if(N)O.outgoers().filter(function(ce){return ce.isNode()&&n.has(ce)}).forEach(R);else if(N===null){on("Detected double maximal shift for node `"+O.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}A();var P=0;if(e.avoidOverlap)for(var F=0;F0&&x[0].length<=3?Ge/2:0),X=2*Math.PI/x[oe].length*ke;return oe===0&&x[0].length===1&&(xe=1),{x:Z.x+xe*Math.cos(X),y:Z.y+xe*Math.sin(X)}}else{var He={x:Z.x+(ke+1-(Fe+1)/2)*Be,y:(oe+1)*Ve};return He}},"getPosition");return n.nodes().layoutPositions(this,e,ue),this};JJe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Zge,"CircleLayout");Zge.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),w=Math.sqrt(d*d/(x*x+b*b));f=Math.max(w,f)}var _=o(function(E,L){var C=e.startAngle+L*h*(i?1:-1),A=f*Math.cos(C),I=f*Math.sin(C),D={x:l.x+A,y:l.y+I};return D},"getPos");return n.nodes().layoutPositions(this,e,_),this};eet={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Jge,"ConcentricLayout");Jge.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var T=Math.abs(b[0].value-_.value);T>=v&&(b=[],x.push(b))}b.push(_)}var E=h+e.minNodeSpacing;if(!e.avoidOverlap){var L=x.length>0&&x[0].length>1,C=Math.min(s.w,s.h)/2-E,A=C/(x.length+L?1:0);E=Math.min(E,A)}for(var I=0,D=0;D1&&e.avoidOverlap){var O=Math.cos(S)-Math.cos(0),N=Math.sin(S)-Math.sin(0),P=Math.sqrt(E*E/(O*O+N*N));I=Math.max(P,I)}k.r=I,I+=E}if(e.equidistant){for(var F=0,B=0,$=0;$=t.numIter||(cet(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),m6(d)}},"frame");f()}else{for(;h;)h=s(u),u++;Cme(n,t),l()}return this};G6.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};G6.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};ret=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=$s(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(C);for(var f=0;fi.count?0:i.graph},"findLCA"),iet=o(function t(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=T6(e,l,u),v=T6(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,w=x*x+b*b,p=Math.sqrt(w),d=(e.nodeRepulsion+r.nodeRepulsion)/w,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),fet=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),T6=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),det=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),met=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),vet=o(function t(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),xet={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(t1e,"GridLayout");t1e.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(j){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(K){if(K==null)return Math.min(u,h);var ie=Math.min(u,h);ie==u?u=K:h=K},"small"),d=o(function(K){if(K==null)return Math.max(u,h);var ie=Math.max(u,h);ie==u?u=K:h=K},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,w=a.h/u;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var _=0;_=h&&(O=0,S++)},"moveToNextCell"),P={},F=0;F(O=Vje(t,e,N[P],N[P+1],N[P+2],N[P+3])))return v(L,O),!0}else if(A.edgeType==="bezier"||A.edgeType==="multibezier"||A.edgeType==="self"||A.edgeType==="compound"){for(var N=A.allpts,P=0;P+5(O=$je(t,e,N[P],N[P+1],N[P+2],N[P+3],N[P+4],N[P+5])))return v(L,O),!0}for(var F=F||C.source,B=B||C.target,$=i.getArrowWidth(I,D),z=[{name:"source",x:A.arrowStartX,y:A.arrowStartY,angle:A.srcArrowAngle},{name:"target",x:A.arrowEndX,y:A.arrowEndY,angle:A.tgtArrowAngle},{name:"mid-source",x:A.midX,y:A.midY,angle:A.midsrcArrowAngle},{name:"mid-target",x:A.midX,y:A.midY,angle:A.midtgtArrowAngle}],P=0;P0&&(x(F),x(B))}o(b,"checkEdge");function w(L,C,A){return Wl(L,C,A)}o(w,"preprop");function _(L,C){var A=L._private,I=p,D;C?D=C+"-":D="",L.boundingBox();var k=A.labelBounds[C||"main"],R=L.pstyle(D+"label").value,S=L.pstyle("text-events").strValue==="yes";if(!(!S||!R)){var O=w(A.rscratch,"labelX",C),N=w(A.rscratch,"labelY",C),P=w(A.rscratch,"labelAngle",C),F=L.pstyle(D+"text-margin-x").pfValue,B=L.pstyle(D+"text-margin-y").pfValue,$=k.x1-I-F,z=k.x2+I-F,W=k.y1-I-B,j=k.y2+I-B;if(P){var K=Math.cos(P),ie=Math.sin(P),Q=o(function(ue,ce){return ue=ue-O,ce=ce-N,{x:ue*K-ce*ie+O,y:ue*ie+ce*K+N}},"rotate"),ee=Q($,W),J=Q($,j),H=Q(z,W),q=Q(z,j),Z=[ee.x+F,ee.y+B,H.x+F,H.y+B,q.x+F,q.y+B,J.x+F,J.y+B];if(Gs(t,e,Z))return v(L),!0}else if(c1(k,t,e))return v(L),!0}}o(_,"checkLabel");for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?x(E)||_(E):b(E)||_(E)||_(E,"source")||_(E,"target")}return l};W0.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=[],s=Math.min(t,r),l=Math.max(t,r),u=Math.min(e,n),h=Math.max(e,n);t=s,r=l,e=u,n=h;for(var f=$s({x1:t,y1:e,x2:r,y2:n}),d=0;d0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),Cet=o(function(e,r,n,i,a){if(e!==Nme?Rme(r,e,$c):Eet(nl,$c),Rme(r,n,nl),Lme=$c.nx*nl.ny-$c.ny*nl.nx,Dme=$c.nx*nl.nx-$c.ny*-nl.ny,qu=Math.asin(Math.max(-1,Math.min(1,Lme))),Math.abs(qu)<1e-6){WP=r.x,YP=r.y,O0=e1=0;return}P0=1,f6=!1,Dme<0?qu<0?qu=Math.PI+qu:(qu=Math.PI-qu,P0=-1,f6=!0):qu>0&&(P0=-1,f6=!0),r.radius!==void 0?e1=r.radius:e1=i,N0=qu/2,n6=Math.min($c.len/2,nl.len/2),a?(Gc=Math.abs(Math.cos(N0)*e1/Math.sin(N0)),Gc>n6?(Gc=n6,O0=Math.abs(Gc*Math.sin(N0)/Math.cos(N0))):O0=e1):(Gc=Math.min(n6,e1),O0=Math.abs(Gc*Math.sin(N0)/Math.cos(N0))),qP=r.x+nl.nx*Gc,XP=r.y+nl.ny*Gc,WP=qP-nl.ny*O0*P0,YP=XP+nl.nx*O0*P0,a1e=r.x+$c.nx*Gc,s1e=r.y+$c.ny*Gc,Nme=r},"calcCornerArc");o(o1e,"drawPreparedRoundCorner");o(bB,"getRoundCorner");Ga={};Ga.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(T,E,L,C){var A=C-E,I=L-T,D=Math.sqrt(I*I+A*A);return{x:-A/D,y:I/D}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=Ul(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=Ul(y,2),x=v[0],b=v[1],w={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=w}else on("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};Ga.findHaystackPoints=function(t){for(var e=0;e0?Math.max(se-Ee,0):Math.min(se+Ee,0)},"subDWH"),R=k(I,C),S=k(D,A),O=!1;b===h?x=Math.abs(R)>Math.abs(S)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var N=x===n,P=N?S:R,F=N?D:I,B=hge(F),$=!1;!(O&&(_||E))&&(b===l&&F<0||b===u&&F>0||b===a&&F>0||b===s&&F<0)&&(B*=-1,P=B*Math.abs(P),$=!0);var z;if(_){var W=T<0?1+T:T;z=W*P}else{var j=T<0?P:0;z=j+T*B}var K=o(function(se){return Math.abs(se)=Math.abs(P)},"getIsTooClose"),ie=K(z),Q=K(Math.abs(P)-Math.abs(z)),ee=ie||Q;if(ee&&!$)if(N){var J=Math.abs(F)<=p/2,H=Math.abs(I)<=m/2;if(J){var q=(f.x1+f.x2)/2,Z=f.y1,ae=f.y2;r.segpts=[q,Z,q,ae]}else if(H){var ue=(f.y1+f.y2)/2,ce=f.x1,te=f.x2;r.segpts=[ce,ue,te,ue]}else r.segpts=[f.x1,f.y2]}else{var De=Math.abs(F)<=d/2,oe=Math.abs(D)<=g/2;if(De){var ke=(f.y1+f.y2)/2,Fe=f.x1,Be=f.x2;r.segpts=[Fe,ke,Be,ke]}else if(oe){var Ve=(f.x1+f.x2)/2,Ge=f.y1,He=f.y2;r.segpts=[Ve,Ge,Ve,He]}else r.segpts=[f.x2,f.y1]}else if(N){var xe=f.y1+z+(v?p/2*B:0),X=f.x1,fe=f.x2;r.segpts=[X,xe,fe,xe]}else{var he=f.x1+z+(v?d/2*B:0),ge=f.y1,ne=f.y2;r.segpts=[he,ge,he,ne]}if(r.isRound){var ye=t.pstyle("taxi-radius").value,U=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ye),r.isArcRadius=new Array(r.segpts.length/2).fill(U)}};Ga.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!xt(r.startX)||!xt(r.startY),v=!xt(r.arrowStartX)||!xt(r.arrowStartY),x=!xt(r.endX)||!xt(r.endY),b=!xt(r.arrowEndX)||!xt(r.arrowEndY),w=3,_=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=w*_,E=G0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),L=ES.poolIndex()){var O=R;R=S,S=O}var N=A.srcPos=R.position(),P=A.tgtPos=S.position(),F=A.srcW=R.outerWidth(),B=A.srcH=R.outerHeight(),$=A.tgtW=S.outerWidth(),z=A.tgtH=S.outerHeight(),W=A.srcShape=r.nodeShapes[e.getNodeShape(R)],j=A.tgtShape=r.nodeShapes[e.getNodeShape(S)],K=A.srcCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,ie=A.tgtCornerRadius=S.pstyle("corner-radius").value==="auto"?"auto":S.pstyle("corner-radius").pfValue,Q=A.tgtRs=S._private.rscratch,ee=A.srcRs=R._private.rscratch;A.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var J=0;J0){var ae=a,ue=M0(ae,r1(r)),ce=M0(ae,r1(Z)),te=ue;if(ce2){var De=M0(ae,{x:Z[2],y:Z[3]});De0){var ne=s,ye=M0(ne,r1(r)),U=M0(ne,r1(ge)),Te=ye;if(U2){var se=M0(ne,{x:ge[2],y:ge[3]});se=g||L){v={cp:_,segment:E};break}}if(v)break}var C=v.cp,A=v.segment,I=(g-x)/A.length,D=A.t1-A.t0,k=m?A.t0+D*I:A.t1-D*I;k=Wx(0,k,1),e=i1(C.p0,C.p1,C.p2,k),p=_et(C.p0,C.p1,C.p2,k);break}case"straight":case"segments":case"haystack":{for(var R=0,S,O,N,P,F=n.allpts.length,B=0;B+3=g));B+=2);var $=g-O,z=$/S;z=Wx(0,z,1),e=Nje(N,P,z),p=u1e(N,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};Wc.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Wc.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=this.calculateLabelDimensions(t,n),a=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,l=Wl(r.rscratch,"labelWrapCachedLines",e)||[],u=s!=="wrap"?1:Math.max(l.length,1),h=i.height/u,f=h*a,d=i.width,p=i.height+(u-1)*(a-1)*h;wf(r.rstyle,"labelWidth",e,d),wf(r.rscratch,"labelWidth",e,d),wf(r.rstyle,"labelHeight",e,p),wf(r.rscratch,"labelHeight",e,p),wf(r.rscratch,"labelLineHeight",e,f)};Wc.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(j,K){return K?(wf(r.rscratch,j,e,K),K):Wl(r.rscratch,j,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var T=x.matchAll(y),E="",L=0,C=Yme(T),A;try{for(C.s();!(A=C.n()).done;){var I=A.value,D=I[0],k=x.substring(L,I.index);L=I.index+D.length;var R=E.length===0?k:E+k+D,S=this.calculateLabelDimensions(t,R),O=S.width;O<=d?E+=k+D:(E&&g.push(E),E=k+D)}}catch(W){C.e(W)}finally{C.f()}E.match(/^[\s\u200b]+$/)||g.push(E)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var N=t.pstyle("text-max-width").pfValue,P="",F="\u2026",B=!1;if(this.calculateLabelDimensions(t,i).widthN)break;P+=i[$],$===i.length-1&&(B=!0)}return B||(P+=F),P}return i};Wc.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Wc.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=z0(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),l=s[a];if(l!=null)return l;var u=0,h=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,d=t.pstyle("font-family").strValue,p=t.pstyle("font-weight").strValue,m=this.labelCalcCanvas,g=this.labelCalcCanvasContext;if(!m){m=this.labelCalcCanvas=i.createElement("canvas"),g=this.labelCalcCanvasContext=m.getContext("2d");var y=m.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}g.font="".concat(h," ").concat(p," ").concat(f,"px ").concat(d);for(var v=0,x=0,b=e.split(` +`),w=0;w1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var Tt=i(X);Re&&(t.hoverData.tapholdCancelled=!0);var $e=o(function(){var zt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];zt.length===0?(zt.push(me[0]),zt.push(me[1])):(zt[0]+=me[0],zt[1]+=me[1])},"updateDragDelta");he=!0,n(Ae,["mousemove","vmousemove","tapdrag"],X,{x:U[0],y:U[1]});var rt=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||ge.emit({originalEvent:X,type:"boxstart",position:{x:U[0],y:U[1]}}),Ee[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(Re){var ft={originalEvent:X,type:"cxtdrag",position:{x:U[0],y:U[1]}};Me?Me.emit(ft):ge.emit(ft),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Ae!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:X,type:"cxtdragout",position:{x:U[0],y:U[1]}}),t.hoverData.cxtOver=Ae,Ae&&Ae.emit({originalEvent:X,type:"cxtdragover",position:{x:U[0],y:U[1]}}))}}else if(t.hoverData.dragging){if(he=!0,ge.panningEnabled()&&ge.userPanningEnabled()){var kt;if(t.hoverData.justStartedPan){var er=t.hoverData.mdownPos;kt={x:(U[0]-er[0])*ne,y:(U[1]-er[1])*ne},t.hoverData.justStartedPan=!1}else kt={x:me[0]*ne,y:me[1]*ne};ge.panBy(kt),ge.emit("dragpan"),t.hoverData.dragged=!0}U=t.projectIntoViewport(X.clientX,X.clientY)}else if(Ee[4]==1&&(Me==null||Me.pannable())){if(Re){if(!t.hoverData.dragging&&ge.boxSelectionEnabled()&&(Tt||!ge.panningEnabled()||!ge.userPanningEnabled()))rt();else if(!t.hoverData.selecting&&ge.panningEnabled()&&ge.userPanningEnabled()){var dt=a(Me,t.hoverData.downs);dt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ee[4]=0,t.data.bgActivePosistion=r1(Te),t.redrawHint("select",!0),t.redraw())}Me&&Me.pannable()&&Me.active()&&Me.unactivate()}}else{if(Me&&Me.pannable()&&Me.active()&&Me.unactivate(),(!Me||!Me.grabbed())&&Ae!=Pe&&(Pe&&n(Pe,["mouseout","tapdragout"],X,{x:U[0],y:U[1]}),Ae&&n(Ae,["mouseover","tapdragover"],X,{x:U[0],y:U[1]}),t.hoverData.last=Ae),Me)if(Re){if(ge.boxSelectionEnabled()&&Tt)Me&&Me.grabbed()&&(v(We),Me.emit("freeon"),We.emit("free"),t.dragData.didDrag&&(Me.emit("dragfreeon"),We.emit("dragfree"))),rt();else if(Me&&Me.grabbed()&&t.nodeIsDraggable(Me)){var Xe=!t.dragData.didDrag;Xe&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||g(We,{inDragLayer:!0});var ct={x:0,y:0};if(xt(me[0])&&xt(me[1])&&(ct.x+=me[0],ct.y+=me[1],Xe)){var Lt=t.hoverData.dragDelta;Lt&&xt(Lt[0])&&xt(Lt[1])&&(ct.x+=Lt[0],ct.y+=Lt[1])}t.hoverData.draggingEles=!0,We.silentShift(ct).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else $e();he=!0}if(Ee[2]=U[0],Ee[3]=U[1],he)return X.stopPropagation&&X.stopPropagation(),X.preventDefault&&X.preventDefault(),!1}},"mousemoveHandler"),!1);var I,D,k;t.registerBinding(e,"mouseup",o(function(X){if(!(t.hoverData.which===1&&X.which!==1&&t.hoverData.capture)){var fe=t.hoverData.capture;if(fe){t.hoverData.capture=!1;var he=t.cy,ge=t.projectIntoViewport(X.clientX,X.clientY),ne=t.selection,ye=t.findNearestElement(ge[0],ge[1],!0,!1),U=t.dragData.possibleDragElements,Te=t.hoverData.down,se=i(X);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,Te&&Te.unactivate(),t.hoverData.which===3){var Ee={originalEvent:X,type:"cxttapend",position:{x:ge[0],y:ge[1]}};if(Te?Te.emit(Ee):he.emit(Ee),!t.hoverData.cxtDragged){var Ae={originalEvent:X,type:"cxttap",position:{x:ge[0],y:ge[1]}};Te?Te.emit(Ae):he.emit(Ae)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(n(ye,["mouseup","tapend","vmouseup"],X,{x:ge[0],y:ge[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(Te,["click","tap","vclick"],X,{x:ge[0],y:ge[1]}),D=!1,X.timeStamp-k<=he.multiClickDebounceTime()?(I&&clearTimeout(I),D=!0,k=null,n(Te,["dblclick","dbltap","vdblclick"],X,{x:ge[0],y:ge[1]})):(I=setTimeout(function(){D||n(Te,["oneclick","onetap","voneclick"],X,{x:ge[0],y:ge[1]})},he.multiClickDebounceTime()),k=X.timeStamp)),Te==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(X)&&(he.$(r).unselect(["tapunselect"]),U.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=U=he.collection()),ye==Te&&!t.dragData.didDrag&&!t.hoverData.selecting&&ye!=null&&ye._private.selectable&&(t.hoverData.dragging||(he.selectionType()==="additive"||se?ye.selected()?ye.unselect(["tapunselect"]):ye.select(["tapselect"]):se||(he.$(r).unmerge(ye).unselect(["tapunselect"]),ye.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Pe=he.collection(t.getAllInBox(ne[0],ne[1],ne[2],ne[3]));t.redrawHint("select",!0),Pe.length>0&&t.redrawHint("eles",!0),he.emit({type:"boxend",originalEvent:X,position:{x:ge[0],y:ge[1]}});var Me=o(function(Re){return Re.selectable()&&!Re.selected()},"eleWouldBeSelected");he.selectionType()==="additive"||se||he.$(r).unmerge(Pe).unselect(),Pe.emit("box").stdFilter(Me).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!ne[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var me=Te&&Te.grabbed();v(U),me&&(Te.emit("freeon"),U.emit("free"),t.dragData.didDrag&&(Te.emit("dragfreeon"),U.emit("dragfree")))}}ne[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},"mouseupHandler"),!1);var R=o(function(X){if(!t.scrollingPage){var fe=t.cy,he=fe.zoom(),ge=fe.pan(),ne=t.projectIntoViewport(X.clientX,X.clientY),ye=[ne[0]*he+ge.x,ne[1]*he+ge.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||C()){X.preventDefault();return}if(fe.panningEnabled()&&fe.userPanningEnabled()&&fe.zoomingEnabled()&&fe.userZoomingEnabled()){X.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var U;X.deltaY!=null?U=X.deltaY/-250:X.wheelDeltaY!=null?U=X.wheelDeltaY/1e3:U=X.wheelDelta/1e3,U=U*t.wheelSensitivity;var Te=X.deltaMode===1;Te&&(U*=33);var se=fe.zoom()*Math.pow(10,U);X.type==="gesturechange"&&(se=t.gestureStartZoom*X.scale),fe.zoom({level:se,renderedPosition:{x:ye[0],y:ye[1]}}),fe.emit(X.type==="gesturechange"?"pinchzoom":"scrollzoom")}}},"wheelHandler");t.registerBinding(t.container,"wheel",R,!0),t.registerBinding(e,"scroll",o(function(X){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(X){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||X.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(xe){t.hasTouchStarted||R(xe)},!0),t.registerBinding(t.container,"mouseout",o(function(X){var fe=t.projectIntoViewport(X.clientX,X.clientY);t.cy.emit({originalEvent:X,type:"mouseout",position:{x:fe[0],y:fe[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(X){var fe=t.projectIntoViewport(X.clientX,X.clientY);t.cy.emit({originalEvent:X,type:"mouseover",position:{x:fe[0],y:fe[1]}})},"mouseOverHandler"),!1);var S,O,N,P,F,B,$,z,W,j,K,ie,Q,ee=o(function(X,fe,he,ge){return Math.sqrt((he-X)*(he-X)+(ge-fe)*(ge-fe))},"distance"),J=o(function(X,fe,he,ge){return(he-X)*(he-X)+(ge-fe)*(ge-fe)},"distanceSq"),H;t.registerBinding(t.container,"touchstart",H=o(function(X){if(t.hasTouchStarted=!0,!!A(X)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var fe=t.cy,he=t.touchData.now,ge=t.touchData.earlier;if(X.touches[0]){var ne=t.projectIntoViewport(X.touches[0].clientX,X.touches[0].clientY);he[0]=ne[0],he[1]=ne[1]}if(X.touches[1]){var ne=t.projectIntoViewport(X.touches[1].clientX,X.touches[1].clientY);he[2]=ne[0],he[3]=ne[1]}if(X.touches[2]){var ne=t.projectIntoViewport(X.touches[2].clientX,X.touches[2].clientY);he[4]=ne[0],he[5]=ne[1]}if(X.touches[1]){t.touchData.singleTouchMoved=!0,v(t.dragData.touchDragEles);var ye=t.findContainerClientCoords();W=ye[0],j=ye[1],K=ye[2],ie=ye[3],S=X.touches[0].clientX-W,O=X.touches[0].clientY-j,N=X.touches[1].clientX-W,P=X.touches[1].clientY-j,Q=0<=S&&S<=K&&0<=N&&N<=K&&0<=O&&O<=ie&&0<=P&&P<=ie;var U=fe.pan(),Te=fe.zoom();F=ee(S,O,N,P),B=J(S,O,N,P),$=[(S+N)/2,(O+P)/2],z=[($[0]-U.x)/Te,($[1]-U.y)/Te];var se=200,Ee=se*se;if(B=1){for(var gt=t.touchData.startPosition=[null,null,null,null,null,null],Et=0;Et=t.touchTapThreshold2}if(fe&&t.touchData.cxt){X.preventDefault();var gt=X.touches[0].clientX-W,Et=X.touches[0].clientY-j,vt=X.touches[1].clientX-W,Ye=X.touches[1].clientY-j,Tt=J(gt,Et,vt,Ye),$e=Tt/B,rt=150,ft=rt*rt,kt=1.5,er=kt*kt;if($e>=er||Tt>=ft){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var dt={originalEvent:X,type:"cxttapend",position:{x:ne[0],y:ne[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(dt),t.touchData.start=null):ge.emit(dt)}}if(fe&&t.touchData.cxt){var dt={originalEvent:X,type:"cxtdrag",position:{x:ne[0],y:ne[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(dt):ge.emit(dt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var Xe=t.findNearestElement(ne[0],ne[1],!0,!0);(!t.touchData.cxtOver||Xe!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:X,type:"cxtdragout",position:{x:ne[0],y:ne[1]}}),t.touchData.cxtOver=Xe,Xe&&Xe.emit({originalEvent:X,type:"cxtdragover",position:{x:ne[0],y:ne[1]}}))}else if(fe&&X.touches[2]&&ge.boxSelectionEnabled())X.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||ge.emit({originalEvent:X,type:"boxstart",position:{x:ne[0],y:ne[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,he[4]=1,!he||he.length===0||he[0]===void 0?(he[0]=(ne[0]+ne[2]+ne[4])/3,he[1]=(ne[1]+ne[3]+ne[5])/3,he[2]=(ne[0]+ne[2]+ne[4])/3+1,he[3]=(ne[1]+ne[3]+ne[5])/3+1):(he[2]=(ne[0]+ne[2]+ne[4])/3,he[3]=(ne[1]+ne[3]+ne[5])/3),t.redrawHint("select",!0),t.redraw();else if(fe&&X.touches[1]&&!t.touchData.didSelect&&ge.zoomingEnabled()&&ge.panningEnabled()&&ge.userZoomingEnabled()&&ge.userPanningEnabled()){X.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ct=t.dragData.touchDragEles;if(ct){t.redrawHint("drag",!0);for(var Lt=0;Lt0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var Z;t.registerBinding(e,"touchcancel",Z=o(function(X){var fe=t.touchData.start;t.touchData.capture=!1,fe&&fe.unactivate()},"touchcancelHandler"));var ae,ue,ce,te;if(t.registerBinding(e,"touchend",ae=o(function(X){var fe=t.touchData.start,he=t.touchData.capture;if(he)X.touches.length===0&&(t.touchData.capture=!1),X.preventDefault();else return;var ge=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var ne=t.cy,ye=ne.zoom(),U=t.touchData.now,Te=t.touchData.earlier;if(X.touches[0]){var se=t.projectIntoViewport(X.touches[0].clientX,X.touches[0].clientY);U[0]=se[0],U[1]=se[1]}if(X.touches[1]){var se=t.projectIntoViewport(X.touches[1].clientX,X.touches[1].clientY);U[2]=se[0],U[3]=se[1]}if(X.touches[2]){var se=t.projectIntoViewport(X.touches[2].clientX,X.touches[2].clientY);U[4]=se[0],U[5]=se[1]}fe&&fe.unactivate();var Ee;if(t.touchData.cxt){if(Ee={originalEvent:X,type:"cxttapend",position:{x:U[0],y:U[1]}},fe?fe.emit(Ee):ne.emit(Ee),!t.touchData.cxtDragged){var Ae={originalEvent:X,type:"cxttap",position:{x:U[0],y:U[1]}};fe?fe.emit(Ae):ne.emit(Ae)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!X.touches[2]&&ne.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Pe=ne.collection(t.getAllInBox(ge[0],ge[1],ge[2],ge[3]));ge[0]=void 0,ge[1]=void 0,ge[2]=void 0,ge[3]=void 0,ge[4]=0,t.redrawHint("select",!0),ne.emit({type:"boxend",originalEvent:X,position:{x:U[0],y:U[1]}});var Me=o(function(ft){return ft.selectable()&&!ft.selected()},"eleWouldBeSelected");Pe.emit("box").stdFilter(Me).select().emit("boxselect"),Pe.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(fe?.unactivate(),X.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!X.touches[1]){if(!X.touches[0]){if(!X.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var me=t.dragData.touchDragEles;if(fe!=null){var We=fe._private.grabbed;v(me),t.redrawHint("drag",!0),t.redrawHint("eles",!0),We&&(fe.emit("freeon"),me.emit("free"),t.dragData.didDrag&&(fe.emit("dragfreeon"),me.emit("dragfree"))),n(fe,["touchend","tapend","vmouseup","tapdragout"],X,{x:U[0],y:U[1]}),fe.unactivate(),t.touchData.start=null}else{var Re=t.findNearestElement(U[0],U[1],!0,!0);n(Re,["touchend","tapend","vmouseup","tapdragout"],X,{x:U[0],y:U[1]})}var tt=t.touchData.startPosition[0]-U[0],gt=tt*tt,Et=t.touchData.startPosition[1]-U[1],vt=Et*Et,Ye=gt+vt,Tt=Ye*ye*ye;t.touchData.singleTouchMoved||(fe||ne.$(":selected").unselect(["tapunselect"]),n(fe,["tap","vclick"],X,{x:U[0],y:U[1]}),ue=!1,X.timeStamp-te<=ne.multiClickDebounceTime()?(ce&&clearTimeout(ce),ue=!0,te=null,n(fe,["dbltap","vdblclick"],X,{x:U[0],y:U[1]})):(ce=setTimeout(function(){ue||n(fe,["onetap","voneclick"],X,{x:U[0],y:U[1]})},ne.multiClickDebounceTime()),te=X.timeStamp)),fe!=null&&!t.dragData.didDrag&&fe._private.selectable&&Tt"u"){var De=[],oe=o(function(X){return{clientX:X.clientX,clientY:X.clientY,force:1,identifier:X.pointerId,pageX:X.pageX,pageY:X.pageY,radiusX:X.width/2,radiusY:X.height/2,screenX:X.screenX,screenY:X.screenY,target:X.target}},"makeTouch"),ke=o(function(X){return{event:X,touch:oe(X)}},"makePointer"),Fe=o(function(X){De.push(ke(X))},"addPointer"),Be=o(function(X){for(var fe=0;fe0)return W[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:pge(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?$0(i,a):u;var h=2*u;if(ju(e,r,this.points,s,l,i,a-h,[0,-1],n)||ju(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(Gs(e,r,p)||B0(e,r,h,h,s+i/2-u,l+a/2-u,n)||B0(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Qu.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ls(3,0)),this.generateRoundPolygon("round-triangle",ls(3,0)),this.generatePolygon("rectangle",ls(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",ls(5,0)),this.generateRoundPolygon("round-pentagon",ls(5,0)),this.generatePolygon("hexagon",ls(6,0)),this.generateRoundPolygon("round-hexagon",ls(6,0)),this.generatePolygon("heptagon",ls(7,0)),this.generateRoundPolygon("round-heptagon",ls(7,0)),this.generatePolygon("octagon",ls(8,0)),this.generateRoundPolygon("round-octagon",ls(8,0));var n=new Array(20);{var i=BP(5,0),a=BP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*_)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*IP)break;var T=e.deq(n,v,y);if(T.length>0)for(var E=0;E0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||iB;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},Det=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g6;JP(this,t),this.idsByKey=new Uc,this.keyForId=new Uc,this.cachesByLvl=new Uc,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),eB(t,[{key:"getIdsFor",value:o(function(r){r==null&&hi("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new f1,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Uc,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}]),t}(),Pme=25,i6=50,d6=-4,jP=3,Net=7.99,Ret=8,Met=1024,Iet=1024,Oet=1024,Pet=.2,Bet=.8,Fet=10,zet=.15,Get=.1,$et=.9,Vet=.9,Uet=100,Het=1,n1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Wet=wa({getKey:null,doesEleInvalidateKey:g6,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:sge,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Fx=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=Wet(r);ir(n,i),n.lookup=new Det(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),qi=Fx.prototype;qi.reasons=n1;qi.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};qi.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};qi.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new tb(function(r,n){return n.reqs-r.reqs});return e};qi.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};qi.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(sB(l*r))),n=Net||n>jP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=Pme?g=Pme:f<=i6?g=i6:g=Math.ceil(f/i6)*i6,f>Oet||d>Iet)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;D--)A=a.getElement(t,e,r,D,n1.downscale);I()}else return a.queueElement(t,E.level-1),E;else{var k;if(!w&&!_&&!T)for(var R=n-1;R>=d6;R--){var S=u.get(t,R);if(S){k=S;break}}if(b(k))return a.queueElement(t,n),k;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+Ret),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};qi.invalidateElements=function(t){for(var e=0;e=Pet*t.width&&this.retireTexture(t)};qi.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>Bet&&t.fullnessChecks>=Fet?Cf(r,t):t.fullnessChecks++};qi.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;Cf(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,aB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Cf(i,s),n.push(s),s}};qi.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};qi.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,n1.dequeue)}return i};qi.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=nB,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};qi.onDequeue=function(t){this.onDequeues.push(t)};qi.offDequeue=function(t){Cf(this.onDequeues,t)};qi.setupDequeueing=m1e.setupDequeueing({deqRedrawThreshold:Uet,deqCost:zet,deqAvgCost:Get,deqNoDrawCost:$et,deqFastCost:Vet,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=qet||r>E6)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(O){if(n.validateLayersElesOrdering(O,t),n.levelIsComplete(O,t))return m=u[O],!0},"canUseAsTmpLvl"),D=o(function(O){if(!m)for(var N=r+O;Gx<=N&&N<=E6&&!I(N);N+=O);},"checkLvls");D(1),D(-1);for(var k=f.length-1;k>=0;k--){var R=f[k];R.invalid&&Cf(f,R)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=$s();for(var I=0;Ittt)return null;var R=n.makeLayer(d,r);if(D!=null){var S=f.indexOf(D)+1;f.splice(S,0,R)}else(I.insert===void 0||I.insert)&&f.unshift(R);return R},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/Yet,w=!l,_=0;_=b||!dge(x.bb,T.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||w?n.queueLayer(x,T):n.drawEleInLayer(x,T,r,e),x.eles.push(T),L[r]=x}return m||(w?null:f)};Ta.getEleLevelForLayerLevel=function(t,e){return t};Ta.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,rtt),a.setImgSmoothing(s,!0))};Ta.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ta.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Ta.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Xu(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ta.invalidateLayer=function(t){if(this.lastInvalidationTime=Xu(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];Cf(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,w=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,O),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,O),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),_=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],O);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),T=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),E=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),L=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,O)},"drawArrows"),C=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var A=e.pstyle("ghost").value==="yes";if(A){var I=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,R=x*k;t.translate(I,D),w(R),L(R),t.translate(-I,-D)}else _();E(),w(),L(),T(),C(),r&&t.translate(u.x1,u.y1)}};v1e=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");Zu.drawEdgeOverlay=v1e("overlay");Zu.drawEdgeUnderlay=v1e("underlay");Zu.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};Y0.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(PP,"roundRect");Y0.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation"),l=Wl(i,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?l:0:s.strValue==="none"?r=0:r=s.pfValue,r};Y0.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Wl(s,"labelX",r),h=Wl(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=Wl(s,"labelWidth",r),y=Wl(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,_=e.pstyle("text-valign").value;b&&(w="center",_="center"),u+=v,h+=x;var T;switch(n?T=this.getTextAngle(e,r):T=0,T!==0&&(f=u,d=h,t.translate(f,d),t.rotate(T),u=0,h=0),_){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var E=e.pstyle("text-background-opacity").value,L=e.pstyle("text-border-opacity").value,C=e.pstyle("text-border-width").pfValue,A=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,D=I.indexOf("round")===0,k=2;if(E>0||C>0&&L>0){var R=u-A;switch(w){case"left":R-=g;break;case"center":R-=g/2;break}var S=h-y-A,O=g+2*A,N=y+2*A;if(E>0){var P=t.fillStyle,F=e.pstyle("text-background-color").value;t.fillStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*l+")",D?PP(t,R,S,O,N,k):t.fillRect(R,S,O,N),t.fillStyle=P}if(C>0&&L>0){var B=t.strokeStyle,$=t.lineWidth,z=e.pstyle("text-border-color").value,W=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+z[0]+","+z[1]+","+z[2]+","+L*l+")",t.lineWidth=C,t.setLineDash)switch(W){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=C/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(D?PP(t,R,S,O,N,k,"stroke"):t.strokeRect(R,S,O,N),W==="double"){var j=C/2;D?PP(t,R+j,S+j,O-j*2,N-j*2,k,"stroke"):t.strokeRect(R+j,S+j,O-j*2,N-j*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=$,t.strokeStyle=B}}var K=2*e.pstyle("text-outline-width").pfValue;if(K>0&&(t.lineWidth=K),e.pstyle("text-wrap").value==="wrap"){var ie=Wl(s,"labelWrapCachedLines",r),Q=Wl(s,"labelLineHeight",r),ee=g/2,J=this.getLabelJustification(e);switch(J==="auto"||(w==="left"?J==="left"?u+=-g:J==="center"&&(u+=-ee):w==="center"?J==="left"?u+=-ee:J==="right"&&(u+=ee):w==="right"&&(J==="center"?u+=ee:J==="right"&&(u+=g))),_){case"top":h-=(ie.length-1)*Q;break;case"center":case"bottom":h-=(ie.length-1)*Q;break}for(var H=0;H0&&t.strokeText(ie[H],u,h),t.fillText(ie[H],u,h),h+=Q}else K>0&&t.strokeText(p,u,h),t.fillText(p,u,h);T!==0&&(t.rotate(-T),t.translate(-f,-d))}}};w1={};w1.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!xt(d.x)||!xt(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),w=b.value,_=new Array(w.length),T=new Array(w.length),E=0,L=0;L0&&arguments[0]!==void 0?arguments[0]:R;s.eleFillStyle(t,e,ye)},"setupShapeColor"),H=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;s.colorStrokeStyle(t,S[0],S[1],S[2],ye)},"setupBorderColor"),q=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ie;s.colorStrokeStyle(t,j[0],j[1],j[2],ye)},"setupOutlineColor"),Z=o(function(ye,U,Te,se){var Ee=s.nodePathCache=s.nodePathCache||[],Ae=age(Te==="polygon"?Te+","+se.join(","):Te,""+U,""+ye,""+ee),Pe=Ee[Ae],Me,me=!1;return Pe!=null?(Me=Pe,me=!0,f.pathCache=Me):(Me=new Path2D,Ee[Ae]=f.pathCache=Me),{path:Me,cacheHit:me}},"getPath"),ae=e.pstyle("shape").strValue,ue=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var ce=Z(l,u,ae,ue);g=ce.path,y=ce.cacheHit}var te=o(function(){if(!y){var ye=d;m&&(ye={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,ye.x,ye.y,l,u,ee,f)}m?t.fill(g):t.fill()},"drawShape"),De=o(function(){for(var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Te=h.backgrounding,se=0,Ee=0;Ee0&&arguments[0]!==void 0?arguments[0]:!1,U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,U),ye&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,ee,f)))},"drawPie"),ke=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,U=(D>0?D:-D)*ye,Te=D>0?0:255;D!==0&&(s.colorFillStyle(t,Te,Te,Te,U),m?t.fill(g):t.fill())},"darken"),Fe=o(function(){if(k>0){if(t.lineWidth=k,t.lineCap=P,t.lineJoin=N,t.setLineDash)switch(O){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(B),t.lineDashOffset=$;break;case"solid":case"double":t.setLineDash([]);break}if(F!=="center"){if(t.save(),t.lineWidth*=2,F==="inside")m?t.clip(g):t.clip();else{var ye=new Path2D;ye.rect(-l/2-k,-u/2-k,l+2*k,u+2*k),ye.addPath(g),t.clip(ye,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(O==="double"){t.lineWidth=k/3;var U=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=U}t.setLineDash&&t.setLineDash([])}},"drawBorder"),Be=o(function(){if(W>0){if(t.lineWidth=W,t.lineCap="butt",t.setLineDash)switch(K){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ye=d;m&&(ye={x:0,y:0});var U=s.getNodeShape(e),Te=k;F==="inside"&&(Te=0),F==="outside"&&(Te*=2);var se=(l+Te+(W+Q))/l,Ee=(u+Te+(W+Q))/u,Ae=l*se,Pe=u*Ee,Me=s.nodeShapes[U].points,me;if(m){var We=Z(Ae,Pe,U,Me);me=We.path}if(U==="ellipse")s.drawEllipsePath(me||t,ye.x,ye.y,Ae,Pe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(U)){var Re=0,tt=0,gt=0;U==="round-diamond"?Re=(Te+Q+W)*1.4:U==="round-heptagon"?(Re=(Te+Q+W)*1.075,gt=-(Te/2+Q+W)/35):U==="round-hexagon"?Re=(Te+Q+W)*1.12:U==="round-pentagon"?(Re=(Te+Q+W)*1.13,gt=-(Te/2+Q+W)/15):U==="round-tag"?(Re=(Te+Q+W)*1.12,tt=(Te/2+W+Q)*.07):U==="round-triangle"&&(Re=(Te+Q+W)*(Math.PI/2),gt=-(Te+Q/2+W)/Math.PI),Re!==0&&(se=(l+Re)/l,Ae=l*se,["round-hexagon","round-tag"].includes(U)||(Ee=(u+Re)/u,Pe=u*Ee)),ee=ee==="auto"?gge(Ae,Pe):ee;for(var Et=Ae/2,vt=Pe/2,Ye=ee+(Te+W+Q)/2,Tt=new Array(Me.length/2),$e=new Array(Me.length/2),rt=0;rt0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");w1.drawNodeOverlay=x1e("overlay");w1.drawNodeUnderlay=x1e("underlay");w1.hasPie=function(t){return t=t[0],t._private.hasPie};w1.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=n.x,l=n.y,u=e.width(),h=e.height(),f=Math.min(u,h)/2,d=0,p=this.usePaths();p&&(s=0,l=0),a.units==="%"?f=f*a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2);for(var m=1;m<=i.pieBackgroundN;m++){var g=e.pstyle("pie-"+m+"-background-size").value,y=e.pstyle("pie-"+m+"-background-color").value,v=e.pstyle("pie-"+m+"-background-opacity").value*r,x=g/100;x+d>1&&(x=1-d);var b=1.5*Math.PI+2*Math.PI*d,w=2*Math.PI*x,_=b+w;g===0||d>=1||d+x>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,f,b,_),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],v),t.fill(),d+=x)}};mo={},dtt=100;mo.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};mo.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;is.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!d&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var b=u.style(),w=u.zoom(),_=i!==void 0?i:w,T=u.pan(),E={x:T.x,y:T.y},L={zoom:w,pan:{x:T.x,y:T.y}},C=s.prevViewport,A=C===void 0||L.zoom!==C.zoom||L.pan.x!==C.pan.x||L.pan.y!==C.pan.y;!A&&!(y&&!g)&&(s.motionBlurPxRatio=1),a&&(E=a),_*=l,E.x*=l,E.y*=l;var I=s.getCachedZSortedEles();function D(ce,te,De,oe,ke){var Fe=ce.globalCompositeOperation;ce.globalCompositeOperation="destination-out",s.colorFillStyle(ce,255,255,255,s.motionBlurTransparency),ce.fillRect(te,De,oe,ke),ce.globalCompositeOperation=Fe}o(D,"mbclear");function k(ce,te){var De,oe,ke,Fe;!s.clearingMotionBlur&&(ce===h.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||ce===h.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(De={x:T.x*m,y:T.y*m},oe=w*m,ke=s.canvasWidth*m,Fe=s.canvasHeight*m):(De=E,oe=_,ke=s.canvasWidth,Fe=s.canvasHeight),ce.setTransform(1,0,0,1,0,0),te==="motionBlur"?D(ce,0,0,ke,Fe):!e&&(te===void 0||te)&&ce.clearRect(0,0,ke,Fe),r||(ce.translate(De.x,De.y),ce.scale(oe,oe)),a&&ce.translate(a.x,a.y),i&&ce.scale(i,i)}if(o(k,"setContextTransform"),d||(s.textureDrawLastFrame=!1),d){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=u.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var R=s.data.bufferContexts[s.TEXTURE_BUFFER];R.setTransform(1,0,0,1,0,0),R.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:R,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var L=s.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:s.canvasWidth,height:s.canvasHeight};L.mpan={x:(0-L.pan.x)/L.zoom,y:(0-L.pan.y)/L.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var S=h.contexts[s.NODE],O=s.textureCache.texture,L=s.textureCache.viewport;S.setTransform(1,0,0,1,0,0),p?D(S,0,0,L.width,L.height):S.clearRect(0,0,L.width,L.height);var N=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(S,N[0],N[1],N[2],P),S.fillRect(0,0,L.width,L.height);var w=u.zoom();k(S,!1),S.clearRect(L.mpan.x,L.mpan.y,L.width/L.zoom/l,L.height/L.zoom/l),S.drawImage(O,L.mpan.x,L.mpan.y,L.width/L.zoom/l,L.height/L.zoom/l)}else s.textureOnViewport&&!e&&(s.textureCache=null);var F=u.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),$=s.hideEdgesOnViewport&&B,z=[];if(z[s.NODE]=!f[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,z[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),z[s.DRAG]=!f[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,z[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||n||z[s.NODE]){var W=p&&!z[s.NODE]&&m!==1,S=e||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:h.contexts[s.NODE]),j=p&&!W?"motionBlur":void 0;k(S,j),$?s.drawCachedNodes(S,I.nondrag,l,F):s.drawLayeredElements(S,I.nondrag,l,F),s.debug&&s.drawDebugPoints(S,I.nondrag),!r&&!p&&(f[s.NODE]=!1)}if(!n&&(f[s.DRAG]||r||z[s.DRAG])){var W=p&&!z[s.DRAG]&&m!==1,S=e||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:h.contexts[s.DRAG]);k(S,p&&!W?"motionBlur":void 0),$?s.drawCachedNodes(S,I.drag,l,F):s.drawCachedElements(S,I.drag,l,F),s.debug&&s.drawDebugPoints(S,I.drag),!r&&!p&&(f[s.DRAG]=!1)}if(s.showFps||!n&&f[s.SELECT_BOX]&&!r){var S=e||h.contexts[s.SELECT_BOX];if(k(S),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),K=b.core("selection-box-border-width").value/w;S.lineWidth=K,S.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",S.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),K>0&&(S.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",S.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(h.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),ie=h.bgActivePosistion;S.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",S.beginPath(),S.arc(ie.x,ie.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),S.fill()}var Q=s.lastRedrawTime;if(s.showFps&&Q){Q=Math.round(Q);var ee=Math.round(1e3/Q);S.setTransform(1,0,0,1,0,0),S.fillStyle="rgba(255, 0, 0, 0.75)",S.strokeStyle="rgba(255, 0, 0, 0.75)",S.lineWidth=1,S.fillText("1 frame = "+Q+" ms = "+ee+" fps",0,20);var J=60;S.strokeRect(0,30,250,20),S.fillRect(0,30,250*Math.min(ee/J,1),20)}r||(f[s.SELECT_BOX]=!1)}if(p&&m!==1){var H=h.contexts[s.NODE],q=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],Z=h.contexts[s.DRAG],ae=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ue=o(function(te,De,oe){te.setTransform(1,0,0,1,0,0),oe||!x?te.clearRect(0,0,s.canvasWidth,s.canvasHeight):D(te,0,0,s.canvasWidth,s.canvasHeight);var ke=m;te.drawImage(De,0,0,s.canvasWidth*ke,s.canvasHeight*ke,0,0,s.canvasWidth,s.canvasHeight)},"drawMotionBlur");(f[s.NODE]||z[s.NODE])&&(ue(H,q,z[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||z[s.DRAG])&&(ue(Z,ae,z[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=L,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!d,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},dtt)),e||u.emit("render")};Nf={};Nf.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(ptt,"b64ToBlob");o(Ume,"b64UriToB64");o(w1e,"output");sb.png=function(t){return w1e(t,this.bufferCanvasImage(t),"image/png")};sb.jpg=function(t){return w1e(t,this.bufferCanvasImage(t),"image/jpeg")};T1e={};T1e.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};mtt=k1e,Kr=k1e.prototype;Kr.CANVAS_LAYERS=3;Kr.SELECT_BOX=0;Kr.DRAG=1;Kr.NODE=2;Kr.BUFFER_COUNT=3;Kr.TEXTURE_BUFFER=0;Kr.MOTIONBLUR_BUFFER_NODE=1;Kr.MOTIONBLUR_BUFFER_DRAG=2;o(k1e,"CanvasRenderer");Kr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Kr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Kr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Kr.SELECT_BOX]=e;break}};gtt=typeof Path2D<"u";Kr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Kr.usePaths=function(){return gtt&&this.pathsEnabled};Kr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Kr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Kr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":Yi(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[y1e,Yc,Zu,TB,Y0,w1,mo,Nf,sb,T1e].forEach(function(t){ir(Kr,t)});ytt=[{name:"null",impl:i1e},{name:"base",impl:p1e},{name:"canvas",impl:mtt}],vtt=[{type:"layout",extensions:ket},{type:"renderer",extensions:ytt}],E1e={},S1e={};o(C1e,"setExtension");o(A1e,"getExtension");o(xtt,"setModule");o(btt,"getModule");ZP=o(function(){if(arguments.length===2)return A1e.apply(null,arguments);if(arguments.length===3)return C1e.apply(null,arguments);if(arguments.length===4)return btt.apply(null,arguments);if(arguments.length===5)return xtt.apply(null,arguments);hi("Invalid extension access syntax")},"extension");Qx.prototype.extension=ZP;vtt.forEach(function(t){t.extensions.forEach(function(e){C1e(t.type,e.name,e.impl)})});_1e=o(function t(){if(!(this instanceof t))return new t;this.length=0},"Stylesheet"),H0=_1e.prototype;H0.instanceString=function(){return"stylesheet"};H0.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};H0.css=function(t,e){var r=this.length-1;if(Zt(t))this[r].properties.push({name:t,value:e});else if(Vr(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o(function(e,r){typeof ob=="object"&&typeof EB=="object"?EB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof ob=="object"?ob.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(ob,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var _=x.source.owner.getEdges().indexOf(x);if(_==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(_,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),_=w.length,T=0;T<_;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,_,T,E,L,C=this.nodes,A=C.length,I=0;Iw&&(y=w),v<_&&(v=_),x>T&&(x=T),bw&&(y=w),v<_&&(v=_),x>T&&(x=T),b=this.nodes.length){var A=0;v.forEach(function(I){I.owner==g&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=C,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):S===N&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===N?f>u?(l[2]=L,l[3]=C,R=!0):(l[2]=E,l[3]=T,R=!0):O===N&&(f>u?(l[2]=_,l[3]=T,R=!0):(l[2]=A,l[3]=C,R=!0)),k&&R)return!1;if(u>f?h>d?(P=this.getCardinalDirection(S,N,4),F=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-S,N,3),F=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-S,N,1),F=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(S,N,2),F=this.getCardinalDirection(O,N,4)),!k)switch(P){case 1:$=m,B=u+-w/N,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*N,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/N,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*N,l[0]=B,l[1]=$;break}if(!R)switch(F){case 1:W=T,z=f+-D/N,l[2]=z,l[3]=W;break;case 2:z=A,W=d+I*N,l[2]=z,l[3]=W;break;case 3:W=C,z=f+D/N,l[2]=z,l[3]=W;break;case 4:z=L,W=d+-I*N,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,_=void 0,T=void 0,E=void 0,L=void 0,C=void 0,A=void 0;return w=p-f,T=h-d,L=d*f-h*p,_=v-g,E=m-y,C=y*g-m*v,A=w*E-_*T,A===0?null:(x=(T*C-E*L)/A,b=(_*L-w*C)/A,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var L=E.getEdges(),x=0;x-1&&T.splice(D,1)}b=new Set,_=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(C,1);var A=_.getNeighborsList();A.forEach(function(k){if(y.indexOf(k)<0){var R=v.get(k),S=R-1;S==1&&E.push(k),v.set(k,S)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var _=0;_h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof lb=="object"&&typeof CB=="object"?CB.exports=r(SB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof lb=="object"?lb.coseBase=r(SB()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(lb,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(T);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),L=this.nodesWithGravity.filter(function(C){return E.has(C)});this.graphManager.setAllNodesToApplyGravitation(L),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},w.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var T=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(A){return T.has(A)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var L=!this.isTreeGrowing&&!this.isGrowthFinished,C=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(L,C),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},w.prototype.getPositionsData=function(){for(var T=this.graphManager.getAllNodes(),E={},L=0;L1){var k;for(k=0;kC&&(C=Math.floor(D.y)),I=Math.floor(D.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-D.x/2,d.WORLD_CENTER_Y-D.y/2))},w.radialLayout=function(T,E,L){var C=Math.max(this.maxDiagonalInTree(T),h.DEFAULT_RADIAL_SEPARATION);w.branchRadialLayout(E,null,0,359,0,C);var A=x.calculateBounds(T),I=new b;I.setDeviceOrgX(A.getMinX()),I.setDeviceOrgY(A.getMinY()),I.setWorldOrgX(L.x),I.setWorldOrgY(L.y);for(var D=0;D1;){var j=W[0];W.splice(0,1);var K=P.indexOf(j);K>=0&&P.splice(K,1),$--,F--}E!=null?z=(P.indexOf(W[0])+1)%$:z=0;for(var ie=Math.abs(C-L)/F,Q=z;B!=F;Q=++Q%$){var ee=P[Q].getOtherEnd(T);if(ee!=E){var J=(L+B*ie)%360,H=(J+ie)%360;w.branchRadialLayout(ee,T,J,H,A+I,I),B++}}},w.maxDiagonalInTree=function(T){for(var E=y.MIN_VALUE,L=0;LE&&(E=A)}return E},w.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},w.prototype.groupZeroDegreeMembers=function(){var T=this,E={};this.memberGroups={},this.idToDummyNode={};for(var L=[],C=this.graphManager.getAllNodes(),A=0;A"u"&&(E[k]=[]),E[k]=E[k].concat(I)}Object.keys(E).forEach(function(R){if(E[R].length>1){var S="DummyCompound_"+R;T.memberGroups[S]=E[R];var O=E[R][0].getParent(),N=new l(T.graphManager);N.id=S,N.paddingLeft=O.paddingLeft||0,N.paddingRight=O.paddingRight||0,N.paddingBottom=O.paddingBottom||0,N.paddingTop=O.paddingTop||0,T.idToDummyNode[S]=N;var P=T.getGraphManager().add(T.newGraph(),N),F=O.getChild();F.add(N);for(var B=0;B=0;T--){var E=this.compoundOrder[T],L=E.id,C=E.paddingLeft,A=E.paddingTop;this.adjustLocations(this.tiledMemberPack[L],E.rect.x,E.rect.y,C,A)}},w.prototype.repopulateZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(L){var C=T.idToDummyNode[L],A=C.paddingLeft,I=C.paddingTop;T.adjustLocations(E[L],C.rect.x,C.rect.y,A,I)})},w.prototype.getToBeTiled=function(T){var E=T.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var L=T.getChild();if(L==null)return this.toBeTiled[E]=!1,!1;for(var C=L.getNodes(),A=0;A0)return this.toBeTiled[E]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},w.prototype.getNodeDegree=function(T){for(var E=T.id,L=T.getEdges(),C=0,A=0;AR&&(R=O.rect.height)}L+=R+T.verticalPadding}},w.prototype.tileCompoundMembers=function(T,E){var L=this;this.tiledMemberPack=[],Object.keys(T).forEach(function(C){var A=E[C];L.tiledMemberPack[C]=L.tileNodes(T[C],A.paddingLeft+A.paddingRight),A.rect.width=L.tiledMemberPack[C].width,A.rect.height=L.tiledMemberPack[C].height})},w.prototype.tileNodes=function(T,E){var L=h.TILING_PADDING_VERTICAL,C=h.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:L,horizontalPadding:C};T.sort(function(k,R){return k.rect.width*k.rect.height>R.rect.width*R.rect.height?-1:k.rect.width*k.rect.height0&&(D+=T.horizontalPadding),T.rowWidth[L]=D,T.width0&&(k+=T.verticalPadding);var R=0;k>T.rowHeight[L]&&(R=T.rowHeight[L],T.rowHeight[L]=k,R=T.rowHeight[L]-R),T.height+=R,T.rows[L].push(E)},w.prototype.getShortestRowIndex=function(T){for(var E=-1,L=Number.MAX_VALUE,C=0;CL&&(E=C,L=T.rowWidth[C]);return E},w.prototype.canAddHorizontal=function(T,E,L){var C=this.getShortestRowIndex(T);if(C<0)return!0;var A=T.rowWidth[C];if(A+T.horizontalPadding+E<=T.width)return!0;var I=0;T.rowHeight[C]0&&(I=L+T.verticalPadding-T.rowHeight[C]);var D;T.width-A>=E+T.horizontalPadding?D=(T.height+I)/(A+E+T.horizontalPadding):D=(T.height+I)/T.width,I=L+T.verticalPadding;var k;return T.widthI&&E!=L){C.splice(-1,1),T.rows[L].push(A),T.rowWidth[E]=T.rowWidth[E]-I,T.rowWidth[L]=T.rowWidth[L]+I,T.width=T.rowWidth[instance.getLongestRowIndex(T)];for(var D=Number.MIN_VALUE,k=0;kD&&(D=C[k].height);E>0&&(D+=T.verticalPadding);var R=T.rowHeight[E]+T.rowHeight[L];T.rowHeight[E]=D,T.rowHeight[L]0)for(var F=A;F<=I;F++)P[0]+=this.grid[F][D-1].length+this.grid[F][D].length-1;if(I0)for(var F=D;F<=k;F++)P[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var B=y.MAX_VALUE,$,z,W=0;W{"use strict";o(function(e,r){typeof cb=="object"&&typeof _B=="object"?_B.exports=r(AB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof cb=="object"?cb.cytoscapeCoseBilkent=r(AB()):e.cytoscapeCoseBilkent=r(e.coseBase)},"webpackUniversalModuleDefinition")(cb,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var w in v)b[w]=v[w];for(var w in x)b[w]=x[w];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,w=this.idToLNode={},_=this.layout=new l,T=this;T.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var E=_.newGraphManager();this.gm=E;var L=this.options.eles.nodes(),C=this.options.eles.edges();this.root=E.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(L),_);for(var A=0;A0){var k;k=b.getGraphManager().add(b.newGraph(),L),this.processChildrenList(k,E,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y}])})});function _tt(t,e,r,n,i){return t.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+(i.width-e)/2+", "+r+")")}var Ttt,ktt,Ett,Stt,Ctt,Att,Ltt,Dtt,D1e,N1e,R1e=M(()=>{"use strict";Dl();hr();Ttt=12,ktt=o(function(t,e,r,n){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),Ett=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),Stt=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n,s=.25*n,l=.35*n,u=.2*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${n*.25},${-1*n*.1} + a${l},${l} 1 0,1 ${n*.4},${-1*n*.1} + a${s},${s} 1 0,1 ${n*.35},${1*n*.2} + + a${a},${a} 1 0,1 ${n*.15},${1*i*.35} + a${u},${u} 1 0,1 ${-1*n*.15},${1*i*.65} + + a${s},${a} 1 0,1 ${-1*n*.25},${n*.15} + a${l},${l} 1 0,1 ${-1*n*.5},0 + a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15} + + a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35} + a${u},${u} 1 0,1 ${n*.1},${-1*i*.65} + + H0 V0 Z`)},"cloudBkg"),Ctt=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${n*.25},${-1*i*.1} + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},${1*i*.1} + + a${a},${a} 1 0,0 ${n*.15},${1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${1*i*.34} + a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33} + + a${a},${a} 1 0,0 ${-1*n*.25},${i*.15} + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15} + + a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${-1*i*.34} + a${a},${a} 1 0,0 ${n*.1},${-1*i*.33} + + H0 V0 Z`)},"bangBkg"),Att=o(function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)},"circleBkg");o(_tt,"insertPolygonShape");Ltt=o(function(t,e,r){let n=r.height,a=n/4,s=r.width-r.padding+2*a,l=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-n/2},{x:s-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}];_tt(e,s,n,l,r)},"hexagonBkg"),Dtt=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),D1e=o(async function(t,e,r,n,i){let a=i.htmlLabels,s=n%(Ttt-1),l=e.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);let h=l.append("g"),f=l.append("g"),d=r.descr.replace(/()/g,` +`);await Si(f,d,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=f.node().getBBox(),[m]=Fo(i.fontSize);if(r.height=p.height+m*1.1*.5+r.padding,r.width=p.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;let g=r.height;r.height=Math.max(g,60);let y=Math.abs(r.height-g);l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(y/2+r.padding/2)+")")}else if(a){let g=(r.width-p.width)/2,y=(r.height-p.height)/2;f.attr("transform","translate("+g+", "+y+")")}else{let g=r.width/2,y=r.padding/2;f.attr("transform","translate("+g+", "+y+")")}switch(r.type){case t.nodeType.DEFAULT:ktt(t,h,r,s);break;case t.nodeType.ROUNDED_RECT:Dtt(t,h,r,s);break;case t.nodeType.RECT:Ett(t,h,r,s);break;case t.nodeType.CIRCLE:h.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),Att(t,h,r,s);break;case t.nodeType.CLOUD:Stt(t,h,r,s);break;case t.nodeType.BANG:Ctt(t,h,r,s);break;case t.nodeType.HEXAGON:Ltt(t,h,r,s);break}return t.setElementForId(r.id,l),r.height},"drawNode"),N1e=o(function(t,e){let r=t.getElementById(e.id),n=e.x||0,i=e.y||0;r.attr("transform","translate("+n+","+i+")")},"positionNode")});async function I1e(t,e,r,n,i){await D1e(t,e,r,n,i),r.children&&await Promise.all(r.children.map((a,s)=>I1e(t,e,a,n<0?s:n,i)))}function Ntt(t,e){e.edges().map((r,n)=>{let i=r.data();if(r[0]._private.bodyBounds){let a=r[0]._private.rscratch;Y.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}})}function O1e(t,e,r,n){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:n,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(i=>{O1e(i,e,r,n+1),e.add({group:"edges",data:{id:`${t.id}_${i.id}`,source:t.id,target:i.id,depth:n,section:i.section}})})}function Rtt(t,e){return new Promise(r=>{let n=ze("body").append("div").attr("id","cy").attr("style","display:none"),i=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),O1e(t,i,e,0),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}}),i.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),i.ready(a=>{Y.info("Ready",a),r(i)})})}function Mtt(t,e){e.nodes().map((r,n)=>{let i=r.data();i.x=r.position().x,i.y=r.position().y,N1e(t,i);let a=t.getElementById(i.nodeId);Y.info("Id:",n,"Position: (",r.position().x,", ",r.position().y,")",i),a.attr("transform",`translate(${r.position().x-i.width/2}, ${r.position().y-i.height/2})`),a.attr("attr",`apa-${n})`)})}var M1e,Itt,P1e,B1e=M(()=>{"use strict";kB();M1e=ka(L1e(),1);mr();Vt();ht();Hu();ni();R1e();hs();sl.use(M1e.default);o(I1e,"drawNodes");o(Ntt,"drawEdges");o(O1e,"addNodes");o(Rtt,"layoutMindmap");o(Mtt,"positionNodes");Itt=o(async(t,e,r,n)=>{Y.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getMindmap();if(!a)return;let s=de();s.htmlLabels=!1;let l=Oa(e),u=l.append("g");u.attr("class","mindmap-edges");let h=l.append("g");h.attr("class","mindmap-nodes"),await I1e(i,h,a,-1,s);let f=await Rtt(a,s);Ntt(u,f),Mtt(i,f),_o(void 0,l,s.mindmap?.padding??ur.mindmap.padding,s.mindmap?.useMaxWidth??ur.mindmap.useMaxWidth)},"draw"),P1e={draw:Itt}});var Ott,Ptt,F1e,z1e=M(()=>{"use strict";To();Ott=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Ott(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),F1e=Ptt});var G1e={};vr(G1e,{diagram:()=>Btt});var Btt,$1e=M(()=>{"use strict";Cpe();Lpe();B1e();z1e();Btt={db:_pe,renderer:P1e,parser:Spe,styles:F1e}});var LB,H1e,W1e=M(()=>{"use strict";LB=function(){var t=o(function(L,C,A,I){for(A=A||{},I=L.length;I--;A[L[I]]=C);return A},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],w=[1,38],_={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(C,A,I,D,k,R,S){var O=R.length-1;switch(k){case 6:case 7:return D;case 8:D.getLogger().trace("Stop NL ");break;case 9:D.getLogger().trace("Stop EOF ");break;case 11:D.getLogger().trace("Stop NL2 ");break;case 12:D.getLogger().trace("Stop EOF2 ");break;case 15:D.getLogger().info("Node: ",R[O-1].id),D.addNode(R[O-2].length,R[O-1].id,R[O-1].descr,R[O-1].type,R[O]);break;case 16:D.getLogger().info("Node: ",R[O].id),D.addNode(R[O-1].length,R[O].id,R[O].descr,R[O].type);break;case 17:D.getLogger().trace("Icon: ",R[O]),D.decorateNode({icon:R[O]});break;case 18:case 23:D.decorateNode({class:R[O]});break;case 19:D.getLogger().trace("SPACELIST");break;case 20:D.getLogger().trace("Node: ",R[O-1].id),D.addNode(0,R[O-1].id,R[O-1].descr,R[O-1].type,R[O]);break;case 21:D.getLogger().trace("Node: ",R[O].id),D.addNode(0,R[O].id,R[O].descr,R[O].type);break;case 22:D.decorateNode({icon:R[O]});break;case 27:D.getLogger().trace("node found ..",R[O-2]),this.$={id:R[O-1],descr:R[O-1],type:D.getType(R[O-2],R[O])};break;case 28:this.$={id:R[O],descr:R[O],type:0};break;case 29:D.getLogger().trace("node found ..",R[O-3]),this.$={id:R[O-3],descr:R[O-1],type:D.getType(R[O-2],R[O])};break;case 30:this.$=R[O-1]+R[O];break;case 31:this.$=R[O];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:w}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:w}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(C,A){if(A.recoverable)this.trace(C);else{var I=new Error(C);throw I.hash=A,I}},"parseError"),parse:o(function(C){var A=this,I=[0],D=[],k=[null],R=[],S=this.table,O="",N=0,P=0,F=0,B=2,$=1,z=R.slice.call(arguments,1),W=Object.create(this.lexer),j={yy:{}};for(var K in this.yy)Object.prototype.hasOwnProperty.call(this.yy,K)&&(j.yy[K]=this.yy[K]);W.setInput(C,j.yy),j.yy.lexer=W,j.yy.parser=this,typeof W.yylloc>"u"&&(W.yylloc={});var ie=W.yylloc;R.push(ie);var Q=W.options&&W.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ee(Ve){I.length=I.length-2*Ve,k.length=k.length-Ve,R.length=R.length-Ve}o(ee,"popStack");function J(){var Ve;return Ve=D.pop()||W.lex()||$,typeof Ve!="number"&&(Ve instanceof Array&&(D=Ve,Ve=D.pop()),Ve=A.symbols_[Ve]||Ve),Ve}o(J,"lex");for(var H,q,Z,ae,ue,ce,te={},De,oe,ke,Fe;;){if(Z=I[I.length-1],this.defaultActions[Z]?ae=this.defaultActions[Z]:((H===null||typeof H>"u")&&(H=J()),ae=S[Z]&&S[Z][H]),typeof ae>"u"||!ae.length||!ae[0]){var Be="";Fe=[];for(De in S[Z])this.terminals_[De]&&De>B&&Fe.push("'"+this.terminals_[De]+"'");W.showPosition?Be="Parse error on line "+(N+1)+`: +`+W.showPosition()+` +Expecting `+Fe.join(", ")+", got '"+(this.terminals_[H]||H)+"'":Be="Parse error on line "+(N+1)+": Unexpected "+(H==$?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(Be,{text:W.match,token:this.terminals_[H]||H,line:W.yylineno,loc:ie,expected:Fe})}if(ae[0]instanceof Array&&ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+H);switch(ae[0]){case 1:I.push(H),k.push(W.yytext),R.push(W.yylloc),I.push(ae[1]),H=null,q?(H=q,q=null):(P=W.yyleng,O=W.yytext,N=W.yylineno,ie=W.yylloc,F>0&&F--);break;case 2:if(oe=this.productions_[ae[1]][1],te.$=k[k.length-oe],te._$={first_line:R[R.length-(oe||1)].first_line,last_line:R[R.length-1].last_line,first_column:R[R.length-(oe||1)].first_column,last_column:R[R.length-1].last_column},Q&&(te._$.range=[R[R.length-(oe||1)].range[0],R[R.length-1].range[1]]),ce=this.performAction.apply(te,[O,P,N,j.yy,ae[1],k,R].concat(z)),typeof ce<"u")return ce;oe&&(I=I.slice(0,-1*oe*2),k=k.slice(0,-1*oe),R=R.slice(0,-1*oe)),I.push(this.productions_[ae[1]][0]),k.push(te.$),R.push(te._$),ke=S[I[I.length-2]][I[I.length-1]],I.push(ke);break;case 3:return!0}}return!0},"parse")},T=function(){var L={EOF:1,parseError:o(function(A,I){if(this.yy.parser)this.yy.parser.parseError(A,I);else throw new Error(A)},"parseError"),setInput:o(function(C,A){return this.yy=A||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var A=C.match(/(?:\r\n?|\n).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var A=C.length,I=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var D=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===D.length?this.yylloc.first_column:0)+D[D.length-I.length].length-I[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),A=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+A+"^"},"showPosition"),test_match:o(function(C,A){var I,D,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),D=C[0].match(/(?:\r\n?|\n).*/g),D&&(this.yylineno+=D.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:D?D[D.length-1].length-D[D.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],I=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var R in k)this[R]=k[R];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,A,I,D;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),R=0;RA[0].length)){if(A=I,D=R,this.options.backtrack_lexer){if(C=this.test_match(I,k[R]),C!==!1)return C;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(C=this.test_match(A,k[D]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var A=this.next();return A||this.lex()},"lex"),begin:o(function(A){this.conditionStack.push(A)},"begin"),popState:o(function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},"topState"),pushState:o(function(A){this.begin(A)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(A,I,D,k){var R=k;switch(D){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let S=/\n\s*/g;return I.yytext=I.yytext.replace(S,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return A.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:A.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return A.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:A.getLogger().trace("end icon"),this.popState();break;case 16:return A.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return A.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return A.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return A.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:A.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return A.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),A.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),A.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),A.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),A.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),A.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return A.getLogger().trace("Long description:",I.yytext),21;break;case 42:return A.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return L}();_.lexer=T;function E(){this.yy={}}return o(E,"Parser"),E.prototype=_,_.Parser=E,new E}();LB.parser=LB;H1e=LB});var ol,NB,DB,RB,$tt,Vtt,Y1e,Utt,Htt,Xi,Wtt,Ytt,qtt,Xtt,jtt,Ktt,Qtt,q1e,X1e=M(()=>{"use strict";Vt();fr();ht();hs();V5();ol=[],NB=[],DB=0,RB={},$tt=o(()=>{ol=[],NB=[],DB=0,RB={}},"clear"),Vtt=o(t=>{if(ol.length===0)return null;let e=ol[0].level,r=null;for(let n=ol.length-1;n>=0;n--)if(ol[n].level===e&&!r&&(r=ol[n]),ol[n].levell.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:Tr(l.label??"",n),isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:de()}},"getData"),Htt=o((t,e,r,n,i)=>{let a=de(),s=a.mindmap?.padding??ur.mindmap.padding;switch(n){case Xi.ROUNDED_RECT:case Xi.RECT:case Xi.HEXAGON:s*=2}let l={id:Tr(e,a)||"kbn"+DB++,level:t,label:Tr(r,a),width:a.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(` +`)?h=i+` +`:h=`{ +`+i+` +}`;let f=fm(h,{schema:hm});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=Vtt(t);u?l.parentId=u.id||"kbn"+DB++:NB.push(l),ol.push(l)},"addNode"),Xi={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Wtt=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Xi.RECT;case"(":return e===")"?Xi.ROUNDED_RECT:Xi.CLOUD;case"((":return Xi.CIRCLE;case")":return Xi.CLOUD;case"))":return Xi.BANG;case"{{":return Xi.HEXAGON;default:return Xi.DEFAULT}},"getType"),Ytt=o((t,e)=>{RB[t]=e},"setElementForId"),qtt=o(t=>{if(!t)return;let e=de(),r=ol[ol.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.cssClasses=Tr(t.class,e))},"decorateNode"),Xtt=o(t=>{switch(t){case Xi.DEFAULT:return"no-border";case Xi.RECT:return"rect";case Xi.ROUNDED_RECT:return"rounded-rect";case Xi.CIRCLE:return"circle";case Xi.CLOUD:return"cloud";case Xi.BANG:return"bang";case Xi.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),jtt=o(()=>Y,"getLogger"),Ktt=o(t=>RB[t],"getElementById"),Qtt={clear:$tt,addNode:Htt,getSections:Y1e,getData:Utt,nodeType:Xi,getType:Wtt,setElementForId:Ytt,decorateNode:qtt,type2Str:Xtt,getLogger:jtt,getElementById:Ktt},q1e=Qtt});var Ztt,j1e,K1e=M(()=>{"use strict";Vt();ht();Hu();ni();hs();K5();sw();Ztt=o(async(t,e,r,n)=>{Y.debug(`Rendering kanban diagram +`+t);let a=n.db.getData(),s=de();s.htmlLabels=!1;let l=Oa(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await mm(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,w=-b*3/2+g,_=w,T=a.nodes.filter(C=>C.parentId===v.id);for(let C of T){if(C.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");C.x=v.x,C.width=b-1.5*p;let I=(await gm(h,C,{config:s})).node().getBBox();C.y=_+I.height/2,await _v(C),_=C.y+I.height/2+p/2}let E=x.cluster.select("rect"),L=Math.max(_-w+3*p,50)+(g-25);E.attr("height",L)}_o(void 0,l,s.mindmap?.padding??ur.kanban.padding,s.mindmap?.useMaxWidth??ur.kanban.useMaxWidth)},"draw"),j1e={draw:Ztt}});var Jtt,ert,Q1e,Z1e=M(()=>{"use strict";To();Jtt=o(t=>{let e="";for(let n=0;nt.darkMode?Bt(n,i):Dt(n,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${Jtt(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${t.textColor}; + fill: ${t.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),Q1e=ert});var J1e={};vr(J1e,{diagram:()=>trt});var trt,eye=M(()=>{"use strict";W1e();X1e();K1e();Z1e();trt={db:q1e,renderer:j1e,parser:H1e,styles:Q1e}});var MB,ub,nye=M(()=>{"use strict";MB=function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,w=2,_=1,T=m.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var C in this.yy)Object.prototype.hasOwnProperty.call(this.yy,C)&&(L.yy[C]=this.yy[C]);E.setInput(u,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var A=E.yylloc;m.push(A);var I=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function D(ie){f.length=f.length-2*ie,p.length=p.length-ie,m.length=m.length-ie}o(D,"popStack");function k(){var ie;return ie=d.pop()||E.lex()||_,typeof ie!="number"&&(ie instanceof Array&&(d=ie,ie=d.pop()),ie=h.symbols_[ie]||ie),ie}o(k,"lex");for(var R,S,O,N,P,F,B={},$,z,W,j;;){if(O=f[f.length-1],this.defaultActions[O]?N=this.defaultActions[O]:((R===null||typeof R>"u")&&(R=k()),N=g[O]&&g[O][R]),typeof N>"u"||!N.length||!N[0]){var K="";j=[];for($ in g[O])this.terminals_[$]&&$>w&&j.push("'"+this.terminals_[$]+"'");E.showPosition?K="Parse error on line "+(v+1)+`: +`+E.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[R]||R)+"'":K="Parse error on line "+(v+1)+": Unexpected "+(R==_?"end of input":"'"+(this.terminals_[R]||R)+"'"),this.parseError(K,{text:E.match,token:this.terminals_[R]||R,line:E.yylineno,loc:A,expected:j})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+R);switch(N[0]){case 1:f.push(R),p.push(E.yytext),m.push(E.yylloc),f.push(N[1]),R=null,S?(R=S,S=null):(x=E.yyleng,y=E.yytext,v=E.yylineno,A=E.yylloc,b>0&&b--);break;case 2:if(z=this.productions_[N[1]][1],B.$=p[p.length-z],B._$={first_line:m[m.length-(z||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(z||1)].first_column,last_column:m[m.length-1].last_column},I&&(B._$.range=[m[m.length-(z||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(B,[y,x,v,L.yy,N[1],p,m].concat(T)),typeof F<"u")return F;z&&(f=f.slice(0,-1*z*2),p=p.slice(0,-1*z),m=m.slice(0,-1*z)),f.push(this.productions_[N[1]][0]),p.push(B.$),m.push(B._$),W=g[f[f.length-2]][f[f.length-1]],f.push(W);break;case 3:return!0}}return!0},"parse")},a=function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;break;case 5:return 20;case 6:return this.popState("escaped_text"),18;break;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return l}();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s}();MB.parser=MB;ub=MB});var H6,W6,U6,art,IB,srt,OB,ort,lrt,crt,urt,iye,aye=M(()=>{"use strict";Vt();fr();ki();H6=[],W6=[],U6=new Map,art=o(()=>{H6=[],W6=[],U6=new Map,_r()},"clear"),IB=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},srt=o((t,e,r)=>{H6.push(new IB(t,e,r))},"addLink"),OB=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},ort=o(t=>{t=je.sanitizeText(t,de());let e=U6.get(t);return e===void 0&&(e=new OB(t),U6.set(t,e),W6.push(e)),e},"findOrCreateNode"),lrt=o(()=>W6,"getNodes"),crt=o(()=>H6,"getLinks"),urt=o(()=>({nodes:W6.map(t=>({id:t.ID})),links:H6.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),iye={nodesMap:U6,getConfig:o(()=>de().sankey,"getConfig"),getNodes:lrt,getLinks:crt,getGraph:urt,addLink:srt,findOrCreateNode:ort,getAccTitle:Pr,setAccTitle:Rr,getAccDescription:Fr,setAccDescription:Br,getDiagramTitle:Jr,setDiagramTitle:ln,clear:art}});function hb(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var sye=M(()=>{"use strict";o(hb,"max")});function T1(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var oye=M(()=>{"use strict";o(T1,"min")});function k1(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var lye=M(()=>{"use strict";o(k1,"sum")});var PB=M(()=>{"use strict";sye();oye();lye()});function hrt(t){return t.target.depth}function BB(t){return t.depth}function FB(t,e){return e-1-t.height}function fb(t,e){return t.sourceLinks.length?t.depth:e-1}function zB(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?T1(t.sourceLinks,hrt)-1:0}var GB=M(()=>{"use strict";PB();o(hrt,"targetDepth");o(BB,"left");o(FB,"right");o(fb,"justify");o(zB,"center")});function E1(t){return function(){return t}}var cye=M(()=>{"use strict";o(E1,"constant")});function uye(t,e){return Y6(t.source,e.source)||t.index-e.index}function hye(t,e){return Y6(t.target,e.target)||t.index-e.index}function Y6(t,e){return t.y0-e.y0}function $B(t){return t.value}function frt(t){return t.index}function drt(t){return t.nodes}function prt(t){return t.links}function fye(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function dye({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function q6(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=frt,u=fb,h,f,d=drt,p=prt,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),T(O),dye(O),O}o(g,"sankey"),g.update=function(O){return dye(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:E1(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:E1(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:E1(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:E1(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(t=e=0,r=+O[0],n=+O[1],g):[r-t,n-e]},g.extent=function(O){return arguments.length?(t=+O[0][0],r=+O[1][0],e=+O[0][1],n=+O[1][1],g):[[t,e],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:N}){for(let[F,B]of O.entries())B.index=F,B.sourceLinks=[],B.targetLinks=[];let P=new Map(O.map((F,B)=>[l(F,B,O),F]));for(let[F,B]of N.entries()){B.index=F;let{source:$,target:z}=B;typeof $!="object"&&($=B.source=fye(P,$)),typeof z!="object"&&(z=B.target=fye(P,z)),$.sourceLinks.push(B),z.targetLinks.push(B)}if(f!=null)for(let{sourceLinks:F,targetLinks:B}of O)F.sort(f),B.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let N of O)N.value=N.fixedValue===void 0?Math.max(k1(N.sourceLinks,$B),k1(N.targetLinks,$B)):N.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let N=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.depth=B;for(let{target:z}of $.sourceLinks)F.add(z)}if(++B>N)throw new Error("circular link");P=F,F=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let N=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.height=B;for(let{source:z}of $.targetLinks)F.add(z)}if(++B>N)throw new Error("circular link");P=F,F=new Set}}o(b,"computeNodeHeights");function w({nodes:O}){let N=hb(O,B=>B.depth)+1,P=(r-t-i)/(N-1),F=new Array(N);for(let B of O){let $=Math.max(0,Math.min(N-1,Math.floor(u.call(null,B,N))));B.layer=$,B.x0=t+$*P,B.x1=B.x0+i,F[$]?F[$].push(B):F[$]=[B]}if(h)for(let B of F)B.sort(h);return F}o(w,"computeNodeLayers");function _(O){let N=T1(O,P=>(n-e-(P.length-1)*s)/k1(P,$B));for(let P of O){let F=e;for(let B of P){B.y0=F,B.y1=F+B.value*N,F=B.y1+s;for(let $ of B.sourceLinks)$.width=$.value*N}F=(n-F+s)/(P.length+1);for(let B=0;BP.length)-1)),_(N);for(let P=0;P0))continue;let K=(W/j-z.y0)*N;z.y0+=K,z.y1+=K,D(z)}h===void 0&&$.sort(Y6),C($,P)}}o(E,"relaxLeftToRight");function L(O,N,P){for(let F=O.length,B=F-2;B>=0;--B){let $=O[B];for(let z of $){let W=0,j=0;for(let{target:ie,value:Q}of z.sourceLinks){let ee=Q*(ie.layer-z.layer);W+=S(z,ie)*ee,j+=ee}if(!(j>0))continue;let K=(W/j-z.y0)*N;z.y0+=K,z.y1+=K,D(z)}h===void 0&&$.sort(Y6),C($,P)}}o(L,"relaxRightToLeft");function C(O,N){let P=O.length>>1,F=O[P];I(O,F.y0-s,P-1,N),A(O,F.y1+s,P+1,N),I(O,n,O.length-1,N),A(O,e,0,N)}o(C,"resolveCollisions");function A(O,N,P,F){for(;P1e-6&&(B.y0+=$,B.y1+=$),N=B.y1+s}}o(A,"resolveCollisionsTopToBottom");function I(O,N,P,F){for(;P>=0;--P){let B=O[P],$=(B.y1-N)*F;$>1e-6&&(B.y0-=$,B.y1-=$),N=B.y0-s}}o(I,"resolveCollisionsBottomToTop");function D({sourceLinks:O,targetLinks:N}){if(f===void 0){for(let{source:{sourceLinks:P}}of N)P.sort(hye);for(let{target:{targetLinks:P}}of O)P.sort(uye)}}o(D,"reorderNodeLinks");function k(O){if(f===void 0)for(let{sourceLinks:N,targetLinks:P}of O)N.sort(hye),P.sort(uye)}o(k,"reorderLinks");function R(O,N){let P=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:F,width:B}of O.sourceLinks){if(F===N)break;P+=B+s}for(let{source:F,width:B}of N.targetLinks){if(F===O)break;P-=B}return P}o(R,"targetTop");function S(O,N){let P=N.y0-(N.targetLinks.length-1)*s/2;for(let{source:F,width:B}of N.targetLinks){if(F===O)break;P+=B+s}for(let{target:F,width:B}of O.sourceLinks){if(F===N)break;P-=B}return P}return o(S,"sourceTop"),g}var pye=M(()=>{"use strict";PB();GB();cye();o(uye,"ascendingSourceBreadth");o(hye,"ascendingTargetBreadth");o(Y6,"ascendingBreadth");o($B,"value");o(frt,"defaultId");o(drt,"defaultNodes");o(prt,"defaultLinks");o(fye,"find");o(dye,"computeLinkBreadths");o(q6,"Sankey")});function HB(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function mye(){return new HB}var VB,UB,q0,mrt,WB,gye=M(()=>{"use strict";VB=Math.PI,UB=2*VB,q0=1e-6,mrt=UB-q0;o(HB,"Path");o(mye,"path");HB.prototype=mye.prototype={constructor:HB,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>q0)if(!(Math.abs(f*l-u*h)>q0)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((VB-Math.acos((g+d-y)/(2*v*x)))/2),w=b/x,_=b/v;Math.abs(w-1)>q0&&(this._+="L"+(t+w*h)+","+(e+w*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+_*l)+","+(this._y1=e+_*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>q0||Math.abs(this._y1-h)>q0)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%UB+UB),d>mrt?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>q0&&(this._+="A"+r+","+r+",0,"+ +(d>=VB)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};WB=mye});var yye=M(()=>{"use strict";gye()});function X6(t){return o(function(){return t},"constant")}var vye=M(()=>{"use strict";o(X6,"default")});function xye(t){return t[0]}function bye(t){return t[1]}var wye=M(()=>{"use strict";o(xye,"x");o(bye,"y")});var Tye,kye=M(()=>{"use strict";Tye=Array.prototype.slice});function grt(t){return t.source}function yrt(t){return t.target}function vrt(t){var e=grt,r=yrt,n=xye,i=bye,a=null;function s(){var l,u=Tye.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=WB()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:X6(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:X6(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function xrt(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function YB(){return vrt(xrt)}var Eye=M(()=>{"use strict";yye();kye();vye();wye();o(grt,"linkSource");o(yrt,"linkTarget");o(vrt,"link");o(xrt,"curveHorizontal");o(YB,"linkHorizontal")});var Sye=M(()=>{"use strict";Eye()});function brt(t){return[t.source.x1,t.y0]}function wrt(t){return[t.target.x0,t.y1]}function j6(){return YB().source(brt).target(wrt)}var Cye=M(()=>{"use strict";Sye();o(brt,"horizontalSource");o(wrt,"horizontalTarget");o(j6,"default")});var Aye=M(()=>{"use strict";pye();GB();Cye()});var db,_ye=M(()=>{"use strict";db=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var Trt,krt,Lye,Dye=M(()=>{"use strict";Vt();mr();Aye();ni();_ye();Trt={left:BB,right:FB,center:zB,justify:fb},krt=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=de(),s=S4.sankey,l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):ze(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=Trt[m];q6().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let T=du(Z8);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=db.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>T(I.id));let E=o(({id:I,value:D})=>v?`${I} +${g}${Math.round(D*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0(D.uid=db.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",D=>D.source.x1).attr("x2",D=>D.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",D=>T(D.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",D=>T(D.target.id))}let A;switch(C){case"gradient":A=o(I=>I.uid,"coloring");break;case"source":A=o(I=>T(I.source.id),"coloring");break;case"target":A=o(I=>T(I.target.id),"coloring");break;default:A=C}L.append("path").attr("d",j6()).attr("stroke",A).attr("stroke-width",I=>Math.max(1,I.width)),_o(void 0,h,0,p)},"draw"),Lye={draw:krt}});var Nye,Rye=M(()=>{"use strict";Nye=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var Mye={};vr(Mye,{diagram:()=>Srt});var Ert,Srt,Iye=M(()=>{"use strict";nye();aye();Dye();Rye();Ert=ub.parse.bind(ub);ub.parse=t=>Ert(Nye(t));Srt={parser:ub,db:iye,renderer:Lye}});var Bye,qB,Lrt,Drt,Nrt,Rrt,Mrt,Rf,XB=M(()=>{"use strict";Ua();hs();hr();ki();Bye={packet:[]},qB=structuredClone(Bye),Lrt=ur.packet,Drt=o(()=>{let t=ws({...Lrt,...Sr().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),Nrt=o(()=>qB.packet,"getPacket"),Rrt=o(t=>{t.length>0&&qB.packet.push(t)},"pushWord"),Mrt=o(()=>{_r(),qB=structuredClone(Bye)},"clear"),Rf={pushWord:Rrt,getPacket:Nrt,getConfig:Drt,clear:Mrt,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br}});var Irt,Ort,Prt,Fye,zye=M(()=>{"use strict";Ng();ht();ox();XB();Irt=1e4,Ort=o(t=>{lf(t,Rf);let e=-1,r=[],n=1,{bitsPerRow:i}=Rf.getConfig();for(let{start:a,end:s,label:l}of t.blocks){if(s&&s{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*r?[t,void 0]:[{start:t.start,end:e*r-1,label:t.label},{start:e*r,end:t.end,label:t.label}]},"getNextFittingBlock"),Fye={parse:o(async t=>{let e=await Gl("packet",t);Y.debug(e),Ort(e)},"parse")}});var Brt,Frt,Gye,$ye=M(()=>{"use strict";Hu();ni();Brt=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Oa(e);y.attr("viewbox",`0 0 ${g} ${m}`),Zr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())Frt(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),Frt=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),Gye={draw:Brt}});var zrt,Vye,Uye=M(()=>{"use strict";hr();zrt={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},Vye=o(({packet:t}={})=>{let e=ws(zrt,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var Hye={};vr(Hye,{diagram:()=>Grt});var Grt,Wye=M(()=>{"use strict";XB();zye();$ye();Uye();Grt={parser:Fye,db:Rf,renderer:Gye,styles:Vye}});var jB,Xye,jye=M(()=>{"use strict";jB=function(){var t=o(function(w,_,T,E){for(T=T||{},E=w.length;E--;T[w[E]]=_);return T},"o"),e=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],g=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(_,T,E,L,C,A,I){var D=A.length-1;switch(C){case 4:L.getLogger().debug("Rule: separator (NL) ");break;case 5:L.getLogger().debug("Rule: separator (Space) ");break;case 6:L.getLogger().debug("Rule: separator (EOF) ");break;case 7:L.getLogger().debug("Rule: hierarchy: ",A[D-1]),L.setHierarchy(A[D-1]);break;case 8:L.getLogger().debug("Stop NL ");break;case 9:L.getLogger().debug("Stop EOF ");break;case 10:L.getLogger().debug("Stop NL2 ");break;case 11:L.getLogger().debug("Stop EOF2 ");break;case 12:L.getLogger().debug("Rule: statement: ",A[D]),typeof A[D].length=="number"?this.$=A[D]:this.$=[A[D]];break;case 13:L.getLogger().debug("Rule: statement #2: ",A[D-1]),this.$=[A[D-1]].concat(A[D]);break;case 14:L.getLogger().debug("Rule: link: ",A[D],_),this.$={edgeTypeStr:A[D],label:""};break;case 15:L.getLogger().debug("Rule: LABEL link: ",A[D-3],A[D-1],A[D]),this.$={edgeTypeStr:A[D],label:A[D-1]};break;case 18:let k=parseInt(A[D]),R=L.generateId();this.$={id:R,type:"space",label:"",width:k,children:[]};break;case 23:L.getLogger().debug("Rule: (nodeStatement link node) ",A[D-2],A[D-1],A[D]," typestr: ",A[D-1].edgeTypeStr);let S=L.edgeStrToEdgeData(A[D-1].edgeTypeStr);this.$=[{id:A[D-2].id,label:A[D-2].label,type:A[D-2].type,directions:A[D-2].directions},{id:A[D-2].id+"-"+A[D].id,start:A[D-2].id,end:A[D].id,label:A[D-1].label,type:"edge",directions:A[D].directions,arrowTypeEnd:S,arrowTypeStart:"arrow_open"},{id:A[D].id,label:A[D].label,type:L.typeStr2Type(A[D].typeStr),directions:A[D].directions}];break;case 24:L.getLogger().debug("Rule: nodeStatement (abc88 node size) ",A[D-1],A[D]),this.$={id:A[D-1].id,label:A[D-1].label,type:L.typeStr2Type(A[D-1].typeStr),directions:A[D-1].directions,widthInColumns:parseInt(A[D],10)};break;case 25:L.getLogger().debug("Rule: nodeStatement (node) ",A[D]),this.$={id:A[D].id,label:A[D].label,type:L.typeStr2Type(A[D].typeStr),directions:A[D].directions,widthInColumns:1};break;case 26:L.getLogger().debug("APA123",this?this:"na"),L.getLogger().debug("COLUMNS: ",A[D]),this.$={type:"column-setting",columns:A[D]==="auto"?-1:parseInt(A[D])};break;case 27:L.getLogger().debug("Rule: id-block statement : ",A[D-2],A[D-1]);let O=L.generateId();this.$={...A[D-2],type:"composite",children:A[D-1]};break;case 28:L.getLogger().debug("Rule: blockStatement : ",A[D-2],A[D-1],A[D]);let N=L.generateId();this.$={id:N,type:"composite",label:"",children:A[D-1]};break;case 29:L.getLogger().debug("Rule: node (NODE_ID separator): ",A[D]),this.$={id:A[D]};break;case 30:L.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",A[D-1],A[D]),this.$={id:A[D-1],label:A[D].label,typeStr:A[D].typeStr,directions:A[D].directions};break;case 31:L.getLogger().debug("Rule: dirList: ",A[D]),this.$=[A[D]];break;case 32:L.getLogger().debug("Rule: dirList: ",A[D-1],A[D]),this.$=[A[D-1]].concat(A[D]);break;case 33:L.getLogger().debug("Rule: nodeShapeNLabel: ",A[D-2],A[D-1],A[D]),this.$={typeStr:A[D-2]+A[D],label:A[D-1]};break;case 34:L.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",A[D-3],A[D-2]," #3:",A[D-1],A[D]),this.$={typeStr:A[D-3]+A[D],label:A[D-2],directions:A[D-1]};break;case 35:case 36:this.$={type:"classDef",id:A[D-1].trim(),css:A[D].trim()};break;case 37:this.$={type:"applyClass",id:A[D-1].trim(),styleClass:A[D].trim()};break;case 38:this.$={type:"applyStyles",id:A[D-1].trim(),stylesStr:A[D].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:n,31:i,32:a,40:s,44:l,47:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(g,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},t(m,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},t(g,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(_,T){if(T.recoverable)this.trace(_);else{var E=new Error(_);throw E.hash=T,E}},"parseError"),parse:o(function(_){var T=this,E=[0],L=[],C=[null],A=[],I=this.table,D="",k=0,R=0,S=0,O=2,N=1,P=A.slice.call(arguments,1),F=Object.create(this.lexer),B={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(B.yy[$]=this.yy[$]);F.setInput(_,B.yy),B.yy.lexer=F,B.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var z=F.yylloc;A.push(z);var W=F.options&&F.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(oe){E.length=E.length-2*oe,C.length=C.length-oe,A.length=A.length-oe}o(j,"popStack");function K(){var oe;return oe=L.pop()||F.lex()||N,typeof oe!="number"&&(oe instanceof Array&&(L=oe,oe=L.pop()),oe=T.symbols_[oe]||oe),oe}o(K,"lex");for(var ie,Q,ee,J,H,q,Z={},ae,ue,ce,te;;){if(ee=E[E.length-1],this.defaultActions[ee]?J=this.defaultActions[ee]:((ie===null||typeof ie>"u")&&(ie=K()),J=I[ee]&&I[ee][ie]),typeof J>"u"||!J.length||!J[0]){var De="";te=[];for(ae in I[ee])this.terminals_[ae]&&ae>O&&te.push("'"+this.terminals_[ae]+"'");F.showPosition?De="Parse error on line "+(k+1)+`: +`+F.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":De="Parse error on line "+(k+1)+": Unexpected "+(ie==N?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(De,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:z,expected:te})}if(J[0]instanceof Array&&J.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ee+", token: "+ie);switch(J[0]){case 1:E.push(ie),C.push(F.yytext),A.push(F.yylloc),E.push(J[1]),ie=null,Q?(ie=Q,Q=null):(R=F.yyleng,D=F.yytext,k=F.yylineno,z=F.yylloc,S>0&&S--);break;case 2:if(ue=this.productions_[J[1]][1],Z.$=C[C.length-ue],Z._$={first_line:A[A.length-(ue||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(ue||1)].first_column,last_column:A[A.length-1].last_column},W&&(Z._$.range=[A[A.length-(ue||1)].range[0],A[A.length-1].range[1]]),q=this.performAction.apply(Z,[D,R,k,B.yy,J[1],C,A].concat(P)),typeof q<"u")return q;ue&&(E=E.slice(0,-1*ue*2),C=C.slice(0,-1*ue),A=A.slice(0,-1*ue)),E.push(this.productions_[J[1]][0]),C.push(Z.$),A.push(Z._$),ce=I[E[E.length-2]][E[E.length-1]],E.push(ce);break;case 3:return!0}}return!0},"parse")},x=function(){var w={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(_,T){return this.yy=T||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var T=_.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},"input"),unput:o(function(_){var T=_.length,E=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var L=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===L.length?this.yylloc.first_column:0)+L[L.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_){this.unput(this.match.slice(_))},"less"),pastInput:o(function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _=this.pastInput(),T=new Array(_.length+1).join("-");return _+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(_,T){var E,L,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),L=_[0].match(/(?:\r\n?|\n).*/g),L&&(this.yylineno+=L.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:L?L[L.length-1].length-L[L.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var A in C)this[A]=C[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,T,E,L;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),A=0;AT[0].length)){if(T=E,L=A,this.options.backtrack_lexer){if(_=this.test_match(E,C[A]),_!==!1)return _;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(_=this.test_match(T,C[L]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(T,E,L,C){var A=C;switch(L){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;break;case 2:return T.getLogger().debug("Found nl-block"),31;break;case 3:return T.getLogger().debug("Found space-block"),29;break;case 4:T.getLogger().debug(".",E.yytext);break;case 5:T.getLogger().debug("_",E.yytext);break;case 6:return 5;case 7:return E.yytext=-1,28;break;case 8:return E.yytext=E.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",E.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",E.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",E.yytext),"STR";break;case 15:return E.yytext=E.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",E.yytext),21;break;case 16:return E.yytext="1",T.getLogger().debug("COLUMNS (LEX)",E.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;break;case 75:return T.getLogger().debug("Lex: NODE_ID",E.yytext),32;break;case 76:return T.getLogger().debug("Lex: EOF",E.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",E.yytext),"NODE_DESCR";break;case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",E.yytext),"DIR";break;case 87:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",E.yytext),"DIR";break;case 88:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",E.yytext),"DIR";break;case 89:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",E.yytext),"DIR";break;case 90:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",E.yytext),"DIR";break;case 91:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",E.yytext),"DIR";break;case 92:return E.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",E.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 94:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 95:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 96:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 97:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 98:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 99:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 105:return T.getLogger().debug("Lex: COLON",E.yytext),E.yytext=E.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return w}();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b}();jB.parser=jB;Xye=jB});function Krt(t){switch(Y.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return Y.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Qrt(t){switch(Y.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function Zrt(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var ql,QB,KB,Kye,Qye,Urt,Jye,Hrt,K6,Wrt,Yrt,qrt,Xrt,eve,ZB,pb,jrt,Zye,Jrt,ent,tnt,rnt,nnt,int,ant,snt,ont,lnt,cnt,tve,rve=M(()=>{"use strict";SL();Ua();Vt();ht();fr();ki();ql=new Map,QB=[],KB=new Map,Kye="color",Qye="fill",Urt="bgFill",Jye=",",Hrt=de(),K6=new Map,Wrt=o(t=>je.sanitizeText(t,Hrt),"sanitizeText"),Yrt=o(function(t,e=""){let r=K6.get(t);r||(r={id:t,styles:[],textStyles:[]},K6.set(t,r)),e?.split(Jye).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Kye).exec(n)){let s=i.replace(Qye,Urt).replace(Kye,Qye);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),qrt=o(function(t,e=""){let r=ql.get(t);e!=null&&(r.styles=e.split(Jye))},"addStyle2Node"),Xrt=o(function(t,e){t.split(",").forEach(function(r){let n=ql.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},ql.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),eve=o((t,e)=>{let r=t.flat(),n=[];for(let i of r){if(i.label&&(i.label=Wrt(i.label)),i.type==="classDef"){Yrt(i.id,i.css);continue}if(i.type==="applyClass"){Xrt(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&qrt(i.id,i?.stylesStr);continue}if(i.type==="column-setting")e.columns=i.columns??-1;else if(i.type==="edge"){let a=(KB.get(i.id)??0)+1;KB.set(i.id,a),i.id=a+"-"+i.id,QB.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let a=ql.get(i.id);if(a===void 0?ql.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&eve(i.children,i),i.type==="space"){let s=i.width??1;for(let l=0;l{Y.debug("Clear called"),_r(),pb={id:"root",type:"composite",children:[],columns:-1},ql=new Map([["root",pb]]),ZB=[],K6=new Map,QB=[],KB=new Map},"clear");o(Krt,"typeStr2Type");o(Qrt,"edgeTypeStr2Type");o(Zrt,"edgeStrToEdgeData");Zye=0,Jrt=o(()=>(Zye++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Zye),"generateId"),ent=o(t=>{pb.children=t,eve(t,pb),ZB=pb.children},"setHierarchy"),tnt=o(t=>{let e=ql.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),rnt=o(()=>[...ql.values()],"getBlocksFlat"),nnt=o(()=>ZB||[],"getBlocks"),int=o(()=>QB,"getEdges"),ant=o(t=>ql.get(t),"getBlock"),snt=o(t=>{ql.set(t.id,t)},"setBlock"),ont=o(()=>console,"getLogger"),lnt=o(function(){return K6},"getClasses"),cnt={getConfig:o(()=>Sr().block,"getConfig"),typeStr2Type:Krt,edgeTypeStr2Type:Qrt,edgeStrToEdgeData:Zrt,getLogger:ont,getBlocksFlat:rnt,getBlocks:nnt,getEdges:int,setHierarchy:ent,getBlock:ant,setBlock:snt,getColumns:tnt,getClasses:lnt,clear:jrt,generateId:Jrt},tve=cnt});var Q6,unt,nve,ive=M(()=>{"use strict";To();Q6=o((t,e)=>{let r=z1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Hs(n,i,a,e)},"fade"),unt=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Q6(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${Q6(t.mainBkg,.5)}; + fill: ${Q6(t.clusterBkg,.5)}; + stroke: ${Q6(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),nve=unt});var hnt,fnt,dnt,pnt,mnt,gnt,ynt,vnt,xnt,bnt,wnt,ave,sve=M(()=>{"use strict";ht();hnt=o((t,e,r,n)=>{e.forEach(i=>{wnt[i](t,r,n)})},"insertMarkers"),fnt=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),dnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),pnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),mnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),gnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),ynt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),vnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),xnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),bnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),wnt={extension:fnt,composition:dnt,aggregation:pnt,dependency:mnt,lollipop:gnt,point:ynt,circle:vnt,cross:xnt,barb:bnt},ave=hnt});function Tnt(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function JB(t,e,r=0,n=0){Y.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)JB(m,e);let s=knt(t);i=s.width,a=s.height,Y.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(Y.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+xi*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,Y.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)JB(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*xi-xi)/m;Y.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}Y.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function ove(t,e){Y.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(Y.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*xi;Y.debug("widthOfChildren 88",i,"posX");let a=0;Y.debug("abc91 block?.size?.x",t.id,t?.size?.x);let s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-xi,l=0;for(let u of t.children){let h=t;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=Tnt(r,a);if(m!=l&&(l=m,s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-xi,Y.debug("New row in layout for block",t.id," and child ",u.id,l)),Y.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${xi}`),h.size){let g=f/2;u.size.x=s+xi+g,Y.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${g} padding=${xi} width=${f} halfWidth=${g} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+g,u.size.y=h.size.y-h.size.height/2+m*(d+xi)+d/2+xi,Y.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${xi}${g}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&ove(u,e),a+=u?.widthInColumns??1,Y.debug("abc88 columnsPos",u,a)}}Y.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function lve(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=lve(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function cve(t){let e=t.getBlock("root");if(!e)return;JB(e,t,0,0),ove(e,t),Y.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=lve(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var xi,knt,uve=M(()=>{"use strict";ht();Vt();xi=de()?.block?.padding??8;o(Tnt,"calculateBlockPosition");knt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};Y.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(t.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(JB,"setBlockSizes");o(ove,"layoutBlocks");o(lve,"findBounds");o(cve,"layout")});function hve(t,e){e&&t.attr("style",e)}function Ent(t){let e=ze(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label,i=t.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),hve(a,t.labelStyle),a.attr("class",i),hve(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var Snt,cs,Z6=M(()=>{"use strict";mr();ht();Vt();fr();hr();Dl();o(hve,"applyStyle");o(Ent,"addHtmlLabel");Snt=o((t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),xr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),Y.debug("vertexText"+i);let a={isNode:n,label:x9(Ca(i)),labelStyle:e.replace("fill:","color:")};return Ent(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),cs=Snt});var dve,Cnt,fve,pve=M(()=>{"use strict";ht();dve=o((t,e,r,n,i)=>{e.arrowTypeStart&&fve(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&fve(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Cnt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},fve=o((t,e,r,n,i,a)=>{let s=Cnt[r];if(!s){Y.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function J6(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var eF,$a,gve,yve,Ant,_nt,mve,vve,xve=M(()=>{"use strict";ht();Z6();Dl();mr();Vt();hr();fr();lL();Cv();pve();eF={},$a={},gve=o((t,e)=>{let r=de(),n=xr(r.flowchart.htmlLabels),i=e.labelType==="markdown"?Si(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):cs(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=ze(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),eF[e.id]=a,e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=cs(e.startLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),$a[e.id]||($a[e.id]={}),$a[e.id].startLeft=f,J6(u,e.startLabelLeft)}if(e.startLabelRight){let h=cs(e.startLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),$a[e.id]||($a[e.id]={}),$a[e.id].startRight=f,J6(u,e.startLabelRight)}if(e.endLabelLeft){let h=cs(e.endLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),$a[e.id]||($a[e.id]={}),$a[e.id].endLeft=f,J6(u,e.endLabelLeft)}if(e.endLabelRight){let h=cs(e.endLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),$a[e.id]||($a[e.id]={}),$a[e.id].endRight=f,J6(u,e.endLabelRight)}return i},"insertEdgeLabel");o(J6,"setTerminalWidth");yve=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,eF[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=_u(n);if(t.label){let a=eF[t.id],s=t.x,l=t.y;if(r){let u=Ut.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=$a[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=$a[t.id].startRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=$a[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=$a[t.id].endRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Ant=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),_nt=o((t,e,r)=>{Y.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{Y.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!Ant(e,a)&&!i){let s=_nt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),vve=o(function(t,e,r,n,i,a,s){let l=r.points;Y.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(Y.debug("to cluster abc88",n[r.toCluster]),l=mve(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(Y.debug("from cluster abc88",n[r.fromCluster]),l=mve(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(_=>!Number.isNaN(_.y)),p=Do;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=Z5(r),y=Ka().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),dve(x,r,b,s,i);let w={};return u&&(w.updatedPath=l),w.originalPath=r.points,w},"insertEdge")});var Lnt,bve,wve=M(()=>{"use strict";Lnt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),bve=o((t,e,r)=>{let n=Lnt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Dnt(t,e){return t.intersect(e)}var Tve,kve=M(()=>{"use strict";o(Dnt,"intersectNode");Tve=Dnt});function Nnt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(Nnt,"intersectEllipse");eS=Nnt});function Rnt(t,e,r){return eS(t,e,e,r)}var Eve,Sve=M(()=>{"use strict";tF();o(Rnt,"intersectCircle");Eve=Rnt});function Mnt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&Cve(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&Cve(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function Cve(t,e){return t*e>0}var Ave,_ve=M(()=>{"use strict";o(Mnt,"intersectLine");o(Cve,"sameSign");Ave=Mnt});function Int(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),w=y.x-r.x,_=y.y-r.y,T=Math.sqrt(w*w+_*_);return b{"use strict";_ve();Lve=Int;o(Int,"intersectPolygon")});var Ont,Nve,Rve=M(()=>{"use strict";Ont=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Nve=Ont});var Rn,rF=M(()=>{"use strict";kve();Sve();tF();Dve();Rve();Rn={node:Tve,circle:Eve,ellipse:eS,polygon:Lve,rect:Nve}});function Xl(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var _i,qn,nF=M(()=>{"use strict";Z6();Dl();Vt();mr();fr();hr();_i=o(async(t,e,r,n)=>{let i=de(),a,s=e.useHtmlLabels||xr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f=u.node(),d;e.labelType==="markdown"?d=Si(u,Tr(Ca(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(cs(Tr(Ca(h),i),e.labelStyle,!1,n));let p=d.getBBox(),m=e.padding/2;if(xr(i.flowchart.htmlLabels)){let g=d.children[0],y=ze(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(w=>{function _(){if(b.style.display="flex",b.style.flexDirection="column",x){let T=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,L=parseInt(T,10)*5+"px";b.style.minWidth=L,b.style.maxWidth=L}else b.style.width="100%";w(b)}o(_,"setupImage"),setTimeout(()=>{b.complete&&_()}),b.addEventListener("error",_),b.addEventListener("load",_)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),qn=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Xl,"insertPolygonShape")});var Pnt,Mve,Ive=M(()=>{"use strict";nF();ht();Vt();rF();Pnt=o(async(t,e)=>{e.useHtmlLabels||de().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await _i(t,e,"node "+e.classes,!0);Y.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),qn(e,s),e.intersect=function(l){return Rn.rect(e,l)},n},"note"),Mve=Pnt});function iF(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(Y.debug("add top border"),a(r)):s(r),e.includes("r")?(Y.debug("add right border"),a(n)):s(n),e.includes("b")?(Y.debug("add bottom border"),a(r)):s(r),e.includes("l")?(Y.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var Ove,go,Pve,Bnt,Fnt,znt,Gnt,$nt,Vnt,Unt,Hnt,Wnt,Ynt,qnt,Xnt,jnt,Knt,Qnt,Znt,Jnt,eit,tit,Bve,rit,nit,Fve,tS,aF,zve,Gve=M(()=>{"use strict";mr();Vt();fr();ht();wve();Z6();rF();Ive();nF();Ove=o(t=>t?" "+t:"","formatClass"),go=o((t,e)=>`${e||"node default"}${Ove(t.classes)} ${Ove(t.class)}`,"getClassesFromNode"),Pve=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];Y.info("Question main (Circle)");let u=Xl(r,s,s,l);return u.attr("style",e.style),qn(e,u),e.intersect=function(h){return Y.warn("Intersect called"),Rn.polygon(e,l,h)},r},"question"),Bnt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return Rn.circle(e,14,s)},r},"choice"),Fnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Xl(r,l,a,u);return h.attr("style",e.style),qn(e,h),e.intersect=function(f){return Rn.polygon(e,u,f)},r},"hexagon"),znt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=bve(e.directions,n,e),h=Xl(r,l,a,u);return h.attr("style",e.style),qn(e,h),e.intersect=function(f){return Rn.polygon(e,u,f)},r},"block_arrow"),Gnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Xl(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return Rn.polygon(e,s,u)},r},"rect_left_inv_arrow"),$nt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"lean_right"),Vnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"lean_left"),Unt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"trapezoid"),Hnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"inv_trapezoid"),Wnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"rect_right_inv_arrow"),Ynt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return qn(e,h),e.intersect=function(f){let d=Rn.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),qnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(iF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return qn(e,a),e.intersect=function(f){return Rn.rect(e,f)},r},"rect"),Xnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(iF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return qn(e,a),e.intersect=function(f){return Rn.rect(e,f)},r},"composite"),jnt=o(async(t,e)=>{let{shapeSvg:r}=await _i(t,e,"label",!0);Y.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(iF(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{Y.warn(`Unknown node property ${l}`)})}return qn(e,n),e.intersect=function(s){return Rn.rect(e,s)},r},"labelRect");o(iF,"applyNodePropertyBorders");Knt=o((t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,Y.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(cs(u,e.labelStyle,!0,!0)),f={width:0,height:0};if(xr(de().flowchart.htmlLabels)){let y=h.children[0],v=ze(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}Y.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(cs(d.join?d.join("
    "):d,e.labelStyle,!0,!0));if(xr(de().flowchart.htmlLabels)){let y=m.children[0],v=ze(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return ze(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),ze(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return qn(e,s),e.intersect=function(l){return Rn.rect(e,l)},r},"stadium"),Znt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,go(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("Circle main"),qn(e,a),e.intersect=function(s){return Y.info("Circle intersect",e,n.width/2+i,s),Rn.circle(e,n.width/2+i,s)},r},"circle"),Jnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,go(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("DoubleCircle main"),qn(e,l),e.intersect=function(h){return Y.info("DoubleCircle intersect",e,n.width/2+i+a,h),Rn.circle(e,n.width/2+i+a,h)},r},"doublecircle"),eit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"subroutine"),tit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),qn(e,n),e.intersect=function(i){return Rn.circle(e,7,i)},r},"start"),Bve=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return qn(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return Rn.rect(e,l)},n},"forkJoin"),rit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),qn(e,i),e.intersect=function(a){return Rn.circle(e,7,a)},r},"end"),nit=o((t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(cs(y,e.labelStyle,!0,!0)),x=v.getBBox();if(xr(de().flowchart.htmlLabels)){let C=v.children[0],A=ze(v);x=C.getBoundingClientRect(),A.attr("width",x.width),A.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(de().flowchart.htmlLabels?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let w=p.node().appendChild(cs(b,e.labelStyle,!0,!0));ze(w).attr("class","classTitle");let _=w.getBBox();if(xr(de().flowchart.htmlLabels)){let C=w.children[0],A=ze(w);_=C.getBoundingClientRect(),A.attr("width",_.width),A.attr("height",_.height)}d+=_.height+n,_.width>f&&(f=_.width);let T=[];e.classData.members.forEach(C=>{let A=C.getDisplayDetails(),I=A.displayText;de().flowchart.htmlLabels&&(I=I.replace(//g,">"));let D=p.node().appendChild(cs(I,A.cssStyle?A.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(xr(de().flowchart.htmlLabels)){let R=D.children[0],S=ze(D);k=R.getBoundingClientRect(),S.attr("width",k.width),S.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,T.push(D)}),d+=i;let E=[];if(e.classData.methods.forEach(C=>{let A=C.getDisplayDetails(),I=A.displayText;de().flowchart.htmlLabels&&(I=I.replace(//g,">"));let D=p.node().appendChild(cs(I,A.cssStyle?A.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(xr(de().flowchart.htmlLabels)){let R=D.children[0],S=ze(D);k=R.getBoundingClientRect(),S.attr("width",k.width),S.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,E.push(D)}),d+=i,g){let C=(f-x.width)/2;ze(v).attr("transform","translate( "+(-1*f/2+C)+", "+-1*d/2+")"),m=x.height+n}let L=(f-_.width)/2;return ze(w).attr("transform","translate( "+(-1*f/2+L)+", "+(-1*d/2+m)+")"),m+=_.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,T.forEach(C=>{ze(C).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let A=C?.getBBox();m+=(A?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,E.forEach(C=>{ze(C).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let A=C?.getBBox();m+=(A?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),qn(e,l),e.intersect=function(C){return Rn.rect(e,C)},s},"class_box"),Fve={rhombus:Pve,composite:Xnt,question:Pve,rect:qnt,labelRect:jnt,rectWithTitle:Knt,choice:Bnt,circle:Znt,doublecircle:Jnt,stadium:Qnt,hexagon:Fnt,block_arrow:znt,rect_left_inv_arrow:Gnt,lean_right:$nt,lean_left:Vnt,trapezoid:Unt,inv_trapezoid:Hnt,rect_right_inv_arrow:Wnt,cylinder:Ynt,start:tit,end:rit,note:Mve,subroutine:eit,fork:Bve,join:Bve,class_box:nit},tS={},aF=o(async(t,e,r)=>{let n,i;if(e.link){let a;de().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await Fve[e.shape](n,e,r)}else i=await Fve[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),tS[e.id]=n,e.haveCallback&&tS[e.id].attr("class",tS[e.id].attr("class")+" clickable"),n},"insertNode"),zve=o(t=>{let e=tS[t.id];Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function $ve(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=J_(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Sr()?.block?.padding??0}}async function iit(t,e,r){let n=$ve(e,r,!1);if(n.type==="group")return;let i=Sr(),a=await aF(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function ait(t,e,r){let n=$ve(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Sr();await aF(t,n,{config:a}),e.intersect=n?.intersect,zve(n)}}async function sF(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await sF(t,i.children,r,n)}async function Vve(t,e,r){await sF(t,e,r,iit)}async function Uve(t,e,r){await sF(t,e,r,ait)}async function Hve(t,e,r,n,i){let a=new Mr({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];vve(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await gve(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),yve({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var Wve=M(()=>{"use strict";Ns();Ua();xve();Gve();hr();o($ve,"getNodeFromBlock");o(iit,"calculateBlockSize");o(ait,"insertBlockPositioned");o(sF,"performOperations");o(Vve,"calculateBlockSizes");o(Uve,"insertBlocks");o(Hve,"insertEdges")});var sit,oit,Yve,qve=M(()=>{"use strict";mr();Ua();sve();ht();ni();uve();Wve();sit=o(function(t,e){return e.db.getClasses()},"getClasses"),oit=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Sr(),s=n.db,l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):ze(`[id="${e}"]`);ave(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await Vve(g,d,s);let y=cve(s);if(await Uve(g,d,s),await Hve(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,w=v.width+10,{useMaxWidth:_}=a;Zr(h,b,w,!!_),Y.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),Yve={draw:oit,getClasses:sit}});var Xve={};vr(Xve,{diagram:()=>lit});var lit,jve=M(()=>{"use strict";jye();rve();ive();qve();lit={parser:Xye,db:tve,renderer:Yve,styles:nve}});var oF,lF,mb,Zve,cF,us,qc,rS,Jve,fit,gb,e2e,t2e,r2e,n2e,nS,Mf,iS=M(()=>{"use strict";oF={L:"left",R:"right",T:"top",B:"bottom"},lF={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},mb={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},Zve=o(function(t){return us(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),cF=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),us=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),qc=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),rS=o(function(t,e){let r=us(t)&&qc(e),n=qc(t)&&us(e);return r||n},"isArchitectureDirectionXY"),Jve=o(function(t){let e=t[0],r=t[1],n=us(e)&&qc(r),i=qc(e)&&us(r);return n||i},"isArchitecturePairXY"),fit=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),gb=o(function(t,e){let r=`${t}${e}`;return fit(r)?r:void 0},"getArchitectureDirectionPair"),e2e=o(function([t,e],r){let n=r[0],i=r[1];return us(n)?qc(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:us(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),t2e=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),r2e=o(function(t){return t.type==="service"},"isArchitectureService"),n2e=o(function(t){return t.type==="junction"},"isArchitectureJunction"),nS=o(t=>t.data(),"edgeData"),Mf=o(t=>t.data(),"nodeData")});function Li(t){let e=de().architecture;return e?.[t]?e[t]:i2e[t]}var i2e,gr,dit,pit,mit,git,yit,vit,xit,bit,wit,Tit,kit,Eit,Sit,Cit,X0,yb=M(()=>{"use strict";hs();Vt();tE();ki();iS();i2e=ur.architecture,gr=new cf(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:i2e,dataStructures:void 0,elements:{}})),dit=o(()=>{gr.reset(),_r()},"clear"),pit=o(function({id:t,icon:e,in:r,title:n,iconText:i}){if(gr.records.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${gr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(gr.records.registeredIds[r]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(gr.records.registeredIds[r]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}gr.records.registeredIds[t]="node",gr.records.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}},"addService"),mit=o(()=>Object.values(gr.records.nodes).filter(r2e),"getServices"),git=o(function({id:t,in:e}){gr.records.registeredIds[t]="node",gr.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),yit=o(()=>Object.values(gr.records.nodes).filter(n2e),"getJunctions"),vit=o(()=>Object.values(gr.records.nodes),"getNodes"),xit=o(t=>gr.records.nodes[t],"getNode"),bit=o(function({id:t,icon:e,in:r,title:n}){if(gr.records.registeredIds[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${gr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(gr.records.registeredIds[r]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(gr.records.registeredIds[r]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}gr.records.registeredIds[t]="group",gr.records.groups[t]={id:t,icon:e,title:n,in:r}},"addGroup"),wit=o(()=>Object.values(gr.records.groups),"getGroups"),Tit=o(function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:l,title:u}){if(!cF(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(!cF(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(gr.records.nodes[t]===void 0&&gr.records.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(gr.records.nodes[e]===void 0&&gr.records.groups[t]===void 0)throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let h=gr.records.nodes[t].in,f=gr.records.nodes[e].in;if(s&&h&&f&&h==f)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(l&&h&&f&&h==f)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let d={lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:l,title:u};gr.records.edges.push(d),gr.records.nodes[t]&&gr.records.nodes[e]&&(gr.records.nodes[t].edges.push(gr.records.edges[gr.records.edges.length-1]),gr.records.nodes[e].edges.push(gr.records.edges[gr.records.edges.length-1]))},"addEdge"),kit=o(()=>gr.records.edges,"getEdges"),Eit=o(()=>{if(gr.records.dataStructures===void 0){let t=Object.entries(gr.records.nodes).reduce((s,[l,u])=>(s[l]=u.edges.reduce((h,f)=>{if(f.lhsId===l){let d=gb(f.lhsDir,f.rhsDir);d&&(h[d]=f.rhsId)}else{let d=gb(f.rhsDir,f.lhsDir);d&&(h[d]=f.lhsId)}return h},{}),s),{}),e=Object.keys(t)[0],r={[e]:1},n=Object.keys(t).reduce((s,l)=>l===e?s:{...s,[l]:1},{}),i=o(s=>{let l={[s]:[0,0]},u=[s];for(;u.length>0;){let h=u.shift();if(h){r[h]=1,delete n[h];let f=t[h],[d,p]=l[h];Object.entries(f).forEach(([m,g])=>{r[g]||(l[g]=e2e([d,p],m),u.push(g))})}}return l},"BFS"),a=[i(e)];for(;Object.keys(n).length>0;)a.push(i(Object.keys(n)[0]));gr.records.dataStructures={adjList:t,spatialMaps:a}}return gr.records.dataStructures},"getDataStructures"),Sit=o((t,e)=>{gr.records.elements[t]=e},"setElementForId"),Cit=o(t=>gr.records.elements[t],"getElementById"),X0={clear:dit,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addService:pit,getServices:mit,addJunction:git,getJunctions:yit,getNodes:vit,getNode:xit,addGroup:bit,getGroups:wit,addEdge:Tit,getEdges:kit,setElementForId:Sit,getElementById:Cit,getDataStructures:Eit};o(Li,"getConfigField")});var Ait,a2e,s2e=M(()=>{"use strict";Ng();ht();ox();yb();Ait=o((t,e)=>{lf(t,e),t.groups.map(e.addGroup),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),a2e={parse:o(async t=>{let e=await Gl("architecture",t);Y.debug(e),Ait(e,X0)},"parse")}});var _it,o2e,l2e=M(()=>{"use strict";_it=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),o2e=_it});var hF=Ni((vb,uF)=>{"use strict";o(function(e,r){typeof vb=="object"&&typeof uF=="object"?uF.exports=r():typeof define=="function"&&define.amd?define([],r):typeof vb=="object"?vb.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(vb,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var _=x.source.owner.getEdges().indexOf(x);if(_==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(_,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),_=w.length,T=0;T<_;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,_,T,E,L,C=this.nodes,A=C.length,I=0;Iw&&(y=w),v<_&&(v=_),x>T&&(x=T),bw&&(y=w),v<_&&(v=_),x>T&&(x=T),b=this.nodes.length){var A=0;v.forEach(function(I){I.owner==g&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=C,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):S===N&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===N?f>u?(l[2]=L,l[3]=C,R=!0):(l[2]=E,l[3]=T,R=!0):O===N&&(f>u?(l[2]=_,l[3]=T,R=!0):(l[2]=A,l[3]=C,R=!0)),k&&R)return!1;if(u>f?h>d?(P=this.getCardinalDirection(S,N,4),F=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-S,N,3),F=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-S,N,1),F=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(S,N,2),F=this.getCardinalDirection(O,N,4)),!k)switch(P){case 1:$=m,B=u+-w/N,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*N,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/N,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*N,l[0]=B,l[1]=$;break}if(!R)switch(F){case 1:W=T,z=f+-D/N,l[2]=z,l[3]=W;break;case 2:z=A,W=d+I*N,l[2]=z,l[3]=W;break;case 3:W=C,z=f+D/N,l[2]=z,l[3]=W;break;case 4:z=L,W=d+-I*N,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,_=void 0,T=void 0,E=void 0,L=void 0,C=void 0,A=void 0;return w=p-f,T=h-d,L=d*f-h*p,_=v-g,E=m-y,C=y*g-m*v,A=w*E-_*T,A===0?null:(x=(T*C-E*L)/A,b=(_*L-w*C)/A,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var L=E.getEdges(),x=0;x-1&&T.splice(D,1)}b=new Set,_=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(C,1);var A=_.getNeighborsList();A.forEach(function(k){if(y.indexOf(k)<0){var R=v.get(k),S=R-1;S==1&&E.push(k),v.set(k,S)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var _=0;_h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=function(dt){for(var Xe=[];dt-- >0;)Xe.push(0);return Xe}(Math.min(this.m+1,this.n)),this.U=function(dt){var Xe=o(function ct(Lt){if(Lt.length==0)return 0;for(var Rt=[],zt=0;zt0;)Xe.push(0);return Xe}(this.n),l=function(dt){for(var Xe=[];dt-- >0;)Xe.push(0);return Xe}(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;N--)if(this.s[N]!==0){for(var P=N+1;P=0;K--){if(function(dt,Xe){return dt&&Xe}(K0;){var ce=void 0,te=void 0;for(ce=R-2;ce>=-1&&ce!==-1;ce--)if(Math.abs(s[ce])<=ue+ae*(Math.abs(this.s[ce])+Math.abs(this.s[ce+1]))){s[ce]=0;break}if(ce===R-2)te=4;else{var De=void 0;for(De=R-1;De>=ce&&De!==ce;De--){var oe=(De!==R?Math.abs(s[De]):0)+(De!==ce+1?Math.abs(s[De-1]):0);if(Math.abs(this.s[De])<=ue+ae*oe){this.s[De]=0;break}}De===ce?te=3:De===R-1?te=1:(te=2,ce=De)}switch(ce++,te){case 1:{var ke=s[R-2];s[R-2]=0;for(var Fe=R-2;Fe>=ce;Fe--){var Be=n.hypot(this.s[Fe],ke),Ve=this.s[Fe]/Be,Ge=ke/Be;if(this.s[Fe]=Be,Fe!==ce&&(ke=-Ge*s[Fe-1],s[Fe-1]=Ve*s[Fe-1]),h)for(var He=0;He=this.s[ce+1]);){var rt=this.s[ce];if(this.s[ce]=this.s[ce+1],this.s[ce+1]=rt,h&&ceMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof xb=="object"&&typeof fF=="object"?fF.exports=r(hF()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof xb=="object"?xb.coseBase=r(hF()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(xb,function(t){return(()=>{"use strict";var e={45:(a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u},806:(a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h},767:(a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},880:(a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},578:(a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},765:(a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,w=l(551).DimensionD,_=l(551).Layout,T=l(551).Integer,E=l(551).IGeometry,L=l(551).LGraph,C=l(551).Transform,A=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var D in u)I[D]=u[D];I.prototype.newGraphManager=function(){var k=new h(this);return this.graphManager=k,k},I.prototype.newGraph=function(k){return new f(null,this.graphManager,k)},I.prototype.newNode=function(k){return new d(this.graphManager,k)},I.prototype.newEdge=function(k){return new p(null,null,k)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var k=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return k&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var R=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(P){return R.has(P)});this.graphManager.setAllNodesToApplyGravitation(S)}}else{var k=this.getFlatForest();if(k.length>0)this.positionNodesRadially(k);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var R=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(O){return R.has(O)});this.graphManager.setAllNodesToApplyGravitation(S),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(N){return k.has(N)});this.graphManager.setAllNodesToApplyGravitation(R),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var S=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(S,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var k=this.graphManager.getAllNodes(),R={},S=0;S0&&this.updateDisplacements();for(var S=0;S0&&(O.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var F=new Map,B=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(ee){k.fixedNodesOnHorizontal.add(ee),k.fixedNodesOnVertical.add(ee)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var $=this.constraints.alignmentConstraint.vertical,S=0;S<$.length;S++)this.dummyToNodeForVerticalAlignment.set("dummy"+S,[]),$[S].forEach(function(J){F.set(J,"dummy"+S),k.dummyToNodeForVerticalAlignment.get("dummy"+S).push(J),k.fixedNodeSet.has(J)&&k.fixedNodesOnHorizontal.add("dummy"+S)});if(this.constraints.alignmentConstraint.horizontal)for(var z=this.constraints.alignmentConstraint.horizontal,S=0;S=2*ee.length/3;q--)J=Math.floor(Math.random()*(q+1)),H=ee[q],ee[q]=ee[J],ee[J]=H;return ee},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(ee){if(ee.left){var J=F.has(ee.left)?F.get(ee.left):ee.left,H=F.has(ee.right)?F.get(ee.right):ee.right;k.nodesInRelativeHorizontal.includes(J)||(k.nodesInRelativeHorizontal.push(J),k.nodeToRelativeConstraintMapHorizontal.set(J,[]),k.dummyToNodeForVerticalAlignment.has(J)?k.nodeToTempPositionMapHorizontal.set(J,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(J)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(J,k.idToNodeMap.get(J).getCenterX())),k.nodesInRelativeHorizontal.includes(H)||(k.nodesInRelativeHorizontal.push(H),k.nodeToRelativeConstraintMapHorizontal.set(H,[]),k.dummyToNodeForVerticalAlignment.has(H)?k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(H).getCenterX())),k.nodeToRelativeConstraintMapHorizontal.get(J).push({right:H,gap:ee.gap}),k.nodeToRelativeConstraintMapHorizontal.get(H).push({left:J,gap:ee.gap})}else{var q=B.has(ee.top)?B.get(ee.top):ee.top,Z=B.has(ee.bottom)?B.get(ee.bottom):ee.bottom;k.nodesInRelativeVertical.includes(q)||(k.nodesInRelativeVertical.push(q),k.nodeToRelativeConstraintMapVertical.set(q,[]),k.dummyToNodeForHorizontalAlignment.has(q)?k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(q)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(q).getCenterY())),k.nodesInRelativeVertical.includes(Z)||(k.nodesInRelativeVertical.push(Z),k.nodeToRelativeConstraintMapVertical.set(Z,[]),k.dummyToNodeForHorizontalAlignment.has(Z)?k.nodeToTempPositionMapVertical.set(Z,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(Z)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(Z,k.idToNodeMap.get(Z).getCenterY())),k.nodeToRelativeConstraintMapVertical.get(q).push({bottom:Z,gap:ee.gap}),k.nodeToRelativeConstraintMapVertical.get(Z).push({top:q,gap:ee.gap})}});else{var W=new Map,j=new Map;this.constraints.relativePlacementConstraint.forEach(function(ee){if(ee.left){var J=F.has(ee.left)?F.get(ee.left):ee.left,H=F.has(ee.right)?F.get(ee.right):ee.right;W.has(J)?W.get(J).push(H):W.set(J,[H]),W.has(H)?W.get(H).push(J):W.set(H,[J])}else{var q=B.has(ee.top)?B.get(ee.top):ee.top,Z=B.has(ee.bottom)?B.get(ee.bottom):ee.bottom;j.has(q)?j.get(q).push(Z):j.set(q,[Z]),j.has(Z)?j.get(Z).push(q):j.set(Z,[q])}});var K=o(function(J,H){var q=[],Z=[],ae=new A,ue=new Set,ce=0;return J.forEach(function(te,De){if(!ue.has(De)){q[ce]=[],Z[ce]=!1;var oe=De;for(ae.push(oe),ue.add(oe),q[ce].push(oe);ae.length!=0;){oe=ae.shift(),H.has(oe)&&(Z[ce]=!0);var ke=J.get(oe);ke.forEach(function(Fe){ue.has(Fe)||(ae.push(Fe),ue.add(Fe),q[ce].push(Fe))})}ce++}}),{components:q,isFixed:Z}},"constructComponents"),ie=K(W,k.fixedNodesOnHorizontal);this.componentsOnHorizontal=ie.components,this.fixedComponentsOnHorizontal=ie.isFixed;var Q=K(j,k.fixedNodesOnVertical);this.componentsOnVertical=Q.components,this.fixedComponentsOnVertical=Q.isFixed}}},I.prototype.updateDisplacements=function(){var k=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(Q){var ee=k.idToNodeMap.get(Q.nodeId);ee.displacementX=0,ee.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var R=this.constraints.alignmentConstraint.vertical,S=0;S1){var B;for(B=0;BO&&(O=Math.floor(F.y)),P=Math.floor(F.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-F.x/2,v.WORLD_CENTER_Y-F.y/2))},I.radialLayout=function(k,R,S){var O=Math.max(this.maxDiagonalInTree(k),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(R,null,0,359,0,O);var N=L.calculateBounds(k),P=new C;P.setDeviceOrgX(N.getMinX()),P.setDeviceOrgY(N.getMinY()),P.setWorldOrgX(S.x),P.setWorldOrgY(S.y);for(var F=0;F1;){var q=H[0];H.splice(0,1);var Z=K.indexOf(q);Z>=0&&K.splice(Z,1),ee--,ie--}R!=null?J=(K.indexOf(H[0])+1)%ee:J=0;for(var ae=Math.abs(O-S)/ie,ue=J;Q!=ie;ue=++ue%ee){var ce=K[ue].getOtherEnd(k);if(ce!=R){var te=(S+Q*ae)%360,De=(te+ae)%360;I.branchRadialLayout(ce,k,te,De,N+P,P),Q++}}},I.maxDiagonalInTree=function(k){for(var R=T.MIN_VALUE,S=0;SR&&(R=N)}return R},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var k=this,R={};this.memberGroups={},this.idToDummyNode={};for(var S=[],O=this.graphManager.getAllNodes(),N=0;N"u"&&(R[B]=[]),R[B]=R[B].concat(P)}Object.keys(R).forEach(function($){if(R[$].length>1){var z="DummyCompound_"+$;k.memberGroups[z]=R[$];var W=R[$][0].getParent(),j=new d(k.graphManager);j.id=z,j.paddingLeft=W.paddingLeft||0,j.paddingRight=W.paddingRight||0,j.paddingBottom=W.paddingBottom||0,j.paddingTop=W.paddingTop||0,k.idToDummyNode[z]=j;var K=k.getGraphManager().add(k.newGraph(),j),ie=W.getChild();ie.add(j);for(var Q=0;QN?(O.rect.x-=(O.labelWidth-N)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-N)/2):O.labelPosHorizontal=="right"&&O.setWidth(N+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(P+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>P?(O.rect.y-=(O.labelHeight-P)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-P)/2):O.labelPosVertical=="bottom"&&O.setHeight(P+O.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var k=this.compoundOrder.length-1;k>=0;k--){var R=this.compoundOrder[k],S=R.id,O=R.paddingLeft,N=R.paddingTop,P=R.labelMarginLeft,F=R.labelMarginTop;this.adjustLocations(this.tiledMemberPack[S],R.rect.x,R.rect.y,O,N,P,F)}},I.prototype.repopulateZeroDegreeMembers=function(){var k=this,R=this.tiledZeroDegreePack;Object.keys(R).forEach(function(S){var O=k.idToDummyNode[S],N=O.paddingLeft,P=O.paddingTop,F=O.labelMarginLeft,B=O.labelMarginTop;k.adjustLocations(R[S],O.rect.x,O.rect.y,N,P,F,B)})},I.prototype.getToBeTiled=function(k){var R=k.id;if(this.toBeTiled[R]!=null)return this.toBeTiled[R];var S=k.getChild();if(S==null)return this.toBeTiled[R]=!1,!1;for(var O=S.getNodes(),N=0;N0)return this.toBeTiled[R]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[R]=!1,!1}return this.toBeTiled[R]=!0,!0},I.prototype.getNodeDegree=function(k){for(var R=k.id,S=k.getEdges(),O=0,N=0;NW&&(W=K.rect.height)}S+=W+k.verticalPadding}},I.prototype.tileCompoundMembers=function(k,R){var S=this;this.tiledMemberPack=[],Object.keys(k).forEach(function(O){var N=R[O];if(S.tiledMemberPack[O]=S.tileNodes(k[O],N.paddingLeft+N.paddingRight),N.rect.width=S.tiledMemberPack[O].width,N.rect.height=S.tiledMemberPack[O].height,N.setCenter(S.tiledMemberPack[O].centerX,S.tiledMemberPack[O].centerY),N.labelMarginLeft=0,N.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=N.rect.width,F=N.rect.height;N.labelWidth&&(N.labelPosHorizontal=="left"?(N.rect.x-=N.labelWidth,N.setWidth(P+N.labelWidth),N.labelMarginLeft=N.labelWidth):N.labelPosHorizontal=="center"&&N.labelWidth>P?(N.rect.x-=(N.labelWidth-P)/2,N.setWidth(N.labelWidth),N.labelMarginLeft=(N.labelWidth-P)/2):N.labelPosHorizontal=="right"&&N.setWidth(P+N.labelWidth)),N.labelHeight&&(N.labelPosVertical=="top"?(N.rect.y-=N.labelHeight,N.setHeight(F+N.labelHeight),N.labelMarginTop=N.labelHeight):N.labelPosVertical=="center"&&N.labelHeight>F?(N.rect.y-=(N.labelHeight-F)/2,N.setHeight(N.labelHeight),N.labelMarginTop=(N.labelHeight-F)/2):N.labelPosVertical=="bottom"&&N.setHeight(F+N.labelHeight))}})},I.prototype.tileNodes=function(k,R){var S=this.tileNodesByFavoringDim(k,R,!0),O=this.tileNodesByFavoringDim(k,R,!1),N=this.getOrgRatio(S),P=this.getOrgRatio(O),F;return PB&&(B=Q.getWidth())});var $=P/N,z=F/N,W=Math.pow(S-O,2)+4*($+O)*(z+S)*N,j=(O-S+Math.sqrt(W))/(2*($+O)),K;R?(K=Math.ceil(j),K==j&&K++):K=Math.floor(j);var ie=K*($+O)-O;return B>ie&&(ie=B),ie+=O*2,ie},I.prototype.tileNodesByFavoringDim=function(k,R,S){var O=m.TILING_PADDING_VERTICAL,N=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,F={rows:[],rowWidth:[],rowHeight:[],width:0,height:R,verticalPadding:O,horizontalPadding:N,centerX:0,centerY:0};P&&(F.idealRowWidth=this.calcIdealRowWidth(k,S));var B=o(function(ee){return ee.rect.width*ee.rect.height},"getNodeArea"),$=o(function(ee,J){return B(J)-B(ee)},"areaCompareFcn");k.sort(function(Q,ee){var J=$;return F.idealRowWidth?(J=P,J(Q.id,ee.id)):J(Q,ee)});for(var z=0,W=0,j=0;j0&&(F+=k.horizontalPadding),k.rowWidth[S]=F,k.width0&&(B+=k.verticalPadding);var $=0;B>k.rowHeight[S]&&($=k.rowHeight[S],k.rowHeight[S]=B,$=k.rowHeight[S]-$),k.height+=$,k.rows[S].push(R)},I.prototype.getShortestRowIndex=function(k){for(var R=-1,S=Number.MAX_VALUE,O=0;OS&&(R=O,S=k.rowWidth[O]);return R},I.prototype.canAddHorizontal=function(k,R,S){if(k.idealRowWidth){var O=k.rows.length-1,N=k.rowWidth[O];return N+R+k.horizontalPadding<=k.idealRowWidth}var P=this.getShortestRowIndex(k);if(P<0)return!0;var F=k.rowWidth[P];if(F+k.horizontalPadding+R<=k.width)return!0;var B=0;k.rowHeight[P]0&&(B=S+k.verticalPadding-k.rowHeight[P]);var $;k.width-F>=R+k.horizontalPadding?$=(k.height+B)/(F+R+k.horizontalPadding):$=(k.height+B)/k.width,B=S+k.verticalPadding;var z;return k.widthP&&R!=S){O.splice(-1,1),k.rows[S].push(N),k.rowWidth[R]=k.rowWidth[R]-P,k.rowWidth[S]=k.rowWidth[S]+P,k.width=k.rowWidth[instance.getLongestRowIndex(k)];for(var F=Number.MIN_VALUE,B=0;BF&&(F=O[B].height);R>0&&(F+=k.verticalPadding);var $=k.rowHeight[R]+k.rowHeight[S];k.rowHeight[R]=F,k.rowHeight[S]0)for(var ie=N;ie<=P;ie++)K[0]+=this.grid[ie][F-1].length+this.grid[ie][F].length-1;if(P0)for(var ie=F;ie<=B;ie++)K[3]+=this.grid[N-1][ie].length+this.grid[N][ie].length-1;for(var Q=T.MAX_VALUE,ee,J,H=0;H{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var Tt=0;Ye.forEach(function(rt){Te=="horizontal"?(me.set(rt,x.has(rt)?b[x.get(rt)]:Ee.get(rt)),Tt+=me.get(rt)):(me.set(rt,x.has(rt)?w[x.get(rt)]:Ee.get(rt)),Tt+=me.get(rt))}),Tt=Tt/Ye.length,vt.forEach(function(rt){se.has(rt)||me.set(rt,Tt)})}else{var $e=0;vt.forEach(function(rt){Te=="horizontal"?$e+=x.has(rt)?b[x.get(rt)]:Ee.get(rt):$e+=x.has(rt)?w[x.get(rt)]:Ee.get(rt)}),$e=$e/vt.length,vt.forEach(function(rt){me.set(rt,$e)})}});for(var tt=o(function(){var Ye=Re.shift(),Tt=U.get(Ye);Tt.forEach(function($e){if(me.get($e.id)rt&&(rt=Rt),zt<$e&&($e=zt),zt>ft&&(ft=zt)}}catch(yt){er=!0,dt=yt}finally{try{!kt&&Xe.return&&Xe.return()}finally{if(er)throw dt}}var Xn=(Tt+rt)/2-($e+ft)/2,or=!0,hn=!1,Tn=void 0;try{for(var Ur=vt[Symbol.iterator](),ri;!(or=(ri=Ur.next()).done);or=!0){var Mn=ri.value;me.set(Mn,me.get(Mn)+Xn)}}catch(yt){hn=!0,Tn=yt}finally{try{!or&&Ur.return&&Ur.return()}finally{if(hn)throw Tn}}})}return me},"findAppropriatePositionForRelativePlacement"),D=o(function(U){var Te=0,se=0,Ee=0,Ae=0;if(U.forEach(function(We){We.left?b[x.get(We.left)]-b[x.get(We.right)]>=0?Te++:se++:w[x.get(We.top)]-w[x.get(We.bottom)]>=0?Ee++:Ae++}),Te>se&&Ee>Ae)for(var Pe=0;Pese)for(var Me=0;MeAe)for(var me=0;me1)y.fixedNodeConstraint.forEach(function(ye,U){O[U]=[ye.position.x,ye.position.y],N[U]=[b[x.get(ye.nodeId)],w[x.get(ye.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var ye=0;if(y.alignmentConstraint.vertical){for(var U=y.alignmentConstraint.vertical,Te=o(function(me){var We=new Set;U[me].forEach(function(gt){We.add(gt)});var Re=new Set([].concat(u(We)).filter(function(gt){return B.has(gt)})),tt=void 0;Re.size>0?tt=b[x.get(Re.values().next().value)]:tt=A(We).x,U[me].forEach(function(gt){O[ye]=[tt,w[x.get(gt)]],N[ye]=[b[x.get(gt)],w[x.get(gt)]],ye++})},"_loop2"),se=0;se0?tt=b[x.get(Re.values().next().value)]:tt=A(We).y,Ee[me].forEach(function(gt){O[ye]=[b[x.get(gt)],tt],N[ye]=[b[x.get(gt)],w[x.get(gt)]],ye++})},"_loop3"),Pe=0;Pej&&(j=W[ie].length,K=ie);if(j0){var Ve={x:0,y:0};y.fixedNodeConstraint.forEach(function(ye,U){var Te={x:b[x.get(ye.nodeId)],y:w[x.get(ye.nodeId)]},se=ye.position,Ee=C(se,Te);Ve.x+=Ee.x,Ve.y+=Ee.y}),Ve.x/=y.fixedNodeConstraint.length,Ve.y/=y.fixedNodeConstraint.length,b.forEach(function(ye,U){b[U]+=Ve.x}),w.forEach(function(ye,U){w[U]+=Ve.y}),y.fixedNodeConstraint.forEach(function(ye){b[x.get(ye.nodeId)]=ye.position.x,w[x.get(ye.nodeId)]=ye.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Ge=y.alignmentConstraint.vertical,He=o(function(U){var Te=new Set;Ge[U].forEach(function(Ae){Te.add(Ae)});var se=new Set([].concat(u(Te)).filter(function(Ae){return B.has(Ae)})),Ee=void 0;se.size>0?Ee=b[x.get(se.values().next().value)]:Ee=A(Te).x,Te.forEach(function(Ae){B.has(Ae)||(b[x.get(Ae)]=Ee)})},"_loop4"),xe=0;xe0?Ee=w[x.get(se.values().next().value)]:Ee=A(Te).y,Te.forEach(function(Ae){B.has(Ae)||(w[x.get(Ae)]=Ee)})},"_loop5"),he=0;he{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var c2e=Ni((bb,pF)=>{"use strict";o(function(e,r){typeof bb=="object"&&typeof pF=="object"?pF.exports=r(dF()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof bb=="object"?bb.cytoscapeFcose=r(dF()):e.cytoscapeFcose=r(e.coseBase)},"webpackUniversalModuleDefinition")(bb,function(t){return(()=>{"use strict";var e={658:a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),w;!(y=(w=b.next()).done)&&(g.push(w.value),!(m&&g.length===m));y=!0);}catch(_){v=!0,x=_}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge(z)});for(var F=0;F1){w=x[0],_=w.connectedEdges().length,x.forEach(function(N){N.connectedEdges().length<_&&(_=N.connectedEdges().length,w=N)}),L.push(w.id());var O=d.collection();O.merge(x[0]),x.forEach(function(N){O.merge(N)}),x=[],m=m.difference(O),E++}},"_loop");do A();while(!T);return g&&L.length>0&&g.set("dummy"+(g.size+1),L),C},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,w=!1,_=void 0;try{for(var T=p.nodeIndexes[Symbol.iterator](),E;!(b=(E=T.next()).done);b=!0){var L=E.value,C=u(L,2),A=C[0],I=C[1],D=m.cy.getElementById(A);if(D){var k=D.boundingBox(),R=p.xCoords[I]-k.w/2,S=p.xCoords[I]+k.w/2,O=p.yCoords[I]-k.h/2,N=p.yCoords[I]+k.h/2;Ry&&(y=S),Ox&&(x=N)}}}catch(z){w=!0,_=z}finally{try{!b&&T.return&&T.return()}finally{if(w)throw _}}var P=d.x-(y+g)/2,F=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function(z){return z+P}),p.yCoords=p.yCoords.map(function(z){return z+F})}else{Object.keys(p).forEach(function(z){var W=p[z],j=W.getRect().x,K=W.getRect().x+W.getRect().width,ie=W.getRect().y,Q=W.getRect().y+W.getRect().height;jy&&(y=K),iex&&(x=Q)});var B=d.x-(y+g)/2,$=d.y-(x+v)/2;Object.keys(p).forEach(function(z){var W=p[z];W.setCenter(W.getCenterX()+B,W.getCenterY()+$)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,_=void 0,T=void 0,E=void 0,L=d.descendants().not(":parent"),C=L.length,A=0;Aw&&(y=w),v<_&&(v=_),x>T&&(x=T),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,w){var _=b.cy,T=b.eles,E=T.nodes(),L=T.edges(),C=void 0,A=void 0,I=void 0,D={};b.randomize&&(C=w.nodeIndexes,A=w.xCoords,I=w.yCoords);var k=o(function(z){return typeof z=="function"},"isFn"),R=o(function(z,W){return k(z)?z(W):z},"optFn"),S=u.calcParentsWithoutChildren(_,T),O=o(function $(z,W,j,K){for(var ie=W.length,Q=0;Q0){var ae=void 0;ae=j.getGraphManager().add(j.newGraph(),H),$(ae,J,j,K)}}},"processChildrenList"),N=o(function(z,W,j){for(var K=0,ie=0,Q=0;Q0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=K/ie:k(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function(z,W){W.fixedNodeConstraint&&(z.constraints.fixedNodeConstraint=W.fixedNodeConstraint),W.alignmentConstraint&&(z.constraints.alignmentConstraint=W.alignmentConstraint),W.relativePlacementConstraint&&(z.constraints.relativePlacementConstraint=W.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var F=new h,B=F.newGraphManager();return O(B.addRoot(),u.getTopMostNodes(E),F,b),N(F,B,L),P(F,b),F.runLayout(),D},"coseLayout");a.exports={coseLayout:v}},212:(a,s,l)=>{var u=function(){function b(w,_){for(var T=0;T<_.length;T++){var E=_[T];E.enumerable=E.enumerable||!1,E.configurable=!0,"value"in E&&(E.writable=!0),Object.defineProperty(w,E.key,E)}}return o(b,"defineProperties"),function(w,_,T){return _&&b(w.prototype,_),T&&b(w,T),w}}();function h(b,w){if(!(b instanceof w))throw new TypeError("Cannot call a class as a function")}o(h,"_classCallCheck");var f=l(658),d=l(548),p=l(657),m=p.spectralLayout,g=l(816),y=g.coseLayout,v=Object.freeze({quality:"default",randomize:!0,animate:!0,animationDuration:1e3,animationEasing:void 0,fit:!0,padding:30,nodeDimensionsIncludeLabels:!1,uniformNodeDimensions:!1,packComponents:!0,step:"all",samplingType:!0,sampleSize:25,nodeSeparation:75,piTol:1e-7,nodeRepulsion:o(function(w){return 4500},"nodeRepulsion"),idealEdgeLength:o(function(w){return 50},"idealEdgeLength"),edgeElasticity:o(function(w){return .45},"edgeElasticity"),nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,tilingCompareBy:void 0,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.3,fixedNodeConstraint:void 0,alignmentConstraint:void 0,relativePlacementConstraint:void 0,ready:o(function(){},"ready"),stop:o(function(){},"stop")}),x=function(){function b(w){h(this,b),this.options=f({},v,w)}return o(b,"Layout"),u(b,[{key:"run",value:o(function(){var _=this,T=this.options,E=T.cy,L=T.eles,C=[],A=void 0,I=void 0,D=[],k=void 0,R=[];T.fixedNodeConstraint&&(!Array.isArray(T.fixedNodeConstraint)||T.fixedNodeConstraint.length==0)&&(T.fixedNodeConstraint=void 0),T.alignmentConstraint&&(T.alignmentConstraint.vertical&&(!Array.isArray(T.alignmentConstraint.vertical)||T.alignmentConstraint.vertical.length==0)&&(T.alignmentConstraint.vertical=void 0),T.alignmentConstraint.horizontal&&(!Array.isArray(T.alignmentConstraint.horizontal)||T.alignmentConstraint.horizontal.length==0)&&(T.alignmentConstraint.horizontal=void 0)),T.relativePlacementConstraint&&(!Array.isArray(T.relativePlacementConstraint)||T.relativePlacementConstraint.length==0)&&(T.relativePlacementConstraint=void 0);var S=T.fixedNodeConstraint||T.alignmentConstraint||T.relativePlacementConstraint;S&&(T.tile=!1,T.packComponents=!1);var O=void 0,N=!1;if(E.layoutUtilities&&T.packComponents&&(O=E.layoutUtilities("get"),O||(O=E.layoutUtilities()),N=!0),L.nodes().length>0)if(N){var B=d.getTopMostNodes(T.eles.nodes());if(k=d.connectComponents(E,T.eles,B),k.forEach(function(oe){var ke=oe.boundingBox();R.push({x:ke.x1+ke.w/2,y:ke.y1+ke.h/2})}),T.randomize&&k.forEach(function(oe){T.eles=oe,C.push(m(T))}),T.quality=="default"||T.quality=="proof"){var $=E.collection();if(T.tile){var z=new Map,W=[],j=[],K=0,ie={nodeIndexes:z,xCoords:W,yCoords:j},Q=[];if(k.forEach(function(oe,ke){oe.edges().length==0&&(oe.nodes().forEach(function(Fe,Be){$.merge(oe.nodes()[Be]),Fe.isParent()||(ie.nodeIndexes.set(oe.nodes()[Be].id(),K++),ie.xCoords.push(oe.nodes()[0].position().x),ie.yCoords.push(oe.nodes()[0].position().y))}),Q.push(ke))}),$.length>1){var ee=$.boundingBox();R.push({x:ee.x1+ee.w/2,y:ee.y1+ee.h/2}),k.push($),C.push(ie);for(var J=Q.length-1;J>=0;J--)k.splice(Q[J],1),C.splice(Q[J],1),R.splice(Q[J],1)}}k.forEach(function(oe,ke){T.eles=oe,D.push(y(T,C[ke])),d.relocateComponent(R[ke],D[ke],T)})}else k.forEach(function(oe,ke){d.relocateComponent(R[ke],C[ke],T)});var H=new Set;if(k.length>1){var q=[],Z=L.filter(function(oe){return oe.css("display")=="none"});k.forEach(function(oe,ke){var Fe=void 0;if(T.quality=="draft"&&(Fe=C[ke].nodeIndexes),oe.nodes().not(Z).length>0){var Be={};Be.edges=[],Be.nodes=[];var Ve=void 0;oe.nodes().not(Z).forEach(function(Ge){if(T.quality=="draft")if(!Ge.isParent())Ve=Fe.get(Ge.id()),Be.nodes.push({x:C[ke].xCoords[Ve]-Ge.boundingbox().w/2,y:C[ke].yCoords[Ve]-Ge.boundingbox().h/2,width:Ge.boundingbox().w,height:Ge.boundingbox().h});else{var He=d.calcBoundingBox(Ge,C[ke].xCoords,C[ke].yCoords,Fe);Be.nodes.push({x:He.topLeftX,y:He.topLeftY,width:He.width,height:He.height})}else D[ke][Ge.id()]&&Be.nodes.push({x:D[ke][Ge.id()].getLeft(),y:D[ke][Ge.id()].getTop(),width:D[ke][Ge.id()].getWidth(),height:D[ke][Ge.id()].getHeight()})}),oe.edges().forEach(function(Ge){var He=Ge.source(),xe=Ge.target();if(He.css("display")!="none"&&xe.css("display")!="none")if(T.quality=="draft"){var X=Fe.get(He.id()),fe=Fe.get(xe.id()),he=[],ge=[];if(He.isParent()){var ne=d.calcBoundingBox(He,C[ke].xCoords,C[ke].yCoords,Fe);he.push(ne.topLeftX+ne.width/2),he.push(ne.topLeftY+ne.height/2)}else he.push(C[ke].xCoords[X]),he.push(C[ke].yCoords[X]);if(xe.isParent()){var ye=d.calcBoundingBox(xe,C[ke].xCoords,C[ke].yCoords,Fe);ge.push(ye.topLeftX+ye.width/2),ge.push(ye.topLeftY+ye.height/2)}else ge.push(C[ke].xCoords[fe]),ge.push(C[ke].yCoords[fe]);Be.edges.push({startX:he[0],startY:he[1],endX:ge[0],endY:ge[1]})}else D[ke][He.id()]&&D[ke][xe.id()]&&Be.edges.push({startX:D[ke][He.id()].getCenterX(),startY:D[ke][He.id()].getCenterY(),endX:D[ke][xe.id()].getCenterX(),endY:D[ke][xe.id()].getCenterY()})}),Be.nodes.length>0&&(q.push(Be),H.add(ke))}});var ae=O.packComponents(q,T.randomize).shifts;if(T.quality=="draft")C.forEach(function(oe,ke){var Fe=oe.xCoords.map(function(Ve){return Ve+ae[ke].dx}),Be=oe.yCoords.map(function(Ve){return Ve+ae[ke].dy});oe.xCoords=Fe,oe.yCoords=Be});else{var ue=0;H.forEach(function(oe){Object.keys(D[oe]).forEach(function(ke){var Fe=D[oe][ke];Fe.setCenter(Fe.getCenterX()+ae[ue].dx,Fe.getCenterY()+ae[ue].dy)}),ue++})}}}else{var P=T.eles.boundingBox();if(R.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),T.randomize){var F=m(T);C.push(F)}T.quality=="default"||T.quality=="proof"?(D.push(y(T,C[0])),d.relocateComponent(R[0],D[0],T)):d.relocateComponent(R[0],C[0],T)}var ce=o(function(ke,Fe){if(T.quality=="default"||T.quality=="proof"){typeof ke=="number"&&(ke=Fe);var Be=void 0,Ve=void 0,Ge=ke.data("id");return D.forEach(function(xe){Ge in xe&&(Be={x:xe[Ge].getRect().getCenterX(),y:xe[Ge].getRect().getCenterY()},Ve=xe[Ge])}),T.nodeDimensionsIncludeLabels&&(Ve.labelWidth&&(Ve.labelPosHorizontal=="left"?Be.x+=Ve.labelWidth/2:Ve.labelPosHorizontal=="right"&&(Be.x-=Ve.labelWidth/2)),Ve.labelHeight&&(Ve.labelPosVertical=="top"?Be.y+=Ve.labelHeight/2:Ve.labelPosVertical=="bottom"&&(Be.y-=Ve.labelHeight/2))),Be==null&&(Be={x:ke.position("x"),y:ke.position("y")}),{x:Be.x,y:Be.y}}else{var He=void 0;return C.forEach(function(xe){var X=xe.nodeIndexes.get(ke.id());X!=null&&(He={x:xe.xCoords[X],y:xe.yCoords[X]})}),He==null&&(He={x:ke.position("x"),y:ke.position("y")}),{x:He.x,y:He.y}}},"getPositions");if(T.quality=="default"||T.quality=="proof"||T.randomize){var te=d.calcParentsWithoutChildren(E,L),De=L.filter(function(oe){return oe.css("display")=="none"});T.eles=L.not(De),L.nodes().not(":parent").not(De).layoutPositions(_,T,ce),te.length>0&&te.forEach(function(oe){oe.position(ce(oe))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b}();a.exports=x},657:(a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,w=new Map,_=new Map,T=[],E=[],L=[],C=[],A=[],I=[],D=[],k=[],R=void 0,S=void 0,O=1e8,N=1e-9,P=m.piTol,F=m.samplingType,B=m.nodeSeparation,$=void 0,z=o(function(){for(var Te=0,se=0,Ee=!1;se<$;){Te=Math.floor(Math.random()*S),Ee=!1;for(var Ae=0;Ae=Pe;){me=Ae[Pe++];for(var vt=T[me],Ye=0;Yett&&(tt=A[$e],gt=$e)}return gt},"BFS"),j=o(function(Te){var se=void 0;if(Te){se=Math.floor(Math.random()*S),R=se;for(var Ae=0;Ae=1)break;tt=Re}for(var vt=0;vt=1)break;tt=Re}for(var Tt=0;Tt0&&(se.isParent()?T[Te].push(_.get(se.id())):T[Te].push(se.id()))})});var te=o(function(Te){var se=w.get(Te),Ee=void 0;b.get(Te).forEach(function(Ae){g.getElementById(Ae).isParent()?Ee=_.get(Ae):Ee=Ae,T[se].push(Ee),T[w.get(Ee)].push(Te)})},"_loop"),De=!0,oe=!1,ke=void 0;try{for(var Fe=b.keys()[Symbol.iterator](),Be;!(De=(Be=Fe.next()).done);De=!0){var Ve=Be.value;te(Ve)}}catch(U){oe=!0,ke=U}finally{try{!De&&Fe.return&&Fe.return()}finally{if(oe)throw ke}}S=w.size;var Ge=void 0;if(S>2){$=S{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h},140:a=>{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var S1,j0,mF=M(()=>{"use strict";Kc();S1=o(t=>`${t}`,"wrapIcon"),j0={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:S1('')},server:{body:S1('')},disk:{body:S1('')},internet:{body:S1('')},cloud:{body:S1('')},unknown:RS,blank:{body:S1("")}}}});var u2e,h2e,f2e,d2e,p2e=M(()=>{"use strict";Kc();Vt();Dl();yb();mF();iS();u2e=o(async function(t,e){let r=Li("padding"),n=Li("iconSize"),i=n/2,a=n/6,s=a/2;await Promise.all(e.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:m,targetArrow:g,targetGroup:y,label:v}=nS(l),{x,y:b}=l[0].sourceEndpoint(),{x:w,y:_}=l[0].midpoint(),{x:T,y:E}=l[0].targetEndpoint(),L=r+4;if(d&&(us(h)?x+=h==="L"?-L:L:b+=h==="T"?-L:L+18),y&&(us(m)?T+=m==="L"?-L:L:E+=m==="T"?-L:L+18),!d&&X0.getNode(u)?.type==="junction"&&(us(h)?x+=h==="L"?i:-i:b+=h==="T"?i:-i),!y&&X0.getNode(p)?.type==="junction"&&(us(m)?T+=m==="L"?i:-i:E+=m==="T"?i:-i),l[0]._private.rscratch){let C=t.insert("g");if(C.insert("path").attr("d",`M ${x},${b} L ${w},${_} L${T},${E} `).attr("class","edge"),f){let A=us(h)?mb[h](x,a):x-s,I=qc(h)?mb[h](b,a):b-s;C.insert("polygon").attr("points",lF[h](a)).attr("transform",`translate(${A},${I})`).attr("class","arrow")}if(g){let A=us(m)?mb[m](T,a):T-s,I=qc(m)?mb[m](E,a):E-s;C.insert("polygon").attr("points",lF[m](a)).attr("transform",`translate(${A},${I})`).attr("class","arrow")}if(v){let A=rS(h,m)?"XY":us(h)?"X":"Y",I=0;A==="X"?I=Math.abs(x-T):A==="Y"?I=Math.abs(b-E)/1.5:I=Math.abs(x-T)/2;let D=C.append("g");if(await Si(D,v,{useHtmlLabels:!1,width:I,classes:"architecture-service-label"},de()),D.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),A==="X")D.attr("transform","translate("+w+", "+_+")");else if(A==="Y")D.attr("transform","translate("+w+", "+_+") rotate(-90)");else if(A==="XY"){let k=gb(h,m);if(k&&Jve(k)){let R=D.node().getBoundingClientRect(),[S,O]=t2e(k);D.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*S*O*45})`);let N=D.node().getBoundingClientRect();D.attr("transform",` + translate(${w}, ${_-R.height/2}) + translate(${S*N.width/2}, ${O*N.height/2}) + rotate(${-1*S*O*45}, 0, ${R.height/2}) + `)}}}}}))},"drawEdges"),h2e=o(async function(t,e){let n=Li("padding")*.75,i=Li("fontSize"),s=Li("iconSize")/2;await Promise.all(e.nodes().map(async l=>{let u=Mf(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox();t.append("rect").attr("x",d+s).attr("y",p+s).attr("width",f).attr("height",h).attr("class","node-bkg");let m=t.append("g"),g=d,y=p;if(u.icon){let v=m.append("g");v.html(`${await wo(u.icon,{height:n,width:n,fallbackPrefix:j0.prefix})}`),v.attr("transform","translate("+(g+s+1)+", "+(y+s+1)+")"),g+=n,y+=i/2-1-2}if(u.label){let v=m.append("g");await Si(v,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},de()),v.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),v.attr("transform","translate("+(g+s+4)+", "+(y+s+2)+")")}}}))},"drawGroups"),f2e=o(async function(t,e,r){for(let n of r){let i=e.append("g"),a=Li("iconSize");if(n.title){let h=i.append("g");await Si(h,n.title,{useHtmlLabels:!1,width:a*1.5,classes:"architecture-service-label"},de()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(n.icon)s.html(`${await wo(n.icon,{height:a,width:a,fallbackPrefix:j0.prefix})}`);else if(n.iconText){s.html(`${await wo("blank",{height:a,width:a,fallbackPrefix:j0.prefix})}`);let d=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/p)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:u}=i._groups[0][0].getBBox();n.width=l,n.height=u,t.setElementForId(n.id,i)}return 0},"drawServices"),d2e=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=Li("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Lit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"service",id:r.id,icon:r.icon,label:r.title,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-service"})})}function Dit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"junction",id:r.id,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-junction"})})}function Nit(t,e){e.nodes().map(r=>{let n=Mf(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function Rit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Mit(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=rS(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function Iit(t){let e=t.map(i=>{let a={},s={};return Object.entries(i).forEach(([l,[u,h]])=>{a[h]||(a[h]=[]),s[u]||(s[u]=[]),a[h].push(l),s[u].push(l)}),{horiz:Object.values(a).filter(l=>l.length>1),vert:Object.values(s).filter(l=>l.length>1)}}),[r,n]=e.reduce(([i,a],{horiz:s,vert:l})=>[[...i,...s],[...a,...l]],[[],[]]);return{horizontal:r,vertical:n}}function Oit(t){let e=[],r=o(i=>`${i[0]},${i[1]}`,"posToStr"),n=o(i=>i.split(",").map(a=>parseInt(a)),"strToPos");return t.forEach(i=>{let a=Object.fromEntries(Object.entries(i).map(([h,f])=>[r(f),h])),s=[r([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){let h=s.shift();if(h){l[h]=1;let f=a[h];if(f){let d=n(h);Object.entries(u).forEach(([p,m])=>{let g=r([d[0]+m[0],d[1]+m[1]]),y=a[g];y&&!l[g]&&(s.push(g),e.push({[oF[p]]:y,[oF[Zve(p)]]:f,gap:1.5*Li("iconSize")}))})}}}}),e}function Pit(t,e,r,n,{spatialMaps:i}){return new Promise(a=>{let s=ze("body").append("div").attr("id","cy").attr("style","display:none"),l=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Li("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Li("padding")}px`}}]});s.remove(),Rit(r,l),Lit(t,l),Dit(e,l),Mit(n,l);let u=Iit(i),h=Oit(i),f=l.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(d){let[p,m]=d.connectedNodes(),{parent:g}=Mf(p),{parent:y}=Mf(m);return g===y?1.5*Li("iconSize"):.5*Li("iconSize")},edgeElasticity(d){let[p,m]=d.connectedNodes(),{parent:g}=Mf(p),{parent:y}=Mf(m);return g===y?.45:.001},alignmentConstraint:u,relativePlacementConstraint:h});f.one("layoutstop",()=>{function d(p,m,g,y){let v,x,{x:b,y:w}=p,{x:_,y:T}=m;x=(y-w+(b-g)*(w-T)/(b-_))/Math.sqrt(1+Math.pow((w-T)/(b-_),2)),v=Math.sqrt(Math.pow(y-w,2)+Math.pow(g-b,2)-Math.pow(x,2));let E=Math.sqrt(Math.pow(_-b,2)+Math.pow(T-w,2));v=v/E;let L=(_-b)*(y-w)-(T-w)*(g-b);switch(!0){case L>=0:L=1;break;case L<0:L=-1;break}let C=(_-b)*(g-b)+(T-w)*(y-w);switch(!0){case C>=0:C=1;break;case C<0:C=-1;break}return x=Math.abs(x)*L,v=v*C,{distances:x,weights:v}}o(d,"getSegmentWeights"),l.startBatch();for(let p of Object.values(l.edges()))if(p.data?.()){let{x:m,y:g}=p.source().position(),{x:y,y:v}=p.target().position();if(m!==y&&g!==v){let x=p.sourceEndpoint(),b=p.targetEndpoint(),{sourceDir:w}=nS(p),[_,T]=qc(w)?[x.x,b.y]:[b.x,x.y],{weights:E,distances:L}=d(x,b,_,T);p.style("segment-distances",L),p.style("segment-weights",E)}}l.endBatch(),f.run()}),f.run(),l.ready(d=>{Y.info("Ready",d),a(l)})})}var m2e,Bit,g2e,y2e=M(()=>{"use strict";Kc();kB();m2e=ka(c2e(),1);mr();ht();Hu();ni();yb();mF();iS();p2e();Mb([{name:j0.prefix,icons:j0}]);sl.use(m2e.default);o(Lit,"addServices");o(Dit,"addJunctions");o(Nit,"positionNodes");o(Rit,"addGroups");o(Mit,"addEdges");o(Iit,"getAlignments");o(Oit,"getRelativeConstraints");o(Pit,"layoutArchitecture");Bit=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Oa(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await f2e(i,p,a),d2e(i,p,s);let g=await Pit(a,s,l,u,h);await u2e(d,g),await h2e(m,g),Nit(i,g),_o(void 0,f,Li("padding"),Li("useMaxWidth"))},"draw"),g2e={draw:Bit}});var v2e={};vr(v2e,{diagram:()=>Fit});var Fit,x2e=M(()=>{"use strict";s2e();yb();l2e();y2e();Fit={parser:a2e,db:X0,renderer:g2e,styles:o2e}});var Eat={};vr(Eat,{default:()=>kat});Kc();MS();$f();var WX="c4",s7e=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),o7e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(HX(),UX));return{id:WX,diagram:t}},"loader"),l7e={id:WX,detector:s7e,loader:o7e},YX=l7e;var jie="flowchart",dPe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),pPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:jie,diagram:t}},"loader"),mPe={id:jie,detector:dPe,loader:pPe},Kie=mPe;var Qie="flowchart-v2",gPe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),yPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:Qie,diagram:t}},"loader"),vPe={id:Qie,detector:gPe,loader:yPe},Zie=vPe;var Aae="er",qPe=o(t=>/^\s*erDiagram/.test(t),"detector"),XPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Cae(),Sae));return{id:Aae,diagram:t}},"loader"),jPe={id:Aae,detector:qPe,loader:XPe},_ae=jPe;var Fue="gitGraph",x$e=o(t=>/^\s*gitGraph/.test(t),"detector"),b$e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Bue(),Pue));return{id:Fue,diagram:t}},"loader"),w$e={id:Fue,detector:x$e,loader:b$e},zue=w$e;var mhe="gantt",lVe=o(t=>/^\s*gantt/.test(t),"detector"),cVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(phe(),dhe));return{id:mhe,diagram:t}},"loader"),uVe={id:mhe,detector:lVe,loader:cVe},ghe=uVe;var She="info",gVe=o(t=>/^\s*info/.test(t),"detector"),yVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ehe(),khe));return{id:She,diagram:t}},"loader"),Che={id:She,detector:gVe,loader:yVe};var Phe="pie",DVe=o(t=>/^\s*pie/.test(t),"detector"),NVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ohe(),Ihe));return{id:Phe,diagram:t}},"loader"),Bhe={id:Phe,detector:DVe,loader:NVe};var Khe="quadrantChart",jVe=o(t=>/^\s*quadrantChart/.test(t),"detector"),KVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(jhe(),Xhe));return{id:Khe,diagram:t}},"loader"),QVe={id:Khe,detector:jVe,loader:KVe},Qhe=QVe;var Efe="xychart",dUe=o(t=>/^\s*xychart-beta/.test(t),"detector"),pUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(kfe(),Tfe));return{id:Efe,diagram:t}},"loader"),mUe={id:Efe,detector:dUe,loader:pUe},Sfe=mUe;var $fe="requirement",UUe=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),HUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Gfe(),zfe));return{id:$fe,diagram:t}},"loader"),WUe={id:$fe,detector:UUe,loader:HUe},Vfe=WUe;var mde="sequence",XHe=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),jHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(pde(),dde));return{id:mde,diagram:t}},"loader"),KHe={id:mde,detector:XHe,loader:jHe},gde=KHe;var Lde="class",_We=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),LWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_de(),Ade));return{id:Lde,diagram:t}},"loader"),DWe={id:Lde,detector:_We,loader:LWe},Dde=DWe;var Mde="classDiagram",RWe=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),MWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Rde(),Nde));return{id:Mde,diagram:t}},"loader"),IWe={id:Mde,detector:RWe,loader:MWe},Ide=IWe;var S0e="state",LYe=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),DYe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(E0e(),k0e));return{id:S0e,diagram:t}},"loader"),NYe={id:S0e,detector:LYe,loader:DYe},C0e=NYe;var L0e="stateDiagram",MYe=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),IYe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_0e(),A0e));return{id:L0e,diagram:t}},"loader"),OYe={id:L0e,detector:MYe,loader:IYe},D0e=OYe;var Y0e="journey",rqe=o(t=>/^\s*journey/.test(t),"detector"),nqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(W0e(),H0e));return{id:Y0e,diagram:t}},"loader"),iqe={id:Y0e,detector:rqe,loader:nqe},q0e=iqe;ht();Hu();ni();var aqe=o((t,e,r)=>{Y.debug(`rendering svg for syntax error +`);let n=Oa(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Zr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),yP={draw:aqe},X0e=yP;var sqe={db:{},renderer:yP,parser:{parse:o(()=>{},"parse")}},j0e=sqe;var K0e="flowchart-elk",oqe=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),lqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:K0e,diagram:t}},"loader"),cqe={id:K0e,detector:oqe,loader:lqe},Q0e=cqe;var kpe="timeline",_qe=o(t=>/^\s*timeline/.test(t),"detector"),Lqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Tpe(),wpe));return{id:kpe,diagram:t}},"loader"),Dqe={id:kpe,detector:_qe,loader:Lqe},Epe=Dqe;var V1e="mindmap",Ftt=o(t=>/^\s*mindmap/.test(t),"detector"),ztt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>($1e(),G1e));return{id:V1e,diagram:t}},"loader"),Gtt={id:V1e,detector:Ftt,loader:ztt},U1e=Gtt;var tye="kanban",rrt=o(t=>/^\s*kanban/.test(t),"detector"),nrt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(eye(),J1e));return{id:tye,diagram:t}},"loader"),irt={id:tye,detector:rrt,loader:nrt},rye=irt;var Oye="sankey",Crt=o(t=>/^\s*sankey-beta/.test(t),"detector"),Art=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Iye(),Mye));return{id:Oye,diagram:t}},"loader"),_rt={id:Oye,detector:Crt,loader:Art},Pye=_rt;var Yye="packet",$rt=o(t=>/^\s*packet-beta/.test(t),"detector"),Vrt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Wye(),Hye));return{id:Yye,diagram:t}},"loader"),qye={id:Yye,detector:$rt,loader:Vrt};var Kve="block",cit=o(t=>/^\s*block-beta/.test(t),"detector"),uit=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(jve(),Xve));return{id:Kve,diagram:t}},"loader"),hit={id:Kve,detector:cit,loader:uit},Qve=hit;var b2e="architecture",zit=o(t=>/^\s*architecture/.test(t),"detector"),Git=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(x2e(),v2e));return{id:b2e,diagram:t}},"loader"),$it={id:b2e,detector:zit,loader:Git},w2e=$it;$f();Vt();var T2e=!1,C1=o(()=>{T2e||(T2e=!0,Qf("error",j0e,t=>t.toLowerCase().trim()==="error"),Qf("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),Bb(YX,rye,Ide,Dde,_ae,ghe,Che,Bhe,Vfe,gde,Q0e,Zie,Kie,U1e,Epe,zue,D0e,C0e,q0e,Qhe,Pye,qye,Sfe,Qve,w2e))},"addDiagrams");ht();$f();Vt();var k2e=o(async()=>{Y.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(Gf).map(async([r,{detector:n,loader:i}])=>{if(i)try{ay(r)}catch{try{let{diagram:a,id:s}=await i();Qf(s,a,n)}catch(a){throw Y.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Gf[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){Y.error(`Failed to load ${e.length} external diagrams`);for(let r of e)Y.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");ht();mr();var aS="comm",sS="rule",oS="decl";var E2e="@import";var S2e="@keyframes";var C2e="@layer";var gF=Math.abs,wb=String.fromCharCode;function lS(t){return t.trim()}o(lS,"trim");function Tb(t,e,r){return t.replace(e,r)}o(Tb,"replace");function A2e(t,e,r){return t.indexOf(e,r)}o(A2e,"indexof");function K0(t,e){return t.charCodeAt(e)|0}o(K0,"charat");function If(t,e,r){return t.slice(e,r)}o(If,"substr");function yo(t){return t.length}o(yo,"strlen");function _2e(t){return t.length}o(_2e,"sizeof");function A1(t,e){return e.push(t),t}o(A1,"append");var cS=1,_1=1,L2e=0,ll=0,Di=0,D1="";function uS(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:cS,column:_1,length:s,return:"",siblings:l}}o(uS,"node");function D2e(){return Di}o(D2e,"char");function N2e(){return Di=ll>0?K0(D1,--ll):0,_1--,Di===10&&(_1=1,cS--),Di}o(N2e,"prev");function cl(){return Di=ll2||L1(Di)>3?"":" "}o(I2e,"whitespace");function O2e(t,e){for(;--e&&cl()&&!(Di<48||Di>102||Di>57&&Di<65||Di>70&&Di<97););return hS(t,kb()+(e<6&&Ju()==32&&cl()==32))}o(O2e,"escaping");function yF(t){for(;cl();)switch(Di){case t:return ll;case 34:case 39:t!==34&&t!==39&&yF(Di);break;case 40:t===41&&yF(t);break;case 92:cl();break}return ll}o(yF,"delimiter");function P2e(t,e){for(;cl()&&t+Di!==57;)if(t+Di===84&&Ju()===47)break;return"/*"+hS(e,ll-1)+"*"+wb(t===47?t:cl())}o(P2e,"commenter");function B2e(t){for(;!L1(Ju());)cl();return hS(t,ll)}o(B2e,"identifier");function G2e(t){return M2e(dS("",null,null,null,[""],t=R2e(t),0,[0],t))}o(G2e,"compile");function dS(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,w="",_=i,T=a,E=n,L=w;v;)switch(g=b,b=cl()){case 40:if(g!=108&&K0(L,d-1)==58){A2e(L+=Tb(fS(b),"&","&\f"),"&\f",gF(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:L+=fS(b);break;case 9:case 10:case 13:case 32:L+=I2e(g);break;case 92:L+=O2e(kb()-1,7);continue;case 47:switch(Ju()){case 42:case 47:A1(Vit(P2e(cl(),kb()),e,r,u),u),(L1(g||1)==5||L1(Ju()||1)==5)&&yo(L)&&If(L,-1,void 0)!==" "&&(L+=" ");break;default:L+="/"}break;case 123*y:l[h++]=yo(L)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(L=Tb(L,/\f/g,"")),m>0&&(yo(L)-d||y===0&&g===47)&&A1(m>32?z2e(L+";",n,r,d-1,u):z2e(Tb(L," ","")+";",n,r,d-2,u),u);break;case 59:L+=";";default:if(A1(E=F2e(L,e,r,h,f,i,l,w,_=[],T=[],d,a),a),b===123)if(f===0)dS(L,e,E,E,_,a,d,l,T);else switch(p===99&&K0(L,3)===110?100:p){case 100:case 108:case 109:case 115:dS(t,E,E,n&&A1(F2e(t,E,E,0,0,i,l,w,i,_=[],d,T),T),i,T,d,l,n?_:T);break;default:dS(L,E,E,E,[""],T,0,l,T)}}h=f=m=0,y=x=1,w=L="",d=s;break;case 58:d=1+yo(L),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&N2e()==125)continue}switch(L+=wb(b),b*y){case 38:x=f>0?1:(L+="\f",-1);break;case 44:l[h++]=(yo(L)-1)*x,x=1;break;case 64:Ju()===45&&(L+=fS(cl())),p=Ju(),f=d=yo(w=L+=B2e(kb())),b++;break;case 45:g===45&&yo(L)==2&&(y=0)}}return a}o(dS,"parse");function F2e(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=_2e(m),y=0,v=0,x=0;y0?m[b]+" "+w:Tb(w,/&\f/g,m[b])))&&(u[x++]=_);return uS(t,e,r,i===0?sS:l,u,h,f,d)}o(F2e,"ruleset");function Vit(t,e,r,n){return uS(t,e,r,aS,wb(D2e()),If(t,2,-2),0,n)}o(Vit,"comment");function z2e(t,e,r,n,i){return uS(t,e,r,oS,If(t,0,n),If(t,n+1,-1),n,i)}o(z2e,"declaration");function pS(t,e){for(var r="",n=0;n{H2e.forEach(t=>{t()}),H2e=[]},"attachFunctions");ht();var Y2e=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");Pb();V5();function q2e(t){let e=t.match(Ob);if(!e)return{text:t,metadata:{}};let r=fm(e[1],{schema:hm})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(q2e,"extractFrontMatter");hr();var Hit=o(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Wit=o(t=>{let{text:e,metadata:r}=q2e(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Yit=o(t=>{let e=Ut.detectInit(t)??{},r=Ut.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:RX(t),directive:e}},"processDirectives");function vF(t){let e=Hit(t),r=Wit(e),n=Yit(r.text),i=ws(r.config,n.directive);return t=Y2e(n.text),{code:t,title:r.title,config:i}}o(vF,"preprocessDiagram");QC();Hb();hr();function X2e(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(X2e,"toBase64");var qit=5e4,Xit="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",jit="sandbox",Kit="loose",Qit="http://www.w3.org/2000/svg",Zit="http://www.w3.org/1999/xlink",Jit="http://www.w3.org/1999/xhtml",eat="100%",tat="100%",rat="border:0;margin:0;",nat="margin:0",iat="allow-top-navigation-by-user-activation allow-popups",aat='The "iframe" tag is not supported by your browser.',sat=["foreignobject"],oat=["dominant-baseline"];function Z2e(t){let e=vF(t);return V1(),Hz(e.config??{}),e}o(Z2e,"processAndSetConfigs");async function lat(t,e){C1();try{let{code:r,config:n}=Z2e(t);return{diagramType:(await J2e(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(lat,"parse");var j2e=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),cat=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{cr(l.styles)||s.forEach(u=>{r+=j2e(l.id,u,l.styles)}),cr(l.textStyles)||(r+=j2e(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),uat=o((t,e,r,n)=>{let i=cat(t,r),a=F$(e,i,t.themeVariables);return pS(G2e(`${n}{${a}}`),$2e)},"createUserStyles"),hat=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=Ca(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),fat=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":tat,n=X2e(`${t}`);return``},"putIntoIFrame"),K2e=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Qit);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function Q2e(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(Q2e,"sandboxedIframe");var dat=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),pat=o(async function(t,e,r){C1();let n=Z2e(e);e=n.code;let i=Sr();Y.debug(i),e.length>(i?.maxTextSize??qit)&&(e=Xit);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let R=ze(p?l:h).node();R&&"remove"in R&&R.remove()},"removeTempElements"),d=ze("body"),p=i.securityLevel===jit,m=i.securityLevel===Kit,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let k=Q2e(ze(r),s);d=ze(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ze(r);K2e(d,t,u,`font-family: ${g}`,Zit)}else{if(dat(document,t,u,s),p){let k=Q2e(ze("body"),s);d=ze(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ze("body");K2e(d,t,u)}let y,v;try{y=await N1.fromText(e,{title:n.title})}catch(k){if(i.suppressErrorRendering)throw f(),k;y=await N1.fromText("error"),v=k}let x=d.select(h).node(),b=y.type,w=x.firstChild,_=w.firstChild,T=y.renderer.getClasses?.(e,y),E=uat(i,b,T,a),L=document.createElement("style");L.innerHTML=E,w.insertBefore(L,_);try{await y.renderer.draw(e,t,dx,y)}catch(k){throw i.suppressErrorRendering?f():X0e.draw(e,t,dx),k}let C=d.select(`${h} svg`),A=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();gat(b,C,A,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Jit);let D=d.select(h).node().innerHTML;if(Y.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),D=hat(D,p,xr(i.arrowMarkerAbsolute)),p){let k=d.select(h+" svg").node();D=fat(D,k)}else m||(D=ah.sanitize(D,{ADD_TAGS:sat,ADD_ATTR:oat,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(W2e(),v)throw v;return f(),{diagramType:b,svg:D,bindFunctions:y.db.bindFunctions}},"render");function mat(t={}){let e=Gn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),$z(e),e?.theme&&e.theme in ko?e.themeVariables=ko[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=ko.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?QS(e):ZS();M1(r.logLevel),C1()}o(mat,"initialize");var J2e=o((t,e={})=>{let{code:r}=vF(t);return N1.fromText(r,e)},"getDiagramFromText");function gat(t,e,r,n){V2e(e,t),U2e(e,r,n,e.attr("id"))}o(gat,"addA11yInfo");var Of=Object.freeze({render:pat,parse:lat,getDiagramFromText:J2e,initialize:mat,getConfig:Sr,setConfig:Yb,getSiteConfig:ZS,updateSiteConfig:Vz,reset:o(()=>{V1()},"reset"),globalReset:o(()=>{V1(ih)},"globalReset"),defaultConfig:ih});M1(Sr().logLevel);V1(Sr());Fv();hr();var yat=o((t,e,r)=>{Y.warn(t),i9(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),exe=o(async function(t={querySelector:".mermaid"}){try{await vat(t)}catch(e){if(i9(e)&&Y.error(e.str),eh.parseError&&eh.parseError(e),!t.suppressErrors)throw Y.error("Use the suppressErrors option to suppress these errors"),e}},"run"),vat=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Of.getConfig();Y.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");Y.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(Y.debug("Start On Load: "+n?.startOnLoad),Of.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Ut.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){Y.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=Ib(Ut.entityDecode(s)).trim().replace(//gi,"
    ");let f=Ut.detectInit(s);f&&Y.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await ixe(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){yat(d,l,eh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),txe=o(function(t){Of.initialize(t)},"initialize"),xat=o(async function(t,e,r){Y.warn("mermaid.init is deprecated. Please use run instead."),t&&txe(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await exe(n)},"init"),bat=o(async(t,{lazyLoad:e=!0}={})=>{C1(),Bb(...t),e===!1&&await k2e()},"registerExternalDiagrams"),rxe=o(function(){if(eh.startOnLoad){let{startOnLoad:t}=Of.getConfig();t&&eh.run().catch(e=>Y.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",rxe,!1)}var wat=o(function(t){eh.parseError=t},"setParseErrorHandler"),mS=[],xF=!1,nxe=o(async()=>{if(!xF){for(xF=!0;mS.length>0;){let t=mS.shift();if(t)try{await t()}catch(e){Y.error("Error executing queue",e)}}xF=!1}},"executeQueue"),Tat=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Of.parse(t,e).then(l=>{a(l),r(l)},l=>{Y.error("Error parsing",l),eh.parseError?.(l),s(l),n(l)})}),"performCall");mS.push(i),nxe().catch(n)}),"parse"),ixe=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Of.render(t,e,r).then(u=>{s(u),n(u)},u=>{Y.error("Error parsing",u),eh.parseError?.(u),l(u),i(u)})}),"performCall");mS.push(a),nxe().catch(i)}),"render"),eh={startOnLoad:!0,mermaidAPI:Of,parse:Tat,render:ixe,init:xat,run:exe,registerExternalDiagrams:bat,registerLayoutLoaders:CD,initialize:txe,parseError:void 0,contentLoaded:rxe,setParseErrorHandler:wat,detectType:np,registerIconPacks:Mb},kat=eh;return pxe(Eat);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.2.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.1/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default; diff --git a/pages/proactive-chat/vendor/purify.min.js b/pages/proactive-chat/vendor/purify.min.js new file mode 100644 index 0000000..a30c02b --- /dev/null +++ b/pages/proactive-chat/vendor/purify.min.js @@ -0,0 +1,3 @@ +/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),_=b(RegExp.prototype.test),A=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:H,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:X,DOCTYPE_NAME:q,CUSTOM_ELEMENT:$});const V=1,Z=3,J=7,Q=8,ee=9,te=function(){return"undefined"==typeof window?null:window};var ne=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te();const o=e=>t(e);if(o.version="3.1.6",o.removed=[],!n||!n.document||n.document.nodeType!==ee)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:H,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=C(j,"cloneNode"),$=C(j,"remove"),ne=C(j,"nextSibling"),oe=C(j,"childNodes"),re=C(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ie,ae="";const{implementation:le,createNodeIterator:ce,createDocumentFragment:se,getElementsByTagName:ue}=r,{importNode:me}=a;let pe={};o.isSupported="function"==typeof e&&"function"==typeof re&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:de,TMPLIT_EXPR:he,DATA_ATTR:ge,ARIA_ATTR:Te,IS_SCRIPT_OR_DATA:ye,ATTR_WHITESPACE:Ee,CUSTOM_ELEMENT:_e}=K;let{IS_ALLOWED_URI:Ae}=K,Ne=null;const be=S({},[...L,...D,...v,...x,...M]);let Se=null;const Re=S({},[...I,...U,...P,...F]);let we=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,Le=null,De=!0,ve=!0,Oe=!1,xe=!0,ke=!1,Me=!0,Ie=!1,Ue=!1,Pe=!1,Fe=!1,He=!1,ze=!1,Be=!0,We=!1,Ge=!0,Ye=!1,je={},Xe=null;const qe=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let $e=null;const Ke=S({},["audio","video","img","source","image","track"]);let Ve=null;const Ze=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",et="http://www.w3.org/1999/xhtml";let tt=et,nt=!1,ot=null;const rt=S({},[Je,Qe,et],d);let it=null;const at=["application/xhtml+xml","text/html"];let lt=null,ct=null;const st=r.createElement("form"),ut=function(e){return e instanceof RegExp||e instanceof Function},mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=w(e),it=-1===at.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===it?d:f,Ne=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,lt):be,Se=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,lt):Re,ot=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):rt,Ve=E(e,"ADD_URI_SAFE_ATTR")?S(w(Ze),e.ADD_URI_SAFE_ATTR,lt):Ze,$e=E(e,"ADD_DATA_URI_TAGS")?S(w(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,Xe=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,lt):qe,Ce=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,lt):{},Le=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,lt):{},je=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,De=!1!==e.ALLOW_ARIA_ATTR,ve=!1!==e.ALLOW_DATA_ATTR,Oe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,ke=e.SAFE_FOR_TEMPLATES||!1,Me=!1!==e.SAFE_FOR_XML,Ie=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,ze=e.RETURN_TRUSTED_TYPE||!1,Pe=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ge=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,Ae=e.ALLOWED_URI_REGEXP||Y,tt=e.NAMESPACE||et,we=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(we.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(we.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(we.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ke&&(ve=!1),He&&(Fe=!0),je&&(Ne=S({},M),Se=[],!0===je.html&&(S(Ne,L),S(Se,I)),!0===je.svg&&(S(Ne,D),S(Se,U),S(Se,F)),!0===je.svgFilters&&(S(Ne,v),S(Se,U),S(Se,F)),!0===je.mathMl&&(S(Ne,x),S(Se,P),S(Se,F))),e.ADD_TAGS&&(Ne===be&&(Ne=w(Ne)),S(Ne,e.ADD_TAGS,lt)),e.ADD_ATTR&&(Se===Re&&(Se=w(Se)),S(Se,e.ADD_ATTR,lt)),e.ADD_URI_SAFE_ATTR&&S(Ve,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(Xe===qe&&(Xe=w(Xe)),S(Xe,e.FORBID_CONTENTS,lt)),Ge&&(Ne["#text"]=!0),Ie&&S(Ne,["html","head","body"]),Ne.table&&(S(Ne,["tbody"]),delete Ce.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ie=e.TRUSTED_TYPES_POLICY,ae=ie.createHTML("")}else void 0===ie&&(ie=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==ie&&"string"==typeof ae&&(ae=ie.createHTML(""));i&&i(e),ct=e}},pt=S({},["mi","mo","mn","ms","mtext"]),ft=S({},["foreignobject","annotation-xml"]),dt=S({},["title","style","font","a","script"]),ht=S({},[...D,...v,...O]),gt=S({},[...x,...k]),Tt=function(e){p(o.removed,{element:e});try{re(e).removeChild(e)}catch(t){$(e)}},yt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Fe||He)try{Tt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Et=function(e){let t=null,n=null;if(Pe)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===it&&tt===et&&(e=''+e+"");const o=ie?ie.createHTML(e):e;if(tt===et)try{t=(new W).parseFromString(o,it)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(tt,"template",null);try{t.documentElement.innerHTML=nt?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),tt===et?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},_t=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},At=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Nt=function(e){return"function"==typeof b&&e instanceof b},bt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ct)}))},St=function(e){let t=null;if(bt("beforeSanitizeElements",e,null),At(e))return Tt(e),!0;const n=lt(e.nodeName);if(bt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Nt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return Tt(e),!0;if(e.nodeType===J)return Tt(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return Tt(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&wt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ge&&!Xe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ne(e))}}}return Tt(e),!0}return e instanceof R&&!function(e){let t=re(e);t&&t.tagName||(t={namespaceURI:tt,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===Qe?t.namespaceURI===et?"svg"===n:t.namespaceURI===Je?"svg"===n&&("annotation-xml"===o||pt[o]):Boolean(ht[n]):e.namespaceURI===Je?t.namespaceURI===et?"math"===n:t.namespaceURI===Qe?"math"===n&&ft[o]:Boolean(gt[n]):e.namespaceURI===et?!(t.namespaceURI===Qe&&!ft[o])&&!(t.namespaceURI===Je&&!pt[o])&&!gt[n]&&(dt[n]||!ht[n]):!("application/xhtml+xml"!==it||!ot[e.namespaceURI]))}(e)?(Tt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),bt("afterSanitizeElements",e,null),!1):(Tt(e),!0)},Rt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in st))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(wt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ve[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!$e[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}else;return!0},wt=function(e){return"annotation-xml"!==e&&h(e,_e)},Ct=function(e){bt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=lt(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,bt("uponSanitizeAttribute",e,n),p=n.attrValue,Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){yt(a,e);continue}if(n.forceKeepAttr)continue;if(yt(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){yt(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=lt(e.nodeName);if(Rt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(yt(a,e),p="user-content-"+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),At(e)?Tt(e):m(o.removed)}catch(e){}}}bt("afterSanitizeAttributes",e,null)},Lt=function e(t){let n=null;const o=_t(t);for(bt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)bt("uponSanitizeShadowNode",n,null),St(n)||(n.content instanceof s&&e(n.content),Ct(n));bt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(nt=!e,nt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Nt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||mt(t),o.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=lt(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Et("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Et(e),!n)return Fe?null:ze?ae:""}n&&Pe&&Tt(n.firstChild);const c=_t(Ye?e:n);for(;i=c.nextNode();)St(i)||(i.content instanceof s&&Lt(i.content),Ct(i));if(Ye)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){mt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ue=!0},o.clearConfig=function(){ct=null,Ue=!1},o.isValidAttribute=function(e,t,n){ct||mt({});const o=lt(e),r=lt(t);return Rt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return ne})); +//# sourceMappingURL=purify.min.js.map diff --git a/pages/proactive-chat/vendor/react-dom.production.min.js b/pages/proactive-chat/vendor/react-dom.production.min.js new file mode 100644 index 0000000..e8a0213 --- /dev/null +++ b/pages/proactive-chat/vendor/react-dom.production.min.js @@ -0,0 +1,267 @@ +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function(){/* + Modernizr 3.0.0pre (Custom Build) | MIT +*/ +'use strict';(function(Q,mb){"object"===typeof exports&&"undefined"!==typeof module?mb(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],mb):(Q=Q||self,mb(Q.ReactDOM={},Q.React))})(this,function(Q,mb){function n(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;cb}return!1}function Y(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function $d(a,b,c,d){var e=R.hasOwnProperty(b)?R[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k="\n"+e[g].replace(" at new "," at ");a.displayName&&k.includes("")&&(k=k.replace("",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{ce=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?bc(a): +""}function gj(a){switch(a.tag){case 5:return bc(a.type);case 16:return bc("Lazy");case 13:return bc("Suspense");case 19:return bc("SuspenseList");case 0:case 2:case 15:return a=be(a.type,!1),a;case 11:return a=be(a.type.render,!1),a;case 1:return a=be(a.type,!0),a;default:return""}}function de(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case Bb:return"Fragment";case Cb:return"Portal";case ee:return"Profiler";case fe:return"StrictMode"; +case ge:return"Suspense";case he:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case gg:return(a.displayName||"Context")+".Consumer";case hg:return(a._context.displayName||"Context")+".Provider";case ie:var b=a.render;a=a.displayName;a||(a=b.displayName||b.name||"",a=""!==a?"ForwardRef("+a+")":"ForwardRef");return a;case je:return b=a.displayName||null,null!==b?b:de(a.type)||"Memo";case Ta:b=a._payload;a=a._init;try{return de(a(b))}catch(c){}}return null}function hj(a){var b=a.type; +switch(a.tag){case 24:return"Cache";case 9:return(b.displayName||"Context")+".Consumer";case 10:return(b._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=b.render,a=a.displayName||a.name||"",b.displayName||(""!==a?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return b;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return de(b);case 8:return b===fe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler"; +case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof b)return b.displayName||b.name||null;if("string"===typeof b)return b}return null}function Ua(a){switch(typeof a){case "boolean":case "number":case "string":case "undefined":return a;case "object":return a;default:return""}}function ig(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"=== +b)}function ij(a){var b=ig(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker= +null;delete a[b]}}}}function Pc(a){a._valueTracker||(a._valueTracker=ij(a))}function jg(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=ig(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Qc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ke(a,b){var c=b.checked;return E({},b,{defaultChecked:void 0,defaultValue:void 0, +value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function kg(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ua(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function lg(a,b){b=b.checked;null!=b&&$d(a,"checked",b,!1)}function le(a,b){lg(a,b);var c=Ua(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!= +c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?me(a,b.type,c):b.hasOwnProperty("defaultValue")&&me(a,b.type,Ua(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function mg(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue; +c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function me(a,b,c){if("number"!==b||Qc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function Db(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e>>=0;return 0===a?32:31-(rj(a)/sj|0)|0}function hc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a& +4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return a}}function Vc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=hc(h):(f&=g,0!==f&&(d=hc(f)))}else g=c&~e,0!==g?d=hc(g):0!==f&&(d=hc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&& +(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a); +return b}function ic(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-ta(b);a[b]=c}function vj(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=$g(c)}}function bh(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?bh(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function ch(){for(var a=window,b=Qc();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break; +b=Qc(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function Uj(a){var b=ch(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&bh(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length); +else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=ah(c,f);var g=ah(c,d);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset), +a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});"function"===typeof c.focus&&c.focus();for(c=0;cMb||(a.current=Se[Mb],Se[Mb]=null,Mb--)} +function y(a,b,c){Mb++;Se[Mb]=a.current;a.current=b}function Nb(a,b){var c=a.type.contextTypes;if(!c)return cb;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function ea(a){a=a.childContextTypes;return null!==a&&void 0!==a}function th(a,b,c){if(J.current!==cb)throw Error(n(168)); +y(J,b);y(S,c)}function uh(a,b,c){var d=a.stateNode;b=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(n(108,hj(a)||"Unknown",e));return E({},c,d)}function ld(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||cb;qb=J.current;y(J,a);y(S,S.current);return!0}function vh(a,b,c){var d=a.stateNode;if(!d)throw Error(n(169));c?(a=uh(a,b,qb),d.__reactInternalMemoizedMergedChildContext=a,w(S),w(J),y(J,a)):w(S); +y(S,c)}function wh(a){null===La?La=[a]:La.push(a)}function kk(a){md=!0;wh(a)}function db(){if(!Te&&null!==La){Te=!0;var a=0,b=z;try{var c=La;for(z=1;a>=g;e-=g;Ma=1<<32-ta(b)+e|c<q?(v=l,l=null):v=l.sibling;var A=r(e,l,h[q],k);if(null===A){null===l&&(l=v);break}a&&l&&null===A.alternate&&b(e,l);g=f(A,g,q);null===m?n=A:m.sibling=A;m=A;l=v}if(q===h.length)return c(e,l),D&&rb(e,q),n;if(null===l){for(;qv?(A=q,q=null):A=q.sibling;var x=r(e,q,t.value,k);if(null===x){null===q&&(q=A);break}a&&q&&null===x.alternate&&b(e,q);g=f(x,g,v);null===l?m=x:l.sibling=x;l=x;q=A}if(t.done)return c(e,q),D&&rb(e,v),m; +if(null===q){for(;!t.done;v++,t=h.next())t=u(e,t.value,k),null!==t&&(g=f(t,g,v),null===l?m=t:l.sibling=t,l=t);D&&rb(e,v);return m}for(q=d(e,q);!t.done;v++,t=h.next())t=p(q,e,v,t.value,k),null!==t&&(a&&null!==t.alternate&&q.delete(null===t.key?v:t.key),g=f(t,g,v),null===l?m=t:l.sibling=t,l=t);a&&q.forEach(function(a){return b(e,a)});D&&rb(e,v);return m}function w(a,d,f,h){"object"===typeof f&&null!==f&&f.type===Bb&&null===f.key&&(f=f.props.children);if("object"===typeof f&&null!==f){switch(f.$$typeof){case xd:a:{for(var k= +f.key,m=d;null!==m;){if(m.key===k){k=f.type;if(k===Bb){if(7===m.tag){c(a,m.sibling);d=e(m,f.props.children);d.return=a;a=d;break a}}else if(m.elementType===k||"object"===typeof k&&null!==k&&k.$$typeof===Ta&&Kh(k)===m.type){c(a,m.sibling);d=e(m,f.props);d.ref=vc(a,m,f);d.return=a;a=d;break a}c(a,m);break}else b(a,m);m=m.sibling}f.type===Bb?(d=ub(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=wd(f.type,f.key,f.props,null,a.mode,h),h.ref=vc(a,d,f),h.return=a,a=h)}return g(a);case Cb:a:{for(m=f.key;null!== +d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=hf(f,a.mode,h);d.return=a;a=d}return g(a);case Ta:return m=f._init,w(a,d,m(f._payload),h)}if(cc(f))return x(a,d,f,h);if(ac(f))return F(a,d,f,h);vd(a,f)}return"string"===typeof f&&""!==f||"number"===typeof f?(f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d): +(c(a,d),d=gf(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return w}function vb(a){if(a===wc)throw Error(n(174));return a}function jf(a,b){y(xc,b);y(yc,a);y(Ea,wc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:oe(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=oe(b,a)}w(Ea);y(Ea,b)}function Tb(a){w(Ea);w(yc);w(xc)}function Mh(a){vb(xc.current);var b=vb(Ea.current);var c=oe(b,a.type);b!==c&&(y(yc,a),y(Ea,c))}function kf(a){yc.current===a&& +(w(Ea),w(yc))}function yd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function lf(){for(var a=0;ac?c:4;a(!0);var d=uf.transition;uf.transition={};try{a(!1),b()}finally{z=c,uf.transition=d}}function di(){return sa().memoizedState}function rk(a,b, +c){var d=hb(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(ei(a))fi(b,c);else if(c=Ch(a,b,c,d),null!==c){var e=Z();ya(c,a,d,e);gi(c,b,d)}}function pk(a,b,c){var d=hb(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(ei(a))fi(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(ua(h,g)){var k=b.interleaved;null===k?(e.next=e,cf(b)): +(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(m){}finally{}c=Ch(a,b,e,d);null!==c&&(e=Z(),ya(c,a,d,e),gi(c,b,d))}}function ei(a){var b=a.alternate;return a===C||null!==b&&b===C}function fi(a,b){zc=Bd=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;xe(a,c)}}function Ub(a,b){try{var c="",d=b;do c+=gj(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+ +"\n"+f.stack}return{value:a,source:b,stack:e,digest:null}}function vf(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function wf(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function hi(a,b,c){c=Pa(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Ed||(Ed=!0,xf=d);wf(a,b)};return c}function ii(a,b,c){c=Pa(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){return d(e)}; +c.callback=function(){wf(a,b)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){wf(a,b);"function"!==typeof d&&(null===ib?ib=new Set([this]):ib.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function ji(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new sk;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=tk.bind(null,a,b,c),b.then(a,a))}function ki(a){do{var b; +if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}function li(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=Pa(-1,1),b.tag=2,eb(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}function aa(a,b,c,d){b.child=null===a?mi(b,null,c,d):Vb(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;Sb(b,e);d=of(a,b,c,d,f, +e);c=pf();if(null!==a&&!ha)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Qa(a,b,e);D&&c&&Ue(b);b.flags|=1;aa(a,b,d,e);return b.child}function oi(a,b,c,d,e){if(null===a){var f=c.type;if("function"===typeof f&&!yf(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,pi(a,b,f,d,e);a=wd(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:qc;if(c(g,d)&&a.ref=== +b.ref)return Qa(a,b,e)}b.flags|=1;a=gb(f,d);a.ref=b.ref;a.return=b;return b.child=a}function pi(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(qc(f,d)&&a.ref===b.ref)if(ha=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(ha=!0);else return b.lanes=a.lanes,Qa(a,b,e)}return zf(a,b,c,d,e)}function qi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},y(Ga,ba),ba|=c; +else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,y(Ga,ba),ba|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;y(Ga,ba);ba|=d}else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,y(Ga,ba),ba|=d;aa(a,b,e,c);return b.child}function ri(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function zf(a, +b,c,d,e){var f=ea(c)?qb:J.current;f=Nb(b,f);Sb(b,e);c=of(a,b,c,d,f,e);d=pf();if(null!==a&&!ha)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Qa(a,b,e);D&&d&&Ue(b);b.flags|=1;aa(a,b,c,e);return b.child}function si(a,b,c,d,e){if(ea(c)){var f=!0;ld(b)}else f=!1;Sb(b,e);if(null===b.stateNode)Fd(a,b),Hh(b,c,d),ff(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,m=c.contextType;"object"===typeof m&&null!==m?m=qa(m):(m=ea(c)?qb:J.current,m=Nb(b, +m));var l=c.getDerivedStateFromProps,n="function"===typeof l||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==m)&&Ih(b,g,d,m);fb=!1;var r=b.memoizedState;g.state=r;td(b,d,g,e);k=b.memoizedState;h!==d||r!==k||S.current||fb?("function"===typeof l&&(ef(b,c,l,d),k=b.memoizedState),(h=fb||Gh(b,c,h,d,r,k,m))?(n||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount|| +("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4194308)):("function"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=m,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;Dh(a,b);h=b.memoizedProps;m=b.type===b.elementType?h:xa(b.type,h);g.props= +m;n=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=qa(k):(k=ea(c)?qb:J.current,k=Nb(b,k));var p=c.getDerivedStateFromProps;(l="function"===typeof p||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==n||r!==k)&&Ih(b,g,d,k);fb=!1;r=b.memoizedState;g.state=r;td(b,d,g,e);var x=b.memoizedState;h!==n||r!==x||S.current||fb?("function"===typeof p&&(ef(b,c,p,d),x=b.memoizedState), +(m=fb||Gh(b,c,m,d,r,x,k)||!1)?(l||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,x,k),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|= +4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=m):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return Af(a,b,c,d,f,e)}function Af(a,b,c,d,e,f){ri(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&vh(b,c,!1), +Qa(a,b,f);d=b.stateNode;uk.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Vb(b,a.child,null,f),b.child=Vb(b,null,h,f)):aa(a,b,h,f);b.memoizedState=d.state;e&&vh(b,c,!0);return b.child}function ti(a){var b=a.stateNode;b.pendingContext?th(a,b.pendingContext,b.pendingContext!==b.context):b.context&&th(a,b.context,!1);jf(a,b.containerInfo)}function ui(a,b,c,d,e){Qb();Ye(e);b.flags|=256;aa(a,b,c,d);return b.child}function Bf(a){return{baseLanes:a, +cachePool:null,transitions:null}}function vi(a,b,c){var d=b.pendingProps,e=G.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;y(G,e&1);if(null===a){Xe(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:"$!"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:"hidden",children:g},0===(d&1)&&null!== +f?(f.childLanes=0,f.pendingProps=g):f=Gd(g,d,0,null),a=ub(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=Bf(c),b.memoizedState=Cf,a):Df(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return vk(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:"hidden",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=gb(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=gb(h,f):(f= +ub(f,g,c,null),f.flags|=2);f.return=b;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?Bf(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=Cf;return d}f=a.child;a=f.sibling;d=gb(f,{mode:"visible",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d} +function Df(a,b,c){b=Gd({mode:"visible",children:b},a.mode,0,null);b.return=a;return a.child=b}function Hd(a,b,c,d){null!==d&&Ye(d);Vb(b,a.child,null,c);a=Df(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}function vk(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=vf(Error(n(422))),Hd(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=Gd({mode:"visible",children:d.children},e,0,null);f=ub(f,e,g,null);f.flags|=2;d.return= +b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Vb(b,a.child,null,g);b.child.memoizedState=Bf(g);b.memoizedState=Cf;return f}if(0===(b.mode&1))return Hd(a,b,g,null);if("$!"===e.data){d=e.nextSibling&&e.nextSibling.dataset;if(d)var h=d.dgst;d=h;f=Error(n(419));d=vf(f,d,void 0);return Hd(a,b,g,d)}h=0!==(g&a.childLanes);if(ha||h){d=O;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e= +32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;0!==e&&e!==f.retryLane&&(f.retryLane=e,Oa(a,e),ya(d,a,e,-1))}Ef();d=vf(Error(n(421)));return Hd(a,b,g,d)}if("$?"===e.data)return b.flags|=128,b.child=a.child,b=wk.bind(null,a),e._reactRetry=b,null;a=f.treeContext;fa=Ka(e.nextSibling);la=b;D=!0;wa=null;null!==a&&(na[oa++]=Ma,na[oa++]=Na,na[oa++]=sb,Ma=a.id,Na=a.overflow,sb=b);b=Df(b,d.children);b.flags|=4096;return b}function wi(a,b,c){a.lanes|=b;var d=a.alternate; +null!==d&&(d.lanes|=b);bf(a.return,b,c)}function Ff(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}function xi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;aa(a,b,d.children,c);d=G.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&& +wi(a,c,b);else if(19===a.tag)wi(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}y(G,d);if(0===(b.mode&1))b.memoizedState=null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===yd(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ff(b,!1,e,c,f);break;case "backwards":c= +null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===yd(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ff(b,!0,c,null,f);break;case "together":Ff(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}function Fd(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Qa(a,b,c){null!==a&&(b.dependencies=a.dependencies);ra|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(n(153));if(null!== +b.child){a=b.child;c=gb(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=gb(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}function xk(a,b,c){switch(b.tag){case 3:ti(b);Qb();break;case 5:Mh(b);break;case 1:ea(b.type)&&ld(b);break;case 4:jf(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;y(rd,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return y(G,G.current& +1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vi(a,b,c);y(G,G.current&1);a=Qa(a,b,c);return null!==a?a.sibling:null}y(G,G.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&128)){if(d)return xi(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);y(G,G.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,qi(a,b,c)}return Qa(a,b,c)}function Dc(a,b){if(!D)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!== +b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}function W(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes, +d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}function yk(a,b,c){var d=b.pendingProps;Ve(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return W(b),null;case 1:return ea(b.type)&&(w(S),w(J)),W(b),null;case 3:d=b.stateNode;Tb();w(S);w(J);lf();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)pd(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags& +256)||(b.flags|=1024,null!==wa&&(Gf(wa),wa=null));yi(a,b);W(b);return null;case 5:kf(b);var e=vb(xc.current);c=b.type;if(null!==a&&null!=b.stateNode)zk(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(n(166));W(b);return null}a=vb(Ea.current);if(pd(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Da]=b;d[uc]=f;a=0!==(b.mode&1);switch(c){case "dialog":B("cancel",d);B("close",d);break;case "iframe":case "object":case "embed":B("load",d);break; +case "video":case "audio":for(e=0;e\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Da]=b;a[uc]=d;Ak(a,b,!1,!1);b.stateNode=a;a:{g=qe(c,d);switch(c){case "dialog":B("cancel",a);B("close",a);e=d;break;case "iframe":case "object":case "embed":B("load",a);e=d;break; +case "video":case "audio":for(e=0;eHf&&(b.flags|=128,d=!0,Dc(f,!1),b.lanes=4194304)}else{if(!d)if(a=yd(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dc(f,!0),null===f.tail&&"hidden"===f.tailMode&&!g.alternate&&!D)return W(b),null}else 2*P()-f.renderingStartTime>Hf&&1073741824!==c&&(b.flags|= +128,d=!0,Dc(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=P(),b.sibling=null,c=G.current,y(G,d?c&1|2:c&1),b;W(b);return null;case 22:case 23:return ba=Ga.current,w(Ga),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(ba&1073741824)&&(W(b),b.subtreeFlags&6&&(b.flags|=8192)):W(b),null;case 24:return null; +case 25:return null}throw Error(n(156,b.tag));}function Ck(a,b,c){Ve(b);switch(b.tag){case 1:return ea(b.type)&&(w(S),w(J)),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Tb(),w(S),w(J),lf(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return kf(b),null;case 13:w(G);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(n(340));Qb()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return w(G),null;case 4:return Tb(), +null;case 10:return af(b.type._context),null;case 22:case 23:return ba=Ga.current,w(Ga),null;case 24:return null;default:return null}}function Wb(a,b){var c=a.ref;if(null!==c)if("function"===typeof c)try{c(null)}catch(d){H(a,b,d)}else c.current=null}function If(a,b,c){try{c()}catch(d){H(a,b,d)}}function Dk(a,b){Jf=Zc;a=ch();if(Ie(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection(); +if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(M){c=null;break a}var g=0,h=-1,k=-1,m=0,t=0,u=a,r=null;b:for(;;){for(var p;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=u.nodeValue.length);if(null===(p=u.firstChild))break;r=u;u=p}for(;;){if(u===a)break b;r===c&&++m===e&&(h=g);r===f&&++t===d&&(k=g);if(null!==(p=u.nextSibling))break;u=r;r=u.parentNode}u=p}c=-1===h||-1===k?null: +{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Kf={focusedElem:a,selectionRange:c};Zc=!1;for(l=b;null!==l;)if(b=l,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,l=a;else for(;null!==l;){b=l;try{var x=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==x){var w=x.memoizedProps,z=x.memoizedState,A=b.stateNode,v=A.getSnapshotBeforeUpdate(b.elementType===b.type?w:xa(b.type,w),z);A.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var q= +b.stateNode.containerInfo;1===q.nodeType?q.textContent="":9===q.nodeType&&q.documentElement&&q.removeChild(q.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163));}}catch(M){H(b,b.return,M)}a=b.sibling;if(null!==a){a.return=b.return;l=a;break}l=b.return}x=Ai;Ai=!1;return x}function Gc(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&If(b,c,f)}e=e.next}while(e!==d)}} +function Id(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Lf(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}"function"===typeof b?b(a):b.current=a}}function Bi(a){var b=a.alternate;null!==b&&(a.alternate=null,Bi(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Da],delete b[uc],delete b[Me],delete b[Ek], +delete b[Fk]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Ci(a){return 5===a.tag||3===a.tag||4===a.tag}function Di(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Ci(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags& +2))return a.stateNode}}function Mf(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=kd));else if(4!==d&&(a=a.child,null!==a))for(Mf(a,b,c),a=a.sibling;null!==a;)Mf(a,b,c),a=a.sibling}function Nf(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a); +else if(4!==d&&(a=a.child,null!==a))for(Nf(a,b,c),a=a.sibling;null!==a;)Nf(a,b,c),a=a.sibling}function jb(a,b,c){for(c=c.child;null!==c;)Ei(a,b,c),c=c.sibling}function Ei(a,b,c){if(Ca&&"function"===typeof Ca.onCommitFiberUnmount)try{Ca.onCommitFiberUnmount(Uc,c)}catch(h){}switch(c.tag){case 5:X||Wb(c,b);case 6:var d=T,e=za;T=null;jb(a,b,c);T=d;za=e;null!==T&&(za?(a=T,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):T.removeChild(c.stateNode));break;case 18:null!==T&&(za? +(a=T,c=c.stateNode,8===a.nodeType?Re(a.parentNode,c):1===a.nodeType&&Re(a,c),nc(a)):Re(T,c.stateNode));break;case 4:d=T;e=za;T=c.stateNode.containerInfo;za=!0;jb(a,b,c);T=d;za=e;break;case 0:case 11:case 14:case 15:if(!X&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?If(c,b,g):0!==(f&4)&&If(c,b,g));e=e.next}while(e!==d)}jb(a,b,c);break;case 1:if(!X&&(Wb(c,b),d=c.stateNode,"function"===typeof d.componentWillUnmount))try{d.props= +c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){H(c,b,h)}jb(a,b,c);break;case 21:jb(a,b,c);break;case 22:c.mode&1?(X=(d=X)||null!==c.memoizedState,jb(a,b,c),X=d):jb(a,b,c);break;default:jb(a,b,c)}}function Fi(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Gk);b.forEach(function(b){var d=Hk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function Aa(a,b,c){c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=P()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*Nk(d/1960))-d;if(10a?16:a;if(null===lb)var d=!1;else{a=lb;lb=null;Qd=0;if(0!==(p&6))throw Error(n(331));var e=p;p|=4;for(l=a.current;null!==l;){var f=l,g=f.child;if(0!==(l.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kP()-Of?xb(a,0):Sf|=c);ia(a,b)}function Ui(a,b){0===b&&(0===(a.mode&1)?b=1:(b=Rd,Rd<<=1,0===(Rd&130023424)&&(Rd=4194304)));var c=Z();a=Oa(a,b);null!==a&&(ic(a,b,c),ia(a,c))}function wk(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ui(a,c)}function Hk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane); +break;case 19:d=a.stateNode;break;default:throw Error(n(314));}null!==d&&d.delete(b);Ui(a,c)}function Ni(a,b){return xh(a,b)}function Uk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function yf(a){a= +a.prototype;return!(!a||!a.isReactComponent)}function Vk(a){if("function"===typeof a)return yf(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===ie)return 11;if(a===je)return 14}return 2}function gb(a,b){var c=a.alternate;null===c?(c=pa(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child= +a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function wd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)yf(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case Bb:return ub(c.children,e,f,b);case fe:g=8;e|=8;break;case ee:return a=pa(12,c,b,e|2),a.elementType=ee,a.lanes=f,a;case ge:return a= +pa(13,c,b,e),a.elementType=ge,a.lanes=f,a;case he:return a=pa(19,c,b,e),a.elementType=he,a.lanes=f,a;case Vi:return Gd(c,e,f,b);default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case hg:g=10;break a;case gg:g=9;break a;case ie:g=11;break a;case je:g=14;break a;case Ta:g=16;d=null;break a}throw Error(n(130,null==a?a:typeof a,""));}b=pa(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function ub(a,b,c,d){a=pa(7,a,d,b);a.lanes=c;return a}function Gd(a,b,c,d){a=pa(22,a,d,b);a.elementType= +Vi;a.lanes=c;a.stateNode={isHidden:!1};return a}function gf(a,b,c){a=pa(6,a,null,b);a.lanes=c;return a}function hf(a,b,c){b=pa(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority= +0;this.eventTimes=we(0);this.expirationTimes=we(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=we(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=null}function Vf(a,b,c,d,e,f,g,h,k,m){a=new Wk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=pa(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null, +pendingSuspenseBoundaries:null};df(f);return a}function Xk(a,b,c){var d=3
    主动消息管理端
    -
    正在初始化...
    +
    正在初始化 Pages 控制台...
    @@ -227,57 +24,6 @@
    - - - - - - - - - - - - - - - - - - + - diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css new file mode 100644 index 0000000..fd41686 --- /dev/null +++ b/pages/proactive-chat/page-app.css @@ -0,0 +1,459 @@ +.pc-app { + min-height: 100vh; + display: grid; + grid-template-columns: 280px minmax(0, 1fr); + color: var(--md-sys-color-on-surface); +} + +.pc-sidebar { + position: sticky; + top: 0; + height: 100vh; + padding: 22px 18px; + border-right: 1px solid var(--glass-border); + background: linear-gradient(180deg, var(--glass-bg), rgba(255, 255, 255, 0.42)); + backdrop-filter: blur(18px); + overflow-y: auto; +} + +body.dark-theme .pc-sidebar { + background: linear-gradient(180deg, var(--glass-bg), rgba(28, 27, 31, 0.48)); +} + +.pc-brand { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; +} + +.pc-logo { + width: 54px; + height: 54px; + border-radius: 16px; + object-fit: cover; + box-shadow: 0 10px 28px rgba(103, 80, 164, 0.22); +} + +.pc-brand-title { + font-size: 20px; + font-weight: 800; + line-height: 1.1; +} + +.pc-brand-subtitle { + margin-top: 4px; + color: var(--md-sys-color-on-surface-variant); + font-size: 12px; + font-weight: 700; + letter-spacing: .08em; + text-transform: uppercase; +} + +.pc-nav { + display: grid; + gap: 8px; +} + +.pc-nav-button, +.pc-icon-button, +.pc-button { + appearance: none; + border: 0; + font: inherit; + cursor: pointer; +} + +.pc-nav-button { + display: flex; + align-items: center; + gap: 12px; + width: 100%; + min-height: 46px; + padding: 0 14px; + border-radius: 16px; + background: transparent; + color: var(--md-sys-color-on-surface-variant); + font-weight: 700; + text-align: left; +} + +.pc-nav-button:hover, +.pc-nav-button.is-active { + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); +} + +.pc-nav-icon { + width: 24px; + text-align: center; + font-size: 18px; +} + +.pc-sidebar-actions { + display: grid; + gap: 10px; + margin: 24px 0; +} + +.pc-github-card { + display: block; + padding: 14px; + border: 1px solid var(--glass-border); + border-radius: 20px; + background: var(--glass-bg); + color: inherit; + text-decoration: none; + box-shadow: var(--glass-shadow); +} + +.pc-github-author { + color: var(--md-sys-color-on-surface-variant); + font-size: 12px; + font-weight: 700; +} + +.pc-github-title { + margin-top: 4px; + font-size: 13px; + font-weight: 800; +} + +.pc-main { + min-width: 0; + display: flex; + flex-direction: column; + height: 100vh; +} + +.pc-topbar { + min-height: var(--top-bar-height); + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 18px 28px; + border-bottom: 1px solid var(--glass-border); + background: rgba(254, 247, 255, 0.72); + backdrop-filter: blur(18px); +} + +body.dark-theme .pc-topbar { + background: rgba(20, 18, 24, 0.72); +} + +.pc-title { + font-size: 26px; + font-weight: 850; +} + +.pc-subtitle { + margin-top: 4px; + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; +} + +.pc-topbar-actions { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; + justify-content: flex-end; +} + +.pc-chip { + display: inline-flex; + align-items: center; + gap: 8px; + min-height: 34px; + padding: 0 12px; + border: 1px solid var(--glass-border); + border-radius: 999px; + background: var(--glass-bg); + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; + font-weight: 700; +} + +.pc-chip.is-ok { + color: #0F7A43; + background: rgba(15, 122, 67, 0.1); +} + +.pc-chip.is-warn { + color: #9A3412; + background: rgba(154, 52, 18, 0.1); +} + +.pc-icon-button { + width: 38px; + height: 38px; + border-radius: 14px; + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); + font-weight: 900; +} + +.pc-content { + flex: 1; + min-height: 0; + overflow: auto; + padding: 24px 28px 34px; +} + +.pc-section { + display: none; +} + +.pc-section.is-active { + display: block; +} + +.pc-grid { + display: grid; + gap: 16px; +} + +.pc-grid.metrics { + grid-template-columns: repeat(4, minmax(160px, 1fr)); + margin-bottom: 18px; +} + +.pc-grid.two { + grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); +} + +.pc-card { + border: 1px solid var(--glass-border); + border-radius: 20px; + background: var(--glass-bg); + box-shadow: var(--glass-shadow); + padding: 18px; +} + +.pc-card-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 14px; +} + +.pc-card-title { + font-size: 16px; + font-weight: 850; +} + +.pc-card-subtitle { + margin-top: 4px; + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; + line-height: 1.55; +} + +.pc-metric { + min-height: 118px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.pc-metric-label { + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; + font-weight: 700; +} + +.pc-metric-value { + margin-top: 16px; + font-size: 30px; + font-weight: 900; +} + +.pc-list { + display: grid; + gap: 12px; +} + +.pc-row { + display: grid; + gap: 8px; + padding: 14px; + border: 1px solid var(--glass-border); + border-radius: 16px; + background: rgba(255, 255, 255, 0.42); +} + +body.dark-theme .pc-row { + background: rgba(255, 255, 255, 0.04); +} + +.pc-row-title { + font-weight: 850; + word-break: break-word; +} + +.pc-row-meta { + color: var(--md-sys-color-on-surface-variant); + font-size: 13px; + line-height: 1.6; + word-break: break-word; +} + +.pc-row-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; +} + +.pc-button { + min-height: 38px; + padding: 0 14px; + border-radius: 14px; + background: var(--md-sys-color-primary); + color: var(--md-sys-color-on-primary); + font-weight: 800; +} + +.pc-button.secondary { + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); +} + +.pc-button.ghost { + border: 1px solid var(--glass-border); + background: transparent; + color: var(--md-sys-color-on-surface); +} + +.pc-empty { + padding: 30px 16px; + color: var(--md-sys-color-on-surface-variant); + text-align: center; + border: 1px dashed var(--glass-border); + border-radius: 18px; +} + +.pc-error { + margin-bottom: 16px; + padding: 12px 14px; + border-radius: 14px; + background: rgba(179, 38, 30, 0.1); + color: #B3261E; + font-weight: 700; +} + +.pc-textarea, +.pc-input, +.pc-select { + width: 100%; + border: 1px solid var(--glass-border); + border-radius: 14px; + background: var(--md-sys-color-surface); + color: var(--md-sys-color-on-surface); + font: inherit; +} + +.pc-textarea { + min-height: 280px; + padding: 14px; + resize: vertical; + font-family: Consolas, "SFMono-Regular", monospace; + font-size: 13px; + line-height: 1.55; +} + +.pc-input, +.pc-select { + height: 42px; + padding: 0 12px; +} + +.pc-form-grid { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 10px; + align-items: end; +} + +.pc-doc-layout { + display: grid; + grid-template-columns: 280px minmax(0, 1fr); + gap: 16px; +} + +.pc-doc-body { + max-height: calc(100vh - 190px); + overflow: auto; + line-height: 1.75; +} + +.pc-doc-body h1, +.pc-doc-body h2, +.pc-doc-body h3 { + margin: 1em 0 .5em; +} + +.pc-doc-body p, +.pc-doc-body ul, +.pc-doc-body ol, +.pc-doc-body pre { + margin: 0 0 1em; +} + +.pc-doc-body pre { + overflow: auto; + padding: 12px; + border-radius: 12px; + background: rgba(103, 80, 164, 0.1); +} + +.pc-footer-note { + margin-top: 12px; + color: var(--md-sys-color-on-surface-variant); + font-size: 12px; +} + +@media (max-width: 980px) { + .pc-app { + grid-template-columns: 1fr; + } + + .pc-sidebar { + position: relative; + height: auto; + border-right: 0; + border-bottom: 1px solid var(--glass-border); + } + + .pc-nav { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .pc-main { + height: auto; + min-height: 100vh; + } + + .pc-grid.metrics, + .pc-grid.two, + .pc-doc-layout { + grid-template-columns: 1fr; + } +} + +@media (max-width: 620px) { + .pc-topbar { + align-items: flex-start; + flex-direction: column; + padding: 16px; + } + + .pc-content { + padding: 16px; + } + + .pc-nav { + grid-template-columns: 1fr; + } +} diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js new file mode 100644 index 0000000..5024caf --- /dev/null +++ b/pages/proactive-chat/page-app.js @@ -0,0 +1,723 @@ +(function () { + "use strict"; + + var PLUGIN_REPO = "https://github.com/DBJD-CR/astrbot_plugin_proactive_chat"; + var state = { + view: "status", + bridge: null, + bridgeReady: false, + error: "", + status: {}, + jobs: [], + sessions: [], + notifications: [], + notificationsMeta: {}, + config: null, + configSchema: null, + selectedSession: "", + sessionDetail: null, + markdownFiles: [], + selectedMarkdownPath: "", + markdownDocument: null, + theme: safeStorageGet("theme") || "light", + busy: {} + }; + + var viewMeta = { + status: { label: "运行状态", icon: "📊", subtitle: "服务状态、调度概览与会话计时器" }, + tasks: { label: "任务管理", icon: "📋", subtitle: "查看、立即触发、重新调度或取消会话任务" }, + notifications: { label: "通知中心", icon: "🔔", subtitle: "同步插件通知、标记已读与快速刷新" }, + docs: { label: "文档浏览", icon: "📚", subtitle: "浏览 README、CHANGELOG 与 docs 目录文档" }, + config: { label: "配置管理", icon: "⚙️", subtitle: "编辑全局配置与会话差异配置" } + }; + + function safeStorageGet(key) { + try { + return localStorage.getItem(key); + } catch (e) { + return ""; + } + } + + function safeStorageSet(key, value) { + try { + localStorage.setItem(key, value); + } catch (e) {} + } + + function $(id) { + return document.getElementById(id); + } + + function escapeHtml(value) { + return String(value == null ? "" : value) + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + } + + function text(value, fallback) { + if (value === null || value === undefined || value === "") return fallback || "--"; + return String(value); + } + + function asArray(value) { + return Array.isArray(value) ? value : []; + } + + function setBusy(key, value) { + state.busy[key] = Boolean(value); + render(); + } + + function setError(message) { + state.error = message || ""; + render(); + } + + function formatDuration(totalSeconds) { + var seconds = Math.max(0, Math.floor(Number(totalSeconds) || 0)); + var days = Math.floor(seconds / 86400); + var hours = Math.floor((seconds % 86400) / 3600); + var minutes = Math.floor((seconds % 3600) / 60); + var secs = seconds % 60; + var parts = []; + if (days) parts.push(days + "天"); + if (hours) parts.push(hours + "小时"); + if (minutes) parts.push(minutes + "分"); + if (secs || !parts.length) parts.push(secs + "秒"); + return parts.slice(0, 3).join(""); + } + + function formatDate(value) { + if (!value) return "--"; + var date = new Date(value); + if (Number.isNaN(date.getTime())) return text(value); + return date.toLocaleString("zh-CN", { + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit" + }); + } + + function normalizePayload(payload) { + if (!payload || typeof payload !== "object") return payload || {}; + if (payload.error) { + throw new Error(typeof payload.error === "string" ? payload.error : payload.error.message || "请求失败"); + } + if (payload.ok === false || payload.success === false) { + throw new Error(payload.message || "请求失败"); + } + if (typeof payload.code === "number" && payload.code !== 0) { + throw new Error(payload.message || payload.msg || "请求失败 (" + payload.code + ")"); + } + if ((payload.ok === true || payload.success === true || payload.code === 0) && Object.prototype.hasOwnProperty.call(payload, "data")) { + return payload.data || {}; + } + return payload; + } + + function waitBridge(timeoutMs) { + return new Promise(function (resolve) { + var started = Date.now(); + if (window.AstrBotPluginPage) { + resolve(window.AstrBotPluginPage); + return; + } + var timer = setInterval(function () { + if (window.AstrBotPluginPage) { + clearInterval(timer); + resolve(window.AstrBotPluginPage); + return; + } + if (Date.now() - started > timeoutMs) { + clearInterval(timer); + resolve(null); + } + }, 60); + }); + } + + function apiGet(endpoint) { + if (!state.bridge || typeof state.bridge.apiGet !== "function") { + return Promise.reject(new Error("AstrBot Pages bridge 未注入,请从 AstrBot WebUI 的插件页面重新打开。")); + } + return Promise.resolve(state.bridge.apiGet(endpoint)).then(normalizePayload); + } + + function apiPost(endpoint, body) { + if (!state.bridge || typeof state.bridge.apiPost !== "function") { + return Promise.reject(new Error("AstrBot Pages bridge 未注入,请从 AstrBot WebUI 的插件页面重新打开。")); + } + return Promise.resolve(state.bridge.apiPost(endpoint, body || {})).then(normalizePayload); + } + + function route(endpoint) { + return endpoint; + } + + function hideBoot() { + var boot = $("loading-skeleton"); + if (!boot) return; + boot.classList.add("is-exiting"); + setTimeout(function () { + if (boot.parentNode) boot.parentNode.removeChild(boot); + }, 220); + } + + function initTheme() { + document.body.classList.toggle("dark-theme", state.theme === "dark"); + document.documentElement.classList.toggle("theme-dark", state.theme === "dark"); + } + + function toggleTheme() { + state.theme = state.theme === "dark" ? "light" : "dark"; + safeStorageSet("theme", state.theme); + initTheme(); + renderHeader(); + } + + function navButton(key) { + var meta = viewMeta[key]; + return [ + '' + ].join(""); + } + + function shellHtml() { + return [ + '
    ' + ].join(""); + } + + function renderShell() { + $("root").innerHTML = shellHtml(); + bindShellEvents(); + render(); + } + + function bindShellEvents() { + document.addEventListener("click", function (event) { + var viewBtn = event.target.closest("[data-view]"); + if (viewBtn) { + switchView(viewBtn.getAttribute("data-view")); + return; + } + var action = event.target.closest("[data-action]"); + if (!action) return; + handleAction(action.getAttribute("data-action"), action); + }); + document.addEventListener("change", function (event) { + if (event.target && event.target.id === "session-select") { + state.selectedSession = event.target.value; + loadSessionDetail(state.selectedSession); + } + if (event.target && event.target.id === "doc-select") { + state.selectedMarkdownPath = event.target.value; + loadMarkdownDocument(state.selectedMarkdownPath); + } + }); + } + + function handleAction(action, node) { + if (action === "refresh") loadCurrentView(); + if (action === "theme") toggleTheme(); + if (action === "open-dir") openDirectory(node.getAttribute("data-path")); + if (action === "trigger-job") triggerJob(node.getAttribute("data-id")); + if (action === "reschedule-job") rescheduleJob(node.getAttribute("data-id")); + if (action === "cancel-job") cancelJob(node.getAttribute("data-id")); + if (action === "read-notification") readNotification(node.getAttribute("data-id")); + if (action === "read-all-notifications") readAllNotifications(); + if (action === "refresh-notifications") refreshNotifications(); + if (action === "save-config") saveConfig(); + if (action === "load-config") loadConfig(); + if (action === "save-session") saveSessionConfig(); + if (action === "reset-session") resetSessionConfig(); + } + + function switchView(view) { + if (!viewMeta[view]) return; + state.view = view; + render(); + loadCurrentView(); + } + + function loadCurrentView() { + if (state.view === "status") loadDashboard(); + if (state.view === "tasks") loadJobs(); + if (state.view === "notifications") loadNotifications(); + if (state.view === "docs") loadMarkdownFiles(); + if (state.view === "config") loadConfig(); + } + + function renderHeader() { + var meta = viewMeta[state.view]; + var status = state.status || {}; + var connected = state.bridgeReady; + $("pc-topbar").innerHTML = [ + '
    ', escapeHtml(meta.label), '
    ', + '
    ', escapeHtml(meta.subtitle), '
    ', + '
    ', + '🕒 ', escapeHtml(formatDate(new Date())), '', + '', connected ? "已连接 Pages bridge" : "未连接 Pages bridge", '', + 'WebSocket ', Number(status.ws_connections || 0), ' 个', + '', + '', + '
    ' + ].join(""); + } + + function renderError() { + $("pc-error").innerHTML = state.error ? '
    ' + escapeHtml(state.error) + '
    ' : ""; + } + + function render() { + if (!$("pc-topbar")) return; + initTheme(); + renderHeader(); + renderError(); + var keys = ["status", "tasks", "notifications", "docs", "config"]; + for (var i = 0; i < keys.length; i += 1) { + var section = $("view-" + keys[i]); + if (section) section.classList.toggle("is-active", state.view === keys[i]); + } + var navs = document.querySelectorAll("[data-view]"); + for (var n = 0; n < navs.length; n += 1) { + navs[n].classList.toggle("is-active", navs[n].getAttribute("data-view") === state.view); + } + renderStatus(); + renderTasks(); + renderNotifications(); + renderDocs(); + renderConfig(); + } + + function metric(label, value, hint) { + return [ + '
    ', + '
    ', escapeHtml(label), '
    ', + '
    ', escapeHtml(value), '
    ', + '
    ', escapeHtml(hint || ""), '
    ', + '
    ' + ].join(""); + } + + function renderStatus() { + var status = state.status || {}; + var autoCards = asArray(status.auto_trigger_cards); + var groupCards = asArray(status.group_timer_cards); + $("view-status").innerHTML = [ + '
    ', + metric("插件状态", status.running ? "运行中" : "已停止", "版本 " + text(status.version, "...")), + metric("运行时长", formatDuration(status.uptime_seconds), "启动后持续运行时间"), + metric("调度任务", text(status.jobs_count, "0"), status.scheduler_running ? "调度器运行中" : "调度器未启动"), + metric("会话数据", text(status.sessions_count, "0"), "自动触发 " + autoCards.length + " / 群沉默 " + groupCards.length), + '
    ', + '
    ', + '
    会话计时器可视化
    实时展示自动触发检测与群沉默检测的倒计时、进度和会话状态。
    ', + renderTimerList(autoCards.concat(groupCards)), '
    ', + '
    调度概览
    ', + '
    ', + infoRow("调度器", status.scheduler_running ? "运行中" : "未启动"), + infoRow("当前任务总数", text(status.jobs_count, "0") + " 个"), + infoRow("自动触发计时器", autoCards.length + " 个"), + infoRow("群沉默计时器", groupCards.length + " 个"), + infoRow("数据时间", formatDate(status.timestamp)), + '
    ' + ].join(""); + } + + function infoRow(label, value) { + return '
    ' + escapeHtml(label) + '
    ' + escapeHtml(value) + '
    '; + } + + function renderTimerList(items) { + if (!items.length) return '
    🫧 暂无运行中的会话计时器
    '; + var html = ['
    ']; + for (var i = 0; i < items.length; i += 1) { + var item = items[i] || {}; + html.push('
    '); + html.push('
    ', escapeHtml(item.session_display_name || item.session_name || item.session || item.id || "会话"), '
    '); + html.push('
    ', escapeHtml(item.timer_kind_label || item.timer_kind || "计时器"), ' · 剩余 ', escapeHtml(formatDuration(item.remaining_seconds)), ' · 进度 ', escapeHtml(text(item.progress_percent, "0")), '%
    '); + html.push('
    '); + } + html.push('
    '); + return html.join(""); + } + + function renderTasks() { + var jobs = state.jobs || []; + if (!jobs.length) { + $("view-tasks").innerHTML = '
    暂无调度任务
    '; + return; + } + var html = ['
    任务列表
    当前共 ', jobs.length, ' 个任务
    ']; + for (var i = 0; i < jobs.length; i += 1) { + var job = jobs[i] || {}; + var id = job.id || job.session || ""; + html.push('
    '); + html.push('
    ', escapeHtml(job.session_display_name || job.session_name || id || "任务"), '
    '); + html.push('
    UMO: ', escapeHtml(id), '
    '); + html.push('
    下次运行: ', escapeHtml(formatDate(job.next_run_time)), ' · 来源: ', escapeHtml(job.source_mode || "--"), ' · 未回复: ', escapeHtml(text(job.unanswered_count, "0")), '/', escapeHtml(text(job.max_unanswered_times, "0")), '
    '); + html.push('
    '); + html.push(''); + html.push(''); + html.push(''); + html.push('
    '); + } + html.push('
    '); + $("view-tasks").innerHTML = html.join(""); + } + + function renderNotifications() { + var items = state.notifications || []; + var meta = state.notificationsMeta || {}; + var html = ['
    通知中心
    未读 ', Number(meta.unread_count || 0), ' / 总数 ', Number(meta.total_count || items.length || 0), '
    ']; + if (!items.length) { + html.push('
    暂无通知
    '); + $("view-notifications").innerHTML = html.join(""); + return; + } + html.push('
    '); + for (var i = 0; i < items.length; i += 1) { + var item = items[i] || {}; + var id = item.id == null ? "" : String(item.id); + html.push('
    '); + html.push('
    ', escapeHtml(item.title || item.type || "通知"), '
    '); + html.push('
    ', escapeHtml(item.level || item.severity || "info"), ' · ', escapeHtml(formatDate(item.created_at || item.timestamp || item.time)), '
    '); + html.push('
    ', escapeHtml(item.content || item.message || item.text || ""), '
    '); + if (id) html.push('
    '); + html.push('
    '); + } + html.push('
    '); + $("view-notifications").innerHTML = html.join(""); + } + + function renderDocs() { + var files = state.markdownFiles || []; + var doc = state.markdownDocument || {}; + var options = []; + for (var i = 0; i < files.length; i += 1) { + var file = files[i] || {}; + var selected = file.path === state.selectedMarkdownPath ? " selected" : ""; + options.push(''); + } + $("view-docs").innerHTML = [ + '
    ', + '
    文档目录
    选择要浏览的 Markdown 文档
    ', + '', + '
    ', + '
    ', + doc.content ? renderMarkdown(doc.content) : '
    请选择或刷新文档
    ', + '
    ', + '
    ' + ].join(""); + } + + function renderMarkdown(markdown) { + var escaped = escapeHtml(markdown || ""); + escaped = escaped.replace(/^### (.*)$/gm, "

    $1

    "); + escaped = escaped.replace(/^## (.*)$/gm, "

    $1

    "); + escaped = escaped.replace(/^# (.*)$/gm, "

    $1

    "); + escaped = escaped.replace(/\*\*([^*]+)\*\*/g, "$1"); + escaped = escaped.replace(/`([^`]+)`/g, "$1"); + var lines = escaped.split(/\n{2,}/); + var out = []; + for (var i = 0; i < lines.length; i += 1) { + var block = lines[i]; + if (/^\s*" + block.replace(/\n/g, "
    ") + "

    "); + } + } + return out.join(""); + } + + function renderConfig() { + var configText = state.config ? escapeHtml(JSON.stringify(state.config, null, 2)) : ""; + var schema = state.configSchema || {}; + var schemaKeys = Object.keys(schema); + var sessionOptions = ['']; + for (var i = 0; i < state.sessions.length; i += 1) { + var s = state.sessions[i] || {}; + var value = s.session || s; + sessionOptions.push(''); + } + var sessionText = state.sessionDetail ? escapeHtml(JSON.stringify(state.sessionDetail.override || {}, null, 2)) : ""; + $("view-config").innerHTML = [ + '
    ', + '
    全局配置
    使用 JSON 编辑完整配置,保存前请确认格式正确。
    ', + '', + '
    ', + '
    ', + '
    配置结构
    Schema 分组概览
    ', + schemaKeys.length ? '
    ' + schemaKeys.map(function (key) { return infoRow(key, schema[key] && schema[key].description || schema[key] && schema[key].title || "配置分组"); }).join("") + '
    ' : '
    暂无 Schema
    ', + '
    ', + '
    ', + '
    会话差异配置
    选择会话后编辑 override JSON,留空对象表示不覆写。
    ', + '
    ', + '', + '
    ', + state.sessionDetail ? '' : '', + '
    ' + ].join(""); + } + + function openDirectory(path) { + apiPost(route("open-directory"), { path: path }).then(function (res) { + window.alert(res.message || "已请求打开目录"); + }).catch(function (err) { + window.alert(err.message || "打开目录失败"); + }); + } + + function loadDashboard() { + if (!state.bridgeReady) { + setError("AstrBot Pages bridge 未注入,当前只能显示静态页面。"); + return; + } + apiGet(route("dashboard")).then(function (data) { + state.status = data.status || state.status || {}; + state.jobs = asArray(data.jobs); + state.sessions = asArray(data.sessions); + state.notificationsMeta = data.notifications_meta || state.notificationsMeta || {}; + setError(""); + render(); + }).catch(function () { + Promise.all([apiGet(route("status")), apiGet(route("jobs")), apiGet(route("session-config/sessions"))]).then(function (parts) { + state.status = parts[0] || {}; + state.jobs = asArray(parts[1].jobs || parts[1]); + state.sessions = asArray(parts[2].sessions || parts[2]); + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载状态失败"); + }); + }); + } + + function loadJobs() { + apiGet(route("jobs")).then(function (data) { + state.jobs = asArray(data.jobs || data); + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载任务失败"); + }); + } + + function triggerJob(id) { + if (!id) return; + apiPost(route("jobs/" + encodeURIComponent(id) + "/trigger"), {}).then(loadJobs).catch(function (err) { setError(err.message); }); + } + + function rescheduleJob(id) { + if (!id) return; + apiPost(route("jobs/" + encodeURIComponent(id) + "/reschedule"), {}).then(loadJobs).catch(function (err) { setError(err.message); }); + } + + function cancelJob(id) { + if (!id) return; + apiPost(route("jobs-cancel/" + encodeURIComponent(id)), {}).then(loadJobs).catch(function (err) { setError(err.message); }); + } + + function loadNotifications() { + apiGet(route("notifications")).then(function (data) { + state.notifications = asArray(data.items || data.notifications || data); + state.notificationsMeta = data.meta || state.notificationsMeta || {}; + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载通知失败"); + }); + } + + function readNotification(id) { + apiPost(route("notifications/read"), { id: id }).then(loadNotifications).catch(function (err) { setError(err.message); }); + } + + function readAllNotifications() { + apiPost(route("notifications/read-all"), {}).then(loadNotifications).catch(function (err) { setError(err.message); }); + } + + function refreshNotifications() { + apiPost(route("notifications/refresh"), {}).then(loadNotifications).catch(function (err) { setError(err.message); }); + } + + function loadMarkdownFiles() { + apiGet(route("markdown-files")).then(function (data) { + state.markdownFiles = asArray(data.items || data.files || data); + if (!state.selectedMarkdownPath && state.markdownFiles.length) { + state.selectedMarkdownPath = state.markdownFiles[0].path; + loadMarkdownDocument(state.selectedMarkdownPath); + } + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载文档目录失败"); + }); + } + + function loadMarkdownDocument(path) { + if (!path) { + state.markdownDocument = null; + render(); + return; + } + apiGet(route("markdown-files/" + encodeURIComponent(path))).then(function (data) { + state.markdownDocument = data || {}; + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载文档失败"); + }); + } + + function loadConfig() { + Promise.all([ + apiGet(route("config")), + apiGet(route("config-schema")), + apiGet(route("session-config/sessions")) + ]).then(function (parts) { + state.config = parts[0] || {}; + state.configSchema = parts[1] && (parts[1].schema || parts[1]) || {}; + state.sessions = asArray(parts[2].sessions || parts[2]); + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载配置失败"); + }); + } + + function saveConfig() { + var editor = $("config-editor"); + if (!editor) return; + try { + var payload = JSON.parse(editor.value || "{}"); + apiPost(route("config"), payload).then(function (data) { + state.config = data.config || data || payload; + setError(""); + render(); + window.alert("全局配置已保存"); + }).catch(function (err) { setError(err.message); }); + } catch (e) { + setError("JSON 格式错误: " + e.message); + } + } + + function loadSessionDetail(session) { + if (!session) { + state.sessionDetail = null; + render(); + return; + } + apiGet(route("session-config/" + encodeURIComponent(session))).then(function (data) { + state.sessionDetail = data || {}; + setError(""); + render(); + }).catch(function (err) { + setError(err.message || "加载会话配置失败"); + }); + } + + function saveSessionConfig() { + if (!state.selectedSession) { + setError("请先选择会话"); + return; + } + var editor = $("session-editor"); + try { + var payload = JSON.parse(editor && editor.value || "{}"); + apiPost(route("session-config/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { + state.sessionDetail = data || {}; + setError(""); + render(); + window.alert("会话配置已保存"); + }).catch(function (err) { setError(err.message); }); + } catch (e) { + setError("JSON 格式错误: " + e.message); + } + } + + function resetSessionConfig() { + if (!state.selectedSession) { + setError("请先选择会话"); + return; + } + apiPost(route("session-config-delete/" + encodeURIComponent(state.selectedSession)), {}).then(function (data) { + state.sessionDetail = data || {}; + loadConfig(); + }).catch(function (err) { setError(err.message); }); + } + + function initClock() { + setInterval(function () { + var node = $("pc-clock"); + if (node) node.textContent = formatDate(new Date()); + }, 1000); + } + + function init() { + initTheme(); + renderShell(); + hideBoot(); + initClock(); + waitBridge(5000).then(function (bridge) { + state.bridge = bridge; + state.bridgeReady = !!bridge; + if (!bridge) { + setError("AstrBot Pages bridge 未注入,当前页面无法读取插件数据。"); + return; + } + Promise.resolve(typeof bridge.ready === "function" ? bridge.ready() : null).then(function () { + state.bridgeReady = true; + loadDashboard(); + }).catch(function (err) { + state.bridgeReady = false; + setError(err.message || "AstrBot Pages bridge 初始化失败"); + }); + }); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", init); + } else { + init(); + } +})(); From 8e876ad2d931e301ad6a6e0d2e5661f433720563 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 19:27:44 +0800 Subject: [PATCH 20/43] fix: restore native pages config editor --- core/web_admin_server.py | 16 +- pages/proactive-chat/page-app.css | 283 +++++++++++++++++++ pages/proactive-chat/page-app.js | 455 ++++++++++++++++++++++++++++-- 3 files changed, 724 insertions(+), 30 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 266ad1c..805aad7 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -506,8 +506,13 @@ async def get_config_schema(): @self.app.post("/api/config") async def update_config(payload: dict[str, Any]): - # 仅允许更新这三个一级配置块,避免前端误写其它未知字段。 - allowed_keys = {"friend_settings", "group_settings", "web_admin"} + # 仅允许更新已知一级配置块,避免前端误写其它未知字段。 + allowed_keys = { + "friend_settings", + "group_settings", + "web_admin", + "notification_settings", + } for key in allowed_keys: if key not in payload: continue @@ -997,7 +1002,12 @@ def _build_config_payload(self) -> dict[str, Any]: } async def _apply_config_payload(self, payload: dict[str, Any]) -> dict[str, Any]: - allowed_keys = {"friend_settings", "group_settings", "web_admin"} + allowed_keys = { + "friend_settings", + "group_settings", + "web_admin", + "notification_settings", + } for key in allowed_keys: if key not in payload: continue diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css index fd41686..0d088c2 100644 --- a/pages/proactive-chat/page-app.css +++ b/pages/proactive-chat/page-app.css @@ -376,6 +376,260 @@ body.dark-theme .pc-row { align-items: end; } +.pc-config-card { + padding: 0; + overflow: hidden; +} + +.pc-config-toolbar, +.pc-config-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 14px; + padding: 16px 18px; + border-bottom: 1px solid var(--glass-border); +} + +.pc-config-footer { + border-top: 1px solid var(--glass-border); + border-bottom: 0; + flex-wrap: wrap; +} + +.pc-config-actions { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; + justify-content: flex-end; +} + +.pc-segmented { + display: inline-flex; + padding: 4px; + border: 1px solid var(--glass-border); + border-radius: 16px; + background: var(--md-sys-color-surface); +} + +.pc-segmented button { + min-height: 34px; + padding: 0 14px; + border: 0; + border-radius: 12px; + background: transparent; + color: var(--md-sys-color-on-surface-variant); + cursor: pointer; + font: inherit; + font-weight: 800; +} + +.pc-segmented button.is-active { + background: var(--md-sys-color-primary-container); + color: var(--md-sys-color-on-primary-container); +} + +.session-picker { + min-width: 360px; +} + +.pc-config-form { + display: grid; + gap: 12px; + padding: 18px; +} + +.pc-config-group { + border: 1px solid var(--glass-border); + border-radius: 16px; + background: rgba(255, 255, 255, 0.34); + overflow: hidden; +} + +body.dark-theme .pc-config-group { + background: rgba(255, 255, 255, 0.04); +} + +.pc-config-group.depth-0 { + border-color: rgba(103, 80, 164, 0.28); +} + +.pc-config-summary { + width: 100%; + min-height: 54px; + display: grid; + grid-template-columns: auto minmax(0, 1fr) auto; + align-items: center; + gap: 12px; + padding: 12px 14px; + border: 0; + background: rgba(103, 80, 164, 0.07); + color: var(--md-sys-color-on-surface); + cursor: pointer; + font: inherit; + text-align: left; +} + +.pc-config-summary:hover { + background: rgba(103, 80, 164, 0.12); +} + +.pc-config-arrow { + width: 22px; + color: var(--md-sys-color-primary); + font-weight: 900; + text-align: center; +} + +.pc-config-title, +.pc-field-title { + display: block; + font-weight: 850; +} + +.pc-config-hint, +.pc-field-hint { + display: block; + margin-top: 4px; + color: var(--md-sys-color-on-surface-variant); + font-size: 12px; + line-height: 1.55; +} + +.pc-config-count { + padding: 3px 8px; + border: 1px solid var(--glass-border); + border-radius: 999px; + color: var(--md-sys-color-primary); + font-size: 12px; + font-weight: 800; + white-space: nowrap; +} + +.pc-config-children { + display: grid; + gap: 10px; + padding: 12px; +} + +.pc-config-field, +.pc-session-enable { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(220px, 360px); + gap: 16px; + align-items: center; + padding: 14px; + border: 1px solid var(--glass-border); + border-radius: 14px; + background: var(--md-sys-color-surface); +} + +.pc-config-field.depth-0 { + grid-template-columns: minmax(0, 1fr) minmax(260px, 460px); +} + +.pc-session-enable { + margin: 14px 18px 0; + border-color: rgba(103, 80, 164, 0.22); + background: rgba(103, 80, 164, 0.06); +} + +.pc-field-copy { + min-width: 0; +} + +.pc-field-control { + min-width: 0; +} + +.pc-number-field { + display: grid; + grid-template-columns: minmax(120px, 1fr) 110px; + gap: 10px; + align-items: center; +} + +.pc-number-field .pc-input:only-child { + grid-column: 1 / -1; +} + +.pc-range { + width: 100%; + accent-color: var(--md-sys-color-primary); +} + +.pc-textarea.compact { + min-height: 96px; +} + +.pc-textarea.prompt { + min-height: 180px; +} + +.pc-switch { + position: relative; + display: inline-flex; + width: 52px; + height: 30px; + flex-shrink: 0; +} + +.pc-switch input { + position: absolute; + opacity: 0; + pointer-events: none; +} + +.pc-switch span { + position: absolute; + inset: 0; + border-radius: 999px; + background: rgba(120, 113, 108, 0.28); + transition: background .18s ease; +} + +.pc-switch span::after { + content: ""; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + border-radius: 50%; + background: #fff; + box-shadow: 0 2px 6px rgba(0, 0, 0, .24); + transition: transform .18s ease; +} + +.pc-switch input:checked + span { + background: var(--md-sys-color-primary); +} + +.pc-switch input:checked + span::after { + transform: translateX(22px); +} + +.pc-warning, +.pc-feedback { + margin: 14px 18px 0; + padding: 11px 13px; + border-radius: 14px; + font-size: 13px; + font-weight: 700; +} + +.pc-warning, +.pc-feedback.warn { + background: rgba(154, 52, 18, 0.1); + color: #9A3412; +} + +.pc-feedback.success { + background: rgba(15, 122, 67, 0.1); + color: #0F7A43; +} + .pc-doc-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); @@ -440,6 +694,17 @@ body.dark-theme .pc-row { .pc-doc-layout { grid-template-columns: 1fr; } + + .pc-config-field, + .pc-config-field.depth-0, + .pc-session-enable { + grid-template-columns: 1fr; + } + + .session-picker { + min-width: 0; + width: 100%; + } } @media (max-width: 620px) { @@ -456,4 +721,22 @@ body.dark-theme .pc-row { .pc-nav { grid-template-columns: 1fr; } + + .pc-config-toolbar { + align-items: stretch; + flex-direction: column; + } + + .pc-config-actions, + .pc-segmented { + width: 100%; + } + + .pc-segmented button { + flex: 1; + } + + .pc-number-field { + grid-template-columns: 1fr; + } } diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 5024caf..6ca38d3 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -14,6 +14,11 @@ notificationsMeta: {}, config: null, configSchema: null, + configMode: "global", + expandedKeys: [], + saveFeedback: "", + saveFeedbackType: "", + sessionConfigState: { baseAvailable: true, message: "" }, selectedSession: "", sessionDetail: null, markdownFiles: [], @@ -67,6 +72,49 @@ return Array.isArray(value) ? value : []; } + function objectKeys(value) { + return value && typeof value === "object" ? Object.keys(value) : []; + } + + function closest(node, selector) { + while (node && node !== document) { + if (node.matches && node.matches(selector)) return node; + node = node.parentNode; + } + return null; + } + + function parsePath(path) { + return String(path || "").split(".").filter(Boolean); + } + + function getByPath(source, path) { + var parts = parsePath(path); + var current = source; + for (var i = 0; i < parts.length; i += 1) { + if (!current || typeof current !== "object") return undefined; + current = current[parts[i]]; + } + return current; + } + + function setByPath(source, path, value) { + var parts = parsePath(path); + var current = source; + for (var i = 0; i < parts.length - 1; i += 1) { + var key = parts[i]; + if (!current[key] || typeof current[key] !== "object" || Array.isArray(current[key])) { + current[key] = {}; + } + current = current[key]; + } + if (parts.length) current[parts[parts.length - 1]] = value; + } + + function stripLeadingEmoji(value) { + return String(value || "").replace(/^[\s\u2600-\u27BF\uD800-\uDBFF][\s\uFE0F\u200D\uDC00-\uDFFF]*/g, "").trim() || String(value || ""); + } + function setBusy(key, value) { state.busy[key] = Boolean(value); render(); @@ -94,7 +142,7 @@ function formatDate(value) { if (!value) return "--"; var date = new Date(value); - if (Number.isNaN(date.getTime())) return text(value); + if (isNaN(date.getTime())) return text(value); return date.toLocaleString("zh-CN", { year: "numeric", month: "2-digit", @@ -233,24 +281,33 @@ function bindShellEvents() { document.addEventListener("click", function (event) { - var viewBtn = event.target.closest("[data-view]"); + var viewBtn = closest(event.target, "[data-view]"); if (viewBtn) { switchView(viewBtn.getAttribute("data-view")); return; } - var action = event.target.closest("[data-action]"); + var action = closest(event.target, "[data-action]"); if (!action) return; handleAction(action.getAttribute("data-action"), action); }); document.addEventListener("change", function (event) { if (event.target && event.target.id === "session-select") { state.selectedSession = event.target.value; + state.expandedKeys = []; loadSessionDetail(state.selectedSession); } if (event.target && event.target.id === "doc-select") { state.selectedMarkdownPath = event.target.value; loadMarkdownDocument(state.selectedMarkdownPath); } + if (event.target && event.target.getAttribute("data-config-path")) { + updateConfigFromControl(event.target, true); + } + }); + document.addEventListener("input", function (event) { + if (event.target && event.target.getAttribute("data-config-path")) { + updateConfigFromControl(event.target, false); + } }); } @@ -268,6 +325,11 @@ if (action === "load-config") loadConfig(); if (action === "save-session") saveSessionConfig(); if (action === "reset-session") resetSessionConfig(); + if (action === "config-mode") switchConfigMode(node.getAttribute("data-mode")); + if (action === "toggle-config") toggleConfigGroup(node.getAttribute("data-path")); + if (action === "toggle-all-config") toggleAllConfigGroups(); + if (action === "reset-config-defaults") resetConfigDefaults(); + if (action === "discard-config") loadConfig(); } function switchView(view) { @@ -469,36 +531,344 @@ return out.join(""); } + function detectSessionType(sessionId) { + var raw = String(sessionId || ""); + if (raw.indexOf(":GroupMessage:") >= 0 || raw.indexOf(":GuildMessage:") >= 0) return "group"; + return "friend"; + } + + function getSessionSchemaEntries(schema, sessionType) { + var rootKey = sessionType === "group" ? "group_settings" : "friend_settings"; + var rootItems = schema && schema[rootKey] && schema[rootKey].items || {}; + var orderedKeys = [ + "auto_trigger_settings", + "group_idle_trigger_minutes", + "proactive_prompt", + "context_settings", + "schedule_settings", + "tts_settings", + "segmented_reply_settings" + ]; + var entries = []; + entries.push(["session_name", rootItems.session_name || { + type: "string", + default: "", + description: "会话备注名", + hint: "用于日志和管理端展示。为空时将回退显示 UMO。" + }]); + for (var i = 0; i < orderedKeys.length; i += 1) { + if (rootItems[orderedKeys[i]]) entries.push([orderedKeys[i], rootItems[orderedKeys[i]]]); + } + return entries; + } + + function getConfigEntries() { + var schema = state.configSchema || {}; + if (state.configMode === "session") { + return getSessionSchemaEntries(schema, detectSessionType(state.selectedSession)); + } + var keys = objectKeys(schema); + var entries = []; + for (var i = 0; i < keys.length; i += 1) entries.push([keys[i], schema[keys[i]]]); + return entries; + } + + function getAllExpandablePathsFromEntries(entries, prefix) { + var paths = []; + for (var i = 0; i < entries.length; i += 1) { + var key = entries[i][0]; + var schema = entries[i][1] || {}; + var path = prefix ? prefix + "." + key : key; + if (schema.type === "object" && schema.items) { + paths.push(path); + var childEntries = []; + var childKeys = objectKeys(schema.items); + for (var j = 0; j < childKeys.length; j += 1) childEntries.push([childKeys[j], schema.items[childKeys[j]]]); + paths = paths.concat(getAllExpandablePathsFromEntries(childEntries, path)); + } + } + return paths; + } + + function schemaTitle(key, schema) { + return stripLeadingEmoji(schema && schema.description || key); + } + + function schemaDefault(schema) { + if (!schema) return ""; + if (schema.default !== undefined) return schema.default; + if (schema.type === "bool" || schema.type === "boolean") return false; + if (schema.type === "int" || schema.type === "integer" || schema.type === "number" || schema.type === "float" || schema.type === "double") return 0; + if (schema.type === "list" || schema.type === "array") return []; + if (schema.type === "object") return {}; + return ""; + } + + function fieldValue(path, schema) { + var value = getByPath(state.config, path); + return value === undefined ? schemaDefault(schema) : value; + } + + function conditionMatches(path, schema) { + if (!schema || !schema.condition) return true; + var parts = parsePath(path); + parts.pop(); + var parent = getByPath(state.config, parts.join(".")) || {}; + var keys = objectKeys(schema.condition); + for (var i = 0; i < keys.length; i += 1) { + if (parent[keys[i]] !== schema.condition[keys[i]]) return false; + } + return true; + } + + function controlAttrs(path, type) { + return ' data-config-path="' + escapeHtml(path) + '" data-config-type="' + escapeHtml(type || "string") + '"'; + } + + function renderConfigField(key, schema, path, depth) { + schema = schema || {}; + if (schema.hidden || !conditionMatches(path, schema)) return ""; + var value = fieldValue(path, schema); + var title = schemaTitle(key, schema); + var hint = schema.hint ? '
    ' + escapeHtml(schema.hint) + '
    ' : ""; + var type = schema.type || "string"; + + if (type === "object" && schema.items) { + var expanded = state.expandedKeys.indexOf(path) >= 0; + var childKeys = objectKeys(schema.items); + var children = []; + if (expanded) { + for (var i = 0; i < childKeys.length; i += 1) { + var childKey = childKeys[i]; + children.push(renderConfigField(childKey, schema.items[childKey], path + "." + childKey, depth + 1)); + } + } + return [ + '
    ', + '', + expanded ? '
    ' + children.join("") + '
    ' : "", + '
    ' + ].join(""); + } + + var input = ""; + if (type === "bool" || type === "boolean") { + input = ''; + } else if (type === "int" || type === "integer" || type === "number" || type === "float" || type === "double") { + var slider = schema.slider || {}; + var min = slider.min !== undefined ? slider.min : schema.minimum; + var max = slider.max !== undefined ? slider.max : schema.maximum; + var step = slider.step !== undefined ? slider.step : (type === "int" || type === "integer" ? 1 : 0.1); + var rangeAttrs = ""; + if (min !== undefined) rangeAttrs += ' min="' + escapeHtml(min) + '"'; + if (max !== undefined) rangeAttrs += ' max="' + escapeHtml(max) + '"'; + if (step !== undefined) rangeAttrs += ' step="' + escapeHtml(step) + '"'; + input = [ + '
    ', + min !== undefined && max !== undefined ? '' : "", + '', + '
    ' + ].join(""); + } else if ((schema.options && Array.isArray(schema.options))) { + var labels = Array.isArray(schema.labels) ? schema.labels : []; + var options = []; + for (var o = 0; o < schema.options.length; o += 1) { + options.push(''); + } + input = ''; + } else if (type === "list" || type === "array") { + input = ''; + } else if (type === "text") { + input = ''; + } else { + input = ''; + } + + return [ + '
    ', + '
    ', escapeHtml(title), '
    ', hint, '
    ', + '
    ', input, '
    ', + '
    ' + ].join(""); + } + function renderConfig() { - var configText = state.config ? escapeHtml(JSON.stringify(state.config, null, 2)) : ""; var schema = state.configSchema || {}; - var schemaKeys = Object.keys(schema); + var entries = getConfigEntries(); var sessionOptions = ['']; for (var i = 0; i < state.sessions.length; i += 1) { var s = state.sessions[i] || {}; var value = s.session || s; - sessionOptions.push(''); + var display = s.session_display_name || s.session_name || value; + if (s.session_name && s.session_name !== display) display += " (" + value + ")"; + sessionOptions.push(''); + } + var fields = []; + for (var e = 0; e < entries.length; e += 1) { + fields.push(renderConfigField(entries[e][0], entries[e][1], entries[e][0], 0)); + } + var selectedMeta = null; + for (var m = 0; m < state.sessions.length; m += 1) { + if ((state.sessions[m].session || state.sessions[m]) === state.selectedSession) selectedMeta = state.sessions[m]; } - var sessionText = state.sessionDetail ? escapeHtml(JSON.stringify(state.sessionDetail.override || {}, null, 2)) : ""; + var canSaveSession = state.configMode !== "session" || state.sessionConfigState.baseAvailable; $("view-config").innerHTML = [ - '
    ', - '
    全局配置
    使用 JSON 编辑完整配置,保存前请确认格式正确。
    ', - '', - '
    ', + '
    ', + '
    ', + '
    ', + '', + '', '
    ', - '
    配置结构
    Schema 分组概览
    ', - schemaKeys.length ? '
    ' + schemaKeys.map(function (key) { return infoRow(key, schema[key] && schema[key].description || schema[key] && schema[key].title || "配置分组"); }).join("") + '
    ' : '
    暂无 Schema
    ', + '
    ', + state.configMode === "session" ? '' : "", + '', '
    ', '
    ', - '
    会话差异配置
    选择会话后编辑 override JSON,留空对象表示不覆写。
    ', - '
    ', - '', - '
    ', - state.sessionDetail ? '' : '', + state.configMode === "session" && selectedMeta ? '' : "", + state.configMode === "session" && state.config ? renderSessionEnableCard() : "", + state.sessionConfigState.message ? '
    ' + escapeHtml(state.sessionConfigState.message) + '
    ' : "", + state.saveFeedback ? '' : "", + objectKeys(schema).length ? '
    ' + fields.join("") + '
    ' : '
    暂无配置 Schema
    ', + '', + '
    ' + ].join(""); + } + + function renderSessionEnableCard() { + var enabled = Boolean(state.config && state.config.enable); + var label = detectSessionType(state.selectedSession) === "group" ? "群聊会话启用状态" : "私聊会话启用状态"; + return [ + '
    ', + '
    ', label, '
    ', + '
    这是当前会话的独立开关。关闭后,该会话会暂停主动消息,但不影响同类型全局配置与其他会话。
    ', + '
    ', enabled ? "已启用" : "已暂停", '', + '
    ', '
    ' ].join(""); } + function setFeedback(type, message) { + state.saveFeedbackType = type || ""; + state.saveFeedback = message || ""; + } + + function switchConfigMode(mode) { + if (mode !== "global" && mode !== "session") return; + state.configMode = mode; + state.expandedKeys = []; + setFeedback("", ""); + if (mode === "session" && !state.selectedSession && state.sessions.length) { + state.selectedSession = state.sessions[0].session || state.sessions[0]; + } + loadConfig(); + } + + function toggleConfigGroup(path) { + var index = state.expandedKeys.indexOf(path); + if (index >= 0) { + state.expandedKeys.splice(index, 1); + } else { + state.expandedKeys.push(path); + } + render(); + } + + function toggleAllConfigGroups() { + if (state.expandedKeys.length) { + state.expandedKeys = []; + } else { + state.expandedKeys = getAllExpandablePathsFromEntries(getConfigEntries(), ""); + } + render(); + } + + function generateDefaults(entries) { + var result = {}; + for (var i = 0; i < entries.length; i += 1) { + var key = entries[i][0]; + var schema = entries[i][1] || {}; + if (schema.type === "object" && schema.items) { + var childEntries = []; + var childKeys = objectKeys(schema.items); + for (var j = 0; j < childKeys.length; j += 1) childEntries.push([childKeys[j], schema.items[childKeys[j]]]); + result[key] = generateDefaults(childEntries); + } else { + result[key] = schemaDefault(schema); + } + } + return result; + } + + function resetConfigDefaults() { + if (!window.confirm("确定要恢复默认值吗?\n\n这会覆盖当前编辑区内容,需要点击保存后才会写入。")) return; + state.config = generateDefaults(getConfigEntries()); + if (state.configMode === "session" && state.config.enable === undefined) { + state.config.enable = true; + } + setFeedback("warn", "已恢复为默认值,点击保存后生效。"); + render(); + } + + function updateConfigFromControl(node, shouldRender) { + if (!state.config || typeof state.config !== "object") state.config = {}; + var path = node.getAttribute("data-config-path"); + var type = node.getAttribute("data-config-type") || "string"; + var value = node.value; + if (type === "bool") { + value = Boolean(node.checked); + shouldRender = true; + } else if (type === "list") { + value = String(value || "").split(/\r?\n/); + } else if (type === "int" || type === "integer") { + if (value === "" || value === "-") return; + value = parseInt(value, 10); + if (isNaN(value)) value = 0; + } else if (type === "number" || type === "float" || type === "double") { + if (value === "" || value === "-") return; + value = parseFloat(value); + if (isNaN(value)) value = 0; + } + setByPath(state.config, path, value); + setFeedback("", ""); + if (node.type === "range") { + var pair = document.querySelector('input[type="number"][data-config-path="' + path.replace(/"/g, '\\"') + '"]'); + if (pair) pair.value = node.value; + } + if (shouldRender || type === "select") render(); + } + + function cleanConfig(obj) { + if (Array.isArray(obj)) { + var list = []; + for (var i = 0; i < obj.length; i += 1) { + var item = typeof obj[i] === "string" ? obj[i].trim() : obj[i]; + if (item !== "") list.push(item); + } + return list; + } + if (obj && typeof obj === "object") { + var next = {}; + var keys = objectKeys(obj); + for (var k = 0; k < keys.length; k += 1) next[keys[k]] = cleanConfig(obj[keys[k]]); + return next; + } + return obj; + } + function openDirectory(path) { apiPost(route("open-directory"), { path: path }).then(function (res) { window.alert(res.message || "已请求打开目录"); @@ -615,9 +985,25 @@ apiGet(route("config-schema")), apiGet(route("session-config/sessions")) ]).then(function (parts) { - state.config = parts[0] || {}; state.configSchema = parts[1] && (parts[1].schema || parts[1]) || {}; state.sessions = asArray(parts[2].sessions || parts[2]); + if (state.configMode === "session") { + if (!state.selectedSession && state.sessions.length) { + state.selectedSession = state.sessions[0].session || state.sessions[0]; + } + if (state.selectedSession) { + loadSessionDetail(state.selectedSession); + return; + } + state.config = null; + state.sessionConfigState = { baseAvailable: false, message: "请先选择一个会话。" }; + } else { + state.config = parts[0] || {}; + state.sessionConfigState = { baseAvailable: true, message: "" }; + } + if (!state.expandedKeys.length) { + state.expandedKeys = getAllExpandablePathsFromEntries(getConfigEntries(), ""); + } setError(""); render(); }).catch(function (err) { @@ -626,15 +1012,19 @@ } function saveConfig() { - var editor = $("config-editor"); - if (!editor) return; try { - var payload = JSON.parse(editor.value || "{}"); + var cleaned = cleanConfig(state.config || {}); + var payload = { + friend_settings: cleaned.friend_settings, + group_settings: cleaned.group_settings, + web_admin: cleaned.web_admin, + notification_settings: cleaned.notification_settings + }; apiPost(route("config"), payload).then(function (data) { - state.config = data.config || data || payload; + state.config = cleaned; + setFeedback("success", "全局配置已保存。"); setError(""); render(); - window.alert("全局配置已保存"); }).catch(function (err) { setError(err.message); }); } catch (e) { setError("JSON 格式错误: " + e.message); @@ -649,6 +1039,14 @@ } apiGet(route("session-config/" + encodeURIComponent(session))).then(function (data) { state.sessionDetail = data || {}; + state.config = state.sessionDetail.effective || state.sessionDetail.override || {}; + state.sessionConfigState = state.sessionDetail.base ? { baseAvailable: true, message: "" } : { + baseAvailable: false, + message: "该会话尚未命中对应类型的全局 session_list,暂时无法保存会话差异配置。请先在对应全局配置中加入该会话。" + }; + if (!state.expandedKeys.length) { + state.expandedKeys = getAllExpandablePathsFromEntries(getConfigEntries(), ""); + } setError(""); render(); }).catch(function (err) { @@ -661,14 +1059,14 @@ setError("请先选择会话"); return; } - var editor = $("session-editor"); try { - var payload = JSON.parse(editor && editor.value || "{}"); + var payload = { mode: "effective", effective: cleanConfig(state.config || {}) }; apiPost(route("session-config/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { state.sessionDetail = data || {}; + state.config = state.sessionDetail.effective || payload.effective; + setFeedback("success", "会话差异配置已保存。"); setError(""); render(); - window.alert("会话配置已保存"); }).catch(function (err) { setError(err.message); }); } catch (e) { setError("JSON 格式错误: " + e.message); @@ -680,8 +1078,11 @@ setError("请先选择会话"); return; } + if (!window.confirm("确定要清空该会话的差异配置吗?\n\n清空后将完全继承全局默认配置。")) return; apiPost(route("session-config-delete/" + encodeURIComponent(state.selectedSession)), {}).then(function (data) { state.sessionDetail = data || {}; + state.config = state.sessionDetail.effective || {}; + setFeedback("success", "会话差异配置已清空。"); loadConfig(); }).catch(function (err) { setError(err.message); }); } From 135ceb06830806da8ea229f5701f053c927511ad Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 19:35:03 +0800 Subject: [PATCH 21/43] fix: show fallback countdown timers on pages --- core/web_admin_server.py | 25 +++++++ pages/proactive-chat/page-app.css | 51 ++++++++++++++ pages/proactive-chat/page-app.js | 113 ++++++++++++++++++++++++++++-- 3 files changed, 182 insertions(+), 7 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 805aad7..5e1d25f 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -1654,6 +1654,9 @@ def _list_known_session_summaries(self) -> list[dict[str, Any]]: result: list[dict[str, Any]] = [] for session in self._list_known_sessions(): effective = self.plugin._get_session_config(session) + session_data = self.plugin.session_data.get(session, {}) + schedule_settings = (effective or {}).get("schedule_settings", {}) + auto_trigger_settings = (effective or {}).get("auto_trigger_settings", {}) result.append( { "session": session, @@ -1670,6 +1673,28 @@ def _list_known_session_summaries(self) -> list[dict[str, Any]]: ), "manual_trigger_in_progress": session in self.plugin.manual_trigger_sessions, + "enabled": bool(effective and effective.get("enable", False)), + "session_category": self._detect_session_category(session), + "next_trigger_time": session_data.get("next_trigger_time"), + "last_scheduled_at": session_data.get("last_scheduled_at"), + "last_schedule_min_interval_seconds": session_data.get( + "last_schedule_min_interval_seconds" + ), + "last_schedule_max_interval_seconds": session_data.get( + "last_schedule_max_interval_seconds" + ), + "last_schedule_random_interval_seconds": session_data.get( + "last_schedule_random_interval_seconds" + ), + "schedule_min_interval_minutes": schedule_settings.get( + "min_interval_minutes" + ), + "schedule_max_interval_minutes": schedule_settings.get( + "max_interval_minutes" + ), + "auto_trigger_after_minutes": auto_trigger_settings.get( + "auto_trigger_after_minutes" + ), } ) return result diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css index 0d088c2..f756101 100644 --- a/pages/proactive-chat/page-app.css +++ b/pages/proactive-chat/page-app.css @@ -306,6 +306,57 @@ body.dark-theme .pc-row { flex-wrap: wrap; } +.pc-timer-list { + display: grid; + gap: 14px; +} + +.pc-timer-card { + display: grid; + gap: 12px; + padding: 16px; + border: 1px solid var(--glass-border); + border-radius: 16px; + background: rgba(255, 255, 255, 0.46); +} + +body.dark-theme .pc-timer-card { + background: rgba(255, 255, 255, 0.05); +} + +.pc-timer-top { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; +} + +.pc-timer-countdown { + font-size: 30px; + font-weight: 900; + color: var(--md-sys-color-primary); +} + +.pc-timer-countdown span { + color: var(--md-sys-color-on-surface-variant); + font-size: 14px; + font-weight: 800; +} + +.pc-progress { + height: 10px; + overflow: hidden; + border-radius: 999px; + background: rgba(103, 80, 164, 0.14); +} + +.pc-progress > div { + height: 100%; + border-radius: inherit; + background: linear-gradient(90deg, var(--md-sys-color-primary), #0F7A43); + transition: width .25s ease; +} + .pc-button { min-height: 38px; padding: 0 14px; diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 6ca38d3..d1b0179 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -153,6 +153,25 @@ }); } + function timestampMs(value) { + if (value === null || value === undefined || value === "") return null; + if (typeof value === "number") { + return value > 100000000000 ? value : value * 1000; + } + var raw = String(value); + if (/^\d+(\.\d+)?$/.test(raw)) { + var numeric = Number(raw); + return numeric > 100000000000 ? numeric : numeric * 1000; + } + var date = new Date(raw); + return isNaN(date.getTime()) ? null : date.getTime(); + } + + function clampPercent(value) { + var number = Math.round(Number(value) || 0); + return Math.max(0, Math.min(100, number)); + } + function normalizePayload(payload) { if (!payload || typeof payload !== "object") return payload || {}; if (payload.error) { @@ -401,8 +420,11 @@ function renderStatus() { var status = state.status || {}; - var autoCards = asArray(status.auto_trigger_cards); - var groupCards = asArray(status.group_timer_cards); + var timerCards = collectTimerCards(status); + var autoCards = timerCards.auto; + var groupCards = timerCards.group; + var fallbackCards = timerCards.fallback; + var allCards = groupCards.concat(autoCards).concat(fallbackCards); $("view-status").innerHTML = [ '
    ', metric("插件状态", status.running ? "运行中" : "已停止", "版本 " + text(status.version, "...")), @@ -412,13 +434,14 @@ '
    ', '
    ', '
    会话计时器可视化
    实时展示自动触发检测与群沉默检测的倒计时、进度和会话状态。
    ', - renderTimerList(autoCards.concat(groupCards)), '
    ', + renderTimerList(allCards), '
    ', '
    调度概览
    ', '
    ', infoRow("调度器", status.scheduler_running ? "运行中" : "未启动"), infoRow("当前任务总数", text(status.jobs_count, "0") + " 个"), infoRow("自动触发计时器", autoCards.length + " 个"), infoRow("群沉默计时器", groupCards.length + " 个"), + fallbackCards.length ? infoRow("会话触发倒计时", fallbackCards.length + " 个") : "", infoRow("数据时间", formatDate(status.timestamp)), '
    ' ].join(""); @@ -428,14 +451,89 @@ return '
    ' + escapeHtml(label) + '
    ' + escapeHtml(value) + '
    '; } + function collectTimerCards(status) { + var autoCards = asArray(status.auto_trigger_cards); + var groupCards = asArray(status.group_timer_cards); + var seen = {}; + var fallback = []; + var jobs = asArray(state.jobs); + var sessions = asArray(state.sessions); + + function mark(card) { + var key = String(card.timer_kind || "timer") + ":" + String(card.session_id || card.session || card.id || ""); + if (key !== "timer:") seen[key] = true; + } + for (var a = 0; a < autoCards.length; a += 1) mark(autoCards[a] || {}); + for (var g = 0; g < groupCards.length; g += 1) mark(groupCards[g] || {}); + + function pushFallback(source, kind) { + source = source || {}; + var id = source.session || source.id || source.session_id || ""; + var targetRaw = source.next_trigger_time || source.next_run_time; + var target = timestampMs(targetRaw); + if (!id || !target) return; + var key = kind + ":" + id; + if (seen[key]) return; + var remaining = Math.max(0, Math.ceil((target - Date.now()) / 1000)); + var windowSeconds = Number(source.last_schedule_random_interval_seconds || source.last_schedule_max_interval_seconds || 0); + if (!windowSeconds && source.schedule_max_interval_minutes) windowSeconds = Number(source.schedule_max_interval_minutes) * 60; + var started = timestampMs(source.last_scheduled_at); + var progress = 0; + if (started && target > started) { + progress = clampPercent(((Date.now() - started) / (target - started)) * 100); + } else if (windowSeconds > 0) { + progress = clampPercent(((windowSeconds - remaining) / windowSeconds) * 100); + } + fallback.push({ + session_id: id, + session: id, + session_name: source.session_name, + session_display_name: source.session_display_name, + session_category: source.session_category, + timer_kind: kind, + timer_kind_label: kind === "scheduled_job" ? "调度任务" : "下次触发", + status: remaining <= 0 ? "expired" : "running", + remaining_seconds: remaining, + target_time: target / 1000, + window_seconds: windowSeconds, + progress_percent: progress, + unanswered_count: source.unanswered_count, + max_unanswered_times: source.max_unanswered_times + }); + seen[key] = true; + } + + for (var j = 0; j < jobs.length; j += 1) pushFallback(jobs[j], "scheduled_job"); + for (var s = 0; s < sessions.length; s += 1) pushFallback(sessions[s], "session_next_trigger"); + fallback.sort(function (left, right) { + return Number(left.remaining_seconds || 0) - Number(right.remaining_seconds || 0); + }); + return { auto: autoCards, group: groupCards, fallback: fallback }; + } + + function timerStatusLabel(item) { + if (!item.target_time && item.remaining_seconds === null) return "待确认"; + if (Number(item.remaining_seconds || 0) <= 0) return "待刷新"; + if (Number(item.remaining_seconds || 0) <= 300) return "即将触发"; + return "计时中"; + } + function renderTimerList(items) { if (!items.length) return '
    🫧 暂无运行中的会话计时器
    '; - var html = ['
    ']; + var html = ['
    ']; for (var i = 0; i < items.length; i += 1) { var item = items[i] || {}; - html.push('
    '); - html.push('
    ', escapeHtml(item.session_display_name || item.session_name || item.session || item.id || "会话"), '
    '); - html.push('
    ', escapeHtml(item.timer_kind_label || item.timer_kind || "计时器"), ' · 剩余 ', escapeHtml(formatDuration(item.remaining_seconds)), ' · 进度 ', escapeHtml(text(item.progress_percent, "0")), '%
    '); + var progress = clampPercent(item.progress_percent); + var remaining = item.remaining_seconds === null || item.remaining_seconds === undefined ? "--" : formatDuration(item.remaining_seconds); + var targetText = item.target_time ? formatDate(Number(item.target_time) * 1000) : "--"; + html.push('
    '); + html.push('
    ', escapeHtml(item.session_display_name || item.session_name || item.session || item.session_id || item.id || "会话"), '
    '); + html.push('
    ', escapeHtml(item.session_id || item.session || item.id || ""), '
    '); + html.push('', escapeHtml(timerStatusLabel(item)), '
    '); + html.push('
    ', escapeHtml(remaining), ' 后触发
    '); + html.push('
    ', escapeHtml(item.timer_kind_label || item.title || item.timer_kind || "计时器"), ' · 目标时间 ', escapeHtml(targetText), ' · 未回复 ', escapeHtml(text(item.unanswered_count, "0")), '/', escapeHtml(text(item.max_unanswered_times, "0")), '
    '); + html.push('
    '); + html.push('
    进度 ', progress, '%', item.window_seconds ? ' · 窗口 ' + escapeHtml(formatDuration(item.window_seconds)) : '', '
    '); html.push('
    '); } html.push('
    '); @@ -1091,6 +1189,7 @@ setInterval(function () { var node = $("pc-clock"); if (node) node.textContent = formatDate(new Date()); + if (state.view === "status" && $("view-status")) renderStatus(); }, 1000); } From d4fbd766c7184b51fae5d9cfd1f941391298c07e Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 19:44:08 +0800 Subject: [PATCH 22/43] fix: persist pages config saves --- core/web_admin_server.py | 100 ++++++++++++++++++++----------- pages/proactive-chat/page-app.js | 13 +++- 2 files changed, 76 insertions(+), 37 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 5e1d25f..7e27c55 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -106,6 +106,7 @@ def __init__(self, plugin: Any): self.plugin = plugin # 直接缓存配置引用,便于路由中统一读写。 self.config = plugin.config + self._native_config = self.config if hasattr(self.config, "save_config") else None # FastAPI 应用实例,仅在依赖存在且初始化成功时设置。 self.app: FastAPI | None = None # Uvicorn Server 实例,用于控制启动与停止。 @@ -238,7 +239,29 @@ async def _read_astrbot_page_json(self) -> dict[str, Any]: payload = await quart_request.get_json(silent=True) except Exception: payload = None - return payload if isinstance(payload, dict) else {} + return self._unwrap_page_payload(payload) + + def _unwrap_page_payload(self, payload: Any) -> dict[str, Any]: + if isinstance(payload, str): + try: + payload = json.loads(payload) + except Exception: + return {} + if not isinstance(payload, dict): + return {} + + for key in ("body", "data", "payload"): + if set(payload.keys()) != {key}: + continue + nested = payload.get(key) + if isinstance(nested, str): + try: + nested = json.loads(nested) + except Exception: + return {} + if isinstance(nested, dict): + return nested + return payload def _get_astrbot_page_method(self) -> str: if quart_request is None: @@ -506,32 +529,10 @@ async def get_config_schema(): @self.app.post("/api/config") async def update_config(payload: dict[str, Any]): - # 仅允许更新已知一级配置块,避免前端误写其它未知字段。 - allowed_keys = { - "friend_settings", - "group_settings", - "web_admin", - "notification_settings", - } - for key in allowed_keys: - if key not in payload: - continue - if key == "web_admin": - # web_admin 采用增量合并,避免未提交字段被整个覆盖掉。 - old = dict(self.config.get("web_admin", {})) - old.update(payload.get("web_admin", {})) - # 密码字段允许显式更新,但不会通过 get_config 回传给前端。 - if "password" in payload.get("web_admin", {}): - old["password"] = payload["web_admin"]["password"] - self.config["web_admin"] = old - else: - # friend / group 配置块按前端提交的完整对象直接替换。 - self.config[key] = payload[key] - - self._save_plugin_config() - # 配置变更后立即广播,确保所有已打开页面实时刷新。 - await self._broadcast_update("config") - return {"ok": True} + result = await self._apply_config_payload(payload) + if not result.get("ok", False): + return JSONResponse(result, status_code=400) + return result @self.app.get("/api/session-config/sessions") async def list_session_configs(): @@ -960,13 +961,31 @@ async def websocket_endpoint(websocket: WebSocket): if websocket in self._ws_connections: self._ws_connections.remove(websocket) - def _save_plugin_config(self) -> None: + def _set_config_section(self, key: str, value: Any) -> None: + self.config[key] = value + + def _save_plugin_config(self) -> tuple[bool, str | None]: try: # AstrBot 配置对象通常提供 save_config 方法,这里做鸭子类型兼容。 - if hasattr(self.config, "save_config"): - self.config.save_config() + native = self._native_config or ( + self.config if hasattr(self.config, "save_config") else None + ) + if native is not None: + if native is not self.config: + native.clear() + native.update(self.config) + native.save_config() + + context = getattr(self.plugin, "context", None) + update_config = getattr(context, "update_config", None) + if callable(update_config): + updated = update_config(self.config) + if inspect.isawaitable(updated): + asyncio.create_task(updated) + return True, None except Exception as e: logger.warning(f"[主动消息] 保存配置失败喵: {e}") + return False, str(e) def _issue_token(self) -> str: # 生成适合放入 URL / Header 的安全随机 token。 @@ -1002,27 +1021,40 @@ def _build_config_payload(self) -> dict[str, Any]: } async def _apply_config_payload(self, payload: dict[str, Any]) -> dict[str, Any]: + payload = self._unwrap_page_payload(payload) allowed_keys = { "friend_settings", "group_settings", "web_admin", "notification_settings", } + changed = False for key in allowed_keys: if key not in payload: continue + if key != "web_admin" and not isinstance(payload[key], dict): + return {"ok": False, "error": f"{key} must be an object"} if key == "web_admin": + if not isinstance(payload.get("web_admin"), dict): + return {"ok": False, "error": "web_admin must be an object"} old = dict(self.config.get("web_admin", {})) old.update(payload.get("web_admin", {})) if "password" in payload.get("web_admin", {}): old["password"] = payload["web_admin"]["password"] - self.config["web_admin"] = old + self._set_config_section("web_admin", old) else: - self.config[key] = payload[key] + self._set_config_section(key, payload[key]) + changed = True + + if not changed: + return {"ok": False, "error": "No supported config keys received"} - self._save_plugin_config() + saved, error = self._save_plugin_config() + if not saved: + return {"ok": False, "error": error or "Config save failed"} + self._auth_enabled = bool(self.config.get("web_admin", {}).get("password", "")) await self._broadcast_update("config") - return {"ok": True} + return {"ok": True, "config": self._build_config_payload()} async def _load_config_schema_payload(self) -> dict[str, Any]: schema_path = Path(__file__).resolve().parent.parent / "_conf_schema.json" diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index d1b0179..339492c 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -1119,11 +1119,15 @@ notification_settings: cleaned.notification_settings }; apiPost(route("config"), payload).then(function (data) { - state.config = cleaned; + state.config = data && data.config ? data.config : cleaned; setFeedback("success", "全局配置已保存。"); setError(""); render(); - }).catch(function (err) { setError(err.message); }); + if (!data || !data.config) loadConfig(); + }).catch(function (err) { + setFeedback("error", err.message || "配置保存失败"); + setError(err.message); + }); } catch (e) { setError("JSON 格式错误: " + e.message); } @@ -1165,7 +1169,10 @@ setFeedback("success", "会话差异配置已保存。"); setError(""); render(); - }).catch(function (err) { setError(err.message); }); + }).catch(function (err) { + setFeedback("error", err.message || "会话配置保存失败"); + setError(err.message); + }); } catch (e) { setError("JSON 格式错误: " + e.message); } From 822cec49eb0ee9f7ee3f920a5d7aa7871ebaf3da Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 19:48:15 +0800 Subject: [PATCH 23/43] fix: sync config controls before save --- pages/proactive-chat/page-app.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 339492c..429f9e6 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -921,7 +921,7 @@ render(); } - function updateConfigFromControl(node, shouldRender) { + function updateConfigFromControl(node, shouldRender, suppressRender) { if (!state.config || typeof state.config !== "object") state.config = {}; var path = node.getAttribute("data-config-path"); var type = node.getAttribute("data-config-type") || "string"; @@ -946,7 +946,16 @@ var pair = document.querySelector('input[type="number"][data-config-path="' + path.replace(/"/g, '\\"') + '"]'); if (pair) pair.value = node.value; } - if (shouldRender || type === "select") render(); + if (!suppressRender && (shouldRender || type === "select")) render(); + } + + function syncConfigFromVisibleControls() { + if (!state.config || typeof state.config !== "object") state.config = {}; + var root = $("view-config") || document; + var nodes = root.querySelectorAll("[data-config-path]"); + for (var i = 0; i < nodes.length; i += 1) { + updateConfigFromControl(nodes[i], false, true); + } } function cleanConfig(obj) { @@ -1111,6 +1120,7 @@ function saveConfig() { try { + syncConfigFromVisibleControls(); var cleaned = cleanConfig(state.config || {}); var payload = { friend_settings: cleaned.friend_settings, @@ -1162,6 +1172,7 @@ return; } try { + syncConfigFromVisibleControls(); var payload = { mode: "effective", effective: cleanConfig(state.config || {}) }; apiPost(route("session-config/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { state.sessionDetail = data || {}; From d75caf09ffb3eee7dc06097c44160a8c6b19b3fb Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 19:53:20 +0800 Subject: [PATCH 24/43] fix: keep edited config after saving --- pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index d964b27..832380e 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 429f9e6..dc4e571 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -1129,11 +1129,10 @@ notification_settings: cleaned.notification_settings }; apiPost(route("config"), payload).then(function (data) { - state.config = data && data.config ? data.config : cleaned; + state.config = cleaned; setFeedback("success", "全局配置已保存。"); setError(""); render(); - if (!data || !data.config) loadConfig(); }).catch(function (err) { setFeedback("error", err.message || "配置保存失败"); setError(err.message); @@ -1176,7 +1175,8 @@ var payload = { mode: "effective", effective: cleanConfig(state.config || {}) }; apiPost(route("session-config/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { state.sessionDetail = data || {}; - state.config = state.sessionDetail.effective || payload.effective; + state.sessionDetail.effective = payload.effective; + state.config = payload.effective; setFeedback("success", "会话差异配置已保存。"); setError(""); render(); From 57ad0cf8cc4923ed723c5a818ec55753a947f497 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:00:50 +0800 Subject: [PATCH 25/43] fix: read pages config save body --- core/web_admin_server.py | 14 ++++++++++---- pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.js | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 7e27c55..579d94b 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -235,10 +235,16 @@ async def _read_astrbot_page_json(self) -> dict[str, Any]: if quart_request is None: return {} - try: - payload = await quart_request.get_json(silent=True) - except Exception: - payload = None + payload = None + for kwargs in ({"silent": True}, {"force": True}, {}): + try: + payload = await quart_request.get_json(**kwargs) + if payload is not None: + break + except TypeError: + continue + except Exception: + continue return self._unwrap_page_payload(payload) def _unwrap_page_payload(self, payload: Any) -> dict[str, Any]: diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 832380e..453dddc 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index dc4e571..9296930 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -184,7 +184,7 @@ throw new Error(payload.message || payload.msg || "请求失败 (" + payload.code + ")"); } if ((payload.ok === true || payload.success === true || payload.code === 0) && Object.prototype.hasOwnProperty.call(payload, "data")) { - return payload.data || {}; + return normalizePayload(payload.data || {}); } return payload; } From 2fa06b553b92f54e85e46bd207cf41858061a070 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:05:02 +0800 Subject: [PATCH 26/43] fix: use dedicated pages config save endpoints --- core/web_admin_server.py | 6 ++++++ pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.js | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 579d94b..66fe346 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -161,9 +161,15 @@ def register_astrbot_page_api(self) -> None: ("login", self._page_login, ["POST"]), ("status", self._page_status, ["GET"]), ("config", self._page_config, ["GET", "POST"]), + ("config-save", self._page_update_config, ["POST"]), ("config-schema", self._page_get_config_schema, ["GET"]), ("session-config/sessions", self._page_list_session_configs, ["GET"]), ("session-config/", self._page_session_config, ["GET", "POST"]), + ( + "session-config-save/", + self._page_update_session_config, + ["POST"], + ), ( "session-config-delete/", self._page_reset_session_config, diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 453dddc..d0e1739 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 9296930..1e7e7f4 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -1128,7 +1128,7 @@ web_admin: cleaned.web_admin, notification_settings: cleaned.notification_settings }; - apiPost(route("config"), payload).then(function (data) { + apiPost(route("config-save"), payload).then(function (data) { state.config = cleaned; setFeedback("success", "全局配置已保存。"); setError(""); @@ -1173,7 +1173,7 @@ try { syncConfigFromVisibleControls(); var payload = { mode: "effective", effective: cleanConfig(state.config || {}) }; - apiPost(route("session-config/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { + apiPost(route("session-config-save/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { state.sessionDetail = data || {}; state.sessionDetail.effective = payload.effective; state.config = payload.effective; From b8ab5f7267cda22be6994665ceeb8b4d2942f1da Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:11:47 +0800 Subject: [PATCH 27/43] fix: align pages config save with aiimg --- core/web_admin_server.py | 14 ++++++++++++++ pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.js | 19 +++++++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 66fe346..a84fd26 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -162,6 +162,8 @@ def register_astrbot_page_api(self) -> None: ("status", self._page_status, ["GET"]), ("config", self._page_config, ["GET", "POST"]), ("config-save", self._page_update_config, ["POST"]), + ("get_config", self._page_get_config, ["GET"]), + ("save_config", self._page_save_config, ["POST"]), ("config-schema", self._page_get_config_schema, ["GET"]), ("session-config/sessions", self._page_list_session_configs, ["GET"]), ("session-config/", self._page_session_config, ["GET", "POST"]), @@ -296,6 +298,18 @@ async def _page_update_config(self): payload = await self._read_astrbot_page_json() return await self._apply_config_payload(payload) + async def _page_save_config(self): + result = await self._page_update_config() + if not result.get("ok", False): + return { + "success": False, + "error": result.get("error") or result.get("message") or "保存失败", + } + return { + "success": True, + "config": result.get("config") or self._build_config_payload(), + } + async def _page_config(self): if self._get_astrbot_page_method() == "POST": return await self._page_update_config() diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index d0e1739..1006157 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 1e7e7f4..79dff26 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -816,6 +816,10 @@ if ((state.sessions[m].session || state.sessions[m]) === state.selectedSession) selectedMeta = state.sessions[m]; } var canSaveSession = state.configMode !== "session" || state.sessionConfigState.baseAvailable; + var saveBusy = state.configMode === "session" ? state.busy.sessionSave : state.busy.configSave; + var saveAction = state.configMode === "session" ? "save-session" : "save-config"; + var saveText = state.configMode === "session" ? "保存会话配置" : "保存配置"; + if (saveBusy) saveText = "保存中..."; $("view-config").innerHTML = [ '
    ', '
    ', @@ -840,7 +844,7 @@ '', '', state.configMode === "session" ? '' : "", - '', + '', '
    ', '
    ' ].join(""); @@ -1088,7 +1092,7 @@ function loadConfig() { Promise.all([ - apiGet(route("config")), + apiGet(route("get_config")), apiGet(route("config-schema")), apiGet(route("session-config/sessions")) ]).then(function (parts) { @@ -1122,20 +1126,24 @@ try { syncConfigFromVisibleControls(); var cleaned = cleanConfig(state.config || {}); + state.config = cleaned; var payload = { friend_settings: cleaned.friend_settings, group_settings: cleaned.group_settings, web_admin: cleaned.web_admin, notification_settings: cleaned.notification_settings }; - apiPost(route("config-save"), payload).then(function (data) { - state.config = cleaned; + setBusy("configSave", true); + apiPost(route("save_config"), payload).then(function (data) { + state.config = data && data.config ? data.config : cleaned; setFeedback("success", "全局配置已保存。"); setError(""); render(); }).catch(function (err) { setFeedback("error", err.message || "配置保存失败"); setError(err.message); + }).finally(function () { + setBusy("configSave", false); }); } catch (e) { setError("JSON 格式错误: " + e.message); @@ -1173,6 +1181,7 @@ try { syncConfigFromVisibleControls(); var payload = { mode: "effective", effective: cleanConfig(state.config || {}) }; + setBusy("sessionSave", true); apiPost(route("session-config-save/" + encodeURIComponent(state.selectedSession)), payload).then(function (data) { state.sessionDetail = data || {}; state.sessionDetail.effective = payload.effective; @@ -1183,6 +1192,8 @@ }).catch(function (err) { setFeedback("error", err.message || "会话配置保存失败"); setError(err.message); + }).finally(function () { + setBusy("sessionSave", false); }); } catch (e) { setError("JSON 格式错误: " + e.message); From bca0b34a51e5eaafac6357f78cf8551660827d55 Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:17:33 +0800 Subject: [PATCH 28/43] fix: confirm pages config save reaches backend --- core/web_admin_server.py | 10 +++++++++- pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.js | 14 ++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index a84fd26..0629d20 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -299,14 +299,22 @@ async def _page_update_config(self): return await self._apply_config_payload(payload) async def _page_save_config(self): - result = await self._page_update_config() + payload = await self._read_astrbot_page_json() + logger.info( + f"[主动消息] Pages save_config 收到保存请求喵,字段: {sorted(payload.keys())}" + ) + result = await self._apply_config_payload(payload) if not result.get("ok", False): return { "success": False, "error": result.get("error") or result.get("message") or "保存失败", + "received": True, + "received_keys": sorted(payload.keys()), } return { "success": True, + "received": True, + "received_keys": sorted(payload.keys()), "config": result.get("config") or self._build_config_payload(), } diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 1006157..aaf4217 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 79dff26..55a8922 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -224,6 +224,13 @@ return Promise.resolve(state.bridge.apiPost(endpoint, body || {})).then(normalizePayload); } + function directBridgePost(endpoint, body) { + if (!state.bridge || typeof state.bridge.apiPost !== "function") { + return Promise.reject(new Error("AstrBot Pages bridge 未注入,请从 AstrBot WebUI 的插件页面重新打开。")); + } + return Promise.resolve(state.bridge.apiPost(endpoint, body || {})).then(normalizePayload); + } + function route(endpoint) { return endpoint; } @@ -1134,9 +1141,12 @@ notification_settings: cleaned.notification_settings }; setBusy("configSave", true); - apiPost(route("save_config"), payload).then(function (data) { + directBridgePost("save_config", payload).then(function (data) { + if (!data || data.received !== true) { + throw new Error("保存请求没有命中新后端 save_config 接口,请重载插件后再试"); + } state.config = data && data.config ? data.config : cleaned; - setFeedback("success", "全局配置已保存。"); + setFeedback("success", "全局配置已保存,后端已确认。"); setError(""); render(); }).catch(function (err) { From 19a4566da9400a25ccd40bcbfe2ff942da0c51fb Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:30:54 +0800 Subject: [PATCH 29/43] fix: improve pages realtime and save verification --- pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.css | 53 ++++++++++ pages/proactive-chat/page-app.js | 160 ++++++++++++++++++++++++++---- 3 files changed, 192 insertions(+), 23 deletions(-) diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index aaf4217..1d0777b 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css index f756101..c9b718f 100644 --- a/pages/proactive-chat/page-app.css +++ b/pages/proactive-chat/page-app.css @@ -713,6 +713,59 @@ body.dark-theme .pc-config-group { background: rgba(103, 80, 164, 0.1); } +.pc-doc-body code { + padding: 2px 5px; + border-radius: 6px; + background: rgba(103, 80, 164, 0.12); + font-size: .92em; +} + +.pc-doc-body pre code { + display: block; + padding: 0; + background: transparent; + white-space: pre; +} + +.pc-doc-body blockquote { + margin: 0 0 1em; + padding: 10px 14px; + border-left: 4px solid var(--md-sys-color-primary); + border-radius: 8px; + background: rgba(103, 80, 164, 0.08); +} + +.pc-doc-body a { + color: var(--md-sys-color-primary); + font-weight: 700; +} + +.pc-table-wrap { + overflow: auto; + margin: 0 0 1em; + border: 1px solid var(--glass-border); + border-radius: 12px; +} + +.pc-doc-body table { + width: 100%; + border-collapse: collapse; + min-width: 520px; +} + +.pc-doc-body th, +.pc-doc-body td { + padding: 10px 12px; + border-bottom: 1px solid var(--glass-border); + text-align: left; + vertical-align: top; +} + +.pc-doc-body th { + background: rgba(103, 80, 164, 0.1); + font-weight: 850; +} + .pc-footer-note { margin-top: 12px; color: var(--md-sys-color-on-surface-variant); diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 55a8922..d634f59 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -25,7 +25,9 @@ selectedMarkdownPath: "", markdownDocument: null, theme: safeStorageGet("theme") || "light", - busy: {} + busy: {}, + realtimeTimer: null, + lastRealtimeAt: 0 }; var viewMeta = { @@ -172,6 +174,25 @@ return Math.max(0, Math.min(100, number)); } + function stableJson(value) { + if (Array.isArray(value)) { + return "[" + value.map(stableJson).join(",") + "]"; + } + if (value && typeof value === "object") { + var keys = Object.keys(value).sort(); + var parts = []; + for (var i = 0; i < keys.length; i += 1) { + parts.push(JSON.stringify(keys[i]) + ":" + stableJson(value[keys[i]])); + } + return "{" + parts.join(",") + "}"; + } + return JSON.stringify(value); + } + + function sameConfigValue(left, right) { + return stableJson(left || {}) === stableJson(right || {}); + } + function normalizePayload(payload) { if (!payload || typeof payload !== "object") return payload || {}; if (payload.error) { @@ -383,6 +404,7 @@ '
    ', '🕒 ', escapeHtml(formatDate(new Date())), '', '', connected ? "已连接 Pages bridge" : "未连接 Pages bridge", '', + '同步 ', state.lastRealtimeAt ? escapeHtml(formatDate(state.lastRealtimeAt)) : '--', '', 'WebSocket ', Number(status.ws_connections || 0), ' 个', '', '', @@ -617,21 +639,72 @@ } function renderMarkdown(markdown) { - var escaped = escapeHtml(markdown || ""); - escaped = escaped.replace(/^### (.*)$/gm, "

    $1

    "); - escaped = escaped.replace(/^## (.*)$/gm, "

    $1

    "); - escaped = escaped.replace(/^# (.*)$/gm, "

    $1

    "); - escaped = escaped.replace(/\*\*([^*]+)\*\*/g, "$1"); - escaped = escaped.replace(/`([^`]+)`/g, "$1"); - var lines = escaped.split(/\n{2,}/); + var source = String(markdown || "").replace(/\r\n/g, "\n"); + var blocks = source.split(/\n{2,}/); var out = []; - for (var i = 0; i < lines.length; i += 1) { - var block = lines[i]; - if (/^\s*" + block.replace(/\n/g, "
    ") + "

    "); + + function inline(value) { + return escapeHtml(value) + .replace(/`([^`]+)`/g, "$1") + .replace(/\*\*([^*]+)\*\*/g, "$1") + .replace(/\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)/g, '$1'); + } + + function renderTable(block) { + var rows = block.split("\n"); + if (rows.length < 2 || rows[0].indexOf("|") < 0 || !/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/.test(rows[1])) return ""; + var headers = rows[0].split("|").map(function (cell) { return cell.trim(); }).filter(Boolean); + var body = rows.slice(2); + var html = ['
    ']; + for (var h = 0; h < headers.length; h += 1) html.push(""); + html.push(""); + for (var r = 0; r < body.length; r += 1) { + if (!body[r].trim()) continue; + var cells = body[r].split("|").map(function (cell) { return cell.trim(); }).filter(function (cell, idx, arr) { + return !(idx === 0 && cell === "") && !(idx === arr.length - 1 && cell === ""); + }); + html.push(""); + for (var c = 0; c < headers.length; c += 1) html.push(""); + html.push(""); + } + html.push("
    ", inline(headers[h]), "
    ", inline(cells[c] || ""), "
    "); + return html.join(""); + } + + for (var i = 0; i < blocks.length; i += 1) { + var block = blocks[i]; + var table = renderTable(block); + if (table) { + out.push(table); + continue; + } + var fence = block.match(/^```([\w-]*)\n([\s\S]*?)```$/); + if (fence) { + out.push('
    ' + escapeHtml(fence[2]) + "
    "); + continue; + } + if (/^###\s+/.test(block)) { + out.push("

    " + inline(block.replace(/^###\s+/, "")) + "

    "); + continue; + } + if (/^##\s+/.test(block)) { + out.push("

    " + inline(block.replace(/^##\s+/, "")) + "

    "); + continue; } + if (/^#\s+/.test(block)) { + out.push("

    " + inline(block.replace(/^#\s+/, "")) + "

    "); + continue; + } + if (/^\s*[-*]\s+/m.test(block)) { + var items = block.split("\n").filter(Boolean); + out.push("
      " + items.map(function (line) { return "
    • " + inline(line.replace(/^\s*[-*]\s+/, "")) + "
    • "; }).join("") + "
    "); + continue; + } + if (/^\s*>\s+/m.test(block)) { + out.push("
    " + inline(block.replace(/^\s*>\s?/gm, "")).replace(/\n/g, "
    ") + "
    "); + continue; + } + out.push("

    " + inline(block).replace(/\n/g, "
    ") + "

    "); } return out.join(""); } @@ -1001,10 +1074,7 @@ return; } apiGet(route("dashboard")).then(function (data) { - state.status = data.status || state.status || {}; - state.jobs = asArray(data.jobs); - state.sessions = asArray(data.sessions); - state.notificationsMeta = data.notifications_meta || state.notificationsMeta || {}; + applyDashboardPayload(data); setError(""); render(); }).catch(function () { @@ -1020,6 +1090,39 @@ }); } + function applyDashboardPayload(data) { + data = data || {}; + state.status = data.status || state.status || {}; + state.jobs = asArray(data.jobs); + state.sessions = asArray(data.sessions); + state.notificationsMeta = data.notifications_meta || state.notificationsMeta || {}; + state.lastRealtimeAt = Date.now(); + } + + function loadRealtimeSnapshot() { + if (!state.bridgeReady || !state.bridge) return; + if (document.visibilityState === "hidden") return; + if (state.busy.configSave || state.busy.sessionSave) return; + if (state.view === "config" || state.view === "docs") return; + apiGet(route("dashboard")).then(function (data) { + applyDashboardPayload(data); + if (state.view === "status" || state.view === "tasks") render(); + }).catch(function () { + Promise.all([apiGet(route("status")), apiGet(route("jobs")), apiGet(route("session-config/sessions"))]).then(function (parts) { + state.status = parts[0] || state.status || {}; + state.jobs = asArray(parts[1].jobs || parts[1]); + state.sessions = asArray(parts[2].sessions || parts[2]); + state.lastRealtimeAt = Date.now(); + if (state.view === "status" || state.view === "tasks") render(); + }).catch(function () {}); + }); + } + + function initRealtimeSync() { + if (state.realtimeTimer) return; + state.realtimeTimer = setInterval(loadRealtimeSnapshot, 1000); + } + function loadJobs() { apiGet(route("jobs")).then(function (data) { state.jobs = asArray(data.jobs || data); @@ -1145,10 +1248,22 @@ if (!data || data.received !== true) { throw new Error("保存请求没有命中新后端 save_config 接口,请重载插件后再试"); } - state.config = data && data.config ? data.config : cleaned; - setFeedback("success", "全局配置已保存,后端已确认。"); - setError(""); - render(); + return apiGet(route("get_config")).then(function (serverConfig) { + var mismatched = []; + var keys = ["friend_settings", "group_settings", "web_admin", "notification_settings"]; + for (var i = 0; i < keys.length; i += 1) { + if (!sameConfigValue(serverConfig && serverConfig[keys[i]], payload[keys[i]])) { + mismatched.push(keys[i]); + } + } + if (mismatched.length) { + throw new Error("保存请求已到后端,但配置回读不一致: " + mismatched.join(", ")); + } + state.config = serverConfig || cleaned; + setFeedback("success", "全局配置已保存,后端回读校验通过。"); + setError(""); + render(); + }); }).catch(function (err) { setFeedback("error", err.message || "配置保存失败"); setError(err.message); @@ -1247,6 +1362,7 @@ Promise.resolve(typeof bridge.ready === "function" ? bridge.ready() : null).then(function () { state.bridgeReady = true; loadDashboard(); + initRealtimeSync(); }).catch(function (err) { state.bridgeReady = false; setError(err.message || "AstrBot Pages bridge 初始化失败"); From 846fa2e1c26d0d8eb772f0a25595326040606b4f Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:38:22 +0800 Subject: [PATCH 30/43] fix: show pending session timers in pages --- core/web_admin_server.py | 109 ++++++++++++++++++++++++++++++ pages/proactive-chat/index.html | 2 +- pages/proactive-chat/page-app.css | 8 +++ pages/proactive-chat/page-app.js | 21 ++++-- 4 files changed, 133 insertions(+), 7 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 0629d20..0b0e660 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -1556,6 +1556,115 @@ def _collect_timer_cards(self, now: float) -> dict[str, list[dict[str, Any]]]: ) # 统一按剩余时间升序排序,让最接近触发的卡片优先显示。 + live_auto_sessions = { + str(card.get("session_id", "")) for card in auto_cards if card.get("session_id") + } + live_group_sessions = { + str(card.get("session_id", "")) + for card in group_cards + if card.get("session_id") + } + + # Expose configured sessions even when no asyncio timer handle is currently + # registered. Without these placeholders the Pages dashboard looks empty, + # while the real state is often "waiting for the first message/event". + for session_id in self._list_known_sessions(): + normalized_session_id = self.plugin._normalize_session_id(str(session_id)) + session_config = self.plugin._get_session_config(normalized_session_id) + if not session_config or not session_config.get("enable", False): + continue + + session_category = self._detect_session_category(normalized_session_id) + session_data = self.plugin.session_data.get( + normalized_session_id, self.plugin.session_data.get(str(session_id), {}) + ) + schedule_settings = session_config.get("schedule_settings", {}) + context_settings = session_config.get("context_settings", {}) + common_payload = { + "session_id": normalized_session_id, + "session_name": self.plugin._get_session_name( + normalized_session_id, session_config + ), + "session_display_name": self.plugin._get_session_display_name( + normalized_session_id, session_config + ), + "session_category": session_category, + "source_mode": context_settings.get( + "source_mode", + "platform_message_history" + if session_category == "group" + else "conversation_history", + ), + "max_unanswered_times": schedule_settings.get( + "max_unanswered_times", 0 + ), + "remaining_seconds": None, + "target_time": None, + "progress_percent": 0, + "unanswered_count": session_data.get("unanswered_count", 0), + } + + if session_category == "group": + if normalized_session_id in live_group_sessions: + continue + + idle_minutes = int( + session_config.get("group_idle_trigger_minutes", 0) or 0 + ) + if idle_minutes <= 0: + continue + + group_cards.append( + { + **common_payload, + "timer_kind": "group_silence", + "title": "群沉默检测", + "timer_kind_label": "群沉默检测", + "status": "waiting_message", + "window_seconds": idle_minutes * 60, + "group_idle_trigger_minutes": idle_minutes, + "last_message_time": self.plugin.last_message_times.get( + normalized_session_id + ) + or None, + "inactive_reason": "等待群聊新消息后开始沉默倒计时", + "is_live_group_timer": False, + } + ) + live_group_sessions.add(normalized_session_id) + continue + + if normalized_session_id in live_auto_sessions: + continue + + auto_settings = session_config.get("auto_trigger_settings", {}) + if not auto_settings.get("enable_auto_trigger", False): + continue + + trigger_delay_minutes = int( + auto_settings.get("auto_trigger_after_minutes", 0) or 0 + ) + if trigger_delay_minutes <= 0: + continue + + last_message_time = self.plugin.last_message_times.get( + normalized_session_id + ) or self.plugin.last_message_times.get(str(session_id), 0) + auto_cards.append( + { + **common_payload, + "timer_kind": "auto_trigger", + "title": "自动触发检测", + "timer_kind_label": "自动触发检测", + "status": "waiting_idle" if last_message_time else "pending_timer", + "window_seconds": trigger_delay_minutes * 60, + "auto_trigger_after_minutes": trigger_delay_minutes, + "last_message_time": last_message_time or None, + "inactive_reason": "当前没有运行中的自动触发计时器,等待运行时注册或下一次消息事件", + } + ) + live_auto_sessions.add(normalized_session_id) + auto_cards.sort( key=lambda item: ( item.get("remaining_seconds") is None, diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 1d0777b..0db8b3b 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css index c9b718f..15b48fa 100644 --- a/pages/proactive-chat/page-app.css +++ b/pages/proactive-chat/page-app.css @@ -324,6 +324,14 @@ body.dark-theme .pc-timer-card { background: rgba(255, 255, 255, 0.05); } +.pc-timer-card.is-pending { + border-style: dashed; +} + +.pc-timer-card.is-pending .pc-timer-countdown { + color: var(--md-sys-color-on-surface-variant); +} + .pc-timer-top { display: flex; align-items: flex-start; diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index d634f59..7893863 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -541,7 +541,11 @@ } function timerStatusLabel(item) { - if (!item.target_time && item.remaining_seconds === null) return "待确认"; + if (item.status === "waiting_message") return "等待消息"; + if (item.status === "waiting_idle") return "等待空闲"; + if (item.status === "pending_timer") return "未挂起"; + if (item.status === "unknown") return "待确认"; + if (item.remaining_seconds === null || item.remaining_seconds === undefined) return "未启动"; if (Number(item.remaining_seconds || 0) <= 0) return "待刷新"; if (Number(item.remaining_seconds || 0) <= 300) return "即将触发"; return "计时中"; @@ -553,14 +557,19 @@ for (var i = 0; i < items.length; i += 1) { var item = items[i] || {}; var progress = clampPercent(item.progress_percent); - var remaining = item.remaining_seconds === null || item.remaining_seconds === undefined ? "--" : formatDuration(item.remaining_seconds); + var hasCountdown = item.remaining_seconds !== null && item.remaining_seconds !== undefined; + var remaining = hasCountdown ? formatDuration(item.remaining_seconds) : (item.status === "waiting_message" ? "等待消息" : "--"); + var countdownSuffix = hasCountdown ? " 后触发" : (item.status === "waiting_message" ? " 后开始" : " 待启动"); var targetText = item.target_time ? formatDate(Number(item.target_time) * 1000) : "--"; - html.push('
    '); + var chipClass = hasCountdown && Number(item.remaining_seconds || 0) > 300 ? "is-ok" : "is-warn"; + var detailText = (item.timer_kind_label || item.title || item.timer_kind || "计时器") + " · 目标时间 " + targetText + " · 未回复 " + text(item.unanswered_count, "0") + "/" + text(item.max_unanswered_times, "0"); + if (item.inactive_reason) detailText += " · " + item.inactive_reason; + html.push('
    '); html.push('
    ', escapeHtml(item.session_display_name || item.session_name || item.session || item.session_id || item.id || "会话"), '
    '); html.push('
    ', escapeHtml(item.session_id || item.session || item.id || ""), '
    '); - html.push('', escapeHtml(timerStatusLabel(item)), '
    '); - html.push('
    ', escapeHtml(remaining), ' 后触发
    '); - html.push('
    ', escapeHtml(item.timer_kind_label || item.title || item.timer_kind || "计时器"), ' · 目标时间 ', escapeHtml(targetText), ' · 未回复 ', escapeHtml(text(item.unanswered_count, "0")), '/', escapeHtml(text(item.max_unanswered_times, "0")), '
    '); + html.push('', escapeHtml(timerStatusLabel(item)), '
    '); + html.push('
    ', escapeHtml(remaining), '', escapeHtml(countdownSuffix), '
    '); + html.push('
    ', escapeHtml(detailText), '
    '); html.push('
    '); html.push('
    进度 ', progress, '%', item.window_seconds ? ' · 窗口 ' + escapeHtml(formatDuration(item.window_seconds)) : '', '
    '); html.push('
    '); From 305186eb7c0d273640a7646922be8637a610e4fc Mon Sep 17 00:00:00 2001 From: Justice-ocr Date: Sat, 6 Jun 2026 20:51:25 +0800 Subject: [PATCH 31/43] fix: show pages logo and pending tasks --- core/web_admin_server.py | 92 +++++++++++++++++++++++++++++-- pages/proactive-chat/index.html | 4 +- pages/proactive-chat/page-app.css | 46 ++++++++++++++++ pages/proactive-chat/page-app.js | 15 +++-- 4 files changed, 146 insertions(+), 11 deletions(-) diff --git a/core/web_admin_server.py b/core/web_admin_server.py index 0b0e660..a7c6721 100644 --- a/core/web_admin_server.py +++ b/core/web_admin_server.py @@ -1750,12 +1750,13 @@ async def build_astrbot_page_payload(self) -> dict[str, Any]: } def _collect_jobs(self) -> list[dict[str, Any]]: - if not self.plugin.scheduler: - return [] - jobs = [] - for job in self.plugin.scheduler.get_jobs(): + seen_sessions: set[str] = set() + + for job in self.plugin.scheduler.get_jobs() if self.plugin.scheduler else []: session_id = str(job.id) + normalized_session_id = self.plugin._normalize_session_id(session_id) + seen_sessions.add(normalized_session_id) session_data = self.plugin.session_data.get(session_id, {}) session_config = self.plugin._get_session_config(session_id) or {} schedule_settings = session_config.get("schedule_settings", {}) @@ -1764,6 +1765,8 @@ def _collect_jobs(self) -> list[dict[str, Any]]: jobs.append( { "id": session_id, + "status": "scheduled", + "status_label": "已调度", "session_name": self.plugin._get_session_name( session_id, session_config ), @@ -1807,6 +1810,87 @@ def _collect_jobs(self) -> list[dict[str, Any]]: "quiet_hours": schedule_settings.get("quiet_hours", ""), } ) + + for session_id in self._list_known_sessions(): + normalized_session_id = self.plugin._normalize_session_id(str(session_id)) + if normalized_session_id in seen_sessions: + continue + + session_config = self.plugin._get_session_config(normalized_session_id) + if not session_config or not session_config.get("enable", False): + continue + + session_data = self.plugin.session_data.get( + normalized_session_id, self.plugin.session_data.get(str(session_id), {}) + ) + schedule_settings = session_config.get("schedule_settings", {}) + context_settings = session_config.get("context_settings", {}) + auto_trigger_settings = session_config.get("auto_trigger_settings", {}) + next_trigger_time = session_data.get("next_trigger_time") + next_run_time = None + if next_trigger_time: + try: + next_run_time = datetime.fromtimestamp( + float(next_trigger_time), + tz=getattr(self.plugin, "timezone", None), + ).isoformat() + except Exception: + next_run_time = None + + jobs.append( + { + "id": normalized_session_id, + "status": "pending_schedule", + "status_label": "待调度", + "session_name": self.plugin._get_session_name( + normalized_session_id, session_config + ), + "session_display_name": self.plugin._get_session_display_name( + normalized_session_id, session_config + ), + "session_category": self._detect_session_category( + normalized_session_id + ), + "source_mode": context_settings.get( + "source_mode", "conversation_history" + ), + "max_unanswered_times": schedule_settings.get( + "max_unanswered_times", + auto_trigger_settings.get("max_unanswered_times", 0), + ), + "next_run_time": next_run_time, + "unanswered_count": session_data.get("unanswered_count", 0), + "manual_trigger_in_progress": normalized_session_id + in self.plugin.manual_trigger_sessions, + "next_trigger_time": next_trigger_time, + "last_scheduled_at": session_data.get("last_scheduled_at"), + "last_schedule_min_interval_seconds": session_data.get( + "last_schedule_min_interval_seconds" + ), + "last_schedule_max_interval_seconds": session_data.get( + "last_schedule_max_interval_seconds" + ), + "last_schedule_random_interval_seconds": session_data.get( + "last_schedule_random_interval_seconds" + ), + "schedule_min_interval_minutes": schedule_settings.get( + "min_interval_minutes" + ), + "schedule_max_interval_minutes": schedule_settings.get( + "max_interval_minutes" + ), + "quiet_hours": schedule_settings.get("quiet_hours", ""), + "inactive_reason": "当前没有 APScheduler 任务,可能正在等待下一次触发条件或需要重新调度", + } + ) + + jobs.sort( + key=lambda item: ( + item.get("next_run_time") is None, + item.get("next_run_time") or "", + item.get("id") or "", + ) + ) return jobs def _list_known_sessions(self) -> list[str]: diff --git a/pages/proactive-chat/index.html b/pages/proactive-chat/index.html index 0db8b3b..9cd108a 100644 --- a/pages/proactive-chat/index.html +++ b/pages/proactive-chat/index.html @@ -13,7 +13,7 @@
    主动消息管理端
    正在初始化 Pages 控制台...
    @@ -24,6 +24,6 @@
    - + diff --git a/pages/proactive-chat/page-app.css b/pages/proactive-chat/page-app.css index 15b48fa..aa1e91c 100644 --- a/pages/proactive-chat/page-app.css +++ b/pages/proactive-chat/page-app.css @@ -35,6 +35,31 @@ body.dark-theme .pc-sidebar { box-shadow: 0 10px 28px rgba(103, 80, 164, 0.22); } +.pc-logo-mark { + width: 54px; + height: 54px; + display: grid; + place-items: center; + flex: 0 0 auto; + border-radius: 16px; + background: + radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.94), transparent 28px), + linear-gradient(135deg, var(--md-sys-color-primary), #14b8a6 52%, #f59e0b); + color: #fff; + box-shadow: 0 10px 28px rgba(103, 80, 164, 0.22); +} + +.pc-logo-mark span { + width: 34px; + height: 34px; + display: grid; + place-items: center; + border-radius: 11px; + background: rgba(255, 255, 255, 0.22); + font-size: 22px; + font-weight: 900; +} + .pc-brand-title { font-size: 20px; font-weight: 800; @@ -306,6 +331,27 @@ body.dark-theme .pc-row { flex-wrap: wrap; } +.pc-inline-chip { + display: inline-flex; + align-items: center; + margin-left: 8px; + padding: 2px 8px; + border-radius: 999px; + font-size: 12px; + font-weight: 850; + vertical-align: middle; +} + +.pc-inline-chip.is-ok { + background: rgba(20, 120, 80, 0.14); + color: #147850; +} + +.pc-inline-chip.is-warn { + background: rgba(180, 110, 20, 0.14); + color: #9a5f00; +} + .pc-timer-list { display: grid; gap: 14px; diff --git a/pages/proactive-chat/page-app.js b/pages/proactive-chat/page-app.js index 7893863..973cd9b 100644 --- a/pages/proactive-chat/page-app.js +++ b/pages/proactive-chat/page-app.js @@ -292,7 +292,7 @@ '
    ', '
    -
    -
    -

    主动消息

    -
    正在读取运行状态
    -
    -
    -
    - -
    -
    -
    会话
    -
    -
    -
    -
    -
    调度任务
    -
    -
    -
    -
    -
    实时计时器
    -
    -
    -
    -
    -
    未读通知
    -
    -
    -
    -
    - -
    -
    -

    即将执行

    -
    -
    暂无任务数据
    -
    -
    -
    -

    已知会话

    -
    -
    暂无会话数据
    -
    -
    -
    -